firefox: update to 67.0.

This commit is contained in:
Johannes 2019-05-21 13:12:42 +02:00 committed by Johannes
parent 4d01395d35
commit 6a3949e8a9
4 changed files with 16 additions and 132 deletions

View file

@ -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" }

View file

@ -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 <sys/types.h>
+
#include <stdint.h>
#include <math.h>
#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 @@

View file

@ -1,120 +1,15 @@
disable WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
# HG changeset patch
# User Lars T Hansen <lhansen@mozilla.com>
# 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, <sys/user.h> 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 <sys/user.h>
#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 <sys/user.h>

View file

@ -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 <johannes.brechtmann@gmail.com>"
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