[arch-commits] Commit in firefox-developer-edition/trunk (PKGBUILD)
Andrew Crerar
andrewsc at archlinux.org
Tue Aug 6 11:02:45 UTC 2019
Date: Tuesday, August 6, 2019 @ 11:02:45
Author: andrewsc
Revision: 497704
upgpkg: firefox-developer-edition 69.0b10-2
firefox-developer-edition: Use 3-tier PGO
Modified:
firefox-developer-edition/trunk/PKGBUILD
----------+
PKGBUILD | 52 ++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 44 insertions(+), 8 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2019-08-06 11:02:26 UTC (rev 497703)
+++ PKGBUILD 2019-08-06 11:02:45 UTC (rev 497704)
@@ -3,7 +3,7 @@
pkgname=firefox-developer-edition
pkgver=69.0b10
-pkgrel=1
+pkgrel=2
pkgdesc="Developer Edition of the popular Firefox web browser"
arch=('x86_64')
license=('MPL' 'GPL' 'LGPL')
@@ -55,7 +55,7 @@
echo -n "$_google_api_key" > google-api-key
echo -n "$_mozilla_api_key" > mozilla-api-key
- cat > .mozconfig << END
+ cat > ../mozconfig << END
ac_add_options --enable-application=browser
ac_add_options --prefix=/usr
@@ -63,10 +63,8 @@
ac_add_options --enable-hardening
ac_add_options --enable-optimize
ac_add_options --enable-rust-simd
-ac_add_options --enable-lto
-export MOZ_PGO=1
-export CC=clang
-export CXX=clang++
+export CC='clang --target=x86_64-unknown-linux-gnu'
+export CXX='clang++ --target=x86_64-unknown-linux-gnu'
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
@@ -112,8 +110,46 @@
# LTO needs more open files
ulimit -n 4096
- xvfb-run -a -n 95 -s "-screen 0 1600x1200x24" ./mach build
- ./mach buildsymbols
+ # -fno-plt with cross-LTO causes obscure LLVM errors
+ # LLVM ERROR: Function Import: link error
+ CFLAGS="${CFLAGS/-fno-plt/}"
+ CXXFLAGS="${CXXFLAGS/-fno-plt/}"
+
+ # Do 3-tier PGO
+ msg2 "Building instrumented browser..."
+ cat >.mozconfig ../mozconfig - <<END
+ac_add_options --enable-profile-generate
+END
+ ./mach build
+
+ msg2 "Profiling browser..."
+ ./mach package
+ JARLOG_FILE="$PWD/jarlog" \
+ xvfb-run -a -n 92 -s "-screen 0 1600x1200x24" \
+ ./mach python build/pgo/profileserver.py
+
+ if ! compgen -G '*.profraw' >&2; then
+ error "No profile data produced."
+ return 1
+ fi
+
+ if [[ ! -s jarlog ]]; then
+ error "No jar log produced."
+ return 1
+ fi
+
+ msg2 "Building optimized browser..."
+ cat >.mozconfig ../mozconfig - <<END
+ac_add_options --enable-lto
+ac_add_options --enable-profile-use
+ac_add_options --with-pgo-profile-path=${PWD at Q}
+ac_add_options --with-pgo-jarlog=${PWD at Q}/jarlog
+END
+
+ ./mach build
+
+ msg2 "Building symbol archive..."
+ ./mach buildsymbols
}
package() {
More information about the arch-commits
mailing list