[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#888901: thunderbird: Please include build fixes for sparc64



Source: icedove
Version: 1:58.0~b3-1
Severity: normal
Tags: patch
User: debian-sparc@lists.debian.org
Usertags: sparc64

Hello!

Attached are three patches taken from the Firefox package in Fedora [1]
which fix Thunderbird 58 on sparc64. Those patches should also reduce
the build issues on ppc64/ppc64el although you might one or two patches
more. I edited the Fedora patch "build-ppc64-s390x-curl.patch" to include
sparc64 (__sparc__ && __arch64__) as well.

Please note that rustc isn't currently available as a Debian package
on sparc64 but I used a local install from git to build Thunderbird.
I expect to have a rustc package for sparc64 once Rust 1.24 is out.

All patches need to applied in the "mozilla" subdirectory with
"patch -p1 < $PATCHNAME".

Adrian

> [1] https://koji.fedoraproject.org/koji/buildinfo?buildID=1020385

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
diff -up firefox-56.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian firefox-56.0/gfx/skia/skia/include/core/SkColorPriv.h
--- firefox-56.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian	2017-07-31 18:20:55.000000000 +0200
+++ firefox-56.0/gfx/skia/skia/include/core/SkColorPriv.h	2017-09-29 17:25:04.651876330 +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 -up firefox-56.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian firefox-56.0/gfx/skia/skia/include/core/SkImageInfo.h
--- firefox-56.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian	2017-07-31 18:20:55.000000000 +0200
+++ firefox-56.0/gfx/skia/skia/include/core/SkImageInfo.h	2017-09-29 17:25:04.651876330 +0200
@@ -83,7 +83,8 @@ enum 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"
+    //#error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order"
+    kN32_SkColorType = kBGRA_8888_SkColorType
 #endif
 };
 
diff -up firefox-56.0/gfx/skia/skia/include/gpu/GrColor.h.big-endian firefox-56.0/gfx/skia/skia/include/gpu/GrColor.h
--- firefox-56.0/gfx/skia/skia/include/gpu/GrColor.h.big-endian	2017-07-31 18:20:55.000000000 +0200
+++ firefox-56.0/gfx/skia/skia/include/gpu/GrColor.h	2017-09-29 17:25:04.652876327 +0200
@@ -74,8 +74,13 @@ static inline GrColor GrColorPackA4(unsi
  *  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 -up firefox-56.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian firefox-56.0/gfx/skia/skia/include/gpu/GrTypes.h
--- firefox-56.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian	2017-07-31 18:20:55.000000000 +0200
+++ firefox-56.0/gfx/skia/skia/include/gpu/GrTypes.h	2017-09-29 17:25:04.652876327 +0200
@@ -326,15 +326,13 @@ enum 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;
+    static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig;
 #endif
 
 // Returns true if the pixel config is a GPU-specific compressed format
diff -up firefox-58.0/js/src/jit/none/MacroAssembler-none.h.old firefox-58.0/js/src/jit/none/MacroAssembler-none.h
--- firefox-58.0/js/src/jit/none/MacroAssembler-none.h.old	2018-01-24 20:33:52.569147937 +0100
+++ firefox-58.0/js/src/jit/none/MacroAssembler-none.h	2018-01-24 20:34:06.985088057 +0100
@@ -88,7 +88,7 @@ static constexpr Register WasmTableCallI
 static constexpr Register WasmTlsReg { Registers::invalid_reg };
 
 static constexpr uint32_t ABIStackAlignment = 4;
-static constexpr uint32_t CodeAlignment = 4;
+static constexpr uint32_t CodeAlignment = 8;
 static constexpr uint32_t JitStackAlignment = 8;
 static constexpr uint32_t JitStackValueAlignment = JitStackAlignment / sizeof(Value);
 
diff -up firefox-54.0/toolkit/crashreporter/google-breakpad/src/third_party/curl/curlbuild.h.ppc-curl firefox-54.0/toolkit/crashreporter/google-breakpad/src/third_party/curl/curlbuild.h
--- firefox-54.0/toolkit/crashreporter/google-breakpad/src/third_party/curl/curlbuild.h.ppc-curl	2017-06-09 23:31:15.186207877 +0200
+++ firefox-54.0/toolkit/crashreporter/google-breakpad/src/third_party/curl/curlbuild.h	2017-06-10 00:21:26.731117206 +0200
@@ -155,7 +155,9 @@
 
 /* The size of `long', as computed by sizeof. */
 #if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__)) ||      \
-    defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABI64)
+    defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABI64) || \
+    defined(__PPC64__) || defined(__pcc64le__) || defined(__S390X__) || defined(__s390x__) || \
+    (defined(__sparc__) && defined(__arch64__))
 #define CURL_SIZEOF_LONG 8
 #else
 #define CURL_SIZEOF_LONG 4

Reply to: