From a51b2db7d03b008411449472efbb4450121257272f601b81b5b3f0dd0667429d Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Fri, 16 Mar 2018 16:09:39 +0000 Subject: [PATCH] Accepting request 587943 from home:cgrobertson:branches:mozilla:Factory - Added patch: * mozilla-bmo1005535.patch: Enable skia_gpu on big endian platforms. OBS-URL: https://build.opensuse.org/request/show/587943 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=637 --- MozillaFirefox.changes | 7 +++ MozillaFirefox.spec | 6 +- _constraints | 2 +- mozilla-bmo1005535.patch | 123 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 mozilla-bmo1005535.patch diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index 0a7dc07..efcf27b 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Mar 14 19:27:07 UTC 2018 - cgrobertson@suse.com + +- Added patch: + * mozilla-bmo1005535.patch: + Enable skia_gpu on big endian platforms. + ------------------------------------------------------------------- Sun Mar 11 22:12:12 UTC 2018 - wr@rosenauer.org diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index 7af137d..ed552e8 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -153,6 +153,8 @@ Patch8: mozilla-bmo256180.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch +# SLE Patches +Patch103: mozilla-bmo1005535.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires(post): coreutils shared-mime-info desktop-file-utils @@ -263,6 +265,8 @@ cd $RPM_BUILD_DIR/mozilla # Firefox %patch101 -p1 %patch102 -p1 +# SLE +%patch103 -p1 %build # no need to add build time to binaries @@ -333,7 +337,7 @@ ac_add_options --enable-optimize="-g -O2" ac_add_options --disable-optimize %endif %endif -%ifarch ppc ppc64 ppc64le %arm +%ifarch %arm ac_add_options --disable-elf-hack %endif ac_add_options --with-system-nspr diff --git a/_constraints b/_constraints index 61bd64a..2ec300e 100644 --- a/_constraints +++ b/_constraints @@ -5,7 +5,7 @@ 16 - 9000 + 12 diff --git a/mozilla-bmo1005535.patch b/mozilla-bmo1005535.patch new file mode 100644 index 0000000..e11bcd8 --- /dev/null +++ b/mozilla-bmo1005535.patch @@ -0,0 +1,123 @@ +# HG changeset patch +# Parent 376f185a0a757fe128be665adbb705f4a56461bc +# User Steve Singer +# Parent 23e95bbe4d5553a2ba9dda2a4a96a2029253597c +Bug 1005535 - Get skia GPU building on big endian. + +diff --git a/gfx/skia/skia/include/core/SkColorPriv.h b/gfx/skia/skia/include/core/SkColorPriv.h +--- a/gfx/skia/skia/include/core/SkColorPriv.h ++++ b/gfx/skia/skia/include/core/SkColorPriv.h +@@ -27,37 +27,27 @@ + * For easier compatibility with Skia's GPU backend, we further restrict these + * to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does + * not directly correspond to the same shift-order, since we have to take endianess + * into account. + * + * Here we enforce this constraint. + */ + +-#ifdef SK_CPU_BENDIAN +- #define SK_RGBA_R32_SHIFT 24 +- #define SK_RGBA_G32_SHIFT 16 +- #define SK_RGBA_B32_SHIFT 8 +- #define SK_RGBA_A32_SHIFT 0 + +- #define SK_BGRA_B32_SHIFT 24 +- #define SK_BGRA_G32_SHIFT 16 +- #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 + #define SK_RGBA_A32_SHIFT 24 + + #define SK_BGRA_B32_SHIFT 0 + #define SK_BGRA_G32_SHIFT 8 + #define SK_BGRA_R32_SHIFT 16 + #define SK_BGRA_A32_SHIFT 24 +-#endif ++ + + #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) + #error "can't define PMCOLOR to be RGBA and BGRA" + #endif + + #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA \ + (SK_A32_SHIFT == SK_RGBA_A32_SHIFT && \ + SK_R32_SHIFT == SK_RGBA_R32_SHIFT && \ +diff --git a/gfx/skia/skia/include/core/SkImageInfo.h b/gfx/skia/skia/include/core/SkImageInfo.h +--- a/gfx/skia/skia/include/core/SkImageInfo.h ++++ b/gfx/skia/skia/include/core/SkImageInfo.h +@@ -78,17 +78,17 @@ enum SkColorType { + + kLastEnum_SkColorType = kRGBA_F16_SkColorType, + + #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + kN32_SkColorType = kBGRA_8888_SkColorType, + #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" ++ kN32_SkColorType = kBGRA_8888_SkColorType + #endif + }; + + static int SkColorTypeBytesPerPixel(SkColorType ct) { + static const uint8_t gSize[] = { + 0, // Unknown + 1, // Alpha_8 + 2, // RGB_565 +diff --git a/gfx/skia/skia/include/gpu/GrColor.h b/gfx/skia/skia/include/gpu/GrColor.h +--- a/gfx/skia/skia/include/gpu/GrColor.h ++++ b/gfx/skia/skia/include/gpu/GrColor.h +@@ -69,17 +69,17 @@ static inline GrColor GrColorPackA4(unsi + #define GrColorUnpackG(color) (((color) >> GrColor_SHIFT_G) & 0xFF) + #define GrColorUnpackB(color) (((color) >> GrColor_SHIFT_B) & 0xFF) + #define GrColorUnpackA(color) (((color) >> GrColor_SHIFT_A) & 0xFF) + + /** + * 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)) ++#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A))) + + #define GrColor_WHITE 0xFFFFFFFF + #define GrColor_TRANSPARENT_BLACK 0x0 + + /** + * Assert in debug builds that a GrColor is premultiplied. + */ + static inline void GrColorIsPMAssert(GrColor SkDEBUGCODE(c)) { +diff --git a/gfx/skia/skia/include/gpu/GrTypes.h b/gfx/skia/skia/include/gpu/GrTypes.h +--- a/gfx/skia/skia/include/gpu/GrTypes.h ++++ b/gfx/skia/skia/include/gpu/GrTypes.h +@@ -321,25 +321,23 @@ enum GrPixelConfig { + */ + kRGBA_half_GrPixelConfig, + + kLast_GrPixelConfig = kRGBA_half_GrPixelConfig + }; + 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 ++ + #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_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; + #endif + + // Returns true if the pixel config is a GPU-specific compressed format + // representation. + static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { + switch (config) { + case kETC1_GrPixelConfig: + return true;