Date: Thursday, October 3, 2019 @ 20:45:56 Author: heftig Revision: 363710
69.0.2-1 Added: firefox/trunk/hack-buildsymbols.patch Modified: firefox/trunk/PKGBUILD -------------------------+ PKGBUILD | 66 +++++++++++++++++++++++++++++++++++++++------- hack-buildsymbols.patch | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 9 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-10-03 19:45:44 UTC (rev 363709) +++ PKGBUILD 2019-10-03 20:45:56 UTC (rev 363710) @@ -3,7 +3,7 @@ # Contributor: Jakub Schmidtke <[email protected]> pkgname=firefox -pkgver=69.0.1 +pkgver=69.0.2 pkgrel=1 pkgdesc="Standalone web browser from mozilla.org" arch=(x86_64) @@ -21,10 +21,12 @@ 'hunspell-en_US: Spell checking, American English') options=(!emptydirs !makeflags !strip) source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz{,.asc} + hack-buildsymbols.patch 0001-Use-remoting-name-for-GDK-application-names.patch $pkgname.desktop firefox-symbolic.svg) -sha256sums=('f5f2f592b8296812d43244d6a50c0c57ad11a5324db8e4e79749545482b79033' +sha256sums=('2904ef954626d2a7f320670ccb7cb5d9060610f091c94190a6cbee14aa2cd82e' 'SKIP' + 'f16c614ab7268176021eba63050bf6018c9ebeebc419c5db62480f867c7c7535' 'ab07ab26617ff76fce68e07c66b8aa9b96c2d3e5b5517e51a3c3eac2edd88894' 'a9e5264257041c0b968425b5c97436ba48e8d294e1a0f02c59c35461ea245c33' '9a1a572dc88014882d54ba2d3079a1cf5b28fa03c5976ed2cb763c93dabbd797') @@ -46,6 +48,9 @@ mkdir mozbuild cd firefox-$pkgver + # Do symbol dumping during compile + patch -Np1 -i ../hack-buildsymbols.patch + # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052 patch -Np1 -i ../0001-Use-remoting-name-for-GDK-application-names.patch @@ -52,7 +57,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 @@ -60,10 +65,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 @@ -107,8 +110,46 @@ # LTO needs more open files ulimit -n 4096 + # -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 instrumented browser..." + ./mach package + LLVM_PROFDATA=llvm-profdata \ + 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 "Removing instrumented browser..." + ./mach clobber + msg2 "Building optimized browser..." - xvfb-run -a -n 97 -s "-screen 0 1600x1200x24" ./mach build + cat >.mozconfig ../mozconfig - <<END +ac_add_options --enable-lto=cross +ac_add_options --enable-profile-use +ac_add_options --with-pgo-profile-path=${PWD@Q} +ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog +END + ./mach build msg2 "Building symbol archive..." ./mach buildsymbols @@ -117,7 +158,6 @@ package() { cd firefox-$pkgver DESTDIR="$pkgdir" ./mach install - find . -name '*crashreporter-symbols-full.zip' -exec cp -fvt "$startdir" {} + _vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" install -Dm644 /dev/stdin "$_vendorjs" <<END @@ -172,6 +212,14 @@ # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 ln -srf "$pkgdir/usr/bin/$pkgname" \ "$pkgdir/usr/lib/$pkgname/firefox-bin" + + if [[ -f "$startdir/.crash-stats-api.token" ]]; then + find . -name '*crashreporter-symbols-full.zip' -exec \ + "$startdir/upload-symbol-archive" "$startdir/.crash-stats-api.token" {} + + else + find . -name '*crashreporter-symbols-full.zip' -exec \ + cp -fvt "$startdir" {} + + fi } # vim:set sw=2 et: Added: hack-buildsymbols.patch =================================================================== --- hack-buildsymbols.patch (rev 0) +++ hack-buildsymbols.patch 2019-10-03 20:45:56 UTC (rev 363710) @@ -0,0 +1,47 @@ +diff --git i/Makefile.in w/Makefile.in +index 626edae551d3..781e41269723 100644 +--- i/Makefile.in ++++ w/Makefile.in +@@ -239,7 +239,7 @@ prepsymbolsarchive: + echo packing symbols + $(NSINSTALL) -D $(DIST)/$(PKG_PATH) + +-ifndef MOZ_AUTOMATION ++ifndef MOZ_PROFILE_USE + prepsymbolsarchive: recurse_syms + endif + +diff --git i/config/recurse.mk w/config/recurse.mk +index ed2e187061aa..379b9042a8e4 100644 +--- i/config/recurse.mk ++++ w/config/recurse.mk +@@ -76,11 +76,9 @@ $(compile_targets) $(syms_targets): + $(syms_targets): %/syms: %/target + + # Only hook symbols targets into the main compile graph in automation. +-ifdef MOZ_AUTOMATION +-ifeq (1,$(MOZ_AUTOMATION_BUILD_SYMBOLS)) ++ifdef MOZ_PROFILE_USE + recurse_compile: $(syms_targets) + endif +-endif + + # Create a separate rule that depends on every 'syms' target so that + # symbols can be dumped on demand locally. +diff --git i/config/rules.mk w/config/rules.mk +index fefe2805fb92..b5641eae15ba 100644 +--- i/config/rules.mk ++++ w/config/rules.mk +@@ -750,11 +750,9 @@ DUMP_SYMS_TARGETS := $(SHARED_LIBRARY) $(PROGRAM) $(SIMPLE_PROGRAMS) + endif + endif + +-ifdef MOZ_AUTOMATION +-ifeq (,$(filter 1,$(MOZ_AUTOMATION_BUILD_SYMBOLS))) ++ifdef MOZ_PROFILE_GENERATE + DUMP_SYMS_TARGETS := + endif +-endif + + ifdef MOZ_COPY_PDBS + MAIN_PDB_FILES = $(addsuffix .pdb,$(basename $(DUMP_SYMS_TARGETS)))
