PGO build fixes
This commit is contained in:
parent
456ad350a8
commit
2606d6a50c
17
firefox.spec
17
firefox.spec
@ -61,7 +61,9 @@ ExcludeArch: ppc64le
|
|||||||
%global system_libvpx 0
|
%global system_libvpx 0
|
||||||
%global system_jpeg 1
|
%global system_jpeg 1
|
||||||
%global system_pixman 1
|
%global system_pixman 1
|
||||||
%global use_bundled_cbindgen 1
|
# Bundled cbindgen makes build slow.
|
||||||
|
# Enable only if system cbindgen is not available.
|
||||||
|
%global use_bundled_cbindgen 0
|
||||||
%if %{debug_build}
|
%if %{debug_build}
|
||||||
%global release_build 0
|
%global release_build 0
|
||||||
%endif
|
%endif
|
||||||
@ -234,7 +236,6 @@ Patch407: mozilla-1667096.patch
|
|||||||
|
|
||||||
# PGO/LTO patches
|
# PGO/LTO patches
|
||||||
Patch600: pgo.patch
|
Patch600: pgo.patch
|
||||||
Patch602: mozilla-1516803.patch
|
|
||||||
Patch603: firefox-gcc-always-inline.patch
|
Patch603: firefox-gcc-always-inline.patch
|
||||||
|
|
||||||
# tentative patch for RUSTFLAGS parsing issue:
|
# tentative patch for RUSTFLAGS parsing issue:
|
||||||
@ -508,7 +509,6 @@ This package contains results of tests executed during build.
|
|||||||
%if %{build_with_pgo}
|
%if %{build_with_pgo}
|
||||||
%if !%{build_with_clang}
|
%if !%{build_with_clang}
|
||||||
%patch600 -p1 -b .pgo
|
%patch600 -p1 -b .pgo
|
||||||
%patch602 -p1 -b .1516803
|
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%patch603 -p1 -b .inline
|
%patch603 -p1 -b .inline
|
||||||
@ -625,7 +625,8 @@ chmod a-x third_party/rust/ash/src/extensions/nv/*.rs
|
|||||||
|
|
||||||
%build
|
%build
|
||||||
# Disable LTO to work around rhbz#1883904
|
# Disable LTO to work around rhbz#1883904
|
||||||
%define _lto_cflags %{nil}
|
# Is that already fixed?
|
||||||
|
# %define _lto_cflags %{nil}
|
||||||
|
|
||||||
%if 0%{?use_bundled_cbindgen}
|
%if 0%{?use_bundled_cbindgen}
|
||||||
mkdir -p my_rust_vendor
|
mkdir -p my_rust_vendor
|
||||||
@ -643,6 +644,8 @@ EOL
|
|||||||
env CARGO_HOME=.cargo cargo install cbindgen
|
env CARGO_HOME=.cargo cargo install cbindgen
|
||||||
export PATH=`pwd`/.cargo/bin:$PATH
|
export PATH=`pwd`/.cargo/bin:$PATH
|
||||||
cd -
|
cd -
|
||||||
|
%else
|
||||||
|
export CBINDGEN=/usr/bin/cbindgen
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
mkdir %{_buildrootdir}/bin || :
|
mkdir %{_buildrootdir}/bin || :
|
||||||
@ -707,9 +710,13 @@ echo "export NM=\"gcc-nm\"" >> .mozconfig
|
|||||||
echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig
|
echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?build_with_pgo}
|
%if 0%{?build_with_pgo}
|
||||||
echo "ac_add_options MOZ_PGO=1" >> .mozconfig
|
|
||||||
# PGO build doesn't work with ccache
|
# PGO build doesn't work with ccache
|
||||||
export CCACHE_DISABLE=1
|
export CCACHE_DISABLE=1
|
||||||
|
export GCOV_PREFIX=`pwd -P`/objdir
|
||||||
|
export GCOV_PREFIX_STRIP=$(( $(echo `pwd -P`|tr -c -d '/' |wc -c )+2 ))
|
||||||
|
env | grep GCOV
|
||||||
|
echo "ac_add_options --enable-lto" >> .mozconfig
|
||||||
|
echo "ac_add_options MOZ_PGO=1" >> .mozconfig
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Require 2 GB of RAM per CPU core
|
# Require 2 GB of RAM per CPU core
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
diff -up firefox-84.0/security/sandbox/linux/moz.build.1516803 firefox-84.0/security/sandbox/linux/moz.build
|
|
||||||
--- firefox-84.0/security/sandbox/linux/moz.build.1516803 2020-12-10 16:17:55.425139545 +0100
|
|
||||||
+++ firefox-84.0/security/sandbox/linux/moz.build 2020-12-10 16:29:21.945860841 +0100
|
|
||||||
@@ -114,9 +114,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()
|
|
11
pgo.patch
11
pgo.patch
@ -59,17 +59,6 @@ diff -up firefox-112.0/build/pgo/profileserver.py.pgo firefox-112.0/build/pgo/pr
|
|||||||
|
|
||||||
with TemporaryDirectory() as profilePath:
|
with TemporaryDirectory() as profilePath:
|
||||||
# TODO: refactor this into mozprofile
|
# TODO: refactor this into mozprofile
|
||||||
@@ -213,6 +226,10 @@ if __name__ == "__main__":
|
|
||||||
print("Firefox exited successfully, but produced a crashreport")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
+ 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")
|
|
||||||
diff -up firefox-112.0/build/unix/mozconfig.unix.pgo firefox-112.0/build/unix/mozconfig.unix
|
diff -up firefox-112.0/build/unix/mozconfig.unix.pgo firefox-112.0/build/unix/mozconfig.unix
|
||||||
--- firefox-112.0/build/unix/mozconfig.unix.pgo 2023-04-06 21:27:32.537089073 +0200
|
--- firefox-112.0/build/unix/mozconfig.unix.pgo 2023-04-06 21:27:32.537089073 +0200
|
||||||
+++ firefox-112.0/build/unix/mozconfig.unix 2023-04-06 21:28:54.987949124 +0200
|
+++ firefox-112.0/build/unix/mozconfig.unix 2023-04-06 21:28:54.987949124 +0200
|
||||||
|
Loading…
Reference in New Issue
Block a user