From 04e99f338087df901937a287b89186afd3b00ea1 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Wed, 31 May 2017 14:30:47 +0200 Subject: [PATCH] Added build patch for big endian platforms --- build-big-endian.patch | 98 ++++++++++++++++++++++++++++++++++++++++++ firefox.spec | 2 + 2 files changed, 100 insertions(+) create mode 100644 build-big-endian.patch diff --git a/build-big-endian.patch b/build-big-endian.patch new file mode 100644 index 0000000..c2aaea1 --- /dev/null +++ b/build-big-endian.patch @@ -0,0 +1,98 @@ +diff -ru firefox-53.0.3/gfx/skia/skia/include/core/SkColorPriv.h firefox-53.0.3-changed/gfx/skia/skia/include/core/SkColorPriv.h +--- firefox-53.0.3/gfx/skia/skia/include/core/SkColorPriv.h 2017-01-16 17:16:50.000000000 +0100 ++++ firefox-53.0.3-changed/gfx/skia/skia/include/core/SkColorPriv.h 2017-05-30 12:42:18.032534367 +0200 +@@ -31,7 +31,7 @@ + * + * Here we enforce this constraint. + */ +- ++/* + #ifdef SK_CPU_BENDIAN + #define SK_RGBA_R32_SHIFT 24 + #define SK_RGBA_G32_SHIFT 16 +@@ -43,6 +43,7 @@ + #define SK_BGRA_R32_SHIFT 8 + #define SK_BGRA_A32_SHIFT 0 + #else ++*/ + #define SK_RGBA_R32_SHIFT 0 + #define SK_RGBA_G32_SHIFT 8 + #define SK_RGBA_B32_SHIFT 16 +@@ -52,7 +53,7 @@ + #define SK_BGRA_G32_SHIFT 8 + #define SK_BGRA_R32_SHIFT 16 + #define SK_BGRA_A32_SHIFT 24 +-#endif ++/*#endif*/ + + #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) + #error "can't define PMCOLOR to be RGBA and BGRA" +diff -ru firefox-53.0.3/gfx/skia/skia/include/core/SkImageInfo.h firefox-53.0.3-changed/gfx/skia/skia/include/core/SkImageInfo.h +--- firefox-53.0.3/gfx/skia/skia/include/core/SkImageInfo.h 2017-02-27 17:10:59.000000000 +0100 ++++ firefox-53.0.3-changed/gfx/skia/skia/include/core/SkImageInfo.h 2017-05-30 12:44:00.250165657 +0200 +@@ -83,7 +83,8 @@ + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + kN32_SkColorType = kRGBA_8888_SkColorType, + #else +- #error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order" ++ //#error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order" ++ kN32_SkColorType = kBGRA_8888_SkColorType + #endif + }; + +diff -ru firefox-53.0.3/gfx/skia/skia/include/gpu/GrColor.h firefox-53.0.3-changed/gfx/skia/skia/include/gpu/GrColor.h +--- firefox-53.0.3/gfx/skia/skia/include/gpu/GrColor.h 2017-02-27 17:10:59.000000000 +0100 ++++ firefox-53.0.3-changed/gfx/skia/skia/include/gpu/GrColor.h 2017-05-31 09:01:50.756536464 +0200 +@@ -74,8 +74,13 @@ + * Since premultiplied means that alpha >= color, we construct a color with + * each component==255 and alpha == 0 to be "illegal" + */ +-#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A)) ++//Just for big endian platforms, little has: (~(0xFF << GrColor_SHIFT_A)) ++#ifdef SK_CPU_BENDIAN ++#define GrColor_ILLEGAL 0xFFFFFF00 ++#else ++#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A)) + ++#endif + #define GrColor_WHITE 0xFFFFFFFF + #define GrColor_TRANSPARENT_BLACK 0x0 + +diff -ru firefox-53.0.3/gfx/skia/skia/include/gpu/GrTypes.h firefox-53.0.3-changed/gfx/skia/skia/include/gpu/GrTypes.h +--- firefox-53.0.3/gfx/skia/skia/include/gpu/GrTypes.h 2017-02-27 17:10:59.000000000 +0100 ++++ firefox-53.0.3-changed/gfx/skia/skia/include/gpu/GrTypes.h 2017-05-30 17:21:27.782537859 +0200 +@@ -275,9 +275,9 @@ + static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; + + // Aliases for pixel configs that match skia's byte order. +-#ifndef SK_CPU_LENDIAN +- #error "Skia gpu currently assumes little endian" +-#endif ++//#ifndef SK_CPU_LENDIAN ++// #error "Skia gpu currently assumes little endian" ++//#endif + #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; + static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig; +@@ -285,7 +285,8 @@ + static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig; + static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSRGBA_8888_GrPixelConfig; + #else +- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format." ++ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; ++ static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig; + #endif + + // Returns true if the pixel config is a GPU-specific compressed format +diff -ru firefox-53.0.3/js/src/jit/none/MacroAssembler-none.h firefox-53.0.3-changed/js/src/jit/none/MacroAssembler-none.h +--- firefox-53.0.3/js/src/jit/none/MacroAssembler-none.h 2017-04-11 06:15:18.000000000 +0200 ++++ firefox-53.0.3-changed/js/src/jit/none/MacroAssembler-none.h 2017-05-30 16:03:20.475810030 +0200 +@@ -196,7 +196,7 @@ + static bool SupportsSimd() { return false; } + static bool SupportsUnalignedAccesses() { return false; } + +- void executableCopy(void*, bool) { MOZ_CRASH(); } ++ void executableCopy(void*, bool flushICache = true) { MOZ_CRASH(); } + void copyJumpRelocationTable(uint8_t*) { MOZ_CRASH(); } + void copyDataRelocationTable(uint8_t*) { MOZ_CRASH(); } + void copyPreBarrierTable(uint8_t*) { MOZ_CRASH(); } diff --git a/firefox.spec b/firefox.spec index 123749a..9422ddb 100644 --- a/firefox.spec +++ b/firefox.spec @@ -133,6 +133,7 @@ Patch25: rhbz-1219542-s390-build.patch Patch26: build-icu-big-endian.patch Patch27: mozilla-1335250.patch Patch28: build-1360521-missing-cheddar.patch +Patch29: build-big-endian.patch # Fedora specific patches # Unable to install addons from https pages @@ -309,6 +310,7 @@ This package contains results of tests executed during build. %endif %patch27 -p1 -b .1335250 %patch28 -p2 -b .1360521-missing-cheddar +%patch29 -p1 -b .big-endian %patch3 -p1 -b .arm