From 6a3949e8a901f30c3d4db88b935cab92b4cc6cb7 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 21 May 2019 13:12:42 +0200 Subject: [PATCH] firefox: update to 67.0. --- .../patches/fix-rust-libc-ppc64-musl.patch | 8 +- srcpkgs/firefox/patches/fix-tools.patch | 11 -- srcpkgs/firefox/patches/fix-wasm-arm.patch | 125 ++---------------- srcpkgs/firefox/template | 4 +- 4 files changed, 16 insertions(+), 132 deletions(-) diff --git a/srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch b/srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch index 8b741a19791..fd92c150b59 100644 --- a/srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch +++ b/srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch @@ -1,7 +1,7 @@ ---- Cargo.toml.orig 2019-01-29 11:31:40.149513234 +0100 -+++ Cargo.toml 2019-01-29 11:31:54.473374380 +0100 -@@ -59,3 +59,4 @@ - libudev-sys = { path = "dom/webauthn/libudev-sys" } +--- Cargo.toml.orig 2019-05-21 07:45:37.809198143 +0200 ++++ Cargo.toml 2019-05-21 07:54:57.903418198 +0200 +@@ -61,3 +61,4 @@ serde_derive = { git = "https://github.com/servo/serde", branch = "deserialize_from_enums9" } winapi = { git = "https://github.com/froydnj/winapi-rs", branch = "aarch64" } + cc = { git = "https://github.com/glandium/cc-rs", branch = "1.0.23-clang-cl-aarch64" } +libc = { git = "https://github.com/rust-lang/libc", rev = "914eba137b25ece7ade3986f1e34df9cf439af22" } diff --git a/srcpkgs/firefox/patches/fix-tools.patch b/srcpkgs/firefox/patches/fix-tools.patch index 78abde1bd4f..0ed043fb5b5 100644 --- a/srcpkgs/firefox/patches/fix-tools.patch +++ b/srcpkgs/firefox/patches/fix-tools.patch @@ -1,14 +1,3 @@ ---- tools/profiler/core/platform.h -+++ tools/profiler/core/platform.h -@@ -29,6 +29,8 @@ - #ifndef TOOLS_PLATFORM_H_ - #define TOOLS_PLATFORM_H_ - -+#include -+ - #include - #include - #include "MainThreadUtils.h" --- tools/profiler/lul/LulElf.cpp.orig 2019-01-29 12:05:34.223834130 +0100 +++ tools/profiler/lul/LulElf.cpp 2019-01-29 12:08:02.480400845 +0100 @@ -469,10 +469,10 @@ diff --git a/srcpkgs/firefox/patches/fix-wasm-arm.patch b/srcpkgs/firefox/patches/fix-wasm-arm.patch index fa699112f69..e6ad61c9f44 100644 --- a/srcpkgs/firefox/patches/fix-wasm-arm.patch +++ b/srcpkgs/firefox/patches/fix-wasm-arm.patch @@ -1,120 +1,15 @@ -disable WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS - -# HG changeset patch -# User Lars T Hansen -# Date 1550043288 -3600 -# Node ID 322de2cc80194c4fe859989738f7c3c2b70b98a4 -# Parent 3b1b94e39795d5af17da5908ad8d05e7cefb89e5 -Bug 1526653 - Document some ARM Linux compile problems. r=luke - -Not every ARM Linux distro (all of them tier-3 apart from Android) has -a sys/user.h that provides the necessary structures for us to emulate -unaligned FP accesses. Raspbian is a case in point; the only user.h -on the system is some generic glibc thing that is completely wrong for -ARM. - -We can't really hope to #ifdef our way out of this -- for example, -there does not seem to be a reliable preprocessor name for Raspbian, -nor is there a canonical preprocessor name that sys/user.h exports -when the desired structures are defined. - -Therefore, add some comments to explain the problem and introduce a -choke point that tier-3 porters can use if they run into the problem. - -Differential Revision: https://phabricator.services.mozilla.com/D19637 - -diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp --- js/src/wasm/WasmSignalHandlers.cpp +++ js/src/wasm/WasmSignalHandlers.cpp -@@ -208,17 +208,35 @@ using mozilla::DebugOnly; - # define R11_sig(p) ((p)->thread.__r[11]) - # define R13_sig(p) ((p)->thread.__sp) - # define R14_sig(p) ((p)->thread.__lr) - # define R15_sig(p) ((p)->thread.__pc) - #else - # error "Don't know how to read/write to the thread state via the mcontext_t." - #endif - -+// On ARM Linux, including Android, unaligned FP accesses that were not flagged -+// as unaligned will tend to trap (with SIGBUS) and will need to be emulated. -+// -+// We can only perform this emulation if the system header files provide access -+// to the FP registers. In particular, must have definitions of -+// `struct user_vfp` and `struct user_vfp_exc`, as it does on Android. -+// -+// Those definitions are however not present in the headers of every Linux -+// distro - Raspbian is known to be a problem, for example. However those -+// distros are tier-3 platforms. -+// -+// If you run into compile problems on a tier-3 platform, you can disable the -+// emulation here. -+ - #if defined(__linux__) && defined(__arm__) -+//# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS -+#endif -+ -+#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS - # include - #endif - - #if defined(ANDROID) - // Not all versions of the Android NDK define ucontext_t or mcontext_t. - // Detect this and provide custom but compatible definitions. Note that these - // follow the GLibc naming convention to access register values from - // mcontext_t. -@@ -436,17 +454,17 @@ struct AutoHandlingTrap { - } - - ~AutoHandlingTrap() { - MOZ_ASSERT(sAlreadyHandlingTrap.get()); - sAlreadyHandlingTrap.set(false); - } - }; +@@ -243,9 +243,9 @@ + // If you run into compile problems on a tier-3 platform, you can disable the + // emulation here. -#if defined(__linux__) && defined(__arm__) -+#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS +-# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS +-#endif ++// #if defined(__linux__) && defined(__arm__) ++// # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS ++// #endif - // Code to handle SIGBUS for unaligned floating point accesses on 32-bit ARM. - - static uintptr_t ReadGPR(CONTEXT* context, uint32_t rn) { - switch (rn) { - case 0: - return context->uc_mcontext.arm_r0; - case 1: -@@ -636,22 +654,22 @@ static bool HandleUnalignedTrap(CONTEXT* - } - - # ifdef DEBUG - MOZ_CRASH( - "SIGBUS handler could not access FP register, incompatible kernel?"); - # endif - return false; - } --#else // __linux__ && __arm__ -+#else // WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS - static bool HandleUnalignedTrap(CONTEXT* context, uint8_t* pc, - Instance* instance) { - return false; - } --#endif // __linux__ && __arm__ -+#endif // WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS - - static MOZ_MUST_USE bool HandleTrap(CONTEXT* context, - bool isUnalignedSignal = false, - JSContext* assertCx = nullptr) { - MOZ_ASSERT(sAlreadyHandlingTrap.get()); - - uint8_t* pc = ContextToPC(context); - const CodeSegment* codeSegment = LookupCodeSegment(pc); -@@ -1165,8 +1183,10 @@ bool wasm::HandleIllegalInstruction(cons - return false; - } - - jit::JitActivation* activation = TlsContext.get()->activation()->asJit(); - activation->startWasmTrap(trap, bytecode.offset(), regs); - *newPC = segment.trapCode(); - return true; - } -+ -+#undef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS - + #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS + # include diff --git a/srcpkgs/firefox/template b/srcpkgs/firefox/template index 09a76b594dd..ac54203af4a 100644 --- a/srcpkgs/firefox/template +++ b/srcpkgs/firefox/template @@ -3,7 +3,7 @@ # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n". # pkgname=firefox -version=66.0.5 +version=67.0 revision=1 build_helper="rust" short_desc="Mozilla Firefox web browser" @@ -11,7 +11,7 @@ maintainer="Johannes " license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://www.mozilla.org/firefox/" distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz" -checksum=a2aeb4e036d1365a2d2550e24ba8b4dde061281300f2b11a204cc1e9eb1792b5 +checksum=2cb937db00e35162393aa5b65d1f2280be1e62d5ee33d3e9997cccba542d791b lib32disabled=yes