diff options
-rwxr-xr-x | binary_tarball/scripts/3_Configure_Source_Code.sh | 9 | ||||
-rwxr-xr-x | binary_tarball/scripts/4_Build_Binary_Tarball.sh | 92 |
2 files changed, 55 insertions, 46 deletions
diff --git a/binary_tarball/scripts/3_Configure_Source_Code.sh b/binary_tarball/scripts/3_Configure_Source_Code.sh index 1707ebd..e912c92 100755 --- a/binary_tarball/scripts/3_Configure_Source_Code.sh +++ b/binary_tarball/scripts/3_Configure_Source_Code.sh @@ -24,12 +24,16 @@ ac_add_options --enable-application=browser ac_add_options --with-libclang-path="/usr/lib/llvm-9/lib" ac_add_options --with-clang-path="/usr/bin/clang-9" +# let's see if this works: make things backwards-compatible as much as possible +# TODO: check if this would also work when building on something newer to have it run on +# 16.04/xenial later on as well? +ac_add_options --enable-stdcxx-compat + # This supposedly speeds up compilation (We test through dogfooding anyway) ac_add_options --disable-tests ac_add_options --disable-debug -# might cause issues for appimage/flatpak, so keep it unset -# ac_add_options --prefix=/usr +ac_add_options --prefix=/usr ac_add_options --enable-release ac_add_options --enable-hardening ac_add_options --enable-rust-simd @@ -84,6 +88,7 @@ export CXXFLAGS+=" -g0" export RUSTFLAGS="-Cdebuginfo=0" # from ALARM +# See https://bugzilla.mozilla.org/show_bug.cgi?id=1430094 ac_add_options --disable-webrtc END diff --git a/binary_tarball/scripts/4_Build_Binary_Tarball.sh b/binary_tarball/scripts/4_Build_Binary_Tarball.sh index f393cfa..d7649e4 100755 --- a/binary_tarball/scripts/4_Build_Binary_Tarball.sh +++ b/binary_tarball/scripts/4_Build_Binary_Tarball.sh @@ -53,52 +53,52 @@ cargo install cbindgen rm -f mozconfig # Do 3-tier PGO -# echo "Building instrumented browser..." - -# if [[ $CARCH == 'aarch64' ]]; then -# -# cat >.mozconfig ${CI_PROJECT_DIR}/mozconfig - <<END -# ac_add_options --enable-profile-generate -# END -# -# else -# -# cat >.mozconfig ${CI_PROJECT_DIR}/mozconfig - <<END -# # -fno-plt with cross-LTO causes obscure LLVM errors -# # LLVM ERROR: Function Import: link error -# # CFLAGS="${CFLAGS/-fno-plt/}" -# # CXXFLAGS="${CXXFLAGS/-fno-plt/}" -# -# ac_add_options --enable-profile-generate -# END - -# fi +echo "Building instrumented browser..." + +if [[ $CARCH == 'aarch64' ]]; then + +cat >.mozconfig ${CI_PROJECT_DIR}/mozconfig - <<END +ac_add_options --enable-profile-generate +END + +else + +# -fno-plt with cross-LTO causes obscure LLVM errors +# LLVM ERROR: Function Import: link error +CFLAGS="${CFLAGS/-fno-plt/}" +CXXFLAGS="${CXXFLAGS/-fno-plt/}" + +cat >.mozconfig ${CI_PROJECT_DIR}/mozconfig - <<END +ac_add_options --enable-profile-generate=cross +END + +fi # Executes the actual build -# printf "\nBuilding LibreWolf\n"; -# ./mach build; - -# echo "Profiling instrumented browser..." -# ./mach package -# LLVM_PROFDATA=llvm-profdata \ - # JARLOG_FILE="$PWD/jarlog" \ - # xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \ - # ./mach python build/pgo/profileserver.py -# -# if [[ ! -s merged.profdata ]]; then - # echo "No profile data produced." - # exit 1 -# fi -# -# if [[ ! -s jarlog ]]; then - # echo "No jar log produced." - # exit 1 -# fi -# -# echo "Removing instrumented browser..." -# ./mach clobber -# -# echo "Building optimized browser..." +printf "\nBuilding LibreWolf\n"; +./mach build; + +echo "Profiling instrumented browser..." +./mach package +LLVM_PROFDATA=llvm-profdata \ + JARLOG_FILE="$PWD/jarlog" \ + xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \ + ./mach python build/pgo/profileserver.py + +if [[ ! -s merged.profdata ]]; then + echo "No profile data produced." + exit 1 +fi + +if [[ ! -s jarlog ]]; then + echo "No jar log produced." + exit 1 +fi + +echo "Removing instrumented browser..." +./mach clobber + +echo "Building optimized browser..." if [[ $CARCH == 'aarch64' ]]; then @@ -114,6 +114,10 @@ END else cat >.mozconfig ${CI_PROJECT_DIR}/mozconfig - <<END +ac_add_options --enable-lto=cross +ac_add_options --enable-profile-use=cross +ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata +ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog ac_add_options --enable-linker=gold END |