aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2016-10-13 04:50:28 +0800
committerdim <dim@FreeBSD.org>2016-10-13 04:50:28 +0800
commit74d29e5cebbce800ce69f62421460df32393ee62 (patch)
tree3d6aca8a74ee00287c8510028ba9f4aa23fc2a36 /mail
parent5af2bdc88472e4e322018ed0064a63ecd3e7a365 (diff)
downloadfreebsd-ports-gnome-74d29e5cebbce800ce69f62421460df32393ee62.tar.gz
freebsd-ports-gnome-74d29e5cebbce800ce69f62421460df32393ee62.tar.zst
freebsd-ports-gnome-74d29e5cebbce800ce69f62421460df32393ee62.zip
Add the upstream fix for Mozilla bug 1278861, which prevents clang
assertions on a particular piece of arm inline assembly. This applies to: * mail/thunderbird * www/firefox * www/firefox-esr * www/libxul * www/seamonkey Approved by: jbeich (maintainer) PR: 203989 MFH: 2016Q4
Diffstat (limited to 'mail')
-rw-r--r--mail/thunderbird/files/patch-bug127886138
1 files changed, 38 insertions, 0 deletions
diff --git a/mail/thunderbird/files/patch-bug1278861 b/mail/thunderbird/files/patch-bug1278861
new file mode 100644
index 000000000000..4a4b292fcff9
--- /dev/null
+++ b/mail/thunderbird/files/patch-bug1278861
@@ -0,0 +1,38 @@
+
+# HG changeset patch
+# User Nathan Froyd <froydnj@gmail.com>
+# Date 1466820205 14400
+# Node ID bd25b06261c840a62d035192cf4b1dbc18f54e3f
+# Parent fbe25a30fcbbe172bdd37c70c5b06cdbb07886af
+Bug 1278861 - adjust ifdefs in Conversions.h:ToInt32 to catch clang-on-arm-generally; r=luke
+
+The bug noted in ToInt32 doesn't just exist when compiling for
+arm-darwin; it exists for ARM targets generally. The ifdef should
+reflect that.
+
+diff --git mozilla/js/public/Conversions.h mozilla/js/public/Conversions.h
+--- mozilla/js/public/Conversions.h
++++ mozilla/js/public/Conversions.h
+@@ -395,19 +395,19 @@ ToIntWidth(double d)
+ }
+
+ } // namespace detail
+
+ /* ES5 9.5 ToInt32 (specialized for doubles). */
+ inline int32_t
+ ToInt32(double d)
+ {
+- // clang crashes compiling this when targeting arm-darwin:
++ // clang crashes compiling this when targeting arm:
+ // https://llvm.org/bugs/show_bug.cgi?id=22974
+-#if defined (__arm__) && defined (__GNUC__) && !defined(__APPLE__)
++#if defined (__arm__) && defined (__GNUC__) && !defined(__clang__)
+ int32_t i;
+ uint32_t tmp0;
+ uint32_t tmp1;
+ uint32_t tmp2;
+ asm (
+ // We use a pure integer solution here. In the 'softfp' ABI, the argument
+ // will start in r0 and r1, and VFP can't do all of the necessary ECMA
+ // conversions by itself so some integer code will be required anyway. A
+