commit: 2f2ceab0a79e973d3e1e70dc4cf201bd09c5154b Author: Jory Pratt <anarchy <AT> gentoo <DOT> org> AuthorDate: Fri Feb 14 13:09:14 2020 +0000 Commit: Jory Pratt <anarchy <AT> gentoo <DOT> org> CommitDate: Fri Feb 14 13:09:29 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2f2ceab0
www-client/firefox: Fix pgo/lto builds Closes: https://bugs.gentoo.org/709440 Closes: https://bugs.gentoo.org/706772 Closes: https://bugs.gentoo.org/709594 Package-Manager: Portage-2.3.88, Repoman-2.3.20 Signed-off-by: Jory Pratt <anarchy <AT> gentoo.org> .../firefox/files/firefox-69.0-lto-gcc-fix.patch | 26 ----------- .../files/firefox-73.0_fix_lto_pgo_builds.patch | 51 ++++++++++++++++++++++ www-client/firefox/firefox-73.0.ebuild | 2 + 3 files changed, 53 insertions(+), 26 deletions(-) diff --git a/www-client/firefox/files/firefox-69.0-lto-gcc-fix.patch b/www-client/firefox/files/firefox-69.0-lto-gcc-fix.patch deleted file mode 100644 index 9fe9673cb08..00000000000 --- a/www-client/firefox/files/firefox-69.0-lto-gcc-fix.patch +++ /dev/null @@ -1,26 +0,0 @@ -# HG changeset patch -# Parent 79ae951dc72ba16a2451c4cde7298aa986376b0c -Fix lto builds of sandbox on linux - -diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build ---- a/security/sandbox/linux/moz.build -+++ b/security/sandbox/linux/moz.build -@@ -95,17 +95,17 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc') - CXXFLAGS += ['-Wno-shadow'] - SOURCES['../chromium/sandbox/linux/services/syscall_wrappers.cc'].flags += [ - '-Wno-empty-body', - ] - - # gcc lto likes to put the top level asm in syscall.cc in a different partition - # from the function using it which breaks the build. Work around that by - # forcing there to be only one partition. --for f in CONFIG['OS_CXXFLAGS']: -+for f in CONFIG['MOZ_LTO_CFLAGS']: - if f.startswith('-flto') and CONFIG['CC_TYPE'] != 'clang': - LDFLAGS += ['--param', 'lto-partitions=1'] - - DEFINES['NS_NO_XPCOM'] = True - DisableStlWrapping() - - LOCAL_INCLUDES += ['/security/sandbox/linux'] - LOCAL_INCLUDES += ['/security/sandbox/chromium-shim'] diff --git a/www-client/firefox/files/firefox-73.0_fix_lto_pgo_builds.patch b/www-client/firefox/files/firefox-73.0_fix_lto_pgo_builds.patch new file mode 100644 index 00000000000..5e2420c60c4 --- /dev/null +++ b/www-client/firefox/files/firefox-73.0_fix_lto_pgo_builds.patch @@ -0,0 +1,51 @@ +From c193eba68325c07bbf13eb3995842545b7d23695 Mon Sep 17 00:00:00 2001 +From: +Date: Thu, 13 Feb 2020 20:29:09 -0600 +Subject: [PATCH] Fix pgo/lto builds + +--- + build/moz.configure/lto-pgo.configure | 4 ++-- + security/sandbox/linux/moz.build | 5 ++--- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure +index 394c1d8911..1f26a6e565 100644 +--- a/build/moz.configure/lto-pgo.configure ++++ b/build/moz.configure/lto-pgo.configure +@@ -70,7 +70,7 @@ set_config('PGO_PROFILE_PATH', pgo_profile_path) + def pgo_flags(compiler, target, profdata): + if compiler.type == 'gcc': + return namespace( +- gen_cflags=['-fprofile-generate'], ++ gen_cflags=['-fprofile-generate', '-DMOZ_PROFILE_INSTRUMENTATION'], + gen_ldflags=['-fprofile-generate'], + use_cflags=['-fprofile-use', '-fprofile-correction', + '-Wcoverage-mismatch'], +@@ -91,7 +91,7 @@ def pgo_flags(compiler, target, profdata): + gen_ldflags = ['-fprofile-generate'] + + return namespace( +- gen_cflags=[prefix + '-fprofile-generate'], ++ gen_cflags=[prefix + '-fprofile-generate', '-DMOZ_PROFILE_INSTRUMENTATION'], + gen_ldflags=gen_ldflags, + use_cflags=[prefix + '-fprofile-use=%s' % profdata, + # Some error messages about mismatched profile data +diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build +index aae85843e9..e300260fa0 100644 +--- a/security/sandbox/linux/moz.build ++++ b/security/sandbox/linux/moz.build +@@ -100,9 +100,8 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc'): + # gcc lto likes to put the top level asm in syscall.cc in a different partition + # from the function using it which breaks the build. Work around that by + # forcing there to be only one partition. +-for f in CONFIG['OS_CXXFLAGS']: +- if f.startswith('-flto') and CONFIG['CC_TYPE'] != 'clang': +- LDFLAGS += ['--param', 'lto-partitions=1'] ++if CONFIG['CC_TYPE'] != 'clang': ++ LDFLAGS += ['--param', 'lto-partitions=1'] + + DEFINES['NS_NO_XPCOM'] = True + DisableStlWrapping() +-- +2.25.0 + diff --git a/www-client/firefox/firefox-73.0.ebuild b/www-client/firefox/firefox-73.0.ebuild index a2025c36124..c4fb0b23ad1 100644 --- a/www-client/firefox/firefox-73.0.ebuild +++ b/www-client/firefox/firefox-73.0.ebuild @@ -257,6 +257,8 @@ src_prepare() { use !wayland && rm -f "${WORKDIR}/firefox/2019_mozilla-bug1539471.patch" eapply "${WORKDIR}/firefox" + eapply "${FILESDIR}/${PN}-73.0_fix_lto_pgo_builds.patch" + # Allow user to apply any additional patches without modifing ebuild eapply_user