firefox: update to 67.0.
This commit is contained in:
parent
4d01395d35
commit
6a3949e8a9
4 changed files with 16 additions and 132 deletions
|
@ -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" }
|
||||
|
|
|
@ -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 @@
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue