diff options
Diffstat (limited to '')
137 files changed, 1864 insertions, 0 deletions
diff --git a/browser/config/mozconfig b/browser/config/mozconfig new file mode 100644 index 0000000000..536707a081 --- /dev/null +++ b/browser/config/mozconfig @@ -0,0 +1,9 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# This file specifies the build flags for Firefox. You can use it by adding: +# . $topsrcdir/browser/config/mozconfig +# to the top of your mozconfig file. + +ac_add_options --enable-project=browser diff --git a/browser/config/mozconfigs/common b/browser/config/mozconfigs/common new file mode 100644 index 0000000000..febf5622fa --- /dev/null +++ b/browser/config/mozconfigs/common @@ -0,0 +1,7 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# This file is included by all browser mozconfigs + +. "$topsrcdir/build/mozconfig.common" diff --git a/browser/config/mozconfigs/linux32/beta b/browser/config/mozconfigs/linux32/beta new file mode 100644 index 0000000000..c8aedd4f81 --- /dev/null +++ b/browser/config/mozconfigs/linux32/beta @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/common-opt b/browser/config/mozconfigs/linux32/common-opt new file mode 100644 index 0000000000..b5a9d258e9 --- /dev/null +++ b/browser/config/mozconfigs/linux32/common-opt @@ -0,0 +1,14 @@ +# This file is sourced by nightly, beta, and release mozconfigs. + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data +ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key + +. $topsrcdir/build/unix/mozconfig.linux32 + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 diff --git a/browser/config/mozconfigs/linux32/debug b/browser/config/mozconfigs/linux32/debug new file mode 100644 index 0000000000..30e3213182 --- /dev/null +++ b/browser/config/mozconfigs/linux32/debug @@ -0,0 +1,15 @@ +ac_add_options --enable-debug + +. $topsrcdir/build/unix/mozconfig.linux32 + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +#Use ccache + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/debug-asan b/browser/config/mozconfigs/linux32/debug-asan new file mode 100644 index 0000000000..3f45589230 --- /dev/null +++ b/browser/config/mozconfigs/linux32/debug-asan @@ -0,0 +1,18 @@ +# Use at least -O1 for optimization to avoid stack space +# exhaustions caused by Clang function inlining. +ac_add_options --enable-debug +ac_add_options --enable-optimize="-O1" + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/debug-fuzzing b/browser/config/mozconfigs/linux32/debug-fuzzing new file mode 100644 index 0000000000..ca18dea384 --- /dev/null +++ b/browser/config/mozconfigs/linux32/debug-fuzzing @@ -0,0 +1,31 @@ +ac_add_options --enable-debug + +. $topsrcdir/build/unix/mozconfig.linux32 + +export LLVM_SYMBOLIZER="$MOZ_FETCHES_DIR/llvm-symbolizer/bin/llvm-symbolizer" + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --enable-fuzzing +unset MOZ_STDCXX_COMPAT + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +# Even in fuzzing builds without sanitizers, the UBSan runtime is pulled +# in as a dependency to allow libFuzzer to have rudimentary stacks. +# Hence we need to disable jemalloc until bug 1435148 is fully resolved. +ac_add_options --disable-jemalloc + +# Also, for consistency we disable the crash reporter and solely rely +# on libFuzzer to provide stacks both in the browser fuzzing case as +# well as for libFuzzer targets. See also bug 1649062. +ac_add_options --disable-crashreporter +ac_add_options --disable-install-strip +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/devedition b/browser/config/mozconfigs/linux32/devedition new file mode 100644 index 0000000000..c4f33b9cd3 --- /dev/null +++ b/browser/config/mozconfigs/linux32/devedition @@ -0,0 +1,8 @@ +. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt" + +# Add-on signing is not required for DevEdition +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/l10n-mozconfig b/browser/config/mozconfigs/linux32/l10n-mozconfig new file mode 100644 index 0000000000..c6f41967f6 --- /dev/null +++ b/browser/config/mozconfigs/linux32/l10n-mozconfig @@ -0,0 +1,18 @@ +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --enable-official-branding +ac_add_options --disable-nodejs + +. "$topsrcdir/build/mozconfig.no-compile" + +if test `uname -m` = "x86_64"; then + ac_add_options --target=i686-pc-linux + ac_add_options --host=i686-pc-linux +fi + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/l10n-mozconfig-devedition b/browser/config/mozconfigs/linux32/l10n-mozconfig-devedition new file mode 100644 index 0000000000..62ca359388 --- /dev/null +++ b/browser/config/mozconfigs/linux32/l10n-mozconfig-devedition @@ -0,0 +1,18 @@ +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-branding=browser/branding/aurora +ac_add_options --disable-nodejs + +. "$topsrcdir/build/mozconfig.no-compile" + +if test `uname -m` = "x86_64"; then + ac_add_options --target=i686-pc-linux + ac_add_options --host=i686-pc-linux +fi + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/nightly b/browser/config/mozconfigs/linux32/nightly new file mode 100644 index 0000000000..686266944d --- /dev/null +++ b/browser/config/mozconfigs/linux32/nightly @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt" + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/nightly-asan b/browser/config/mozconfigs/linux32/nightly-asan new file mode 100644 index 0000000000..7664fa71a8 --- /dev/null +++ b/browser/config/mozconfigs/linux32/nightly-asan @@ -0,0 +1,17 @@ +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -g" + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/nightly-fuzzing-asan b/browser/config/mozconfigs/linux32/nightly-fuzzing-asan new file mode 100644 index 0000000000..87084ae9ac --- /dev/null +++ b/browser/config/mozconfigs/linux32/nightly-fuzzing-asan @@ -0,0 +1,32 @@ +. $topsrcdir/build/unix/mozconfig.linux32 + +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +# Add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +ac_add_options --enable-fuzzing +unset MOZ_STDCXX_COMPAT + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +# Piggybacking UBSan for now since only a small subset of checks are enabled. +# A new build can be created when appropriate. +ac_add_options --enable-undefined-sanitizer + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/profile-generate b/browser/config/mozconfigs/linux32/profile-generate new file mode 100644 index 0000000000..8157dc0965 --- /dev/null +++ b/browser/config/mozconfigs/linux32/profile-generate @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/linux32/nightly + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/browser/config/mozconfigs/linux32/release b/browser/config/mozconfigs/linux32/release new file mode 100644 index 0000000000..c8aedd4f81 --- /dev/null +++ b/browser/config/mozconfigs/linux32/release @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/linux32/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux32/valgrind b/browser/config/mozconfigs/linux32/valgrind new file mode 100644 index 0000000000..d335038dea --- /dev/null +++ b/browser/config/mozconfigs/linux32/valgrind @@ -0,0 +1,11 @@ +. $topsrcdir/browser/config/mozconfigs/linux32/nightly + +ac_add_options --enable-valgrind +ac_add_options --disable-dmd +ac_add_options --disable-jemalloc +ac_add_options --disable-install-strip +ac_add_options --disable-gtest-in-build + +# Include the override mozconfig again (even though the above includes it) +# since it's supposed to override everything. +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64-aarch64/common-opt b/browser/config/mozconfigs/linux64-aarch64/common-opt new file mode 100644 index 0000000000..c04dbde753 --- /dev/null +++ b/browser/config/mozconfigs/linux64-aarch64/common-opt @@ -0,0 +1,19 @@ +# This file is sourced by the nightly, beta, and release mozconfigs. + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data +ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key + +. $topsrcdir/build/unix/mozconfig.linux + +unset NASM +ac_add_options --target=aarch64 + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +unset MOZ_STDCXX_COMPAT diff --git a/browser/config/mozconfigs/linux64-aarch64/opt b/browser/config/mozconfigs/linux64-aarch64/opt new file mode 100644 index 0000000000..a2c91b2b2f --- /dev/null +++ b/browser/config/mozconfigs/linux64-aarch64/opt @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64-aarch64/common-opt" + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/add-on-devel b/browser/config/mozconfigs/linux64/add-on-devel new file mode 100644 index 0000000000..50c4cd0705 --- /dev/null +++ b/browser/config/mozconfigs/linux64/add-on-devel @@ -0,0 +1,10 @@ +. $topsrcdir/browser/config/mozconfigs/linux64/nightly + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/unofficial +ac_add_options --enable-update-channel=default + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=add-on-devel diff --git a/browser/config/mozconfigs/linux64/asan-fuzzing-ccov b/browser/config/mozconfigs/linux64/asan-fuzzing-ccov new file mode 100644 index 0000000000..6838dbabb4 --- /dev/null +++ b/browser/config/mozconfigs/linux64/asan-fuzzing-ccov @@ -0,0 +1,36 @@ +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +ac_add_options --disable-sandbox +ac_add_options --disable-profiling +ac_add_options --disable-warnings-as-errors +ac_add_options --enable-coverage + +export CFLAGS="$CFLAGS --coverage" +export CXXFLAGS="$CXXFLAGS --coverage" +export LDFLAGS="$LDFLAGS --coverage -Wl,--compress-debug-sections=zlib" + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +ac_add_options --enable-fuzzing +unset MOZ_STDCXX_COMPAT + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan-ccov + +. "$topsrcdir/build/mozconfig.common.override" + diff --git a/browser/config/mozconfigs/linux64/beta b/browser/config/mozconfigs/linux64/beta new file mode 100644 index 0000000000..37723c43d4 --- /dev/null +++ b/browser/config/mozconfigs/linux64/beta @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/code-coverage b/browser/config/mozconfigs/linux64/code-coverage new file mode 100644 index 0000000000..c54562772d --- /dev/null +++ b/browser/config/mozconfigs/linux64/code-coverage @@ -0,0 +1,16 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/nightly" + +ac_add_options --disable-install-strip +ac_add_options --disable-elf-hack +ac_add_options --disable-sandbox +ac_add_options --disable-dmd +ac_add_options --disable-profiling +ac_add_options --disable-warnings-as-errors +ac_add_options --without-wasm-sandboxed-libraries +ac_add_options --enable-coverage + +CLANG_LIB_DIR="$(cd $MOZ_FETCHES_DIR/clang/lib/clang/* && cd lib/linux && pwd)" +export LDFLAGS="--coverage -L$CLANG_LIB_DIR" +export LIBS="-lclang_rt.profile-x86_64" +export RUSTFLAGS="-Ccodegen-units=1 -Zprofile -Cpanic=abort -Zpanic_abort_tests -Clink-dead-code -Coverflow-checks=off" +export RUSTDOCFLAGS="-Cpanic=abort" diff --git a/browser/config/mozconfigs/linux64/code-coverage-debug b/browser/config/mozconfigs/linux64/code-coverage-debug new file mode 100644 index 0000000000..3c511dc104 --- /dev/null +++ b/browser/config/mozconfigs/linux64/code-coverage-debug @@ -0,0 +1,9 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/code-coverage" + +ac_add_options --enable-debug=-g1 +ac_add_options --enable-rust-tests + +# https://bugs.llvm.org/show_bug.cgi?id=49226 +# LLD 12.0.0 had a behavior change that breaks coverage builds. +# Passing --no-fortran-common restores the old behavior. +export LDFLAGS="$LDFLAGS -Wl,--no-fortran-common" diff --git a/browser/config/mozconfigs/linux64/code-coverage-opt b/browser/config/mozconfigs/linux64/code-coverage-opt new file mode 100644 index 0000000000..364c8a23a9 --- /dev/null +++ b/browser/config/mozconfigs/linux64/code-coverage-opt @@ -0,0 +1,9 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/code-coverage" + +ac_add_options --enable-debug-symbols=-g1 +ac_add_options --enable-rust-tests + +# https://bugs.llvm.org/show_bug.cgi?id=49226 +# LLD 12.0.0 had a behavior change that breaks coverage builds. +# Passing --no-fortran-common restores the old behavior. +export LDFLAGS="$LDFLAGS -Wl,--no-fortran-common" diff --git a/browser/config/mozconfigs/linux64/common-opt b/browser/config/mozconfigs/linux64/common-opt new file mode 100644 index 0000000000..7181c511ba --- /dev/null +++ b/browser/config/mozconfigs/linux64/common-opt @@ -0,0 +1,14 @@ +# This file is sourced by the nightly, beta, and release mozconfigs. + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data +ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key + +. $topsrcdir/build/unix/mozconfig.linux + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 diff --git a/browser/config/mozconfigs/linux64/debug b/browser/config/mozconfigs/linux64/debug new file mode 100644 index 0000000000..e6be773cf8 --- /dev/null +++ b/browser/config/mozconfigs/linux64/debug @@ -0,0 +1,13 @@ +ac_add_options --enable-debug + +. $topsrcdir/build/unix/mozconfig.linux + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/debug-asan b/browser/config/mozconfigs/linux64/debug-asan new file mode 100644 index 0000000000..a4999be7d1 --- /dev/null +++ b/browser/config/mozconfigs/linux64/debug-asan @@ -0,0 +1,32 @@ +# Use at least -O1 for optimization to avoid stack space +# exhaustions caused by Clang function inlining. +ac_add_options --enable-debug +ac_add_options --enable-optimize="-O1" + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +ac_add_options --enable-linker=lld + +# Build with fuzzing support, so this build can also be used +# to analyze fuzzing bugs with rr. +ac_add_options --enable-fuzzing + +# Enable ASan for rust code. This is done for specific build tasks rather than +# globally in mozconfig.asan because it requires an unstable -Z flag. +export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address" + +# Include 'SourceRepository' in application.ini which +# is used by Pernosco to locate source +export MOZ_INCLUDE_SOURCE_INFO=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/debug-fuzzing b/browser/config/mozconfigs/linux64/debug-fuzzing new file mode 100644 index 0000000000..e857c7ee7e --- /dev/null +++ b/browser/config/mozconfigs/linux64/debug-fuzzing @@ -0,0 +1,31 @@ +ac_add_options --enable-debug + +. $topsrcdir/build/unix/mozconfig.linux + +export LLVM_SYMBOLIZER="$MOZ_FETCHES_DIR/llvm-symbolizer/bin/llvm-symbolizer" + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --enable-fuzzing +unset MOZ_STDCXX_COMPAT + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +# Even in fuzzing builds without sanitizers, the UBSan runtime is pulled +# in as a dependency to allow libFuzzer to have rudimentary stacks. +# Hence we need to disable jemalloc until bug 1435148 is fully resolved. +ac_add_options --disable-jemalloc + +# Also, for consistency we disable the crash reporter and solely rely +# on libFuzzer to provide stacks both in the browser fuzzing case as +# well as for libFuzzer targets. See also bug 1649062. +ac_add_options --disable-crashreporter +ac_add_options --disable-install-strip +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/debug-fuzzing-noopt b/browser/config/mozconfigs/linux64/debug-fuzzing-noopt new file mode 100644 index 0000000000..3a7a978650 --- /dev/null +++ b/browser/config/mozconfigs/linux64/debug-fuzzing-noopt @@ -0,0 +1,29 @@ +ac_add_options --enable-debug + +. $topsrcdir/build/unix/mozconfig.linux + +export LLVM_SYMBOLIZER="$MOZ_FETCHES_DIR/llvm-symbolizer/bin/llvm-symbolizer" + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --enable-fuzzing +ac_add_options --enable-linker=lld +unset MOZ_STDCXX_COMPAT + +# Even in fuzzing builds without sanitizers, the UBSan runtime is pulled +# in as a dependency to allow libFuzzer to have rudimentary stacks. +# Hence we need to disable jemalloc until bug 1435148 is fully resolved. +ac_add_options --disable-jemalloc + +# Also, for consistency we disable the crash reporter and solely rely +# on libFuzzer to provide stacks both in the browser fuzzing case as +# well as for libFuzzer targets. See also bug 1649062. +ac_add_options --disable-crashreporter +ac_add_options --disable-install-strip +ac_add_options --disable-optimize + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/debug-searchfox-clang b/browser/config/mozconfigs/linux64/debug-searchfox-clang new file mode 100644 index 0000000000..20bea865e4 --- /dev/null +++ b/browser/config/mozconfigs/linux64/debug-searchfox-clang @@ -0,0 +1,14 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 +MOZ_AUTOMATION_CHECK=0 + +. "$topsrcdir/build/unix/mozconfig.unix" + +ac_add_options --enable-debug + +# Add the static checker +ac_add_options --enable-clang-plugin +ac_add_options --enable-mozsearch-plugin + +. "$topsrcdir/build/unix/mozconfig.stdcxx" + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/debug-static-analysis-clang b/browser/config/mozconfigs/linux64/debug-static-analysis-clang new file mode 100644 index 0000000000..91d29f1709 --- /dev/null +++ b/browser/config/mozconfigs/linux64/debug-static-analysis-clang @@ -0,0 +1,12 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +. "$topsrcdir/build/mozconfig.common" + +ac_add_options --enable-debug + +# Add the static checker +ac_add_options --enable-clang-plugin + +. "$topsrcdir/build/unix/mozconfig.stdcxx" + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/devedition b/browser/config/mozconfigs/linux64/devedition new file mode 100644 index 0000000000..97bba5d7b6 --- /dev/null +++ b/browser/config/mozconfigs/linux64/devedition @@ -0,0 +1,8 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt" + +# Add-on signing is not required for DevEdition +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/fuzzing-ccov b/browser/config/mozconfigs/linux64/fuzzing-ccov new file mode 100644 index 0000000000..002d9cd75e --- /dev/null +++ b/browser/config/mozconfigs/linux64/fuzzing-ccov @@ -0,0 +1,19 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/code-coverage" + +export LLVM_SYMBOLIZER="$MOZ_FETCHES_DIR/llvm-symbolizer/bin/llvm-symbolizer" + +# Even in fuzzing builds without sanitizers, the UBSan runtime is pulled +# in as a dependency to allow libFuzzer to have rudimentary stacks. +# Hence we need to disable jemalloc until bug 1435148 is fully resolved. +ac_add_options --disable-jemalloc + +ac_add_options --enable-debug-symbols=-g1 +ac_add_options --enable-fuzzing + +# Also, for consistency we disable the crash reporter and solely rely +# on libFuzzer to provide stacks both in the browser fuzzing case as +# well as for libFuzzer targets. See also bug 1649062. +ac_add_options --disable-crashreporter + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld diff --git a/browser/config/mozconfigs/linux64/l10n-mozconfig b/browser/config/mozconfigs/linux64/l10n-mozconfig new file mode 100644 index 0000000000..def7c5dcbe --- /dev/null +++ b/browser/config/mozconfigs/linux64/l10n-mozconfig @@ -0,0 +1,13 @@ +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.no-compile" +ac_add_options --disable-nodejs + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/l10n-mozconfig-devedition b/browser/config/mozconfigs/linux64/l10n-mozconfig-devedition new file mode 100644 index 0000000000..df7093ee8e --- /dev/null +++ b/browser/config/mozconfigs/linux64/l10n-mozconfig-devedition @@ -0,0 +1,13 @@ +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.no-compile" +ac_add_options --disable-nodejs + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/nightly b/browser/config/mozconfigs/linux64/nightly new file mode 100644 index 0000000000..15090cc01c --- /dev/null +++ b/browser/config/mozconfigs/linux64/nightly @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt" + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/nightly-as-release b/browser/config/mozconfigs/linux64/nightly-as-release new file mode 100644 index 0000000000..85b8807b1b --- /dev/null +++ b/browser/config/mozconfigs/linux64/nightly-as-release @@ -0,0 +1,3 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/nightly" + +ac_add_options --as-milestone=release diff --git a/browser/config/mozconfigs/linux64/nightly-asan b/browser/config/mozconfigs/linux64/nightly-asan new file mode 100644 index 0000000000..f16dd8cd88 --- /dev/null +++ b/browser/config/mozconfigs/linux64/nightly-asan @@ -0,0 +1,30 @@ +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +ac_add_options --enable-linker=lld + +# Enable ASan for rust code. This is done for specific build tasks rather than +# globally in mozconfig.asan because it requires an unstable -Z flag. +export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address" + +# Piggybacking UBSan for now since only a small subset of checks are enabled. +# A new build can be created when appropriate. +ac_add_options --enable-undefined-sanitizer + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +# Disable telemetry +ac_add_options MOZ_TELEMETRY_REPORTING= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/nightly-asan-reporter b/browser/config/mozconfigs/linux64/nightly-asan-reporter new file mode 100644 index 0000000000..d9c7aa314f --- /dev/null +++ b/browser/config/mozconfigs/linux64/nightly-asan-reporter @@ -0,0 +1,20 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt" + +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +ac_add_options --enable-address-sanitizer-reporter + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan-reporter + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/nightly-fuzzing-asan b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan new file mode 100644 index 0000000000..3e6ee34bdb --- /dev/null +++ b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan @@ -0,0 +1,34 @@ +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +# Enable ASan for rust code. This is done for specific build tasks rather than +# globally in mozconfig.asan because it requires an unstable -Z flag. +export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address" + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +ac_add_options --enable-fuzzing +unset MOZ_STDCXX_COMPAT + +# Piggybacking UBSan for now since only a small subset of checks are enabled. +# A new build can be created when appropriate. +ac_add_options --enable-undefined-sanitizer + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/nightly-fuzzing-asan-noopt b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan-noopt new file mode 100644 index 0000000000..a377a53288 --- /dev/null +++ b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan-noopt @@ -0,0 +1,34 @@ +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --disable-optimize + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +# Enable ASan for rust code. This is done for specific build tasks rather than +# globally in mozconfig.asan because it requires an unstable -Z flag. +export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address" + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +ac_add_options --enable-fuzzing +unset MOZ_STDCXX_COMPAT + +# Piggybacking UBSan for now since only a small subset of checks are enabled. +# A new build can be created when appropriate. +ac_add_options --enable-undefined-sanitizer + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/nightly-fuzzing-asan-nyx b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan-nyx new file mode 100644 index 0000000000..bf66d15f85 --- /dev/null +++ b/browser/config/mozconfigs/linux64/nightly-fuzzing-asan-nyx @@ -0,0 +1,40 @@ +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +export CC="$MOZ_FETCHES_DIR/afl-instrumentation/bin/afl-clang-fast" +export CXX="$MOZ_FETCHES_DIR/afl-instrumentation/bin/afl-clang-fast++" + +export HOST_CC="$MOZ_FETCHES_DIR/clang/bin/clang" +export HOST_CXX="$MOZ_FETCHES_DIR/clang/bin/clang++" + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +# ASan specific options on Linux +ac_add_options --enable-valgrind + +. $topsrcdir/build/unix/mozconfig.asan +ac_add_options --disable-elf-hack + +# Enable ASan for rust code. This is done for specific build tasks rather than +# globally in mozconfig.asan because it requires an unstable -Z flag. +export RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address" + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +ac_add_options --enable-snapshot-fuzzing +unset MOZ_STDCXX_COMPAT + +# Piggybacking UBSan for now since only a small subset of checks are enabled. +# A new build can be created when appropriate. +ac_add_options --enable-undefined-sanitizer + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/non-unified b/browser/config/mozconfigs/linux64/non-unified new file mode 100644 index 0000000000..7f2bd197a3 --- /dev/null +++ b/browser/config/mozconfigs/linux64/non-unified @@ -0,0 +1,5 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +. $topsrcdir/browser/config/mozconfigs/linux64/nightly + +ac_add_options --disable-unified-build diff --git a/browser/config/mozconfigs/linux64/noopt-debug b/browser/config/mozconfigs/linux64/noopt-debug new file mode 100644 index 0000000000..7c13faad7b --- /dev/null +++ b/browser/config/mozconfigs/linux64/noopt-debug @@ -0,0 +1,7 @@ +# Developers often build with these options for a better debugging experience. +. "$topsrcdir/browser/config/mozconfigs/linux64/debug" + +# We add this last to guard against inadvertent changes in the debug config. +# It may conflict with settings from mozconfig.override, but that seems +# unlikely. +ac_add_options --disable-optimize diff --git a/browser/config/mozconfigs/linux64/plain-debug b/browser/config/mozconfigs/linux64/plain-debug new file mode 100644 index 0000000000..7fa7f88f16 --- /dev/null +++ b/browser/config/mozconfigs/linux64/plain-debug @@ -0,0 +1,3 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/plain-opt" + +ac_add_options --enable-debug diff --git a/browser/config/mozconfigs/linux64/plain-opt b/browser/config/mozconfigs/linux64/plain-opt new file mode 100644 index 0000000000..b5c1e469c5 --- /dev/null +++ b/browser/config/mozconfigs/linux64/plain-opt @@ -0,0 +1 @@ +ac_add_options --disable-release diff --git a/browser/config/mozconfigs/linux64/plain-opt-trunk b/browser/config/mozconfigs/linux64/plain-opt-trunk new file mode 100644 index 0000000000..9080fe485d --- /dev/null +++ b/browser/config/mozconfigs/linux64/plain-opt-trunk @@ -0,0 +1,2 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +ac_add_options --enable-clang-plugin diff --git a/browser/config/mozconfigs/linux64/profile-generate b/browser/config/mozconfigs/linux64/profile-generate new file mode 100644 index 0000000000..6499ff99c1 --- /dev/null +++ b/browser/config/mozconfigs/linux64/profile-generate @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/linux64/nightly + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/browser/config/mozconfigs/linux64/release b/browser/config/mozconfigs/linux64/release new file mode 100644 index 0000000000..37723c43d4 --- /dev/null +++ b/browser/config/mozconfigs/linux64/release @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/source b/browser/config/mozconfigs/linux64/source new file mode 100644 index 0000000000..8ad4faf6b3 --- /dev/null +++ b/browser/config/mozconfigs/linux64/source @@ -0,0 +1,6 @@ +# The source "build" only needs a mozconfig because we use the build system as +# our script for generating it. This allows us to run configure without any +# extra dependencies on specific toolchains, e.g. gtk3. +ac_add_options --disable-compile-environment +ac_add_options --disable-nodejs +export MOZILLA_OFFICIAL=1 diff --git a/browser/config/mozconfigs/linux64/tsan b/browser/config/mozconfigs/linux64/tsan new file mode 100644 index 0000000000..7433612cd7 --- /dev/null +++ b/browser/config/mozconfigs/linux64/tsan @@ -0,0 +1,24 @@ +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +. $topsrcdir/build/unix/mozconfig.linux +. $topsrcdir/build/unix/mozconfig.tsan +ac_add_options --disable-elf-hack + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=tsan + +# Disable telemetry +ac_add_options MOZ_TELEMETRY_REPORTING= + +# rustfmt is currently missing in Rust nightly +unset RUSTFMT + +# Current Rust Nightly has warnings +ac_add_options --disable-warnings-as-errors + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/linux64/tsan-fuzzing b/browser/config/mozconfigs/linux64/tsan-fuzzing new file mode 100644 index 0000000000..54821a26cd --- /dev/null +++ b/browser/config/mozconfigs/linux64/tsan-fuzzing @@ -0,0 +1,7 @@ +. "$topsrcdir/browser/config/mozconfigs/linux64/tsan" + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +ac_add_options --enable-fuzzing +unset MOZ_STDCXX_COMPAT diff --git a/browser/config/mozconfigs/linux64/valgrind b/browser/config/mozconfigs/linux64/valgrind new file mode 100644 index 0000000000..ffaeab65d7 --- /dev/null +++ b/browser/config/mozconfigs/linux64/valgrind @@ -0,0 +1,13 @@ +MOZ_AUTOMATION_CHECK=0 + +. $topsrcdir/browser/config/mozconfigs/linux64/nightly + +ac_add_options --enable-valgrind +ac_add_options --disable-dmd +ac_add_options --disable-jemalloc +ac_add_options --disable-install-strip +ac_add_options --disable-gtest-in-build + +# Include the override mozconfig again (even though the above includes it) +# since it's supposed to override everything. +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64-aarch64/beta b/browser/config/mozconfigs/macosx64-aarch64/beta new file mode 100644 index 0000000000..c5c7d9558a --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/beta @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64-aarch64/common-opt b/browser/config/mozconfigs/macosx64-aarch64/common-opt new file mode 100644 index 0000000000..dece8d3f14 --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/common-opt @@ -0,0 +1,30 @@ +# This file is sourced by the nightly, beta, and release mozconfigs. + +. $topsrcdir/build/macosx/mozconfig.common + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} + +if test `uname -s` != Linux; then +APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}" +else +APIKEYDIR="${APIKEYDIR:-/builds}" +fi + +ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data +ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --target=aarch64-apple-darwin + +# As of Clang 13, the default is -mcpu=apple-m1 when using a aarch64-apple-macos target, +# but we're using apple64-apple-darwin, which defaults to -mcpu=apple-a7, which disables +# a bunch of # performance-enabling CPU features. +# TODO: We'll want to switch to aarch64-apple-macos eventually. +export CFLAGS="$CFLAGS -mcpu=apple-m1" +export CXXFLAGS="$CXXFLAGS -mcpu=apple-m1" diff --git a/browser/config/mozconfigs/macosx64-aarch64/cross-noopt-debug b/browser/config/mozconfigs/macosx64-aarch64/cross-noopt-debug new file mode 100644 index 0000000000..5a95a8e6c3 --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/cross-noopt-debug @@ -0,0 +1,11 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +# Developers often build with these options for a better debugging experience. +. "$topsrcdir/browser/config/mozconfigs/macosx64/debug" + +ac_add_options --target=aarch64-apple-darwin + +# We add this last to guard against inadvertent changes in the debug config. +# It may conflict with settings from mozconfig.override, but that seems +# unlikely. +ac_add_options --disable-optimize diff --git a/browser/config/mozconfigs/macosx64-aarch64/debug-fuzzing b/browser/config/mozconfigs/macosx64-aarch64/debug-fuzzing new file mode 100644 index 0000000000..89768e54fe --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/debug-fuzzing @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/debug-fuzzing" + +ac_add_options --target=aarch64-apple-darwin + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64-aarch64/devedition b/browser/config/mozconfigs/macosx64-aarch64/devedition new file mode 100644 index 0000000000..f9e0159864 --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/devedition @@ -0,0 +1,19 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt" + +# Add-on signing is not required for DevEdition +MOZ_REQUIRE_SIGNING= + +ac_add_options --enable-instruments + +# Cross-compiled builds fail when dtrace is enabled +if test `uname -s` != Linux; then + ac_add_options --enable-dtrace +fi + +if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then +ac_add_options --with-macbundlename-prefix=Firefox +fi + +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64-aarch64/nightly b/browser/config/mozconfigs/macosx64-aarch64/nightly new file mode 100644 index 0000000000..742b1bc7b6 --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/nightly @@ -0,0 +1,12 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt" + +ac_add_options --enable-instruments + +# Cross-compiled builds fail when dtrace is enabled +if test `uname -s` != Linux; then + ac_add_options --enable-dtrace +fi + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64-aarch64/nightly-fuzzing-asan b/browser/config/mozconfigs/macosx64-aarch64/nightly-fuzzing-asan new file mode 100644 index 0000000000..a0b0d1695c --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/nightly-fuzzing-asan @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/nightly-fuzzing-asan" + +ac_add_options --target=aarch64-apple-darwin + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64-aarch64/release b/browser/config/mozconfigs/macosx64-aarch64/release new file mode 100644 index 0000000000..c5c7d9558a --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/release @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64-aarch64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/add-on-devel b/browser/config/mozconfigs/macosx64/add-on-devel new file mode 100644 index 0000000000..add26e5713 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/add-on-devel @@ -0,0 +1,10 @@ +. $topsrcdir/browser/config/mozconfigs/macosx64/nightly + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/unofficial +ac_add_options --enable-update-channel=default + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=add-on-devel diff --git a/browser/config/mozconfigs/macosx64/beta b/browser/config/mozconfigs/macosx64/beta new file mode 100644 index 0000000000..232750daa4 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/beta @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/code-coverage b/browser/config/mozconfigs/macosx64/code-coverage new file mode 100644 index 0000000000..c686467b46 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/code-coverage @@ -0,0 +1,13 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/nightly" + +ac_add_options --enable-debug-symbols=-g1 +ac_add_options --disable-sandbox +ac_add_options --disable-warnings-as-errors +ac_add_options --without-wasm-sandboxed-libraries +ac_add_options --enable-coverage + +CLANG_LIB_DIR="$(cd $MOZ_FETCHES_DIR/clang/lib/clang/* && cd lib/darwin && pwd)" +export LDFLAGS="-coverage -L$CLANG_LIB_DIR" +export LIBS="-lclang_rt.profile_osx" +export RUSTFLAGS="-Ccodegen-units=1 -Zprofile -Cpanic=abort -Zpanic_abort_tests -Clink-dead-code -Coverflow-checks=off" +export RUSTDOCFLAGS="-Cpanic=abort" diff --git a/browser/config/mozconfigs/macosx64/common-opt b/browser/config/mozconfigs/macosx64/common-opt new file mode 100644 index 0000000000..1100ecd281 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/common-opt @@ -0,0 +1,14 @@ +# This file is sourced by the nightly, beta, and release mozconfigs. + +. $topsrcdir/build/macosx/mozconfig.common + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=/builds/sb-gapi.data +ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 diff --git a/browser/config/mozconfigs/macosx64/cross-noopt-debug b/browser/config/mozconfigs/macosx64/cross-noopt-debug new file mode 100644 index 0000000000..87461dfd2e --- /dev/null +++ b/browser/config/mozconfigs/macosx64/cross-noopt-debug @@ -0,0 +1,9 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +# Developers often build with these options for a better debugging experience. +. "$topsrcdir/browser/config/mozconfigs/macosx64/debug" + +# We add this last to guard against inadvertent changes in the debug config. +# It may conflict with settings from mozconfig.override, but that seems +# unlikely. +ac_add_options --disable-optimize diff --git a/browser/config/mozconfigs/macosx64/debug b/browser/config/mozconfigs/macosx64/debug new file mode 100644 index 0000000000..de193b05c1 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/debug @@ -0,0 +1,13 @@ +. $topsrcdir/build/macosx/mozconfig.common + +ac_add_options --enable-debug + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/debug-asan b/browser/config/mozconfigs/macosx64/debug-asan new file mode 100644 index 0000000000..0029981109 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/debug-asan @@ -0,0 +1,17 @@ +# Use at least -O1 for optimization to avoid stack space +# exhaustions caused by Clang function inlining. +ac_add_options --enable-project=browser +ac_add_options --enable-debug +ac_add_options --enable-optimize="-O1" + +. $topsrcdir/build/unix/mozconfig.asan + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +# Before mozconfig.common so we can test for asan builds there +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/macosx/mozconfig.common" +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/debug-fuzzing b/browser/config/mozconfigs/macosx64/debug-fuzzing new file mode 100644 index 0000000000..a1f60d03d3 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/debug-fuzzing @@ -0,0 +1,11 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/debug" + +ac_add_options --enable-fuzzing + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/debug-searchfox b/browser/config/mozconfigs/macosx64/debug-searchfox new file mode 100644 index 0000000000..4d8d47fe72 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/debug-searchfox @@ -0,0 +1,11 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 +MOZ_AUTOMATION_CHECK=0 + +. $topsrcdir/build/macosx/mozconfig.common + +ac_add_options --enable-debug + +ac_add_options --enable-clang-plugin +ac_add_options --enable-mozsearch-plugin + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/debug-static-analysis b/browser/config/mozconfigs/macosx64/debug-static-analysis new file mode 100644 index 0000000000..b9241faffa --- /dev/null +++ b/browser/config/mozconfigs/macosx64/debug-static-analysis @@ -0,0 +1,9 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +. $topsrcdir/build/macosx/mozconfig.common + +ac_add_options --enable-debug + +ac_add_options --enable-clang-plugin + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/devedition b/browser/config/mozconfigs/macosx64/devedition new file mode 100644 index 0000000000..dc9b924068 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/devedition @@ -0,0 +1,19 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt" + +# Add-on signing is not required for DevEdition +MOZ_REQUIRE_SIGNING= + +ac_add_options --enable-instruments + +# Cross-compiled builds fail when dtrace is enabled +if test `uname -s` != Linux; then + ac_add_options --enable-dtrace +fi + +if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then +ac_add_options --with-macbundlename-prefix=Firefox +fi + +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/l10n-mozconfig b/browser/config/mozconfigs/macosx64/l10n-mozconfig new file mode 100644 index 0000000000..e0877a75af --- /dev/null +++ b/browser/config/mozconfigs/macosx64/l10n-mozconfig @@ -0,0 +1,24 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/build/mozconfig.no-compile" + +if test `uname -s` = "Linux"; then + # We need to indicate the target for cross builds + ac_add_options --target=x86_64-apple-darwin + export MKFSHFS=$MOZ_FETCHES_DIR/hfsplus/newfs_hfs + export DMG_TOOL=$MOZ_FETCHES_DIR/dmg/dmg + export HFS_TOOL=$MOZ_FETCHES_DIR/dmg/hfsplus +fi + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --enable-official-branding + +ac_add_options --disable-nodejs +unset NODEJS + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition b/browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition new file mode 100644 index 0000000000..f629699c2e --- /dev/null +++ b/browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition @@ -0,0 +1,28 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/build/mozconfig.no-compile" + +if test `uname -s` = "Linux"; then + # We need to indicate the target for cross builds + ac_add_options --target=x86_64-apple-darwin + export MKFSHFS=$MOZ_FETCHES_DIR/hfsplus/newfs_hfs + export DMG_TOOL=$MOZ_FETCHES_DIR/dmg/dmg + export HFS_TOOL=$MOZ_FETCHES_DIR/dmg/hfsplus +fi + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-branding=browser/branding/aurora + +ac_add_options --disable-nodejs +unset NODEJS + +if test "${MOZ_UPDATE_CHANNEL}" = "nightly"; then +ac_add_options --with-macbundlename-prefix=Firefox +fi + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/nightly b/browser/config/mozconfigs/macosx64/nightly new file mode 100644 index 0000000000..95cd36fe9e --- /dev/null +++ b/browser/config/mozconfigs/macosx64/nightly @@ -0,0 +1,12 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt" + +ac_add_options --enable-instruments + +# Cross-compiled builds fail when dtrace is enabled +if test `uname -s` != Linux; then + ac_add_options --enable-dtrace +fi + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/nightly-as-release b/browser/config/mozconfigs/macosx64/nightly-as-release new file mode 100644 index 0000000000..738700303d --- /dev/null +++ b/browser/config/mozconfigs/macosx64/nightly-as-release @@ -0,0 +1,3 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/nightly" + +ac_add_options --as-milestone=release diff --git a/browser/config/mozconfigs/macosx64/nightly-asan b/browser/config/mozconfigs/macosx64/nightly-asan new file mode 100644 index 0000000000..b23a5f4a5c --- /dev/null +++ b/browser/config/mozconfigs/macosx64/nightly-asan @@ -0,0 +1,21 @@ +ac_add_options --enable-project=browser +# We still need to build with debug symbols +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2" + +. $topsrcdir/build/unix/mozconfig.asan + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +# Need this to prevent name conflicts with the normal nightly build packages +# Before mozconfig.common so we can test for asan builds there +export MOZ_PKG_SPECIAL=asan + +. "$topsrcdir/build/macosx/mozconfig.common" + +# This is disabled by mozconfig.asan and reenabled by mozconfig.common. +# Ensure it is disabled since it conflicts with ASan. +ac_add_options --disable-crashreporter + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/nightly-fuzzing-asan b/browser/config/mozconfigs/macosx64/nightly-fuzzing-asan new file mode 100644 index 0000000000..08a52adfa3 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/nightly-fuzzing-asan @@ -0,0 +1,12 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/nightly-asan" + +ac_add_options --enable-fuzzing + +# gold or lld is required for libFuzzer to work properly +ac_add_options --enable-linker=lld + +# Piggybacking UBSan for now since only a small subset of checks are enabled. +# A new build can be created when appropriate. +ac_add_options --enable-undefined-sanitizer + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/non-unified b/browser/config/mozconfigs/macosx64/non-unified new file mode 100644 index 0000000000..bc0bb0c922 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/non-unified @@ -0,0 +1,5 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +. $topsrcdir/browser/config/mozconfigs/macosx64/nightly + +ac_add_options --disable-unified-build diff --git a/browser/config/mozconfigs/macosx64/opt-static-analysis b/browser/config/mozconfigs/macosx64/opt-static-analysis new file mode 100644 index 0000000000..1bf9610dfa --- /dev/null +++ b/browser/config/mozconfigs/macosx64/opt-static-analysis @@ -0,0 +1,11 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +. $topsrcdir/build/macosx/mozconfig.common + +ac_add_options --disable-debug +ac_add_options --enable-optimize + +ac_add_options --enable-clang-plugin + +. "$topsrcdir/build/mozconfig.common.override" + diff --git a/browser/config/mozconfigs/macosx64/plain-debug b/browser/config/mozconfigs/macosx64/plain-debug new file mode 100644 index 0000000000..874c388884 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/plain-debug @@ -0,0 +1,3 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/plain-opt" + +ac_add_options --enable-debug diff --git a/browser/config/mozconfigs/macosx64/plain-opt b/browser/config/mozconfigs/macosx64/plain-opt new file mode 100644 index 0000000000..b5c1e469c5 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/plain-opt @@ -0,0 +1 @@ +ac_add_options --disable-release diff --git a/browser/config/mozconfigs/macosx64/profile-generate b/browser/config/mozconfigs/macosx64/profile-generate new file mode 100644 index 0000000000..5d8d77d61c --- /dev/null +++ b/browser/config/mozconfigs/macosx64/profile-generate @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/macosx64/nightly + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/browser/config/mozconfigs/macosx64/release b/browser/config/mozconfigs/macosx64/release new file mode 100644 index 0000000000..232750daa4 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/release @@ -0,0 +1,5 @@ +. "$topsrcdir/browser/config/mozconfigs/macosx64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/macosx64/repack b/browser/config/mozconfigs/macosx64/repack new file mode 100644 index 0000000000..f9f0070873 --- /dev/null +++ b/browser/config/mozconfigs/macosx64/repack @@ -0,0 +1,8 @@ +# This mozconfig is responsible merely for getting the cross tools setup +# for repacking a .tar into a .dmg as returned from signing. + +export MKFSHFS=$MOZ_FETCHES_DIR/hfsplus/newfs_hfs +export DMG_TOOL=$MOZ_FETCHES_DIR/dmg/dmg +export HFS_TOOL=$MOZ_FETCHES_DIR/dmg/hfsplus +ac_add_options --disable-compile-environment +ac_add_options --target=x86_64-apple-darwin diff --git a/browser/config/mozconfigs/whitelist b/browser/config/mozconfigs/whitelist new file mode 100644 index 0000000000..d4300b0344 --- /dev/null +++ b/browser/config/mozconfigs/whitelist @@ -0,0 +1,41 @@ +# 'nightly' contains things that are in nightly mozconfigs and allowed to be missing from release builds. +# Other keys in whitelist contain things are in that branches mozconfigs and allowed to be missing from nightly builds. +whitelist = { + 'release': {}, + 'nightly': {}, + } + +all_platforms = ['win64', 'win64-aarch64', 'win32', 'linux32', 'linux64', 'macosx64'] + +for platform in all_platforms: + whitelist['nightly'][platform] = [ + 'ac_add_options --with-branding=browser/branding/nightly', + ] + +whitelist['nightly']['macosx64'] += [ + 'ac_add_options --enable-instruments', + 'ac_add_options --enable-dtrace', + 'if test `uname -s` != Linux; then', + 'fi', +] + +whitelist['nightly']['win64'] += [ + '. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"', +] + +for platform in all_platforms: + whitelist['release'][platform] = [ + 'ac_add_options --enable-update-channel=release', + 'ac_add_options --enable-official-branding', + ] + +whitelist['release']['linux32'] += [ + 'export MOZILLA_OFFICIAL=1', +] +whitelist['release']['linux64'] += [ + 'export MOZILLA_OFFICIAL=1', +] + +if __name__ == '__main__': + import pprint + pprint.pprint(whitelist) diff --git a/browser/config/mozconfigs/win32/add-on-devel b/browser/config/mozconfigs/win32/add-on-devel new file mode 100644 index 0000000000..0491100a2d --- /dev/null +++ b/browser/config/mozconfigs/win32/add-on-devel @@ -0,0 +1,10 @@ +. $topsrcdir/browser/config/mozconfigs/win32/nightly + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/unofficial +ac_add_options --enable-update-channel=default + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=add-on-devel diff --git a/browser/config/mozconfigs/win32/beta b/browser/config/mozconfigs/win32/beta new file mode 100644 index 0000000000..9cb7047889 --- /dev/null +++ b/browser/config/mozconfigs/win32/beta @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" +. "$topsrcdir/browser/config/mozconfigs/win32/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/common-opt b/browser/config/mozconfigs/win32/common-opt new file mode 100644 index 0000000000..adde1b2615 --- /dev/null +++ b/browser/config/mozconfigs/win32/common-opt @@ -0,0 +1,22 @@ +# This file is sourced by the nightly, beta, and release mozconfigs. + +. "$topsrcdir/browser/config/mozconfigs/common" + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} + +if test `uname -s` != Linux; then +APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}" +else +APIKEYDIR="${APIKEYDIR:-/builds}" +fi + +ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data + +ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 diff --git a/browser/config/mozconfigs/win32/common-win32 b/browser/config/mozconfigs/win32/common-win32 new file mode 100644 index 0000000000..bf75594aed --- /dev/null +++ b/browser/config/mozconfigs/win32/common-win32 @@ -0,0 +1,16 @@ +# This file is used by all Win32 builds + +ac_add_options --target=i686-pc-windows-msvc + +. $topsrcdir/build/win32/mozconfig.vs-latest + +if test `uname -s` = Linux; then + +# Configure expects executables for check_prog, so set the relevant files +# as executable on the first evaluation of the mozconfig where they exist. +export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe" +if [ -f "${UPX}" ]; then + chmod +x "${UPX}" +fi + +fi diff --git a/browser/config/mozconfigs/win32/debug b/browser/config/mozconfigs/win32/debug new file mode 100644 index 0000000000..2f0c2dc696 --- /dev/null +++ b/browser/config/mozconfigs/win32/debug @@ -0,0 +1,15 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" + +ac_add_options --enable-debug + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/debug-fuzzing b/browser/config/mozconfigs/win32/debug-fuzzing new file mode 100644 index 0000000000..874661253a --- /dev/null +++ b/browser/config/mozconfigs/win32/debug-fuzzing @@ -0,0 +1,11 @@ +. "$topsrcdir/browser/config/mozconfigs/win32/debug" + +# Disable telemetry. All network activity is undesirable in fuzzing. +ac_add_options MOZ_TELEMETRY_REPORTING= + +ac_add_options --enable-fuzzing + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/debug-static-analysis b/browser/config/mozconfigs/win32/debug-static-analysis new file mode 100644 index 0000000000..ad046f27e2 --- /dev/null +++ b/browser/config/mozconfigs/win32/debug-static-analysis @@ -0,0 +1,12 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" + +ac_add_options --enable-debug + +ac_add_options --enable-clang-plugin + +. "$topsrcdir/build/mozconfig.clang-cl" +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/devedition b/browser/config/mozconfigs/win32/devedition new file mode 100644 index 0000000000..fef90cab0e --- /dev/null +++ b/browser/config/mozconfigs/win32/devedition @@ -0,0 +1,10 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" +. "$topsrcdir/browser/config/mozconfigs/win32/common-opt" + +# Add-on signing is not required for DevEdition +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/l10n-mozconfig b/browser/config/mozconfigs/win32/l10n-mozconfig new file mode 100644 index 0000000000..2531cc233c --- /dev/null +++ b/browser/config/mozconfigs/win32/l10n-mozconfig @@ -0,0 +1,17 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" +. "$topsrcdir/build/mozconfig.no-compile" + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --enable-official-branding + +ac_add_options --disable-nodejs +unset NODEJS + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/l10n-mozconfig-devedition b/browser/config/mozconfigs/win32/l10n-mozconfig-devedition new file mode 100644 index 0000000000..de54160e9b --- /dev/null +++ b/browser/config/mozconfigs/win32/l10n-mozconfig-devedition @@ -0,0 +1,17 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" +. "$topsrcdir/build/mozconfig.no-compile" + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-branding=browser/branding/aurora + +ac_add_options --disable-nodejs +unset NODEJS + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/mingwclang b/browser/config/mozconfigs/win32/mingwclang new file mode 100644 index 0000000000..2a86301b77 --- /dev/null +++ b/browser/config/mozconfigs/win32/mingwclang @@ -0,0 +1,54 @@ +# Sets: +# MOZ_AUTOMATION flags +# SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE - shouldn't be used? +. "$topsrcdir/build/mozconfig.win-common" + +# Sets: +# build/mozconfig.common +# AUTOCLOBBER=1 +# --enable-crashreporter +# --enable-release +# MOZ_ADDON_SIGNING +# MOZ_REQUIRE_SIGNING +# --enable-js-shell +# build/mozconfig.automation +# MOZ_AUTOMATION_ flags +. "$topsrcdir/browser/config/mozconfigs/common" + +export MOZ_PACKAGE_JSSHELL=1 + +# MinGW Stuff +ac_add_options --target=i686-pc-windows-gnu +ac_add_options --with-toolchain-prefix=i686-w64-mingw32- + +ac_add_options --disable-warnings-as-errors +mk_add_options "export WIDL_TIME_OVERRIDE=0" + +# This replicates Tor's configuration +ac_add_options --enable-proxy-bypass-protection + +# These aren't supported on mingw at this time +ac_add_options --disable-webrtc # Bug 1393901 +ac_add_options --disable-geckodriver # Bug 1489320 +ac_add_options --disable-update-agent # Bug 1561797 +ac_add_options --disable-default-browser-agent # WinToast does not build on mingw +ac_add_options --disable-notification-server # Toast notifications don't build on mingw. + +# Find our toolchain +HOST_CC="$MOZ_FETCHES_DIR/clang/bin/clang" +HOST_CXX="$MOZ_FETCHES_DIR/clang/bin/clang++" +CC="$MOZ_FETCHES_DIR/clang/bin/i686-w64-mingw32-clang" +CXX="$MOZ_FETCHES_DIR/clang/bin/i686-w64-mingw32-clang++" +CXXFLAGS="-fms-extensions" +CFLAGS="$CFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" +CXXFLAGS="$CXXFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" + +# We want to make sure we use binutils and other binaries in the tooltool +# package. +mk_add_options "export PATH=$MOZ_FETCHES_DIR/clang/bin:$MOZ_FETCHES_DIR/upx/bin:$MOZ_FETCHES_DIR/fxc2/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH" + +# Do not include the visual studio related mozconfigs of course + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/mingwclang-debug b/browser/config/mozconfigs/win32/mingwclang-debug new file mode 100644 index 0000000000..630dd5f6b7 --- /dev/null +++ b/browser/config/mozconfigs/win32/mingwclang-debug @@ -0,0 +1,3 @@ +. "$topsrcdir/browser/config/mozconfigs/win32/mingwclang" + +ac_add_options --enable-debug diff --git a/browser/config/mozconfigs/win32/nightly b/browser/config/mozconfigs/win32/nightly new file mode 100644 index 0000000000..e53ce429c7 --- /dev/null +++ b/browser/config/mozconfigs/win32/nightly @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" +. "$topsrcdir/browser/config/mozconfigs/win32/common-opt" + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win32/noopt-debug b/browser/config/mozconfigs/win32/noopt-debug new file mode 100644 index 0000000000..d66c139354 --- /dev/null +++ b/browser/config/mozconfigs/win32/noopt-debug @@ -0,0 +1,9 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +# Developers often build with these options for a better debugging experience. +. "$topsrcdir/browser/config/mozconfigs/win32/debug" + +# We add this last to guard against inadvertent changes in the debug config. +# It may conflict with settings from mozconfig.override, but that seems +# unlikely. +ac_add_options --disable-optimize diff --git a/browser/config/mozconfigs/win32/profile-generate b/browser/config/mozconfigs/win32/profile-generate new file mode 100644 index 0000000000..bc29b253c0 --- /dev/null +++ b/browser/config/mozconfigs/win32/profile-generate @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/win32/nightly + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/browser/config/mozconfigs/win32/release b/browser/config/mozconfigs/win32/release new file mode 100644 index 0000000000..9cb7047889 --- /dev/null +++ b/browser/config/mozconfigs/win32/release @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win32/common-win32" +. "$topsrcdir/browser/config/mozconfigs/win32/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64-aarch64/beta b/browser/config/mozconfigs/win64-aarch64/beta new file mode 100644 index 0000000000..25865a2716 --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/beta @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64-aarch64/common-opt b/browser/config/mozconfigs/win64-aarch64/common-opt new file mode 100644 index 0000000000..302382a755 --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/common-opt @@ -0,0 +1,26 @@ +# This file is sourced by the nightly, beta, and release mozconfigs. + +. "$topsrcdir/browser/config/mozconfigs/common" + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} + +if test `uname -s` != Linux; then +APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}" +else +APIKEYDIR="${APIKEYDIR:-/builds}" +fi + +ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data + +ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +if test -n "$MOZ_ARTIFACT_TASK_WIN32_OPT"; then + ac_add_options --enable-eme=widevine +fi diff --git a/browser/config/mozconfigs/win64-aarch64/common-win64 b/browser/config/mozconfigs/win64-aarch64/common-win64 new file mode 100644 index 0000000000..fdb2a5886c --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/common-win64 @@ -0,0 +1,16 @@ +# This file is used by all AArch64 Win64 builds + +ac_add_options --target=aarch64-pc-windows-msvc + +. $topsrcdir/build/win64-aarch64/mozconfig.vs-latest + +if test `uname -s` = Linux; then + +# Configure expects executables for check_prog, so set the relevant files +# as executable on the first evaluation of the mozconfig where they exist. +export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe" +if [ -f "${UPX}" ]; then + chmod +x "${UPX}" +fi + +fi diff --git a/browser/config/mozconfigs/win64-aarch64/debug b/browser/config/mozconfigs/win64-aarch64/debug new file mode 100644 index 0000000000..1242c2f098 --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/debug @@ -0,0 +1,16 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" + +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64" + +ac_add_options --enable-debug + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64-aarch64/devedition b/browser/config/mozconfigs/win64-aarch64/devedition new file mode 100644 index 0000000000..277a6fc7ce --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/devedition @@ -0,0 +1,10 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt" + +# Add-on signing is not required for DevEdition +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig new file mode 100644 index 0000000000..678ea90f6d --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig @@ -0,0 +1,17 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64" +. "$topsrcdir/build/mozconfig.no-compile" + +ac_add_options --enable-update-channel="${MOZ_UPDATE_CHANNEL}" +ac_add_options --enable-official-branding + +ac_add_options --disable-nodejs +unset NODEJS + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition new file mode 100644 index 0000000000..f2a04142d5 --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition @@ -0,0 +1,17 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64" +. "$topsrcdir/build/mozconfig.no-compile" + +ac_add_options --enable-update-channel="${MOZ_UPDATE_CHANNEL}" +ac_add_options --with-branding=browser/branding/aurora + +ac_add_options --disable-nodejs +unset NODEJS + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64-aarch64/nightly b/browser/config/mozconfigs/win64-aarch64/nightly new file mode 100644 index 0000000000..780233c0e1 --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/nightly @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt" + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64-aarch64/release b/browser/config/mozconfigs/win64-aarch64/release new file mode 100644 index 0000000000..25865a2716 --- /dev/null +++ b/browser/config/mozconfigs/win64-aarch64/release @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/add-on-devel b/browser/config/mozconfigs/win64/add-on-devel new file mode 100644 index 0000000000..aa42d54743 --- /dev/null +++ b/browser/config/mozconfigs/win64/add-on-devel @@ -0,0 +1,10 @@ +. $topsrcdir/browser/config/mozconfigs/win64/nightly + +#add-on signing is checked but not enforced +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/unofficial +ac_add_options --enable-update-channel=default + +#Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=add-on-devel diff --git a/browser/config/mozconfigs/win64/beta b/browser/config/mozconfigs/win64/beta new file mode 100644 index 0000000000..ab3613c373 --- /dev/null +++ b/browser/config/mozconfigs/win64/beta @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/code-coverage b/browser/config/mozconfigs/win64/code-coverage new file mode 100644 index 0000000000..3b05224905 --- /dev/null +++ b/browser/config/mozconfigs/win64/code-coverage @@ -0,0 +1,29 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" + +ac_add_options --enable-optimize +ac_add_options --enable-debug-symbols=-g1 +ac_add_options --disable-sandbox +ac_add_options --disable-warnings-as-errors +ac_add_options --without-wasm-sandboxed-libraries +ac_add_options --enable-coverage +ac_add_options --enable-rust-tests + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +if [ -d "$MOZ_FETCHES_DIR/clang" ]; then + CLANG_LIB_DIR="$(cd $MOZ_FETCHES_DIR/clang/lib/clang/* && cd lib/windows && pwd)" + + export LDFLAGS="clang_rt.profile-x86_64.lib" +fi + +export RUSTFLAGS="-Ccodegen-units=1 -Zprofile -Cpanic=abort -Zpanic_abort_tests -Clink-dead-code -Coverflow-checks=off" +export RUSTDOCFLAGS="-Cpanic=abort" + +. "$topsrcdir/build/mozconfig.clang-cl" +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/common-opt b/browser/config/mozconfigs/win64/common-opt new file mode 100644 index 0000000000..adde1b2615 --- /dev/null +++ b/browser/config/mozconfigs/win64/common-opt @@ -0,0 +1,22 @@ +# This file is sourced by the nightly, beta, and release mozconfigs. + +. "$topsrcdir/browser/config/mozconfigs/common" + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} + +if test `uname -s` != Linux; then +APIKEYDIR="${APIKEYDIR:-${WORKSPACE}}" +else +APIKEYDIR="${APIKEYDIR:-/builds}" +fi + +ac_add_options --with-google-location-service-api-keyfile=${APIKEYDIR}/gls-gapi.data +ac_add_options --with-google-safebrowsing-api-keyfile=${APIKEYDIR}/sb-gapi.data + +ac_add_options --with-mozilla-api-keyfile=${APIKEYDIR}/mozilla-desktop-geoloc-api.key + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 diff --git a/browser/config/mozconfigs/win64/common-win64 b/browser/config/mozconfigs/win64/common-win64 new file mode 100644 index 0000000000..3a61c84141 --- /dev/null +++ b/browser/config/mozconfigs/win64/common-win64 @@ -0,0 +1,16 @@ +# This file is used by all Win64 builds + +ac_add_options --target=x86_64-pc-windows-msvc + +. $topsrcdir/build/win64/mozconfig.vs-latest + +if test `uname -s` = Linux; then + +# Configure expects executables for check_prog, so set the relevant files +# as executable on the first evaluation of the mozconfig where they exist. +export UPX="${MOZ_FETCHES_DIR}/upx-3.95-win64/upx.exe" +if [ -f "${UPX}" ]; then + chmod +x "${UPX}" +fi + +fi diff --git a/browser/config/mozconfigs/win64/debug b/browser/config/mozconfigs/win64/debug new file mode 100644 index 0000000000..a00c407529 --- /dev/null +++ b/browser/config/mozconfigs/win64/debug @@ -0,0 +1,15 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" + +ac_add_options --enable-debug + +# Needed to enable breakpad in application.ini +export MOZILLA_OFFICIAL=1 + +# Package js shell. +export MOZ_PACKAGE_JSSHELL=1 + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/debug-asan b/browser/config/mozconfigs/win64/debug-asan new file mode 100644 index 0000000000..bfa36daadd --- /dev/null +++ b/browser/config/mozconfigs/win64/debug-asan @@ -0,0 +1,16 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" + +ac_add_options --enable-debug +ac_add_options --enable-optimize="-O1" + +. "$topsrcdir/build/win64/mozconfig.asan" + +export MOZ_PACKAGE_JSSHELL=1 +export MOZ_PKG_SPECIAL=asan + +# Disable telemetry +ac_add_options MOZ_TELEMETRY_REPORTING= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/debug-fuzzing b/browser/config/mozconfigs/win64/debug-fuzzing new file mode 100644 index 0000000000..a4d6931fe0 --- /dev/null +++ b/browser/config/mozconfigs/win64/debug-fuzzing @@ -0,0 +1,11 @@ +. "$topsrcdir/browser/config/mozconfigs/win64/debug" + +# Disable telemetry. All network activity is undesirable in fuzzing. +ac_add_options MOZ_TELEMETRY_REPORTING= + +ac_add_options --enable-fuzzing + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/debug-searchfox b/browser/config/mozconfigs/win64/debug-searchfox new file mode 100644 index 0000000000..f36e414225 --- /dev/null +++ b/browser/config/mozconfigs/win64/debug-searchfox @@ -0,0 +1,15 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 +MOZ_AUTOMATION_CHECK=0 + +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" + +ac_add_options --enable-optimize +ac_add_options --enable-debug + +ac_add_options --enable-clang-plugin +ac_add_options --enable-mozsearch-plugin + +. "$topsrcdir/build/mozconfig.clang-cl" +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/devedition b/browser/config/mozconfigs/win64/devedition new file mode 100644 index 0000000000..6bbec8c3ba --- /dev/null +++ b/browser/config/mozconfigs/win64/devedition @@ -0,0 +1,10 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64/common-opt" + +# Add-on signing is not required for DevEdition +MOZ_REQUIRE_SIGNING= + +ac_add_options --with-branding=browser/branding/aurora + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/fuzzing-ccov b/browser/config/mozconfigs/win64/fuzzing-ccov new file mode 100644 index 0000000000..d91f487dde --- /dev/null +++ b/browser/config/mozconfigs/win64/fuzzing-ccov @@ -0,0 +1,11 @@ +. "$topsrcdir/browser/config/mozconfigs/win64/code-coverage" + +# Disable telemetry. All network activity is undesirable in fuzzing. +ac_add_options MOZ_TELEMETRY_REPORTING= + +ac_add_options --enable-fuzzing + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/l10n-mozconfig b/browser/config/mozconfigs/win64/l10n-mozconfig new file mode 100644 index 0000000000..c8c1368a41 --- /dev/null +++ b/browser/config/mozconfigs/win64/l10n-mozconfig @@ -0,0 +1,17 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" +. "$topsrcdir/build/mozconfig.no-compile" + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --enable-official-branding + +ac_add_options --disable-nodejs +unset NODEJS + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/l10n-mozconfig-devedition b/browser/config/mozconfigs/win64/l10n-mozconfig-devedition new file mode 100644 index 0000000000..26dcfea7b3 --- /dev/null +++ b/browser/config/mozconfigs/win64/l10n-mozconfig-devedition @@ -0,0 +1,17 @@ +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" +. "$topsrcdir/build/mozconfig.no-compile" + +ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL} +ac_add_options --with-branding=browser/branding/aurora + +ac_add_options --disable-nodejs +unset NODEJS + +export MOZILLA_OFFICIAL=1 + +# Don't autoclobber l10n, as this can lead to missing binaries and broken builds +# Bug 1283438 +mk_add_options AUTOCLOBBER= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/mingwclang b/browser/config/mozconfigs/win64/mingwclang new file mode 100644 index 0000000000..10fb3cb15c --- /dev/null +++ b/browser/config/mozconfigs/win64/mingwclang @@ -0,0 +1,54 @@ +# Sets: +# MOZ_AUTOMATION flags +# SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE - shouldn't be used? +. "$topsrcdir/build/mozconfig.win-common" + +# Sets: +# build/mozconfig.common +# AUTOCLOBBER=1 +# --enable-crashreporter +# --enable-release +# MOZ_ADDON_SIGNING +# MOZ_REQUIRE_SIGNING +# --enable-js-shell +# build/mozconfig.automation +# MOZ_AUTOMATION_ flags +. "$topsrcdir/browser/config/mozconfigs/common" + +export MOZ_PACKAGE_JSSHELL=1 + +# MinGW Stuff +ac_add_options --target=x86_64-pc-windows-gnu +ac_add_options --with-toolchain-prefix=x86_64-w64-mingw32- + +ac_add_options --disable-warnings-as-errors +mk_add_options "export WIDL_TIME_OVERRIDE=0" + +# This replicates Tor's configuration +ac_add_options --enable-proxy-bypass-protection + +# These aren't supported on mingw at this time +ac_add_options --disable-webrtc # Bug 1393901 +ac_add_options --disable-geckodriver # Bug 1489320 +ac_add_options --disable-update-agent # Bug 1561797 +ac_add_options --disable-default-browser-agent # WinToast does not build on mingw +ac_add_options --disable-notification-server # Toast notifications don't build on mingw. + +# Find our toolchain +HOST_CC="$MOZ_FETCHES_DIR/clang/bin/clang" +HOST_CXX="$MOZ_FETCHES_DIR/clang/bin/clang++" +CC="$MOZ_FETCHES_DIR/clang/bin/x86_64-w64-mingw32-clang" +CXX="$MOZ_FETCHES_DIR/clang/bin/x86_64-w64-mingw32-clang++" +CXXFLAGS="-fms-extensions" +CFLAGS="$CFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" +CXXFLAGS="$CXXFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" + +# We want to make sure we use binutils and other binaries in the tooltool +# package. +mk_add_options "export PATH=$MOZ_FETCHES_DIR/clang/bin:$MOZ_FETCHES_DIR/upx/bin:$MOZ_FETCHES_DIR/fxc2/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH" + +# Do not include the visual studio related mozconfigs of course + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/mingwclang-debug b/browser/config/mozconfigs/win64/mingwclang-debug new file mode 100644 index 0000000000..d4de97a5b8 --- /dev/null +++ b/browser/config/mozconfigs/win64/mingwclang-debug @@ -0,0 +1,3 @@ +. "$topsrcdir/browser/config/mozconfigs/win64/mingwclang" + +ac_add_options --enable-debug diff --git a/browser/config/mozconfigs/win64/nightly b/browser/config/mozconfigs/win64/nightly new file mode 100644 index 0000000000..a4cf517613 --- /dev/null +++ b/browser/config/mozconfigs/win64/nightly @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64/common-opt" + +ac_add_options --with-branding=browser/branding/nightly + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/nightly-as-release b/browser/config/mozconfigs/win64/nightly-as-release new file mode 100644 index 0000000000..1950100864 --- /dev/null +++ b/browser/config/mozconfigs/win64/nightly-as-release @@ -0,0 +1,3 @@ +. "$topsrcdir/browser/config/mozconfigs/win64/nightly" + +ac_add_options --as-milestone=release diff --git a/browser/config/mozconfigs/win64/nightly-asan b/browser/config/mozconfigs/win64/nightly-asan new file mode 100644 index 0000000000..59a6e7eea5 --- /dev/null +++ b/browser/config/mozconfigs/win64/nightly-asan @@ -0,0 +1,16 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" + +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" + +. "$topsrcdir/build/win64/mozconfig.asan" + +export MOZ_PACKAGE_JSSHELL=1 +export MOZ_PKG_SPECIAL=asan + +# Disable telemetry +ac_add_options MOZ_TELEMETRY_REPORTING= + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/nightly-asan-reporter b/browser/config/mozconfigs/win64/nightly-asan-reporter new file mode 100644 index 0000000000..c86e6b83d9 --- /dev/null +++ b/browser/config/mozconfigs/win64/nightly-asan-reporter @@ -0,0 +1,18 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64/common-opt" + +ac_add_options --disable-debug +ac_add_options --enable-optimize="-O2 -gline-tables-only" +ac_add_options --enable-address-sanitizer-reporter + +. "$topsrcdir/build/win64/mozconfig.asan" + +export MOZ_PKG_SPECIAL=asan-reporter + +ac_add_options --with-branding=browser/branding/nightly + +# Sandboxing is currently not compatible with the way the ASan reporter works +ac_add_options --disable-sandbox + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/nightly-fuzzing-asan b/browser/config/mozconfigs/win64/nightly-fuzzing-asan new file mode 100644 index 0000000000..e0d9d0f178 --- /dev/null +++ b/browser/config/mozconfigs/win64/nightly-fuzzing-asan @@ -0,0 +1,13 @@ +. "$topsrcdir/browser/config/mozconfigs/win64/nightly-asan" + +# Disable telemetry +ac_add_options MOZ_TELEMETRY_REPORTING= + +ac_add_options --disable-crashreporter + +ac_add_options --enable-fuzzing + +# Need this to prevent name conflicts with the normal nightly build packages +export MOZ_PKG_SPECIAL=asan-fuzzing + +. "$topsrcdir/build/mozconfig.common.override" diff --git a/browser/config/mozconfigs/win64/non-unified b/browser/config/mozconfigs/win64/non-unified new file mode 100644 index 0000000000..f229bcafea --- /dev/null +++ b/browser/config/mozconfigs/win64/non-unified @@ -0,0 +1,5 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +. $topsrcdir/browser/config/mozconfigs/win64/nightly + +ac_add_options --disable-unified-build diff --git a/browser/config/mozconfigs/win64/noopt-debug b/browser/config/mozconfigs/win64/noopt-debug new file mode 100644 index 0000000000..a11b25d687 --- /dev/null +++ b/browser/config/mozconfigs/win64/noopt-debug @@ -0,0 +1,9 @@ +MOZ_AUTOMATION_BUILD_SYMBOLS=0 + +# Developers often build with these options for a better debugging experience. +. "$topsrcdir/browser/config/mozconfigs/win64/debug" + +# We add this last to guard against inadvertent changes in the debug config. +# It may conflict with settings from mozconfig.override, but that seems +# unlikely. +ac_add_options --disable-optimize diff --git a/browser/config/mozconfigs/win64/plain-debug b/browser/config/mozconfigs/win64/plain-debug new file mode 100644 index 0000000000..0587a32587 --- /dev/null +++ b/browser/config/mozconfigs/win64/plain-debug @@ -0,0 +1,3 @@ +. $topsrcdir/browser/config/mozconfigs/win64/plain-opt + +ac_add_options --enable-debug diff --git a/browser/config/mozconfigs/win64/plain-opt b/browser/config/mozconfigs/win64/plain-opt new file mode 100644 index 0000000000..f0eac8a02a --- /dev/null +++ b/browser/config/mozconfigs/win64/plain-opt @@ -0,0 +1,4 @@ +ac_add_options --disable-release +ac_add_options --target=x86_64-pc-windows-msvc + +. $topsrcdir/build/win64/mozconfig.vs-latest diff --git a/browser/config/mozconfigs/win64/profile-generate b/browser/config/mozconfigs/win64/profile-generate new file mode 100644 index 0000000000..7fd41616ab --- /dev/null +++ b/browser/config/mozconfigs/win64/profile-generate @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/win64/nightly + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/browser/config/mozconfigs/win64/release b/browser/config/mozconfigs/win64/release new file mode 100644 index 0000000000..ab3613c373 --- /dev/null +++ b/browser/config/mozconfigs/win64/release @@ -0,0 +1,7 @@ +. "$topsrcdir/build/mozconfig.win-common" +. "$topsrcdir/browser/config/mozconfigs/win64/common-win64" +. "$topsrcdir/browser/config/mozconfigs/win64/common-opt" + +ac_add_options --enable-official-branding + +. "$topsrcdir/build/mozconfig.common.override" |