summaryrefslogtreecommitdiff
path: root/mozilla-1321579.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1321579.patch')
-rw-r--r--mozilla-1321579.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/mozilla-1321579.patch b/mozilla-1321579.patch
new file mode 100644
index 0000000..4dd2a76
--- /dev/null
+++ b/mozilla-1321579.patch
@@ -0,0 +1,39 @@
+diff --git a/build/autoconf/compiler-opts.m4 b/build/autoconf/compiler-opts.m4
+--- a/build/autoconf/compiler-opts.m4
++++ b/build/autoconf/compiler-opts.m4
+@@ -173,16 +173,34 @@ AC_SUBST([LD_IS_BFD])
+
+ if test "$GNU_CC"; then
+ if test -z "$DEVELOPER_OPTIONS"; then
+ CFLAGS="$CFLAGS -ffunction-sections -fdata-sections"
+ CXXFLAGS="$CXXFLAGS -ffunction-sections -fdata-sections"
+ fi
+ CFLAGS="$CFLAGS -fno-math-errno"
+ CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-math-errno"
++
++ if test -z "$CLANG_CC"; then
++ case "$CC_VERSION" in
++ 4.*)
++ ;;
++ *)
++ # Lifetime Dead Store Elimination level 2 (default in GCC6+) breaks Gecko.
++ # Ideally, we'd use -flifetime-dse=1, but that means we'd forcefully
++ # enable it on optimization levels where it would otherwise not be enabled.
++ # So we disable it entirely. But since that would mean inconsistency with
++ # GCC5, which has level 1 depending on optimization level, disable it on
++ # GCC5 as well, because better safe than sorry.
++ # Add it first so that a mozconfig can override by setting CFLAGS/CXXFLAGS.
++ CFLAGS="-fno-lifetime-dse $CFLAGS"
++ CXXFLAGS="-fno-lifetime-dse $CXXFLAGS"
++ ;;
++ esac
++ fi
+ fi
+
+ dnl ========================================================
+ dnl = Identical Code Folding
+ dnl ========================================================
+
+ MOZ_ARG_DISABLE_BOOL(icf,
+ [ --disable-icf Disable Identical Code Folding],
+
bgstack15