From 5d942197d4886c7f08fdbe3bf9bb1f4574909615 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 6 Mar 2015 16:38:42 +0100 Subject: ppc64le build fixes --- firefox-ppc64le.patch | 28 ++++++++ firefox.spec | 11 ++- mozilla-1005535.patch | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++ mozilla-1108834.patch | 11 +++ 4 files changed, 243 insertions(+), 1 deletion(-) create mode 100644 firefox-ppc64le.patch create mode 100644 mozilla-1005535.patch create mode 100644 mozilla-1108834.patch diff --git a/firefox-ppc64le.patch b/firefox-ppc64le.patch new file mode 100644 index 0000000..6465eec --- /dev/null +++ b/firefox-ppc64le.patch @@ -0,0 +1,28 @@ +diff -up firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h.ppc64le firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h +--- firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h.ppc64le 2015-02-20 03:01:40.000000000 +0100 ++++ firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h 2015-03-06 15:52:58.298050379 +0100 +@@ -90,6 +90,13 @@ + #endif + + ////////////////////////////////////////////////////////////////////// ++#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__) || \ +diff -up firefox-36.0/mozilla-release/js/src/jsdtoa.cpp.ppc64le firefox-36.0/mozilla-release/js/src/jsdtoa.cpp +--- firefox-36.0/mozilla-release/js/src/jsdtoa.cpp.ppc64le 2015-02-20 03:01:49.000000000 +0100 ++++ firefox-36.0/mozilla-release/js/src/jsdtoa.cpp 2015-03-06 15:54:38.348048226 +0100 +@@ -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[] = { diff --git a/firefox.spec b/firefox.spec index 917d6f7..05af1a1 100644 --- a/firefox.spec +++ b/firefox.spec @@ -107,7 +107,7 @@ Summary: Mozilla Firefox Web browser Name: firefox Version: 36.0 -Release: 3%{?pre_tag}%{?dist} +Release: 4%{?pre_tag}%{?dist} URL: http://www.mozilla.org/projects/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -133,6 +133,9 @@ Patch18: xulrunner-24.0-jemalloc-ppc.patch # workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found) Patch19: xulrunner-24.0-s390-inlines.patch Patch20: firefox-build-prbool.patch +Patch21: firefox-ppc64le.patch +Patch22: mozilla-1108834.patch +Patch23: mozilla-1005535.patch # Fedora specific patches # Unable to install addons from https pages @@ -287,6 +290,9 @@ cd %{tarballdir} %patch18 -p2 -b .jemalloc-ppc %patch19 -p2 -b .s390-inlines %patch20 -p1 -b .prbool +%patch21 -p2 -b .ppc64le +%patch22 -p2 -b .1108834 +%patch23 -p1 -b .1005535 # For branding specific patches. @@ -765,6 +771,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Fri Mar 6 2015 Martin Stransky - 36.0-4 +- ppc64le build fix + * Thu Mar 5 2015 Martin Stransky - 36.0-3 - Added back the removed "-remote" option - Fixed rhbz#1198965 - mozilla-xremote-client has been removed, diff --git a/mozilla-1005535.patch b/mozilla-1005535.patch new file mode 100644 index 0000000..2f0381b --- /dev/null +++ b/mozilla-1005535.patch @@ -0,0 +1,194 @@ +# 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 +@@ -8231,21 +8231,21 @@ dnl Skia + dnl ======================================================== + if test "$MOZ_ENABLE_SKIA"; then + AC_DEFINE(MOZ_ENABLE_SKIA) + AC_DEFINE(USE_SKIA) + if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then + 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 + fi + AC_SUBST(MOZ_ENABLE_SKIA) + + dnl ======================================================== + dnl disable xul + dnl ======================================================== + MOZ_ARG_DISABLE_BOOL(xul, + [ --disable-xul Disable XUL], +diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py +--- a/gfx/skia/generate_mozbuild.py ++++ b/gfx/skia/generate_mozbuild.py +@@ -236,17 +236,17 @@ def generate_separated_sources(platform_ + return True + + return False + + separated = { + 'common': { + #'trunk/src/effects/gradients/SkGradientTileProc.cpp', + 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp', +- 'trunk/src/ports/SkDiscardableMemory_none.cpp', ++ #'trunk/src/ports/SkDiscardableMemory_none.cpp', + 'trunk/src/ports/SkImageDecoder_empty.cpp', + 'trunk/src/ports/SkMemory_mozalloc.cpp', + # 'trunk/src/images/SkImages.cpp', + # 'trunk/src/images/SkImageRef.cpp', + # 'trunk/src/images/SkImageRef_GlobalPool.cpp', + # 'trunk/src/images/SkImageRefPool.cpp', + # 'trunk/src/images/SkImageDecoder.cpp', + # 'trunk/src/images/SkImageDecoder_Factory.cpp', +diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build +--- a/gfx/skia/moz.build ++++ b/gfx/skia/moz.build +@@ -847,17 +847,16 @@ else: + 'trunk/src/opts/SkBitmapProcState_opts_none.cpp', + 'trunk/src/opts/SkBlitMask_opts_none.cpp', + 'trunk/src/opts/SkBlitRow_opts_none.cpp', + 'trunk/src/opts/SkBlurImage_opts_none.cpp', + 'trunk/src/opts/SkMorphology_opts_none.cpp', + 'trunk/src/opts/SkTextureCompression_opts_none.cpp', + 'trunk/src/opts/SkUtils_opts_none.cpp', + 'trunk/src/opts/SkXfermode_opts_none.cpp', +- 'trunk/src/ports/SkDiscardableMemory_none.cpp', + ] + + + # can we find a better way of dealing with asm sources? + + # left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with + if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']: + SOURCES += [ +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-1108834.patch b/mozilla-1108834.patch new file mode 100644 index 0000000..87edc57 --- /dev/null +++ b/mozilla-1108834.patch @@ -0,0 +1,11 @@ +diff -up firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h.old firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h +--- firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h.old 2015-02-20 03:01:48.000000000 +0100 ++++ firefox-36.0/mozilla-release/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; -- cgit