pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/www/firefox31 Allow building Firefox 31 with Clang and...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/37c90dfcc383
branches:  trunk
changeset: 650917:37c90dfcc383
user:      joerg <joerg%pkgsrc.org@localhost>
date:      Tue Apr 28 12:06:34 2015 +0000

description:
Allow building Firefox 31 with Clang and on NetBSD/ARM.

diffstat:

 www/firefox31/Makefile                                                             |    5 +-
 www/firefox31/distinfo                                                             |   22 +-
 www/firefox31/patches/patch-gfx_ycbcr_moz.build                                    |   13 +
 www/firefox31/patches/patch-gfx_ycbcr_yuv__row__arm.S                              |   26 +
 www/firefox31/patches/patch-ipc_chromium_src_base_atomicops.h                      |   16 +
 www/firefox31/patches/patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h |   90 +++
 www/firefox31/patches/patch-js_src_assembler_jit_ExecutableAllocator.h             |   17 +
 www/firefox31/patches/patch-js_src_jit_AsmJSModule.cpp                             |   17 +
 www/firefox31/patches/patch-js_src_jit_arm_Architecture-arm.cpp                    |   23 +
 www/firefox31/patches/patch-js_src_jit_arm_BaselineIC-arm.cpp                      |   13 +
 www/firefox31/patches/patch-js_src_jit_arm_CodeGenerator-arm.cpp                   |   15 +
 www/firefox31/patches/patch-js_src_vm_NumericConversions.h                         |   13 +
 www/firefox31/patches/patch-media_libopus_celt_arm_celt__pitch__xcorr__arm.s       |   74 ++
 www/firefox31/patches/patch-media_libtheora_lib_arm_armbits.s                      |   83 +++
 www/firefox31/patches/patch-media_libtheora_lib_arm_armcpu.c                       |   33 +
 www/firefox31/patches/patch-media_libtheora_lib_arm_armfrag.s                      |  125 ++++
 www/firefox31/patches/patch-media_libtheora_lib_arm_armidct.s                      |  265 ++++++++++
 www/firefox31/patches/patch-media_libyuv_include_libyuv_scale__row.h               |   17 +
 www/firefox31/patches/patch-mozglue_build_Makefile.in                              |   18 +
 www/firefox31/patches/patch-xpcom_reflect_xptcall_src_md_unix_moz.build            |   15 +-
 www/firefox31/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__arm.cpp   |   39 +
 21 files changed, 934 insertions(+), 5 deletions(-)

diffs (truncated from 1098 to 300 lines):

diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/Makefile
--- a/www/firefox31/Makefile    Tue Apr 28 12:04:33 2015 +0000
+++ b/www/firefox31/Makefile    Tue Apr 28 12:06:34 2015 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.12 2015/04/25 14:25:01 tnn Exp $
+# $NetBSD: Makefile,v 1.13 2015/04/28 12:06:34 joerg Exp $
 
 FIREFOX_VER=   ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}esr
 # Also update MOZ_BRANCH= in devel/xulrunner31/Makefile
@@ -68,6 +68,9 @@
 SUBST_FILES.sys-dic=   extensions/spellcheck/hunspell/src/mozHunspell.cpp
 SUBST_VARS.sys-dic=    PREFIX
 
+post-extract:
+       mv ${WRKSRC}/gfx/ycbcr/yuv_row_arm.s ${WRKSRC}/gfx/ycbcr/yuv_row_arm.S
+
 pre-configure:
        cd ${WRKSRC} && mkdir ${OBJDIR}
        cd ${WRKSRC} && autoconf
diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/distinfo
--- a/www/firefox31/distinfo    Tue Apr 28 12:04:33 2015 +0000
+++ b/www/firefox31/distinfo    Tue Apr 28 12:06:34 2015 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.10 2015/04/05 12:58:07 ryoon Exp $
+$NetBSD: distinfo,v 1.11 2015/04/28 12:06:34 joerg Exp $
 
 SHA1 (firefox-31.6.0esr.source.tar.bz2) = 9c13012fec260c672e0e97ffb29f36fe360b02ad
 RMD160 (firefox-31.6.0esr.source.tar.bz2) = 76f216cc87609081efaa7b5de837952d06a5f2fb
@@ -48,11 +48,15 @@
 SHA1 (patch-gfx_moz.build) = a98bda4727538f4a0f09a20b84f9dd883edaf7d9
 SHA1 (patch-gfx_skia_Makefile.in) = 03349db0ff9b14c2012c36d746adf2ee6cb87e62
 SHA1 (patch-gfx_thebes_Makefile.in) = 16b63bc42870aa8c042416c6e04b3513981ca6f0
+SHA1 (patch-gfx_ycbcr_moz.build) = b11c2c15957861eefa33af554aee58e4403e9cfc
+SHA1 (patch-gfx_ycbcr_yuv__row__arm.S) = d3a5437507e3d0fcf64e506c9c5cb5b7dce87970
 SHA1 (patch-image_decoders_nsJPEGDecoder.cpp) = e5df11499b1ec14e1d4c9a1408c0611d1c4e0574
 SHA1 (patch-intl_hyphenation_src_hnjalloc.h) = 7fcc7b0fcf5a33486214197e925fbc8e6e22e2ee
 SHA1 (patch-intl_unicharutil_util_Makefile.in) = c8f37cc420ba26b63c66fbbf69b13a8b4fea43fc
 SHA1 (patch-ipc_chromium_Makefile.in) = edd85b79cd3879f7595b932442bb0e93505d5506
 SHA1 (patch-ipc_chromium_moz.build) = de12255865e45cfdf0f7dc57ce101be75ac8ad54
+SHA1 (patch-ipc_chromium_src_base_atomicops.h) = b0c8b432d7f1ee4724c76ec10299ea0863a87cee
+SHA1 (patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h) = ffbca34e1411d3d98bc06c75b51a0881170865bb
 SHA1 (patch-ipc_chromium_src_base_base__paths.h) = 7bc83577a9678542db4dff7dda19d751ff6d78c1
 SHA1 (patch-ipc_chromium_src_base_debug__util__posix.cc) = 677f0b5ccdcde7a8551f2d07d2a472361a5da03f
 SHA1 (patch-ipc_chromium_src_base_file__util.h) = 9d6d074b1692c6b4e722bfac8d67c66040a6fa76
@@ -77,21 +81,33 @@
 SHA1 (patch-ipc_ipdl_ipdl_lower.py) = 2ef9504e462d0e3db16f9b0a6303ea5971b9c2a2
 SHA1 (patch-js__src__vm__SPSProfiler.cpp) = 989ba25e4c5308d21d07baa802decce13609a475
 SHA1 (patch-js_src_Makefile.in) = 780e408dfddfd90c6013b316e2e52800c62eee5e
+SHA1 (patch-js_src_assembler_jit_ExecutableAllocator.h) = 819180c7ba72dc2641fe6cdce373f492e73cb5ff
 SHA1 (patch-js_src_builtin_TypedObject.cpp) = d44063579a0e36349d4c370a2e2cf09ebe6071e6
 SHA1 (patch-js_src_ctypes_CTypes.h) = 768a084239f92a424c1c7dc9eaaf9be9456ca9f0
 SHA1 (patch-js_src_frontend_BytecodeCompiler.cpp) = add5dee91325ee76df84beaf6b66eb7b7fed4aca
 SHA1 (patch-js_src_frontend_ParseMaps.cpp) = c00117d79b78904bc50a1d664a8fc0e4e339bfbc
 SHA1 (patch-js_src_gc_Memory.cpp) = 3db31553ec6f7b1fac4fd4ce11b77be1ea4208b8
+SHA1 (patch-js_src_jit_AsmJSModule.cpp) = 7e1876ef605f783889ae811c96bbf31d766aee6e
+SHA1 (patch-js_src_jit_arm_Architecture-arm.cpp) = 4e75d8a03c2372a3f2ccdd9e06caee11789b3acd
+SHA1 (patch-js_src_jit_arm_BaselineIC-arm.cpp) = 57ed2516904c17b7a037bb39e2d2ac2be403e313
+SHA1 (patch-js_src_jit_arm_CodeGenerator-arm.cpp) = 57c98ed86ec1544f9476138b9c1a6ef0064e69cf
 SHA1 (patch-js_src_jsmath.cpp) = 7d4993ae91e9b5e6820358165603819aefb586f9
+SHA1 (patch-js_src_vm_NumericConversions.h) = 6c2fcc21f3bf90a9305d15339442c3ed3ad8a60b
 SHA1 (patch-mb) = b661abce429a88554fca6c930b4dbf71ba6bb5cb
 SHA1 (patch-media_libcubeb_src_Makefile.in) = fe880774789b0be54dec6fd83b89457fc8c2cabc
 SHA1 (patch-media_libcubeb_src_cubeb__alsa.c) = 5ef0de0ac875334e959ff0d4bfa43a2e5ab087b9
 SHA1 (patch-media_libcubeb_src_moz.build) = 822833bc0fd60cd4936550dc43af3294ebac40cd
+SHA1 (patch-media_libopus_celt_arm_celt__pitch__xcorr__arm.s) = 44b99a82323d7f6e549c5f2dbc539984ae5ea3de
 SHA1 (patch-media_libpng_pngpriv.h) = c9cefd1b5dd85fbd0c875c3f9bc108975398fe3a
 SHA1 (patch-media_libsoundtouch_src_cpu__detect__x86.cpp) = db61737afa7773e8cbd82976de3a02c917174696
 SHA1 (patch-media_libtheora_Makefile.in) = 80ac9cb20760fe4d94047f7cb1c6a16bbdd6b505
+SHA1 (patch-media_libtheora_lib_arm_armbits.s) = 26fed6cf160adcb3bb8cafac9fb1a5722a9b620f
+SHA1 (patch-media_libtheora_lib_arm_armcpu.c) = c9a14ab4b34caf718ba0a35388b2cb1c31ddc733
+SHA1 (patch-media_libtheora_lib_arm_armfrag.s) = 7458ac02d891920cd40201a242c4603afae01509
+SHA1 (patch-media_libtheora_lib_arm_armidct.s) = d0a2c53431c79a705427bc92219e09d76dd83097
 SHA1 (patch-media_libtremor_Makefile.in) = 497d03646caa721bdd129de365aadea8466043af
 SHA1 (patch-media_libvorbis_Makefile.in) = fd1ce15268eed9c97dd0774398d559cdbed63e53
+SHA1 (patch-media_libyuv_include_libyuv_scale__row.h) = 9872b6f34f672165bb84413c76f7d3698b892600
 SHA1 (patch-media_mtransport_third__party_nICEr_src_util_mbslen.c) = 087e8788c72b96d2059ca82ce4282d78aed546da
 SHA1 (patch-media_mtransport_third__party_nrappkit_src_port_generic_include_sys_queue.h) = de7055f891387f96f8fd32366c7189d480354e9e
 SHA1 (patch-media_webrtc_signaling_signaling.gyp) = 91d5fcc2409b1398c84dedc9697107f815de48fc
@@ -110,6 +126,7 @@
 SHA1 (patch-mobile_android_installer_Makefile.in) = b2ea844a0145f4c15ef1b350dde6b000bd231fa5
 SHA1 (patch-mobile_android_installer_package-manifest.in) = 9664858fe3b4593eb29dd0180d5a2df3cd245bb2
 SHA1 (patch-modules_libjar_nsZipArchive.cpp) = 6aff0f8ed42575d8ca36a524e12e9a1f7351004a
+SHA1 (patch-mozglue_build_Makefile.in) = 2383acdb12470dc4166ff433d5f121ac5dd2b6fc
 SHA1 (patch-netwerk_dns_Makefile.in) = b6bd9814d909dd6f7cff10dbeac3bedd79c2508e
 SHA1 (patch-pb) = 97c9b2e4cefd524dc6ba825f71c3da2a761aa1f4
 SHA1 (patch-pc) = 8b2baa88f0983a2fef4f801cf6b1ae425f6c813a
@@ -138,9 +155,10 @@
 SHA1 (patch-xpcom_build_PoisonIOInterposer.h) = fdb961a615e5c66a1d0a3c724cf124a2b47f2ed6
 SHA1 (patch-xpcom_build_nsXPComInit.cpp) = 727fd1ce934f129de5fcc5e6059d3cb8c30b1e17
 SHA1 (patch-xpcom_ds_TimeStamp.h) = a1fb060f91720eb330f102b28d9373bbdbe96e30
-SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_moz.build) = 954b60998c5621b896fae372fe067df693574ea4
+SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_moz.build) = 663cfd325cd063ad3498804d4a601a7c3737cc35
 SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__asm__mips.S) = b2b81fcdf6591089fcc5de4c8f820e96c0a50256
 SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_xptcinvoke__gcc__x86__unix.cpp) = 8cd42915cd32756b55894a773a1e6d7c012b4467
+SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__arm.cpp) = fd2477de3491003fec54067336ff66c23a6f5517
 SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__asm__mips.S) = 1bb4baf0baa223cd87a8cb85b16b37c368c45b94
 SHA1 (patch-xpcom_reflect_xptcall_src_md_unix_xptcstubs__gcc__x86__unix.cpp) = e9e336817c172187f3e15ddf539a8a2176e3e952
 SHA1 (patch-xulrunner_installer_Makefile.in) = 9d32ff87d0962c0406ed38de995c0350dd372e49
diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/patches/patch-gfx_ycbcr_moz.build
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox31/patches/patch-gfx_ycbcr_moz.build   Tue Apr 28 12:06:34 2015 +0000
@@ -0,0 +1,13 @@
+$NetBSD: patch-gfx_ycbcr_moz.build,v 1.1 2015/04/28 12:06:34 joerg Exp $
+
+--- gfx/ycbcr/moz.build.orig   2015-04-26 10:44:35.000000000 +0000
++++ gfx/ycbcr/moz.build
+@@ -63,7 +63,7 @@ else:
+ 
+ if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']:
+     SOURCES += [
+-        'yuv_row_arm.s',
++        'yuv_row_arm.S',
+     ]
+     SOURCES += [
+         'yuv_convert_arm.cpp',
diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/patches/patch-gfx_ycbcr_yuv__row__arm.S
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox31/patches/patch-gfx_ycbcr_yuv__row__arm.S     Tue Apr 28 12:06:34 2015 +0000
@@ -0,0 +1,26 @@
+$NetBSD: patch-gfx_ycbcr_yuv__row__arm.S,v 1.1 2015/04/28 12:06:34 joerg Exp $
+
+--- gfx/ycbcr/yuv_row_arm.S.orig       2015-04-25 13:25:04.000000000 +0000
++++ gfx/ycbcr/yuv_row_arm.S
+@@ -74,7 +74,10 @@ YCbCr42xToRGB565_DITHER30_CONSTS_NEON:
+     .global ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
+     .type   ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, %function
+     .balign 64
++#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+     .fnstart
++#endif
++    .cfi_startproc
+ ScaleYCbCr42xToRGB565_BilinearY_Row_NEON:
+     STMFD       r13!,{r4-r9,r14}       @ 8 words.
+     ADR         r14,YCbCr42xToRGB565_DITHER03_CONSTS_NEON
+@@ -296,7 +299,10 @@ s42xbily_neon_tail:
+ s42xbily_neon_done:
+     VPOP        {Q4-Q7}                @ 16 words.
+     LDMFD       r13!,{r4-r9,PC}        @ 8 words.
++#if defined(__ARM_EABI__) && !defined(__ARM_DWARF_EH__)
+     .fnend
++#endif
++    .cfi_endproc
+     .size ScaleYCbCr42xToRGB565_BilinearY_Row_NEON, .-ScaleYCbCr42xToRGB565_BilinearY_Row_NEON
+ 
+ #if defined(__ELF__)&&defined(__linux__)
diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/patches/patch-ipc_chromium_src_base_atomicops.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox31/patches/patch-ipc_chromium_src_base_atomicops.h     Tue Apr 28 12:06:34 2015 +0000
@@ -0,0 +1,16 @@
+$NetBSD: patch-ipc_chromium_src_base_atomicops.h,v 1.1 2015/04/28 12:06:34 joerg Exp $
+
+--- ipc/chromium/src/base/atomicops.h.orig     2015-04-10 17:59:48.000000000 +0000
++++ ipc/chromium/src/base/atomicops.h
+@@ -52,7 +52,11 @@ typedef Atomic64 AtomicWord;
+ typedef Atomic32 AtomicWord;
+ #endif // ARCH_CPU_64_BITS
+ #else
++#ifdef __arm__
++typedef Atomic32 AtomicWord;
++#else
+ typedef intptr_t AtomicWord;
++#endif
+ #endif // OS_OPENBSD
+ 
+ // Atomically execute:
diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/patches/patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox31/patches/patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h        Tue Apr 28 12:06:34 2015 +0000
@@ -0,0 +1,90 @@
+$NetBSD: patch-ipc_chromium_src_base_atomicops__internals__arm__gcc.h,v 1.1 2015/04/28 12:06:34 joerg Exp $
+
+--- ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig   2015-03-21 03:27:18.000000000 +0000
++++ ipc/chromium/src/base/atomicops_internals_arm_gcc.h
+@@ -12,44 +12,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,
+@@ -59,18 +34,14 @@ 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,
+@@ -90,7 +61,7 @@ inline void NoBarrier_Store(volatile Ato
+ }
+ 
+ inline void MemoryBarrier() {
+-  pLinuxKernelMemoryBarrier();
++  __sync_synchronize();
+ }
+ 
+ inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/patches/patch-js_src_assembler_jit_ExecutableAllocator.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox31/patches/patch-js_src_assembler_jit_ExecutableAllocator.h    Tue Apr 28 12:06:34 2015 +0000
@@ -0,0 +1,17 @@
+$NetBSD: patch-js_src_assembler_jit_ExecutableAllocator.h,v 1.1 2015/04/28 12:06:34 joerg Exp $
+
+--- js/src/assembler/jit/ExecutableAllocator.h.orig    2015-04-10 13:30:05.000000000 +0000
++++ js/src/assembler/jit/ExecutableAllocator.h
+@@ -471,6 +471,12 @@ public:
+             : "r" (code), "r" (reinterpret_cast<char*>(code) + size)
+             : "r0", "r1", "r2");
+     }
++#elif WTF_CPU_ARM && defined(__NetBSD__)
++    static void cacheFlush(void* code, size_t size)
++    {
++        intptr_t end = reinterpret_cast<intptr_t>(code) + size;
++        __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
++    }
+ #elif WTF_OS_SYMBIAN
+     static void cacheFlush(void* code, size_t size)
+     {
diff -r 20ad31faae04 -r 37c90dfcc383 www/firefox31/patches/patch-js_src_jit_AsmJSModule.cpp
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox31/patches/patch-js_src_jit_AsmJSModule.cpp    Tue Apr 28 12:06:34 2015 +0000
@@ -0,0 +1,17 @@
+$NetBSD: patch-js_src_jit_AsmJSModule.cpp,v 1.1 2015/04/28 12:06:34 joerg Exp $
+
+--- js/src/jit/AsmJSModule.cpp.orig    2015-04-20 23:47:34.000000000 +0000
++++ js/src/jit/AsmJSModule.cpp
+@@ -165,10 +165,10 @@ InvokeFromAsmJS_ToNumber(JSContext *cx, 
+ extern "C" {
+ 
+ extern int64_t
+-__aeabi_idivmod(int, int);
++__aeabi_idivmod(int, int) MOZ_EXPORT;
+ 
+ extern int64_t
+-__aeabi_uidivmod(int, int);
++__aeabi_uidivmod(int, int) MOZ_EXPORT;
+ 
+ }



Home | Main Index | Thread Index | Old Index