From 022c0f9056fe53bff1274232f3329a118bb3b0f5 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Wed, 12 Oct 2016 20:50:28 +0000 Subject: 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 --- www/seamonkey/files/patch-bug1278861 | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 www/seamonkey/files/patch-bug1278861 (limited to 'www/seamonkey') diff --git a/www/seamonkey/files/patch-bug1278861 b/www/seamonkey/files/patch-bug1278861 new file mode 100644 index 000000000000..4a4b292fcff9 --- /dev/null +++ b/www/seamonkey/files/patch-bug1278861 @@ -0,0 +1,38 @@ + +# HG changeset patch +# User Nathan Froyd +# 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 + -- cgit v1.2.3