pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/www/firefox52 Adopt ARM patches from devel/protobuf; m...
details: https://anonhg.NetBSD.org/pkgsrc/rev/cae8e99088d6
branches: trunk
changeset: 365417:cae8e99088d6
user: jmcneill <jmcneill%pkgsrc.org@localhost>
date: Sun Jul 16 10:48:17 2017 +0000
description:
Adopt ARM patches from devel/protobuf; makes firefox work on NetBSD/evbarm
diffstat:
www/firefox52/Makefile | 4 +-
www/firefox52/distinfo | 4 +-
www/firefox52/patches/patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h | 92 ++++++++++
www/firefox52/patches/patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops__internals__arm__gcc.h | 91 +++++++++
4 files changed, 188 insertions(+), 3 deletions(-)
diffs (229 lines):
diff -r 8134e7e6100d -r cae8e99088d6 www/firefox52/Makefile
--- a/www/firefox52/Makefile Sun Jul 16 10:05:21 2017 +0000
+++ b/www/firefox52/Makefile Sun Jul 16 10:48:17 2017 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.4 2017/07/09 09:04:00 maya Exp $
+# $NetBSD: Makefile,v 1.5 2017/07/16 10:48:17 jmcneill Exp $
FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
-PKGREVISION= 1
+PKGREVISION= 2
MOZ_BRANCH= 52.2
MOZ_BRANCH_MINOR= .1esr
diff -r 8134e7e6100d -r cae8e99088d6 www/firefox52/distinfo
--- a/www/firefox52/distinfo Sun Jul 16 10:05:21 2017 +0000
+++ b/www/firefox52/distinfo Sun Jul 16 10:48:17 2017 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.3 2017/07/03 16:26:59 ryoon Exp $
+$NetBSD: distinfo,v 1.4 2017/07/16 10:48:17 jmcneill Exp $
SHA1 (firefox-52.2.1esr.source.tar.xz) = 38396fbc760669533f0a4facaa6ec489ae99f320
RMD160 (firefox-52.2.1esr.source.tar.xz) = 1904238678469340f519416e87b0de6971996f85
@@ -44,6 +44,7 @@
SHA1 (patch-intl_hyphenation_glue_hnjalloc.h) = abe01bea5872a57f3d00bbbf89f958621f08a655
SHA1 (patch-intl_unicharutil_util_moz.build) = 2e604c8695b490657ee14cae01ca84d7bd51236c
SHA1 (patch-ipc_chromium_src_base_atomicops.h) = 24b63a6e51d9ab27f2788ee02f2ffa7e1c36f29a
+SHA1 (patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h) = cceefce420cfcfc67f74375e3fe5d17a75a562e4
SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 99b9f3f9dd88f1c8008d2fb6058450695394f5cf
SHA1 (patch-ipc_chromium_src_base_platform__thread.h) = c81930280bd76a00fbad37aad02fb8451d80b1ee
SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = 45409f2152d5ffc376c18c0c9bc696e08e3910ce
@@ -88,6 +89,7 @@
SHA1 (patch-toolkit_components_osfile_modules_osfile__unix__back.jsm) = 27e90fdfd5587f670958d832cd56107740b226ee
SHA1 (patch-toolkit_components_osfile_modules_osfile__unix__front.jsm) = 4e5dc7cf11ea3d48cca86b5d21158d676ebd8957
SHA1 (patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops.h) = 5ffb0782bbbff2fd17ad71e98b349b4ec3dc6c8c
+SHA1 (patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops__internals__arm__gcc.h) = bc2bc37518fe76cb2aa8550c52d2c3968e08b9a6
SHA1 (patch-toolkit_components_protobuf_src_google_protobuf_stubs_platform__macros.h) = bd4388323851fcb7b10392d6a27f9bc56633a52e
SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = 5b6d2e5c9f685d32894898d3ef3aec09a1a1e5ce
SHA1 (patch-toolkit_library_moz.build) = d4136a5d3c42f2a44155f029a3201959273c5e94
diff -r 8134e7e6100d -r cae8e99088d6 www/firefox52/patches/patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox52/patches/patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h Sun Jul 16 10:48:17 2017 +0000
@@ -0,0 +1,92 @@
+$NetBSD: patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h,v 1.1 2017/07/16 10:48:17 jmcneill Exp $
+
+Replace Linux specific atomic ops with portable versions, from devel/protobuf
+
+--- ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig 2017-04-11 02:13:12.000000000 +0000
++++ ipc/chromium/src/base/atomicops_internals_arm_gcc.h
+@@ -14,44 +14,19 @@
+ namespace base {
+ namespace subtle {
+
+-// 0xffff0fc0 is the hard coded address of a function provided by
+-// the kernel which implements an atomic compare-exchange. On older
+-// ARM architecture revisions (pre-v6) this may be implemented using
+-// a syscall. This address is stable, and in active use (hard coded)
+-// by at least glibc-2.7 and the Android C library.
+-typedef Atomic32 (*LinuxKernelCmpxchgFunc)(Atomic32 old_value,
+- Atomic32 new_value,
+- volatile Atomic32* ptr);
+-LinuxKernelCmpxchgFunc pLinuxKernelCmpxchg __attribute__((weak)) =
+- (LinuxKernelCmpxchgFunc) 0xffff0fc0;
+-
+-typedef void (*LinuxKernelMemoryBarrierFunc)(void);
+-LinuxKernelMemoryBarrierFunc pLinuxKernelMemoryBarrier __attribute__((weak)) =
+- (LinuxKernelMemoryBarrierFunc) 0xffff0fa0;
+-
+-
+ inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
+ Atomic32 old_value,
+ Atomic32 new_value) {
+- Atomic32 prev_value = *ptr;
+- do {
+- if (!pLinuxKernelCmpxchg(old_value, new_value,
+- const_cast<Atomic32*>(ptr))) {
+- return old_value;
+- }
+- prev_value = *ptr;
+- } while (prev_value == old_value);
+- return prev_value;
++ return __sync_val_compare_and_swap(ptr, old_value, new_value);
+ }
+
+ inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
+ Atomic32 new_value) {
+- Atomic32 old_value;
++ Atomic32 prev_value;
+ do {
+- old_value = *ptr;
+- } while (pLinuxKernelCmpxchg(old_value, new_value,
+- const_cast<Atomic32*>(ptr)));
+- return old_value;
++ prev_value = *ptr;
++ } while (!__sync_bool_compare_and_swap(ptr, prev_value, new_value));
++ return prev_value;
+ }
+
+ inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
+@@ -61,18 +36,15 @@ inline Atomic32 NoBarrier_AtomicIncremen
+
+ inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
+ Atomic32 increment) {
+- for (;;) {
+- // Atomic exchange the old value with an incremented one.
+- Atomic32 old_value = *ptr;
+- Atomic32 new_value = old_value + increment;
+- if (pLinuxKernelCmpxchg(old_value, new_value,
+- const_cast<Atomic32*>(ptr)) == 0) {
+- // The exchange took place as expected.
+- return new_value;
+- }
+- // Otherwise, *ptr changed mid-loop and we need to retry.
+- }
++ Atomic32 old_value;
++ Atomic32 new_value;
+
++ do {
++ // Atomic exchange the old value with an incremented one.
++ old_value = *ptr;
++ new_value = old_value + increment;
++ } while (!__sync_bool_compare_and_swap(ptr, old_value, new_value));
++ return new_value;
+ }
+
+ inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
+@@ -92,7 +64,7 @@ inline void NoBarrier_Store(volatile Ato
+ }
+
+ inline void MemoryBarrier() {
+- pLinuxKernelMemoryBarrier();
++ __sync_synchronize();
+ }
+
+ inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
diff -r 8134e7e6100d -r cae8e99088d6 www/firefox52/patches/patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops__internals__arm__gcc.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox52/patches/patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops__internals__arm__gcc.h Sun Jul 16 10:48:17 2017 +0000
@@ -0,0 +1,91 @@
+$NetBSD: patch-toolkit_components_protobuf_src_google_protobuf_stubs_atomicops__internals__arm__gcc.h,v 1.1 2017/07/16 10:48:17 jmcneill Exp $
+
+Replace Linux specific atomic ops with portable versions, from devel/protobuf
+
+--- toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h.orig 2017-04-11 02:13:22.000000000 +0000
++++ toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h
+@@ -39,44 +39,19 @@ namespace google {
+ namespace protobuf {
+ namespace internal {
+
+-// 0xffff0fc0 is the hard coded address of a function provided by
+-// the kernel which implements an atomic compare-exchange. On older
+-// ARM architecture revisions (pre-v6) this may be implemented using
+-// a syscall. This address is stable, and in active use (hard coded)
+-// by at least glibc-2.7 and the Android C library.
+-typedef Atomic32 (*LinuxKernelCmpxchgFunc)(Atomic32 old_value,
+- Atomic32 new_value,
+- volatile Atomic32* ptr);
+-LinuxKernelCmpxchgFunc pLinuxKernelCmpxchg __attribute__((weak)) =
+- (LinuxKernelCmpxchgFunc) 0xffff0fc0;
+-
+-typedef void (*LinuxKernelMemoryBarrierFunc)(void);
+-LinuxKernelMemoryBarrierFunc pLinuxKernelMemoryBarrier __attribute__((weak)) =
+- (LinuxKernelMemoryBarrierFunc) 0xffff0fa0;
+-
+-
+ inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
+ Atomic32 old_value,
+ Atomic32 new_value) {
+- Atomic32 prev_value = *ptr;
+- do {
+- if (!pLinuxKernelCmpxchg(old_value, new_value,
+- const_cast<Atomic32*>(ptr))) {
+- return old_value;
+- }
+- prev_value = *ptr;
+- } while (prev_value == old_value);
+- return prev_value;
++ return __sync_val_compare_and_swap(ptr, old_value, new_value);
+ }
+
+ inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
+ Atomic32 new_value) {
+- Atomic32 old_value;
++ Atomic32 prev_value;
+ do {
+- old_value = *ptr;
+- } while (pLinuxKernelCmpxchg(old_value, new_value,
+- const_cast<Atomic32*>(ptr)));
+- return old_value;
++ prev_value = *ptr;
++ } while (!__sync_bool_compare_and_swap(ptr, prev_value, new_value));
++ return prev_value;
+ }
+
+ inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
+@@ -86,17 +61,15 @@ inline Atomic32 NoBarrier_AtomicIncremen
+
+ inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
+ Atomic32 increment) {
+- for (;;) {
++ Atomic32 old_value;
++ Atomic32 new_value;
++
++ do {
+ // Atomic exchange the old value with an incremented one.
+- Atomic32 old_value = *ptr;
+- Atomic32 new_value = old_value + increment;
+- if (pLinuxKernelCmpxchg(old_value, new_value,
+- const_cast<Atomic32*>(ptr)) == 0) {
+- // The exchange took place as expected.
+- return new_value;
+- }
+- // Otherwise, *ptr changed mid-loop and we need to retry.
+- }
++ old_value = *ptr;
++ new_value = old_value + increment;
++ } while (!__sync_bool_compare_and_swap(ptr, old_value, new_value));
++ return new_value;
+ }
+
+ inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
+@@ -116,7 +89,7 @@ inline void NoBarrier_Store(volatile Ato
+ }
+
+ inline void MemoryBarrier() {
+- pLinuxKernelMemoryBarrier();
++ __sync_synchronize();
+ }
+
+ inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
Home |
Main Index |
Thread Index |
Old Index