summaryrefslogtreecommitdiffstats
path: root/browser/config/mozconfigs/linux64
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /browser/config/mozconfigs/linux64
parentInitial commit. (diff)
downloadfirefox-esr-upstream.tar.xz
firefox-esr-upstream.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/config/mozconfigs/linux64')
-rw-r--r--browser/config/mozconfigs/linux64/add-on-devel10
-rw-r--r--browser/config/mozconfigs/linux64/asan-fuzzing-ccov36
-rw-r--r--browser/config/mozconfigs/linux64/beta5
-rw-r--r--browser/config/mozconfigs/linux64/code-coverage16
-rw-r--r--browser/config/mozconfigs/linux64/code-coverage-debug9
-rw-r--r--browser/config/mozconfigs/linux64/code-coverage-opt9
-rw-r--r--browser/config/mozconfigs/linux64/common-opt14
-rw-r--r--browser/config/mozconfigs/linux64/debug13
-rw-r--r--browser/config/mozconfigs/linux64/debug-asan32
-rw-r--r--browser/config/mozconfigs/linux64/debug-fuzzing31
-rw-r--r--browser/config/mozconfigs/linux64/debug-fuzzing-noopt29
-rw-r--r--browser/config/mozconfigs/linux64/debug-searchfox-clang14
-rw-r--r--browser/config/mozconfigs/linux64/debug-static-analysis-clang12
-rw-r--r--browser/config/mozconfigs/linux64/devedition8
-rw-r--r--browser/config/mozconfigs/linux64/fuzzing-ccov19
-rw-r--r--browser/config/mozconfigs/linux64/l10n-mozconfig13
-rw-r--r--browser/config/mozconfigs/linux64/l10n-mozconfig-devedition13
-rw-r--r--browser/config/mozconfigs/linux64/nightly5
-rw-r--r--browser/config/mozconfigs/linux64/nightly-as-release3
-rw-r--r--browser/config/mozconfigs/linux64/nightly-asan30
-rw-r--r--browser/config/mozconfigs/linux64/nightly-asan-reporter20
-rw-r--r--browser/config/mozconfigs/linux64/nightly-fuzzing-asan34
-rw-r--r--browser/config/mozconfigs/linux64/nightly-fuzzing-asan-noopt34
-rw-r--r--browser/config/mozconfigs/linux64/nightly-fuzzing-asan-nyx40
-rw-r--r--browser/config/mozconfigs/linux64/non-unified5
-rw-r--r--browser/config/mozconfigs/linux64/noopt-debug7
-rw-r--r--browser/config/mozconfigs/linux64/plain-debug3
-rw-r--r--browser/config/mozconfigs/linux64/plain-opt1
-rw-r--r--browser/config/mozconfigs/linux64/plain-opt-trunk2
-rw-r--r--browser/config/mozconfigs/linux64/profile-generate6
-rw-r--r--browser/config/mozconfigs/linux64/release5
-rw-r--r--browser/config/mozconfigs/linux64/source6
-rw-r--r--browser/config/mozconfigs/linux64/tsan24
-rw-r--r--browser/config/mozconfigs/linux64/tsan-fuzzing7
-rw-r--r--browser/config/mozconfigs/linux64/valgrind13
35 files changed, 528 insertions, 0 deletions
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"