Merge pull request #8917 from IdrisKalp/master

firefox 84.0.1 enabled PGO and LTO
This commit is contained in:
Idris Kalp
2021-01-02 23:56:52 +03:00
committed by GitHub
8 changed files with 252197 additions and 251337 deletions
+40 -11
View File
@@ -4,33 +4,41 @@
# Licensed under the GNU General Public License, version 3. # Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt # See the file http://www.gnu.org/licenses/gpl.txt
import subprocess
from pisi.actionsapi import get from pisi.actionsapi import get
from pisi.actionsapi import autotools from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools from pisi.actionsapi import shelltools
#WorkDir = "mozilla-release-6b51784853e47e091d213d421a19cb623af718f0" #WorkDir = "mozilla-release-6b51784853e47e091d213d421a19cb623af718f0"
ObjDir = "build" ObjDir = "objdir"
locales = "az bs ca da de el en-US en-GB es-AR es-CL es-ES fi fr hr hu it lt nl pl pt-BR pt-PT ro ru sr sv-SE tr uk".split() locales = "az bs ca da de el en-US en-GB es-AR es-CL es-ES fi fr hr hu it lt nl pl pt-BR pt-PT ro ru sr sv-SE tr uk".split()
xpidir = "%s/xpi" % get.workDIR() xpidir = "%s/xpi" % get.workDIR()
arch = get.ARCH() arch = get.ARCH()
ver = ".".join(get.srcVERSION().split(".")[:3]) ver = ".".join(get.srcVERSION().split(".")[:3])
jobs = jobs = "-j"+ subprocess.check_output("nproc 2>/dev/null", shell=True).rstrip("\n")
shelltools.export("SHELL", "/bin/sh") shelltools.export("SHELL", "/bin/sh")
shelltools.export("MACH_USE_SYSTEM_PYTHON", "1") shelltools.export("MACH_USE_SYSTEM_PYTHON", "1")
def setup(): def setup():
shelltools.system("echo 'Instrumenting Firefox for PGO'")
shelltools.system("cp mozconfig-inst .mozconfig")
# Google API key # Google API key
shelltools.echo("google_api_key", "AIzaSyBINKL31ZYd8W5byPuwTXYK6cEyoceGh6Y") shelltools.echo("google_api_key", "AIzaSyBINKL31ZYd8W5byPuwTXYK6cEyoceGh6Y")
pisitools.dosed(".mozconfig", "%%PWD%%", get.curDIR()) pisitools.dosed(".mozconfig", "%%PWD%%", get.curDIR())
pisitools.dosed(".mozconfig", "%%FILE%%", "google_api_key") pisitools.dosed(".mozconfig", "%%FILE%%", "google_api_key")
pisitools.dosed(".mozconfig", "##JOBCOUNT##", get.makeJOBS()) pisitools.dosed(".mozconfig", "##JOBCOUNT##", jobs)
# LOCALE # LOCALE
shelltools.system("rm -rf langpack-ff/*/browser/defaults") shelltools.system("rm -rf langpack-ff/*/browser/defaults")
if not shelltools.isDirectory(xpidir): shelltools.makedirs(xpidir) if not shelltools.isDirectory(xpidir): shelltools.makedirs(xpidir)
for locale in locales: for locale in locales:
shelltools.system("wget -c -P %s http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/%s/linux-%s/xpi/%s.xpi" % (xpidir, ver, arch, locale)) shelltools.system("wget -c -P %s https://download-origin.cdn.mozilla.net/pub/firefox/releases/%s/linux-%s/xpi/%s.xpi" % (xpidir, ver, arch, locale))
#shelltools.makedirs("langpack-ff/langpack-%s@firefox.mozilla.org" % locale) #shelltools.makedirs("langpack-ff/langpack-%s@firefox.mozilla.org" % locale)
shelltools.makedirs("langpack-ff") shelltools.makedirs("langpack-ff")
#shelltools.system("unzip -uo %s/%s.xpi -d langpack-ff/langpack-%s@firefox.mozilla.org" % (xpidir, locale, locale)) #shelltools.system("unzip -uo %s/%s.xpi -d langpack-ff/langpack-%s@firefox.mozilla.org" % (xpidir, locale, locale))
@@ -39,21 +47,42 @@ def setup():
#shelltools.copy("browserconfig.properties", "langpack-ff/langpack-%s@firefox.mozilla.org/browser/chrome/%s/locale/branding/" % (locale, locale)) #shelltools.copy("browserconfig.properties", "langpack-ff/langpack-%s@firefox.mozilla.org/browser/chrome/%s/locale/branding/" % (locale, locale))
shelltools.copy("browserconfig.properties", "browser/branding/official/locales/") shelltools.copy("browserconfig.properties", "browser/branding/official/locales/")
shelltools.makedirs(ObjDir) #shelltools.makedirs(ObjDir)
shelltools.cd(ObjDir) #shelltools.cd(ObjDir)
shelltools.system("../configure --prefix=/usr --libdir=/usr/lib --disable-strip --disable-install-strip") #shelltools.system("../configure --prefix=/usr --libdir=/usr/lib --disable-strip --disable-install-strip")
def build(): def build():
shelltools.cd(ObjDir) shelltools.system("echo 'Building instrumented browser'")
shelltools.system("../mach build -j5") #shelltools.cd(ObjDir)
shelltools.system("./mach build")
shelltools.system("echo 'Profiling instrumented browser...'")
shelltools.system("./mach package")
shelltools.system("LLVM_PROFDATA=llvm-profdata \
JARLOG_FILE='%s/jarlog' \
xvfb-run -s '-screen 0 1920x1080x24 -nolisten local' \
./mach python build/pgo/profileserver.py" %get.curDIR())
shelltools.system("echo 'Removing instrumented browser...'")
shelltools.system("./mach clobber")
shelltools.system("echo 'Building optimized browser...'")
shelltools.system("rm .mozconfig")
shelltools.system("cp mozconfig-opt .mozconfig")
#shelltools.echo("google_api_key", "AIzaSyBINKL31ZYd8W5byPuwTXYK6cEyoceGh6Y")
pisitools.dosed(".mozconfig", "%%PWD%%", get.curDIR())
pisitools.dosed(".mozconfig", "%%FILE%%", "google_api_key")
pisitools.dosed(".mozconfig", "##JOBCOUNT##", jobs)
#shelltools.system("../configure --prefix=/usr --libdir=/usr/lib --disable-strip --disable-install-strip")
shelltools.system("./mach build")
def install(): def install():
shelltools.cd(ObjDir) #shelltools.cd(ObjDir)
shelltools.system("DESTDIR=%s ../mach install " % get.installDIR()) shelltools.system("DESTDIR=%s ./mach install " % get.installDIR())
shelltools.cd("..") #shelltools.cd("..")
# Install language packs # Install language packs
pisitools.insinto("/usr/lib/firefox/browser/extensions", "./langpack-ff/*") pisitools.insinto("/usr/lib/firefox/browser/extensions", "./langpack-ff/*")
+58
View File
@@ -0,0 +1,58 @@
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_MAKE_FLAGS="##JOBCOUNT##"
ac_add_options --prefix=/usr
ac_add_options --enable-release
#ac_add_options --enable-linker=gold
ac_add_options --enable-hardening
ac_add_options --enable-optimize
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="%%PWD%%/mozbuild"
export CC=clang
export CXX=clang++
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
export LDFLAGS+=" -fuse-ld=lld"
ac_add_options --allow-addon-sideload
ac_add_options --enable-official-branding
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
#ac_add_options --with-system-icu
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
#ac_add_options --with-system-bz2
#ac_add_options --with-system-libevent
#ac_add_options --with-system-libvpx
#ac_add_options --enable-system-hunspell
ac_add_options --enable-system-ffi
#ac_add_options --enable-system-pixman
#ac_add_options --enable-system-sqlite
#ac_add_options --enable-gstreamer=1.0
#ac_add_options --disable-elf-hack
# Features
#ac_add_options --enable-application=browser
#ac_add_options --enable-alsa
#ac_add_options --enable-jack
#ac_add_options --enable-startup-notification
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
#ac_add_options --disable-stylo
#ac_add_options --disable-gconf
ac_add_options --disable-tests
# New MP4, etc
ac_add_options --enable-rust-simd
ac_add_options --enable-profile-generate=cross
ac_add_options --with-google-location-service-api-keyfile="%%PWD%%/%%FILE%%"
ac_add_options --with-google-safebrowsing-api-keyfile="%%PWD%%/%%FILE%%"
#ac_add_options --enable-safe-browsing
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
+63
View File
@@ -0,0 +1,63 @@
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_MAKE_FLAGS="##JOBCOUNT##"
ac_add_options --prefix=/usr
ac_add_options --enable-release
#ac_add_options --enable-linker=gold
ac_add_options --enable-hardening
ac_add_options --enable-optimize
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="%%PWD%%/mozbuild"
export CC=clang
export CXX=clang++
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
export LDFLAGS+=" -fuse-ld=lld"
ac_add_options --allow-addon-sideload
ac_add_options --enable-official-branding
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
#ac_add_options --with-system-icu
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
#ac_add_options --with-system-bz2
#ac_add_options --with-system-libevent
#ac_add_options --with-system-libvpx
#ac_add_options --enable-system-hunspell
ac_add_options --enable-system-ffi
#ac_add_options --enable-system-pixman
#ac_add_options --enable-system-sqlite
#ac_add_options --enable-gstreamer=1.0
#ac_add_options --disable-elf-hack
# Features
#ac_add_options --enable-application=browser
#ac_add_options --enable-alsa
#ac_add_options --enable-jack
#ac_add_options --enable-startup-notification
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
#ac_add_options --disable-stylo
#ac_add_options --disable-gconf
ac_add_options --disable-tests
# New MP4, etc
ac_add_options --enable-rust-simd
ac_add_options --enable-lto=cross
ac_add_options --enable-profile-use=cross
ac_add_options --with-pgo-profile-path=%%PWD%%/merged.profdata
ac_add_options --with-pgo-jarlog=%%PWD%%/jarlog
ac_add_options --with-google-location-service-api-keyfile="%%PWD%%/%%FILE%%"
ac_add_options --with-google-safebrowsing-api-keyfile="%%PWD%%/%%FILE%%"
#ac_add_options --enable-safe-browsing
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
+15 -1
View File
@@ -18,7 +18,9 @@
<Archive sha1sum="7cdea9c1fe611547b281a8f1cdabb985c64144e1" type="tarxz">https://ftp.mozilla.org/pub/firefox/releases/84.0.1/source/firefox-84.0.1.source.tar.xz</Archive> <Archive sha1sum="7cdea9c1fe611547b281a8f1cdabb985c64144e1" type="tarxz">https://ftp.mozilla.org/pub/firefox/releases/84.0.1/source/firefox-84.0.1.source.tar.xz</Archive>
<AdditionalFiles> <AdditionalFiles>
<!--Our main configure script. Configure paramters are stored here.--> <!--Our main configure script. Configure paramters are stored here.-->
<AdditionalFile target=".mozconfig" permission="0644">mozconfig</AdditionalFile> <!-- <AdditionalFile target=".mozconfig" permission="0644">mozconfig</AdditionalFile> -->
<AdditionalFile target="mozconfig-inst" permission="0644">mozconfig-inst</AdditionalFile>
<AdditionalFile target="mozconfig-opt" permission="0644">mozconfig-opt</AdditionalFile>
<AdditionalFile target="configure" permission="0755">configure</AdditionalFile> <AdditionalFile target="configure" permission="0755">configure</AdditionalFile>
<AdditionalFile target="browserconfig.properties" permission="0644">pisilinux/browserconfig.properties</AdditionalFile> <!--anasayfa ayarlaması--> <AdditionalFile target="browserconfig.properties" permission="0644">pisilinux/browserconfig.properties</AdditionalFile> <!--anasayfa ayarlaması-->
</AdditionalFiles> </AdditionalFiles>
@@ -62,6 +64,11 @@
<Dependency>llvm</Dependency> <Dependency>llvm</Dependency>
<Dependency>libxkbcommon-devel</Dependency> <Dependency>libxkbcommon-devel</Dependency>
<Dependency>llvm-clang-devel</Dependency> <Dependency>llvm-clang-devel</Dependency>
<Dependency>lld-devel</Dependency>
<Dependency>compiler-rt</Dependency>
<Dependency>xorg-server-xvfb</Dependency>
<Dependency>xorg-app</Dependency>
<Dependency>xkeyboard-config</Dependency>
<!--clang--> <!--clang-->
<Dependency>gdb-devel</Dependency> <Dependency>gdb-devel</Dependency>
</BuildDependencies> </BuildDependencies>
@@ -550,6 +557,13 @@
</Package> </Package>
<History> <History>
<Update release="51">
<Date>2021-01-02</Date>
<Version>84.0.1</Version>
<Comment>Version bump and enable PGO and LTO</Comment>
<Name>İdris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="50"> <Update release="50">
<Date>2020-12-27</Date> <Date>2020-12-27</Date>
<Version>84.0.1</Version> <Version>84.0.1</Version>
+252019 -251323
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
1cc91cedf6ea3a4e1c11594b680a6eff65554b42 c4ae97adede5f7fb7feb52fa71219e4f32906179
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
4374a58254a293a275b40d941b6bc5a719715f02 b654b5e9f81d2c3c1d595e9976b1c7819f0da597