summaryrefslogtreecommitdiffstats
path: root/browser/config/mozconfigs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /browser/config/mozconfigs
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--browser/config/mozconfigs/common7
-rw-r--r--browser/config/mozconfigs/linux32/beta5
-rw-r--r--browser/config/mozconfigs/linux32/common-opt14
-rw-r--r--browser/config/mozconfigs/linux32/debug15
-rw-r--r--browser/config/mozconfigs/linux32/debug-asan18
-rw-r--r--browser/config/mozconfigs/linux32/debug-fuzzing31
-rw-r--r--browser/config/mozconfigs/linux32/devedition8
-rw-r--r--browser/config/mozconfigs/linux32/l10n-mozconfig18
-rw-r--r--browser/config/mozconfigs/linux32/l10n-mozconfig-devedition18
-rw-r--r--browser/config/mozconfigs/linux32/nightly5
-rw-r--r--browser/config/mozconfigs/linux32/nightly-asan17
-rw-r--r--browser/config/mozconfigs/linux32/nightly-fuzzing-asan32
-rw-r--r--browser/config/mozconfigs/linux32/profile-generate6
-rw-r--r--browser/config/mozconfigs/linux32/release5
-rw-r--r--browser/config/mozconfigs/linux32/valgrind11
-rw-r--r--browser/config/mozconfigs/linux64-aarch64/common-opt19
-rw-r--r--browser/config/mozconfigs/linux64-aarch64/opt5
-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-clang18
-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/hybrid5
-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-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/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
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/beta5
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/common-opt30
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/cross-noopt-debug11
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/debug-fuzzing5
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/devedition19
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/nightly12
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/nightly-fuzzing-asan5
-rw-r--r--browser/config/mozconfigs/macosx64-aarch64/release5
-rw-r--r--browser/config/mozconfigs/macosx64/add-on-devel10
-rw-r--r--browser/config/mozconfigs/macosx64/beta5
-rw-r--r--browser/config/mozconfigs/macosx64/code-coverage13
-rw-r--r--browser/config/mozconfigs/macosx64/common-opt14
-rw-r--r--browser/config/mozconfigs/macosx64/cross-noopt-debug9
-rw-r--r--browser/config/mozconfigs/macosx64/debug13
-rw-r--r--browser/config/mozconfigs/macosx64/debug-asan17
-rw-r--r--browser/config/mozconfigs/macosx64/debug-fuzzing11
-rw-r--r--browser/config/mozconfigs/macosx64/debug-searchfox15
-rw-r--r--browser/config/mozconfigs/macosx64/debug-static-analysis9
-rw-r--r--browser/config/mozconfigs/macosx64/devedition19
-rw-r--r--browser/config/mozconfigs/macosx64/hybrid5
-rw-r--r--browser/config/mozconfigs/macosx64/l10n-mozconfig24
-rw-r--r--browser/config/mozconfigs/macosx64/l10n-mozconfig-devedition28
-rw-r--r--browser/config/mozconfigs/macosx64/nightly12
-rw-r--r--browser/config/mozconfigs/macosx64/nightly-asan21
-rw-r--r--browser/config/mozconfigs/macosx64/nightly-fuzzing-asan12
-rw-r--r--browser/config/mozconfigs/macosx64/opt-static-analysis11
-rw-r--r--browser/config/mozconfigs/macosx64/plain-debug3
-rw-r--r--browser/config/mozconfigs/macosx64/plain-opt2
-rw-r--r--browser/config/mozconfigs/macosx64/profile-generate6
-rw-r--r--browser/config/mozconfigs/macosx64/release5
-rw-r--r--browser/config/mozconfigs/macosx64/repack8
-rw-r--r--browser/config/mozconfigs/whitelist41
-rw-r--r--browser/config/mozconfigs/win32/add-on-devel10
-rw-r--r--browser/config/mozconfigs/win32/beta7
-rw-r--r--browser/config/mozconfigs/win32/common-opt22
-rw-r--r--browser/config/mozconfigs/win32/common-win3216
-rw-r--r--browser/config/mozconfigs/win32/debug15
-rw-r--r--browser/config/mozconfigs/win32/debug-fuzzing11
-rw-r--r--browser/config/mozconfigs/win32/debug-static-analysis12
-rw-r--r--browser/config/mozconfigs/win32/devedition10
-rw-r--r--browser/config/mozconfigs/win32/l10n-mozconfig17
-rw-r--r--browser/config/mozconfigs/win32/l10n-mozconfig-devedition17
-rw-r--r--browser/config/mozconfigs/win32/mingwclang54
-rw-r--r--browser/config/mozconfigs/win32/mingwclang-debug3
-rw-r--r--browser/config/mozconfigs/win32/nightly7
-rw-r--r--browser/config/mozconfigs/win32/noopt-debug9
-rw-r--r--browser/config/mozconfigs/win32/profile-generate6
-rw-r--r--browser/config/mozconfigs/win32/release7
-rw-r--r--browser/config/mozconfigs/win64-aarch64/beta7
-rw-r--r--browser/config/mozconfigs/win64-aarch64/common-opt26
-rw-r--r--browser/config/mozconfigs/win64-aarch64/common-win6416
-rw-r--r--browser/config/mozconfigs/win64-aarch64/debug16
-rw-r--r--browser/config/mozconfigs/win64-aarch64/devedition10
-rw-r--r--browser/config/mozconfigs/win64-aarch64/l10n-mozconfig17
-rw-r--r--browser/config/mozconfigs/win64-aarch64/l10n-mozconfig-devedition17
-rw-r--r--browser/config/mozconfigs/win64-aarch64/nightly7
-rw-r--r--browser/config/mozconfigs/win64-aarch64/release7
-rw-r--r--browser/config/mozconfigs/win64/add-on-devel10
-rw-r--r--browser/config/mozconfigs/win64/beta7
-rw-r--r--browser/config/mozconfigs/win64/code-coverage30
-rw-r--r--browser/config/mozconfigs/win64/common-opt22
-rw-r--r--browser/config/mozconfigs/win64/common-win6416
-rw-r--r--browser/config/mozconfigs/win64/debug15
-rw-r--r--browser/config/mozconfigs/win64/debug-asan16
-rw-r--r--browser/config/mozconfigs/win64/debug-fuzzing11
-rw-r--r--browser/config/mozconfigs/win64/debug-searchfox19
-rw-r--r--browser/config/mozconfigs/win64/devedition10
-rw-r--r--browser/config/mozconfigs/win64/fuzzing-ccov11
-rw-r--r--browser/config/mozconfigs/win64/hybrid5
-rw-r--r--browser/config/mozconfigs/win64/l10n-mozconfig17
-rw-r--r--browser/config/mozconfigs/win64/l10n-mozconfig-devedition17
-rw-r--r--browser/config/mozconfigs/win64/mingwclang54
-rw-r--r--browser/config/mozconfigs/win64/mingwclang-debug3
-rw-r--r--browser/config/mozconfigs/win64/nightly7
-rw-r--r--browser/config/mozconfigs/win64/nightly-asan16
-rw-r--r--browser/config/mozconfigs/win64/nightly-asan-reporter18
-rw-r--r--browser/config/mozconfigs/win64/nightly-fuzzing-asan13
-rw-r--r--browser/config/mozconfigs/win64/noopt-debug9
-rw-r--r--browser/config/mozconfigs/win64/plain-debug3
-rw-r--r--browser/config/mozconfigs/win64/plain-opt4
-rw-r--r--browser/config/mozconfigs/win64/profile-generate6
-rw-r--r--browser/config/mozconfigs/win64/release7
133 files changed, 1860 insertions, 0 deletions
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..ea4a339ece
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-searchfox-clang
@@ -0,0 +1,18 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_CHECK=0
+
+. "$topsrcdir/build/unix/mozconfig.unix"
+
+ac_add_options --enable-debug
+
+# Save rust analysis (this requires unlocking the unstable features,
+# which is done in the taskcluster task definition via RUSTC_BOOTSTRAP)
+export RUSTFLAGS="-Zsave-analysis"
+
+# 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/hybrid b/browser/config/mozconfigs/linux64/hybrid
new file mode 100644
index 0000000000..7f2bd197a3
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/hybrid
@@ -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/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-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/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..35d3bb8876
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-searchfox
@@ -0,0 +1,15 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_CHECK=0
+
+. $topsrcdir/build/macosx/mozconfig.common
+
+ac_add_options --enable-debug
+
+# Save rust analysis (this requires unlocking the unstable features,
+# which is done in the taskcluster task definition via RUSTC_BOOTSTRAP)
+export RUSTFLAGS="-Zsave-analysis"
+
+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/hybrid b/browser/config/mozconfigs/macosx64/hybrid
new file mode 100644
index 0000000000..bc0bb0c922
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/hybrid
@@ -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/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-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/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..8461ffd480
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/plain-opt
@@ -0,0 +1,2 @@
+ac_add_options --disable-release
+export MACOS_SDK_DIR=$MOZ_FETCHES_DIR/MacOSX11.3.sdk
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..17e70ddeec
--- /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-mingw32
+
+. $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..a8db230fb6
--- /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-w64-mingw32
+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..3b57afd06e
--- /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-windows-mingw32
+
+. $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..cd57b38e8a
--- /dev/null
+++ b/browser/config/mozconfigs/win64/code-coverage
@@ -0,0 +1,30 @@
+. "$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 LIB=$LIB:$CLANG_LIB_DIR
+ 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..bdbde97046
--- /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-mingw32
+
+. $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..56d44b81a1
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug-searchfox
@@ -0,0 +1,19 @@
+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
+
+# Save rust analysis (this requires unlocking the unstable features,
+# which is done in the taskcluster task definition via RUSTC_BOOTSTRAP)
+export RUSTFLAGS="-Zsave-analysis"
+
+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/hybrid b/browser/config/mozconfigs/win64/hybrid
new file mode 100644
index 0000000000..f229bcafea
--- /dev/null
+++ b/browser/config/mozconfigs/win64/hybrid
@@ -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/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..46a5b79020
--- /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-w64-mingw32
+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-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/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..b66317712f
--- /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-mingw32
+
+. $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"