diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index c23ff60..f04d6e6 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Wed May 25 16:36:23 UTC 2016 - badshah400@gmail.com + +- The conditional testing for gcc was failing for different + openSUSE versions, drop it and apply patches unconditionally. + +------------------------------------------------------------------- +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 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 diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index d5bfe5b..377a1e4 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -172,6 +172,8 @@ Patch11: mozilla-libproxy.patch Patch12: mozilla-reduce-files-per-UnifiedBindings.patch Patch13: mozilla-gtk3_20.patch Patch14: mozilla-check_return.patch +Patch15: mozilla-gcc6.patch +Patch16: mozilla-exclude-nametablecpp.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-no-default-ualocale.patch @@ -286,6 +288,8 @@ cd $RPM_BUILD_DIR/mozilla %patch13 -p1 %endif %patch14 -p1 +%patch15 -p1 +%patch16 -p1 # Firefox %patch101 -p1 %patch102 -p1 diff --git a/mozilla-exclude-nametablecpp.patch b/mozilla-exclude-nametablecpp.patch new file mode 100644 index 0000000..ca5a168 --- /dev/null +++ b/mozilla-exclude-nametablecpp.patch @@ -0,0 +1,50 @@ + +# HG changeset patch +# User Jonathan Kew +# Date 1463581374 -3600 +# Node ID 9c57b7cacffc57ec3919a2cf3b5ce861e0cf3842 +# Parent ea7843420fe518b772c7b259d8ff47193fc5b79e +Bug 1272647 - Exclude NameTable.cpp from unified compilation because #include 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 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' + + diff --git a/mozilla-gcc6.patch b/mozilla-gcc6.patch new file mode 100644 index 0000000..9b9c6e8 --- /dev/null +++ b/mozilla-gcc6.patch @@ -0,0 +1,76 @@ + +# HG changeset patch +# User Mike Hommey +# 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 for mozalloc.h, which fails because templates +don't work inside extern "C". So, don't pre-include 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 ; break the cycle by always explicitly + // including here. NB: this is a tad sneaky. Sez the gcc docs: + // + // `#include_next' does not distinguish between 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 ++# include_next + + // 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? + +