Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Thaodan:mozilla
MozillaFirefox
0016-Fix-building-with-PGO-when-using-GCC.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0016-Fix-building-with-PGO-when-using-GCC.patch of Package MozillaFirefox
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Thomas Deutschmann <whissi@gentoo.org> Date: Thu, 2 Jul 2020 18:05:03 +0200 Subject: [PATCH] Fix building with PGO when using GCC Signed-off-by: Thomas Deutschmann <whissi@gentoo.org> --- build/moz.configure/lto-pgo.configure | 5 +++-- build/pgo/profileserver.py | 26 ++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure index 6bf22a5110c6fa577723e9cc264962cfc091b295..565a4daa6c8656ede46478021ac3f970f0a83e64 100644 --- a/build/moz.configure/lto-pgo.configure +++ b/build/moz.configure/lto-pgo.configure @@ -126,11 +126,12 @@ def pgo_flags( compiler, linker, target, profdata, orderfile, target_is_windows, pgo_temporal ): if compiler.type == "gcc": + profile_use = "-fprofile-use" return namespace( gen_cflags=["-fprofile-generate"], gen_ldflags=["-fprofile-generate"], - use_cflags=["-fprofile-use", "-fprofile-correction", "-Wcoverage-mismatch"], - use_ldflags=["-fprofile-use"], + use_cflags=[profile_use, "-fprofile-correction", "-Wcoverage-mismatch"], + use_ldflags=[profile_use], ) if compiler.type in ("clang-cl", "clang"): diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py index 31556cc9ae1a44a04e300083f7be4dc908cc3794..104d58e21ed7a8a4b00fde99c16868fc17555bf0 100755 --- a/build/pgo/profileserver.py +++ b/build/pgo/profileserver.py @@ -11,7 +11,7 @@ import subprocess import sys import mozcrash -from mozbuild.base import BinaryNotFoundException, MozbuildObject +from mozbuild.base import BinaryNotFoundException, BuildEnvironmentNotFoundException, MozbuildObject from mozfile import TemporaryDirectory from mozhttpd import MozHttpd from mozprofile import FirefoxProfile, Preferences @@ -97,9 +97,22 @@ if __name__ == "__main__": locations = ServerLocations() locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged") - old_profraw_files = glob.glob("*.profraw") - for f in old_profraw_files: - os.remove(f) + using_gcc = False + try: + if build.config_environment.substs.get("CC_TYPE") == "gcc": + using_gcc = True + except BuildEnvironmentNotFoundException: + pass + + if using_gcc: + for dirpath, _, filenames in os.walk("."): + for f in filenames: + if f.endswith(".gcda"): + os.remove(os.path.join(dirpath, f)) + else: + old_profraw_files = glob.glob("*.profraw") + for f in old_profraw_files: + os.remove(f) with TemporaryDirectory() as profilePath: # TODO: refactor this into mozprofile @@ -220,6 +233,11 @@ if __name__ == "__main__": print("Firefox exited successfully, but produced a crashreport") sys.exit(1) + if using_gcc: + print("Copying profile data...") + os.system("pwd"); + os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;'); + llvm_profdata = env.get("LLVM_PROFDATA") if llvm_profdata: profraw_files = glob.glob("*.profraw")
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor