Enable PGO/LTO
This commit is contained in:
parent
80f05818c3
commit
b2c506e3b4
14
firefox-gcc-always-inline.patch
Normal file
14
firefox-gcc-always-inline.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff -up firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline firefox-114.0.2/gfx/wr/swgl/src/gl.cc
|
||||||
|
--- firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline 2023-06-22 11:08:53.294593327 +0200
|
||||||
|
+++ firefox-114.0.2/gfx/wr/swgl/src/gl.cc 2023-06-22 11:12:43.663486734 +0200
|
||||||
|
@@ -58,9 +58,7 @@ WINBASEAPI BOOL WINAPI QueryPerformanceF
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
-// GCC is slower when dealing with always_inline, especially in debug builds.
|
||||||
|
-// When using Clang, use always_inline more aggressively.
|
||||||
|
-# if defined(__clang__) || defined(NDEBUG)
|
||||||
|
+# if defined(__clang__) || defined (__GNUC__) || defined(NDEBUG)
|
||||||
|
# define ALWAYS_INLINE __attribute__((always_inline)) inline
|
||||||
|
# else
|
||||||
|
# define ALWAYS_INLINE inline
|
12
firefox.spec
12
firefox.spec
@ -70,8 +70,7 @@ ExcludeArch: ppc64le
|
|||||||
%global build_with_pgo 0
|
%global build_with_pgo 0
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
%if %{release_build}
|
%if %{release_build}
|
||||||
#Disabled PGO build due to rhbz#2136401
|
%global build_with_pgo 1
|
||||||
%global build_with_pgo 0
|
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?flatpak}
|
%if 0%{?flatpak}
|
||||||
@ -158,7 +157,7 @@ ExcludeArch: ppc64le
|
|||||||
Summary: Mozilla Firefox Web browser
|
Summary: Mozilla Firefox Web browser
|
||||||
Name: firefox
|
Name: firefox
|
||||||
Version: 114.0.2
|
Version: 114.0.2
|
||||||
Release: 1%{?pre_tag}%{?dist}
|
Release: 2%{?pre_tag}%{?dist}
|
||||||
URL: https://www.mozilla.org/firefox/
|
URL: https://www.mozilla.org/firefox/
|
||||||
License: MPLv1.1 or GPLv2+ or LGPLv2+
|
License: MPLv1.1 or GPLv2+ or LGPLv2+
|
||||||
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
|
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
|
||||||
@ -235,7 +234,7 @@ 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
|
||||||
|
|
||||||
# tentative patch for RUSTFLAGS parsing issue:
|
# tentative patch for RUSTFLAGS parsing issue:
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2184743
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2184743
|
||||||
@ -508,9 +507,9 @@ 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
|
||||||
|
|
||||||
%patch1200 -p1 -b .rustflags-commasplit
|
%patch1200 -p1 -b .rustflags-commasplit
|
||||||
|
|
||||||
@ -1042,6 +1041,9 @@ fi
|
|||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 22 2023 Martin Stransky <stransky@redhat.com>- 114.0.2-2
|
||||||
|
- Enable PGO/LTO again.
|
||||||
|
|
||||||
* Tue Jun 20 2023 Martin Stransky <stransky@redhat.com>- 114.0.2-1
|
* Tue Jun 20 2023 Martin Stransky <stransky@redhat.com>- 114.0.2-1
|
||||||
- Update to 114.0.2
|
- Update to 114.0.2
|
||||||
|
|
||||||
|
@ -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()
|
|
21
pgo.patch
21
pgo.patch
@ -89,15 +89,6 @@ diff -up firefox-112.0/build/unix/mozconfig.unix.pgo firefox-112.0/build/unix/mo
|
|||||||
# We want to make sure we use binutils and other binaries in the tooltool
|
# We want to make sure we use binutils and other binaries in the tooltool
|
||||||
# package.
|
# package.
|
||||||
mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH"
|
mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH"
|
||||||
diff -up firefox-112.0/extensions/spellcheck/src/moz.build.pgo firefox-112.0/extensions/spellcheck/src/moz.build
|
|
||||||
--- firefox-112.0/extensions/spellcheck/src/moz.build.pgo 2023-04-06 17:27:41.000000000 +0200
|
|
||||||
+++ firefox-112.0/extensions/spellcheck/src/moz.build 2023-04-06 21:27:32.537089073 +0200
|
|
||||||
@@ -28,3 +28,5 @@ EXPORTS.mozilla += [
|
|
||||||
"mozInlineSpellChecker.h",
|
|
||||||
"mozSpellChecker.h",
|
|
||||||
]
|
|
||||||
+
|
|
||||||
+CXXFLAGS += ['-fno-devirtualize']
|
|
||||||
diff -up firefox-112.0/toolkit/components/terminator/nsTerminator.cpp.pgo firefox-112.0/toolkit/components/terminator/nsTerminator.cpp
|
diff -up firefox-112.0/toolkit/components/terminator/nsTerminator.cpp.pgo firefox-112.0/toolkit/components/terminator/nsTerminator.cpp
|
||||||
--- firefox-112.0/toolkit/components/terminator/nsTerminator.cpp.pgo 2023-04-06 17:27:57.000000000 +0200
|
--- firefox-112.0/toolkit/components/terminator/nsTerminator.cpp.pgo 2023-04-06 17:27:57.000000000 +0200
|
||||||
+++ firefox-112.0/toolkit/components/terminator/nsTerminator.cpp 2023-04-06 21:27:32.538089108 +0200
|
+++ firefox-112.0/toolkit/components/terminator/nsTerminator.cpp 2023-04-06 21:27:32.538089108 +0200
|
||||||
@ -113,3 +104,15 @@ diff -up firefox-112.0/toolkit/components/terminator/nsTerminator.cpp.pgo firefo
|
|||||||
UniquePtr<Options> options(new Options());
|
UniquePtr<Options> options(new Options());
|
||||||
// crashAfterTicks is guaranteed to be > 0 as
|
// crashAfterTicks is guaranteed to be > 0 as
|
||||||
// crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS
|
// crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS
|
||||||
|
diff -up firefox-114.0.2/build/moz.configure/lto-pgo.configure.pgo firefox-114.0.2/build/moz.configure/lto-pgo.configure
|
||||||
|
--- firefox-114.0.2/build/moz.configure/lto-pgo.configure.pgo 2023-06-22 11:17:37.428552356 +0200
|
||||||
|
+++ firefox-114.0.2/build/moz.configure/lto-pgo.configure 2023-06-22 11:17:51.476033691 +0200
|
||||||
|
@@ -86,7 +86,7 @@ def pgo_flags(compiler, profdata, target
|
||||||
|
return namespace(
|
||||||
|
gen_cflags=["-fprofile-generate"],
|
||||||
|
gen_ldflags=["-fprofile-generate"],
|
||||||
|
- use_cflags=["-fprofile-use", "-fprofile-correction", "-Wcoverage-mismatch"],
|
||||||
|
+ use_cflags=["-fprofile-use", "-fprofile-correction", "-Wno-coverage-mismatch"],
|
||||||
|
use_ldflags=["-fprofile-use"],
|
||||||
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user