forked from pool/MozillaFirefox
Accepting request 397775 from home:badshah400:branches:openSUSE:Factory:Rings:2-TestDVD
Add patches to build against gcc6, apply these patches only if gcc >= 6 is actually used during compilation. OBS-URL: https://build.opensuse.org/request/show/397775 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=515
This commit is contained in:
parent
44ae32c807
commit
a5bfddd988
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 23 15:30:27 UTC 2016 - badshah400@gmail.com
|
||||||
|
|
||||||
|
- Add patches to fix building with gcc6:
|
||||||
|
+ mozilla-gcc6.patch: fix building with gcc >= 6.1; patch
|
||||||
|
taken from upstream:
|
||||||
|
https://hg.mozilla.org/mozilla-central/rev/55212130f19d.
|
||||||
|
+ mozilla-exclude-nametablecpp.patch: Exclude NameTable.cpp
|
||||||
|
from unified compilation because #include <cmath> in other
|
||||||
|
source files causes gcc6 compilation failure; patch taken from
|
||||||
|
upstream:
|
||||||
|
https://hg.mozilla.org/mozilla-central/rev/9c57b7cacffc.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri May 13 00:00:00 CEST 2016 - dsterba@suse.cz
|
Fri May 13 00:00:00 CEST 2016 - dsterba@suse.cz
|
||||||
|
|
||||||
|
@ -66,6 +66,9 @@
|
|||||||
%define crashreporter 1
|
%define crashreporter 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# DETERMINE GCC VERSION TO KNOW WHEN TO APPLY PATCH15 AND PATCH16
|
||||||
|
%define gcc_ver %(rpm -q --whatprovides --qf '%%{version}' gcc)
|
||||||
|
|
||||||
Name: %{pkgname}
|
Name: %{pkgname}
|
||||||
BuildRequires: Mesa-devel
|
BuildRequires: Mesa-devel
|
||||||
BuildRequires: autoconf213
|
BuildRequires: autoconf213
|
||||||
@ -172,6 +175,8 @@ Patch11: mozilla-libproxy.patch
|
|||||||
Patch12: mozilla-reduce-files-per-UnifiedBindings.patch
|
Patch12: mozilla-reduce-files-per-UnifiedBindings.patch
|
||||||
Patch13: mozilla-gtk3_20.patch
|
Patch13: mozilla-gtk3_20.patch
|
||||||
Patch14: mozilla-check_return.patch
|
Patch14: mozilla-check_return.patch
|
||||||
|
Patch15: mozilla-gcc6.patch
|
||||||
|
Patch16: mozilla-exclude-nametablecpp.patch
|
||||||
# Firefox/browser
|
# Firefox/browser
|
||||||
Patch101: firefox-kde.patch
|
Patch101: firefox-kde.patch
|
||||||
Patch102: firefox-no-default-ualocale.patch
|
Patch102: firefox-no-default-ualocale.patch
|
||||||
@ -286,6 +291,10 @@ cd $RPM_BUILD_DIR/mozilla
|
|||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
|
%if %{gcc_ver} >= 6
|
||||||
|
%patch15 -p1
|
||||||
|
%patch16 -p1
|
||||||
|
%endif
|
||||||
# Firefox
|
# Firefox
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
%patch102 -p1
|
%patch102 -p1
|
||||||
|
50
mozilla-exclude-nametablecpp.patch
Normal file
50
mozilla-exclude-nametablecpp.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User Jonathan Kew <jkew@mozilla.com>
|
||||||
|
# Date 1463581374 -3600
|
||||||
|
# Node ID 9c57b7cacffc57ec3919a2cf3b5ce861e0cf3842
|
||||||
|
# Parent ea7843420fe518b772c7b259d8ff47193fc5b79e
|
||||||
|
Bug 1272647 - Exclude NameTable.cpp from unified compilation because #include <cmath> in other source files causes gcc6 compilation failure. r=bas
|
||||||
|
|
||||||
|
diff --git a/gfx/graphite2/src/moz.build b/gfx/graphite2/src/moz.build
|
||||||
|
--- a/gfx/graphite2/src/moz.build
|
||||||
|
+++ b/gfx/graphite2/src/moz.build
|
||||||
|
@@ -40,30 +40,35 @@ UNIFIED_SOURCES += [
|
||||||
|
'gr_features.cpp',
|
||||||
|
'gr_font.cpp',
|
||||||
|
'gr_logging.cpp',
|
||||||
|
'gr_segment.cpp',
|
||||||
|
'gr_slot.cpp',
|
||||||
|
'Intervals.cpp',
|
||||||
|
'json.cpp',
|
||||||
|
'Justifier.cpp',
|
||||||
|
- 'NameTable.cpp',
|
||||||
|
'Pass.cpp',
|
||||||
|
'Position.cpp',
|
||||||
|
'SegCache.cpp',
|
||||||
|
'SegCacheEntry.cpp',
|
||||||
|
'SegCacheStore.cpp',
|
||||||
|
'Segment.cpp',
|
||||||
|
'Silf.cpp',
|
||||||
|
'Slot.cpp',
|
||||||
|
'Sparse.cpp',
|
||||||
|
'TtfUtil.cpp',
|
||||||
|
'UtfCodec.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
|
+# Excluded from UNIFIED_SOURCES because <cmath> from other files breaks it,
|
||||||
|
+# see bug 1272647.
|
||||||
|
+SOURCES += [
|
||||||
|
+ 'NameTable.cpp',
|
||||||
|
+]
|
||||||
|
+
|
||||||
|
# tell graphite2 not to export symbols, we'll be linking it directly with
|
||||||
|
# thebes
|
||||||
|
DEFINES['GRAPHITE2_STATIC'] = True
|
||||||
|
|
||||||
|
# We allow warnings for third-party code that can be updated from upstream.
|
||||||
|
ALLOW_COMPILER_WARNINGS = True
|
||||||
|
|
||||||
|
FINAL_LIBRARY = 'gkmedias'
|
||||||
|
|
||||||
|
|
76
mozilla-gcc6.patch
Normal file
76
mozilla-gcc6.patch
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User Mike Hommey <mh+mozilla@glandium.org>
|
||||||
|
# Date 1457596445 -32400
|
||||||
|
# Node ID 55212130f19da3079167a6b0a5a0ed6689c9a71d
|
||||||
|
# Parent 27c94617d7064d566c24a42e11cd4c7ef725923d
|
||||||
|
Bug 1245076 - Don't include mozalloc.h from the cstdlib wrapper. r=froydnj
|
||||||
|
|
||||||
|
Our STL wrappers do various different things, one of which is including
|
||||||
|
mozalloc.h for infallible operator new. mozalloc.h includes stdlib.h,
|
||||||
|
which, in libstdc++ >= 6 is now itself a wrapper around cstdlib, which
|
||||||
|
circles back to our STL wrapper.
|
||||||
|
|
||||||
|
But of the things our STL wrappers do, including mozalloc.h is not one
|
||||||
|
that is necessary for cstdlib. So skip including mozalloc.h in our
|
||||||
|
cstdlib wrapper.
|
||||||
|
|
||||||
|
Additionally, some C++ sources (in media/mtransport) are including
|
||||||
|
headers in an extern "C" block, which end up including stdlib.h, which
|
||||||
|
ends up including cstdlib because really, this is all C++, and our
|
||||||
|
wrapper pre-includes <new> for mozalloc.h, which fails because templates
|
||||||
|
don't work inside extern "C". So, don't pre-include <new> when we're not
|
||||||
|
including mozalloc.h.
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/config/gcc-stl-wrapper.template.h b/config/gcc-stl-wrapper.template.h
|
||||||
|
--- a/config/gcc-stl-wrapper.template.h
|
||||||
|
+++ b/config/gcc-stl-wrapper.template.h
|
||||||
|
@@ -12,33 +12,40 @@
|
||||||
|
// compiling ObjC.
|
||||||
|
#if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS)
|
||||||
|
# error "STL code can only be used with -fno-exceptions"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Silence "warning: #include_next is a GCC extension"
|
||||||
|
#pragma GCC system_header
|
||||||
|
|
||||||
|
+// Don't include mozalloc for cstdlib. See bug 1245076.
|
||||||
|
+#ifndef moz_dont_include_mozalloc_for_cstdlib
|
||||||
|
+# define moz_dont_include_mozalloc_for_cstdlib
|
||||||
|
+#endif
|
||||||
|
+#ifndef moz_dont_include_mozalloc_for_${HEADER}
|
||||||
|
// mozalloc.h wants <new>; break the cycle by always explicitly
|
||||||
|
// including <new> here. NB: this is a tad sneaky. Sez the gcc docs:
|
||||||
|
//
|
||||||
|
// `#include_next' does not distinguish between <file> and "file"
|
||||||
|
// inclusion, nor does it check that the file you specify has the
|
||||||
|
// same name as the current file. It simply looks for the file
|
||||||
|
// named, starting with the directory in the search path after the
|
||||||
|
// one where the current file was found.
|
||||||
|
-#include_next <new>
|
||||||
|
+# include_next <new>
|
||||||
|
|
||||||
|
// See if we're in code that can use mozalloc. NB: this duplicates
|
||||||
|
// code in nscore.h because nscore.h pulls in prtypes.h, and chromium
|
||||||
|
// can't build with that being included before base/basictypes.h.
|
||||||
|
-#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC)
|
||||||
|
-# include "mozilla/mozalloc.h"
|
||||||
|
-#else
|
||||||
|
-# error "STL code can only be used with infallible ::operator new()"
|
||||||
|
+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC)
|
||||||
|
+# include "mozilla/mozalloc.h"
|
||||||
|
+# else
|
||||||
|
+# error "STL code can only be used with infallible ::operator new()"
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(DEBUG) && !defined(_GLIBCXX_DEBUG)
|
||||||
|
// Enable checked iterators and other goodies
|
||||||
|
//
|
||||||
|
// FIXME/bug 551254: gcc's debug STL implementation requires -frtti.
|
||||||
|
// Figure out how to resolve this with -fno-rtti. Maybe build with
|
||||||
|
// -frtti in DEBUG builds?
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user