firefox: update to 66.0.

This commit is contained in:
Johannes 2019-03-19 02:53:54 +01:00 committed by Johannes
parent 334cf9937b
commit 587136fbdc
9 changed files with 188 additions and 58 deletions

View file

@ -0,0 +1,11 @@
--- media/libopus/silk/arm/arm_silk_map.c.orig 2019-03-19 20:55:01.249609964 +0100
+++ media/libopus/silk/arm/arm_silk_map.c 2019-03-19 20:55:25.769400255 +0100
@@ -28,7 +28,7 @@
# include "config.h"
#endif
-#include "main_FIX.h"
+#include "../fixed/main_FIX.h"
#include "NSQ.h"
#include "SigProc_FIX.h"

View file

@ -1,7 +1,7 @@
--- media/audioipc/audioipc/src/cmsg.rs.orig 2019-01-07 15:37:48.111034714 +0100
+++ media/audioipc/audioipc/src/cmsg.rs 2019-01-07 15:40:17.251689417 +0100
--- media/audioipc/audioipc/src/cmsg.rs.orig 2019-03-19 21:31:45.177880477 +0100
+++ media/audioipc/audioipc/src/cmsg.rs 2019-03-19 21:32:38.103478999 +0100
@@ -108,7 +108,7 @@
let cmsghdr = cmsghdr {
cmsg_len: cmsg_len as _,
- #[cfg(target_env = "musl")]

View file

@ -1,11 +1,11 @@
--- tools/profiler/core/platform.h.orig
+++ tools/profiler/core/platform.h
@@ -56,7 +56,7 @@
--- tools/profiler/core/platform.h.orig 2019-03-19 01:54:25.407952218 +0100
+++ tools/profiler/core/platform.h 2019-03-19 01:54:45.571767946 +0100
@@ -44,7 +44,7 @@
// We need a definition of gettid(), but glibc doesn't provide a
// wrapper for it.
-#if defined(__GLIBC__)
+#if defined(__linux__)
#include <unistd.h>
#include <sys/syscall.h>
static inline pid_t gettid()
# include <unistd.h>
# include <sys/syscall.h>
static inline pid_t gettid() { return (pid_t)syscall(SYS_gettid); }

View file

@ -51,13 +51,13 @@
+++ toolkit/mozapps/update/common/updatedefines.h 2019-01-29 11:34:59.193583777 +0100
@@ -102,7 +102,7 @@
#ifdef SOLARIS
#include <sys/stat.h>
-#else
+#elif !defined(__linux__) || defined(__GLIBC__)
#include <fts.h>
#endif
#include <dirent.h>
# ifdef SOLARIS
# include <sys/stat.h>
-# else
+# elif !(defined(__linux__)) || defined(__GLIBC__)
# include <fts.h>
# endif
# include <dirent.h>
--- toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000
+++ toolkit/mozapps/update/updater/updater.cpp 2014-04-17 10:24:33.796765327 +0000
@@ -3432,6 +3432,7 @@

View file

@ -0,0 +1,120 @@
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);
}
};
-#if defined(__linux__) && defined(__arm__)
+#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
// 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

View file

@ -1,18 +0,0 @@
--- xpcom/base/nsMemoryReporterManager.cpp.orig 2018-10-25 01:03:36.267772091 +0200
+++ xpcom/base/nsMemoryReporterManager.cpp 2018-10-25 01:42:08.863831518 +0200
@@ -133,6 +133,7 @@
return GetProcSelfSmapsPrivate(aN);
}
+#ifdef __GLIBC__
#ifdef HAVE_MALLINFO
#define HAVE_SYSTEM_HEAP_REPORTER 1
static MOZ_MUST_USE nsresult
@@ -154,6 +155,7 @@
return NS_OK;
}
#endif
+#endif
#elif defined(__DragonFly__) || defined(__FreeBSD__) \
|| defined(__NetBSD__) || defined(__OpenBSD__) \

View file

@ -1,18 +1,34 @@
--- xpcom/base/nsMemoryReporterManager.cpp
+++ xpcom/base/nsMemoryReporterManager.cpp
@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
--- xpcom/base/nsMemoryReporterManager.cpp.orig 2019-03-19 17:12:20.844810044 +0100
+++ xpcom/base/nsMemoryReporterManager.cpp 2019-03-19 17:13:32.505133615 +0100
@@ -123,6 +123,7 @@
return GetProcSelfSmapsPrivate(aN);
}
+#ifdef __GLIBC__
#define HAVE_SYSTEM_HEAP_REPORTER 1
nsresult
SystemHeapSize(int64_t* aSizeOut)
@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
*aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
return NS_OK;
# ifdef HAVE_MALLINFO
# define HAVE_SYSTEM_HEAP_REPORTER 1
static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
@@ -142,6 +143,7 @@
return NS_OK;
}
+#endif
# endif
+#endif // __GLIBC__
#elif defined(__DragonFly__) || defined(__FreeBSD__) \
|| defined(__NetBSD__) || defined(__OpenBSD__) \
#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
@@ -642,6 +644,7 @@
return NS_OK;
}
+#ifdef __GLIBC__
# define HAVE_SYSTEM_HEAP_REPORTER 1
// Windows can have multiple separate heaps. During testing there were multiple
// heaps present but the non-default ones had sizes no more than a few 10s of
@@ -698,6 +701,7 @@
*aSizeOut = heapsSize;
return NS_OK;
}
+#endif // __GLIBC__
struct SegmentKind {
DWORD mState;

View file

@ -8,12 +8,12 @@ to predict the runtime page size.
--- memory/build/mozjemalloc.cpp
+++ memory/build/mozjemalloc.cpp
@@ -369,7 +369,7 @@
@@ -182,7 +182,7 @@
// Debug builds are opted out too, for test coverage.
#ifndef MOZ_DEBUG
#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && \
- !defined(__aarch64__)
+ !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
#define MALLOC_STATIC_PAGESIZE 1
#endif
# if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && \
- !defined(__aarch64__)
+ !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
# define MALLOC_STATIC_PAGESIZE 1
# endif
#endif

View file

@ -3,20 +3,20 @@
# THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n".
#
pkgname=firefox
version=65.0.1
revision=2
version=66.0
revision=1
build_helper="rust"
short_desc="Mozilla Firefox web browser"
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=67e517f6d1ea8aa5c8f32404b8756f3205c3550917a91a19b0a0edccc656a3cc
checksum=c37b253294826b6d14864dc38342edd5b174e76a272a7e5dbaca007eb2cac7b0
lib32disabled=yes
hostmakedepends="autoconf213 unzip zip pkg-config perl python3 yasm rust cargo
llvm clang nodejs cbindgen python"
llvm clang nodejs cbindgen python nasm"
makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std
@ -132,7 +132,8 @@ do_build() {
export AS=$CC
cat <<! >>.mozconfig
ac_add_options --with-google-api-keyfile="${wrksrc}/google-api-key"
ac_add_options --with-google-location-service-api-keyfile="${wrksrc}/google-api-key"
ac_add_options --with-google-safebrowsing-api-keyfile="${wrksrc}/google-api-key"
ac_add_options --with-mozilla-api-keyfile="${wrksrc}/mozilla-api-key"
ac_add_options $(vopt_enable alsa)
ac_add_options $(vopt_enable sndio)