diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index fe4f06b7..dd2dc851 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue Mar 24 15:35:24 UTC 2015 - dvaleev@suse.com + +- Fix builds with skia on Power + mozilla-skia-be-le.patch (patch from #bmo1136958) + mozilla-bmo1108834.patch + mozilla-bmo1005535.patch + ------------------------------------------------------------------- Sat Mar 21 09:03:12 UTC 2015 - wr@rosenauer.org diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index e5f14384..643a2402 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -146,6 +146,9 @@ Patch11: mozilla-arm-disable-edsp.patch Patch12: mozilla-bmo1088588.patch Patch13: mozilla-openaes-decl.patch Patch14: mozilla-skia-bmo1136958.patch +Patch15: mozilla-skia-be-le.patch +Patch16: mozilla-bmo1108834.patch +Patch17: mozilla-bmo1005535.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-no-default-ualocale.patch @@ -260,6 +263,9 @@ cd $RPM_BUILD_DIR/mozilla %patch12 -p1 %patch13 -p1 %patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 # Firefox %patch101 -p1 %patch102 -p1 diff --git a/mozilla-bmo1005535.patch b/mozilla-bmo1005535.patch new file mode 100644 index 00000000..95f06504 --- /dev/null +++ b/mozilla-bmo1005535.patch @@ -0,0 +1,141 @@ +# HG changeset patch +# Parent b7eb1ce0237d6125b75bc8ff1cb3afc328d6e78c +# User Steve Singer +Bug 1005535 - Get skia GPU building on big endian. + +diff --git a/configure.in b/configure.in +--- a/configure.in ++++ b/configure.in +@@ -8239,11 +8239,11 @@ if test "${MOZ_WIDGET_TOOLKIT}" = "andro + AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) + fi + +-if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then ++# if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then + MOZ_ENABLE_SKIA_GPU=1 + AC_DEFINE(USE_SKIA_GPU) + AC_SUBST(MOZ_ENABLE_SKIA_GPU) +-fi ++# fi + + dnl ======================================================== + dnl Check for nss-shared-helper +diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h +--- a/gfx/skia/trunk/include/config/SkUserConfig.h ++++ b/gfx/skia/trunk/include/config/SkUserConfig.h +@@ -192,16 +192,17 @@ + + #if defined(SK_CPU_ARM32) || defined(SK_CPU_ARM64) + # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_arm.h" + #else + # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_x86.h" + #endif + + // On all platforms we have this byte order ++ + #define SK_A32_SHIFT 24 + #define SK_R32_SHIFT 16 + #define SK_G32_SHIFT 8 + #define SK_B32_SHIFT 0 + + #define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0 + + #define SK_SUPPORT_LEGACY_GETDEVICE +diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/core/SkColorPriv.h +--- a/gfx/skia/trunk/include/core/SkColorPriv.h ++++ b/gfx/skia/trunk/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/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/core/SkImageInfo.h +--- a/gfx/skia/trunk/include/core/SkImageInfo.h ++++ b/gfx/skia/trunk/include/core/SkImageInfo.h +@@ -83,19 +83,20 @@ enum SkColorType { + + kLastEnum_SkColorType = kIndex_8_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 + ++ + #ifdef SK_SUPPORT_LEGACY_N32_NAME + kPMColor_SkColorType = kN32_SkColorType + #endif + }; + + static int SkColorTypeBytesPerPixel(SkColorType ct) { + static const uint8_t gSize[] = { + 0, // Unknown +diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/GrTypes.h +--- a/gfx/skia/trunk/include/gpu/GrTypes.h ++++ b/gfx/skia/trunk/include/gpu/GrTypes.h +@@ -304,25 +304,23 @@ enum GrPixelConfig { + * Byte order is r, g, b, a. This color format is 32 bits per channel + */ + kRGBA_float_GrPixelConfig, + kLast_GrPixelConfig = kRGBA_float_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: + case kLATC_GrPixelConfig: diff --git a/mozilla-bmo1108834.patch b/mozilla-bmo1108834.patch new file mode 100644 index 00000000..00a9d535 --- /dev/null +++ b/mozilla-bmo1108834.patch @@ -0,0 +1,11 @@ +diff -up mozilla/js/src/jit/none/Lowering-none.h.old firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h +--- mozilla/js/src/jit/none/Lowering-none.h.old 2015-02-20 03:01:48.000000000 +0100 ++++ mozilla/js/src/jit/none/Lowering-none.h 2015-03-06 12:00:43.486675228 +0100 +@@ -89,6 +89,7 @@ class LIRGeneratorNone : public LIRGener + bool visitSimdTernaryBitwise(MSimdTernaryBitwise *ins) { MOZ_CRASH(); } + bool visitSimdSplatX4(MSimdSplatX4 *ins) { MOZ_CRASH(); } + bool visitSimdValueX4(MSimdValueX4 *lir) { MOZ_CRASH(); } ++ bool visitSubstr(MSubstr *) { MOZ_CRASH(); } + }; + + typedef LIRGeneratorNone LIRGeneratorSpecific; diff --git a/mozilla-skia-be-le.patch b/mozilla-skia-be-le.patch new file mode 100644 index 00000000..f4ee4d73 --- /dev/null +++ b/mozilla-skia-be-le.patch @@ -0,0 +1,31 @@ +Index: mozilla/gfx/skia/trunk/include/core/SkPreConfig.h +=================================================================== +--- mozilla.orig/gfx/skia/trunk/include/core/SkPreConfig.h ++++ mozilla/gfx/skia/trunk/include/core/SkPreConfig.h +@@ -92,6 +92,14 @@ + ////////////////////////////////////////////////////////////////////// + + #if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN) ++ #if defined(__BIG_ENDIAN__) ++ #define SK_CPU_BENDIAN ++ #elif defined(__LITTLE_ENDIAN__) ++ #define SK_CPU_LENDIAN ++ #endif ++#endif ++ ++#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN) + #if defined(__sparc) || defined(__sparc__) || \ + defined(_POWER) || defined(__powerpc__) || \ + defined(__ppc__) || defined(__hppa) || \ +Index: mozilla/js/src/jsdtoa.cpp +=================================================================== +--- mozilla.orig/js/src/jsdtoa.cpp ++++ mozilla/js/src/jsdtoa.cpp +@@ -52,6 +52,7 @@ static inline void dtoa_free(void* p) { + #define MALLOC dtoa_malloc + #define FREE dtoa_free + #include "dtoa.c" ++#undef CONST + + /* Mapping of JSDToStrMode -> js_dtoa mode */ + static const uint8_t dtoaModes[] = {