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