diff --git a/docs/gen/build_arguments.md b/docs/gen/build_arguments.md
index 63cb769588273fc7caaa26ee1fc9ab102a37e516..38e3cf38cd97441e5178f4b091988d141f82cd94 100644
--- a/docs/gen/build_arguments.md
+++ b/docs/gen/build_arguments.md
@@ -2,86 +2,86 @@
 
 ## All builds
 
-### clang_lib_dir
-Path to Clang lib directory.
+### universal_variants
 
-**Current value (from the default):** `"../build/buildtools/linux-x64/clang/lib"`
+**Current value (from the default):**
+```
+[{
+  configs = []
+  name = "release"
+  toolchain_args = {
+  is_debug = false
+}
+}]
+```
 
-From //build/images/manifest.gni:19
+From //build/config/BUILDCONFIG.gn:423
 
-### dart_lib_export_symbols
-Whether libdart should export the symbols of the Dart API.
+### enable_frame_pointers
+Controls whether the compiler emits full stack frames for function calls.
+This reduces performance but increases the ability to generate good
+stack traces, especially when we have bugs around unwind table generation.
+It applies only for Fuchsia targets (see below where it is unset).
+
+TODO(ZX-2361): Theoretically unwind tables should be good enough so we can
+remove this option when the issues are addressed.
 
 **Current value (from the default):** `true`
 
-From //third_party/dart/runtime/runtime_args.gni:91
+From //build/config/BUILD.gn:19
 
-### fvm_image_size
-The size in bytes of the FVM partition image to create. Normally this is
-computed to be just large enough to fit the blob and data images. The
-default value is "", which means to size based on inputs. Specifying a size
-that is too small will result in build failure.
+### rust_lto
+Sets the default LTO type for rustc bulids.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `"unset"`
 
-From //build/images/fvm.gni:12
+From //build/rust/config.gni:20
 
-### select_variant_shortcuts
-List of short names for commonly-used variant selectors.  Normally this
-is not set as a build argument, but it serves to document the available
-set of short-cut names for variant selectors.  Each element of this list
-is a scope where `.name` is the short name and `.select_variant` is a
-a list that can be spliced into [`select_variant`](#select_variant).
+### shell_enable_vulkan
 
-**Current value (from the default):**
-```
-[{
-  name = "host_asan"
-  select_variant = [{
-  dir = ["//third_party/yasm", "//third_party/vboot_reference", "//garnet/tools/vboot_reference", "//third_party/shaderc/third_party/spirv-tools"]
-  host = true
-  variant = "asan_no_detect_leaks"
-}, {
-  host = true
-  variant = "asan"
-}]
-}, {
-  name = "asan"
-  select_variant = [{
-  target_type = ["driver_module"]
-  variant = false
-}, {
-  host = false
-  variant = "asan"
-}]
-}]
-```
+**Current value (from the default):** `false`
 
-From //build/config/BUILDCONFIG.gn:449
+From //third_party/flutter/shell/config.gni:6
 
-### skia_use_libheif
+### target_sysroot
+The absolute path of the sysroot that is used with the target toolchain.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `""`
 
-From //third_party/skia/BUILD.gn:37
+From //build/config/sysroot.gni:7
 
-### dart_space_dart
-Whether experimental space dart mode is enabled for Dart applications.
+### zircon_args
+[Zircon GN build arguments](../../../zircon/docs/gen/build_arguments.md).
+The default passes through GOMA settings and
+[`select_variant`](#select_variant) shorthand selectors.
+**Only set this if you want to wipe out all the defaults that
+propagate from Fuchsia GN to Zircon GN.**  The default value
+folds in [`zircon_extra_args`](#zircon_extra_args), so usually
+it's better to just set `zircon_extra_args` and leave `zircon_args` alone.
+Any individual Zircon build argument set in `zircon_extra_args` will
+silently clobber the default value shown here.
 
-**Current value (from the default):** `false`
+**Current value (from the default):**
+```
+{
+  default_deps = [":legacy-arm64"]
+  enable_kernel_debugging_features = false
+  enable_netsvc_debugging_features = false
+  goma_dir = "/home/swarming/goma"
+  use_goma = false
+  variants = []
+}
+```
 
-From [//topaz/runtime/dart/dart_component.gni:41](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#41)
+From //build/config/fuchsia/zircon.gni:46
 
-### scudo_default_options
-Default [Scudo](https://llvm.org/docs/ScudoHardenedAllocator.html)
-options (before the `SCUDO_OPTIONS` environment variable is read at
-runtime).  *NOTE:* This affects only components using the `scudo`
-variant (see GN build argument `select_variant`), and does not affect
-anything when the `use_scudo` build flag is set instead.
+### go_vet_enabled
+  go_vet_enabled
+    [bool] if false, go vet invocations are disabled for all builds.
 
-**Current value (from the default):** `["abort_on_error=1", "QuarantineSizeKb=0", "ThreadLocalQuarantineSizeKb=0", "DeallocationTypeMismatch=false", "DeleteSizeMismatch=false", "allocator_may_return_null=true"]`
+**Current value (from the default):** `false`
 
-From //build/config/scudo/scudo.gni:17
+From //build/go/go_build.gni:20
 
 ### sdk_id
 Identifier for the Core SDK.
@@ -90,359 +90,348 @@ Identifier for the Core SDK.
 
 From //sdk/config.gni:7
 
-### blobfs_maximum_bytes
-In addition to reserving space for inodes and data, fs needs additional
-space for maintaining some internal data structures. So the
-space required to reserve inodes and data may exceed sum of the space
-needed for inodes and data.
-maximum_bytes puts an upper bound on the total bytes reserved for inodes,
-data bytes and reservation for all other internal fs metadata.
-An empty string does not put any upper bound. A filesystem may
-reserve few blocks required for its operations.
-
-**Current value (from the default):** `""`
-
-From //build/images/fvm.gni:47
+### vk_loader_debug
 
-### linux_runner_ip
-Default values for the guest network configuration.
+**Current value (from the default):** `"warn,error"`
 
-These are currently hard-coded to match what is setup in the virtio-net
-device.
+From [//third_party/vulkan_loader_and_validation_layers/loader/BUILD.gn:26](https://fuchsia.googlesource.com/third_party/vulkan_loader_and_validation_layers/+/5aa2763f1d0a436644207f3ab56f40cfbf9bb760/loader/BUILD.gn#26)
 
-See //src/virtualization/bin/vmm/device/virtio_net.cc for more details.
+### scenic_enable_vulkan_validation
+Include the vulkan validation layers in scenic.
 
-**Current value (from the default):** `"10.0.0.2"`
+**Current value (from the default):** `true`
 
-From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:17
+From //garnet/bin/ui/BUILD.gn:40
 
-### skia_enable_atlas_text
+### skia_enable_fontmgr_win
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:65
-
-### skia_enable_spirv_validation
+From //third_party/skia/BUILD.gn:72
 
-**Current value (from the default):** `false`
+### icu_use_data_file
+Tells icu to load an external data file rather than rely on the icudata
+being linked directly into the binary.
 
-From //third_party/skia/BUILD.gn:47
+This flag is a bit confusing. As of this writing, icu.gyp set the value to
+0 but common.gypi sets the value to 1 for most platforms (and the 1 takes
+precedence).
 
-### skia_use_expat
+TODO(GYP) We'll probably need to enhance this logic to set the value to
+true or false in similar circumstances.
 
-**Current value for `target_cpu = "arm64"`:** `false`
+**Current value (from the default):** `true`
 
-From //.gn:27
+From [//third_party/icu/config.gni:15](https://fuchsia.googlesource.com/third_party/icu/+/65e4aa3b8cc6b41cf31136b9474a9c97bdc27739/config.gni#15)
 
-**Overridden from the default:** `true`
+### prebuilt_libvulkan_arm_path
 
-From //third_party/skia/BUILD.gn:23
+**Current value (from the default):** `""`
 
-**Current value for `target_cpu = "x64"`:** `false`
+From //garnet/lib/magma/gnbuild/magma.gni:23
 
-From //.gn:27
+### skia_use_metal
 
-**Overridden from the default:** `true`
+**Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:23
+From //third_party/skia/BUILD.gn:36
 
-### skia_use_icu
+### skia_use_xps
 
 **Current value (from the default):** `true`
 
-From //third_party/skia/gn/skia.gni:13
+From //third_party/skia/BUILD.gn:39
 
-### target_os
+### dart_core_snapshot_kind
+Controls the kind of core snapshot linked into the standalone VM. Using a
+core-jit snapshot breaks the ability to change various flags that affect
+code generation.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `"core"`
 
-### vk_loader_debug
+From //third_party/dart/runtime/runtime_args.gni:56
 
-**Current value (from the default):** `"warn,error"`
+### flutter_aot_sharing_basis
+When AOT compiling, an app will reference objects in the sharing basis's
+snapshot when available instead of writing the objects in its own snapshot.
+The snapshot of the sharing basis app will be included in every other app's
+package and deduplicated by blobfs.
 
-From [//third_party/vulkan_loader_and_validation_layers/loader/BUILD.gn:26](https://fuchsia.googlesource.com/third_party/vulkan_loader_and_validation_layers/+/5aa2763f1d0a436644207f3ab56f40cfbf9bb760/loader/BUILD.gn#26)
+**Current value (from the default):** `""`
 
-### zircon_extra_args
-[Zircon GN build arguments](../../../zircon/docs/gen/build_arguments.md).
-This is included in the default value of [`zircon_args`](#zircon_args) so
-you can set this to add things there without wiping out the defaults.
-When you set `zircon_args` directly, then this has no effect at all.
-Arguments you set here override any arguments in the default
-`zircon_args`.  There is no way to append to a value from the defaults.
-Note that for just setting simple (string-only) values in Zircon GN's
-[`variants`](../../../zircon/docs/gen/build_arguments.md#variants), the
-default [`zircon_args`](#zircon_args) uses a `variants` value derived from
-[`select_variant`](#select_variant) so for simple cases there is no need
-to explicitly set Zircon's `variants` here.
+From [//topaz/runtime/dart/dart_component.gni:27](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#27)
 
-**Current value (from the default):** `{ }`
+### linux_runner_gateway
 
-From //build/config/fuchsia/zircon.gni:27
+**Current value (from the default):** `"10.0.0.1"`
 
-### clang_prefix
-The default clang toolchain provided by the buildtools. This variable is
-additionally consumed by the Go toolchain.
+From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:18
 
-**Current value (from the default):** `"../buildtools/linux-x64/clang/bin"`
+### skia_enable_nima
 
-From //build/config/clang/clang.gni:11
+**Current value (from the default):** `false`
 
-### crashpad_use_boringssl_for_http_transport_socket
-TODO(scottmg): https://crbug.com/crashpad/266 fuchsia:DX-690: BoringSSL
-was removed from the Fuchsia SDK. Re-enable it when we have a way to acquire
-a BoringSSL lib again.
+From //third_party/skia/BUILD.gn:45
+
+### skia_use_harfbuzz
 
 **Current value (from the default):** `true`
 
-From [//third_party/crashpad/util/net/tls.gni:21](https://chromium.googlesource.com/crashpad/crashpad/+/d221b7cadab5f00c6999f060a5bcb0896e25c7b7/util/net/tls.gni#21)
+From //third_party/skia/gn/skia.gni:14
 
-### enable_netboot
-Whether to build the netboot zbi by default.
+### board_name
+Board name used for paving and amber updates.
 
-You can still build //build/images:netboot explicitly even if enable_netboot is false.
+**Current value for `target_cpu = "arm64"`:** `"qemu-arm64"`
 
-**Current value for `target_cpu = "arm64"`:** `false`
+From //boards/arm64.gni:7
 
-From //products/core.gni:7
+**Overridden from the default:** `""`
 
-**Overridden from the default:** `false`
+From //build/package.gni:21
 
-From //build/images/BUILD.gn:33
+**Current value for `target_cpu = "x64"`:** `"pc"`
 
-**Current value for `target_cpu = "x64"`:** `false`
+From //boards/x64.gni:7
 
-From //products/core.gni:7
+**Overridden from the default:** `""`
 
-**Overridden from the default:** `false`
+From //build/package.gni:21
 
-From //build/images/BUILD.gn:33
-
-### universe_package_labels
-If you add package labels to this variable, the packages will be included
-in the 'universe' package set, which represents all software that is
-produced that is to be published to a package repository or to the SDK by
-the build. The build system ensures that the universe package set includes
-the base and cache package sets, which means you do not need to redundantly
-include those labels in this variable.
-
-**Current value for `target_cpu = "arm64"`:** `["//garnet/packages/prod:vboot_reference", "//bundles:tools"]`
-
-From //products/core.gni:27
-
-**Overridden from the default:** `[]`
-
-From //BUILD.gn:30
-
-**Current value for `target_cpu = "x64"`:** `["//garnet/packages/prod:vboot_reference", "//bundles:tools"]`
-
-From //products/core.gni:27
-
-**Overridden from the default:** `[]`
-
-From //BUILD.gn:30
-
-### build_libvulkan_qcom_adreno
-Targets that will be built as qualcomm vulkan ICDS.
-
-**Current value (from the default):** `[]`
-
-From //garnet/lib/magma/gnbuild/magma.gni:44
-
-### kernel_cmdline_files
-Files containing additional kernel command line arguments to bake into
-the boot image.  The contents of these files (in order) come after any
-arguments directly in [`kernel_cmdline_args`](#kernel_cmdline_args).
-These can be GN `//` source pathnames or absolute system pathnames.
+### build_libvulkan_arm_mali
+Targets that will be built as mali vulkan ICDS.
 
 **Current value (from the default):** `[]`
 
-From //build/images/BUILD.gn:486
-
-### skia_enable_fontmgr_empty
-
-**Current value (from the default):** `false`
-
-From //third_party/skia/BUILD.gn:66
+From //garnet/lib/magma/gnbuild/magma.gni:38
 
-### use_scudo
-TODO(davemoore): Remove this entire mechanism once standalone scudo is the
-default (DNO-442)
-Enable the [Scudo](https://llvm.org/docs/ScudoHardenedAllocator.html)
-memory allocator.
+### fuchsia_sdk_root
+Consumers of the Fuchsia SDK instantiate templates for various SDK parts at
+a specific spot within their buildroots. The target name for the specific
+part is then derived from the part name as specified in the meta.json
+manifest. Different buildroot instantiate the SDK parts at different
+locations and then set this variable. GN rules can then prefix this variable
+name in SDK builds to the name of the SDK part. This flag is meaningless in
+non-SDK buildroots.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `""`
 
-From //build/config/scudo/scudo.gni:10
+From //build/fuchsia/sdk.gni:17
 
-### add_qemu_to_build_archives
-Whether to include images necessary to run Fuchsia in QEMU in build
-archives.
+### skia_use_lua
 
 **Current value (from the default):** `false`
 
-From //build/images/BUILD.gn:51
-
-### fvm_slice_size
-The size of the FVM partition images "slice size". The FVM slice size is a
-minimum size of a particular chunk of a partition that is stored within
-FVM. A very small slice size may lead to decreased throughput. A very large
-slice size may lead to wasted space. The selected default size of 8mb is
-selected for conservation of space, rather than performance.
-
-**Current value (from the default):** `"8388608"`
+From //third_party/skia/BUILD.gn:31
 
-From //build/images/fvm.gni:19
+### enable_input_subsystem
 
-### magma_python_path
+**Current value (from the default):** `true`
 
-**Current value (from the default):** `"/b/s/w/ir/k/third_party/mako"`
+From //garnet/bin/ui/scenic/BUILD.gn:14
 
-From //garnet/lib/magma/gnbuild/magma.gni:14
+### framework_packages
 
-### auto_login_to_guest
-Whether basemgr should automatically login as a persistent guest user.
+**Current value (from the default):** `["collection", "flutter", "meta", "typed_data", "vector_math"]`
 
-**Current value (from the default):** `false`
+From [//topaz/runtime/flutter_runner/prebuilt_framework.gni:8](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/flutter_runner/prebuilt_framework.gni#8)
 
-From //peridot/bin/basemgr/BUILD.gn:13
+### is_debug
+Debug build.
 
-### dart_custom_version_for_pub
-When this argument is a non-empty string, the version repoted by the
-Dart VM will be one that is compatible with pub's interpretation of
-semantic version strings. The version string will also include the values
-of the argument. In particular the version string will read:
+**Current value (from the default):** `true`
 
-    "M.m.p-dev.x.x-$(dart_custom_version_for_pub)-$(short_git_hash)"
+From //build/config/BUILDCONFIG.gn:11
 
-Where 'M', 'm', and 'p' are the major, minor and patch version numbers,
-and 'dev.x.x' is the dev version tag most recently preceeding the current
-revision. The short git hash can be omitted by setting
-dart_version_git_info=false
+### known_variants
+List of variants that will form the basis for variant toolchains.
+To make use of a variant, set [`select_variant`](#select_variant).
 
-**Current value (from the default):** `""`
+Normally this is not set as a build argument, but it serves to
+document the available set of variants.
+See also [`universal_variants`](#universal_variants).
+Only set this to remove all the default variants here.
+To add more, set [`extra_variants`](#extra_variants) instead.
 
-From //third_party/dart/runtime/runtime_args.gni:73
+Each element of the list is one variant, which is a scope defining:
 
-### ledger_sync_credentials_file
+  `configs` (optional)
+      [list of labels] Each label names a config that will be
+      automatically used by every target built in this variant.
+      For each config `${label}`, there must also be a target
+      `${label}_deps`, which each target built in this variant will
+      automatically depend on.  The `variant()` template is the
+      recommended way to define a config and its `_deps` target at
+      the same time.
 
-**Current value (from the default):** `""`
+  `remove_common_configs` (optional)
+  `remove_shared_configs` (optional)
+      [list of labels] This list will be removed (with `-=`) from
+      the `default_common_binary_configs` list (or the
+      `default_shared_library_configs` list, respectively) after
+      all other defaults (and this variant's configs) have been
+      added.
 
-From //src/ledger/bin/testing/sync_params.gni:6
+  `deps` (optional)
+      [list of labels] Added to the deps of every target linked in
+      this variant (as well as the automatic `${label}_deps` for
+      each label in configs).
 
-### minfs_minimum_inodes
+  `name` (required if configs is omitted)
+      [string] Name of the variant as used in
+      [`select_variant`](#select_variant) elements' `variant` fields.
+      It's a good idea to make it something concise and meaningful when
+      seen as e.g. part of a directory name under `$root_build_dir`.
+      If name is omitted, configs must be nonempty and the simple names
+      (not the full label, just the part after all `/`s and `:`s) of these
+      configs will be used in toolchain names (each prefixed by a "-"),
+      so the list of config names forming each variant must be unique
+      among the lists in `known_variants + extra_variants`.
 
-**Current value (from the default):** `""`
+  `toolchain_args` (optional)
+      [scope] Each variable defined in this scope overrides a
+      build argument in the toolchain context of this variant.
 
-From //build/images/fvm.gni:29
+  `host_only` (optional)
+  `target_only` (optional)
+      [scope] This scope can contain any of the fields above.
+      These values are used only for host or target, respectively.
+      Any fields included here should not also be in the outer scope.
 
-### msd_arm_enable_protected_debug_swap_mode
-In protected mode, faults don't return as much information so they're much harder to debug. To
-work around that, add a mode where protected atoms are executed in non-protected mode and
-vice-versa.
 
-NOTE: The memory security ranges should also be set (in TrustZone) to the opposite of normal, so
-that non-protected mode accesses can only access protected memory and vice versa.  Also,
-growable memory faults won't work in this mode, so larger portions of growable memory should
-precommitted (which is not done by default).
+**Current value (from the default):**
+```
+[{
+  configs = ["//build/config/lto"]
+}, {
+  configs = ["//build/config/lto:thinlto"]
+}, {
+  configs = ["//build/config/profile"]
+}, {
+  configs = ["//build/config/scudo"]
+}, {
+  configs = ["//build/config/sanitizers:ubsan"]
+}, {
+  configs = ["//build/config/sanitizers:ubsan", "//build/config/sanitizers:sancov"]
+}, {
+  configs = ["//build/config/sanitizers:asan"]
+  host_only = {
+  remove_shared_configs = ["//build/config:symbol_no_undefined"]
+}
+  toolchain_args = {
+  use_scudo = false
+}
+}, {
+  configs = ["//build/config/sanitizers:asan", "//build/config/sanitizers:sancov"]
+  host_only = {
+  remove_shared_configs = ["//build/config:symbol_no_undefined"]
+}
+  toolchain_args = {
+  use_scudo = false
+}
+}, {
+  configs = ["//build/config/sanitizers:asan"]
+  host_only = {
+  remove_shared_configs = ["//build/config:symbol_no_undefined"]
+}
+  name = "asan_no_detect_leaks"
+  toolchain_args = {
+  asan_default_options = "detect_leaks=0"
+  use_scudo = false
+}
+}, {
+  configs = ["//build/config/sanitizers:asan", "//build/config/sanitizers:fuzzer"]
+  host_only = {
+  remove_shared_configs = ["//build/config:symbol_no_undefined"]
+}
+  remove_shared_configs = ["//build/config:symbol_no_undefined"]
+  toolchain_args = {
+  asan_default_options = "alloc_dealloc_mismatch=0"
+  use_scudo = false
+}
+}, {
+  configs = ["//build/config/sanitizers:ubsan", "//build/config/sanitizers:fuzzer"]
+  remove_shared_configs = ["//build/config:symbol_no_undefined"]
+}]
+```
 
-**Current value (from the default):** `false`
+From //build/config/BUILDCONFIG.gn:338
 
-From //garnet/drivers/gpu/msd-arm-mali/src/BUILD.gn:23
+### select_variant_canonical
+*This should never be set as a build argument.*
+It exists only to be set in `toolchain_args`.
+See //build/toolchain/clang_toolchain.gni for details.
 
-### prebuilt_framework_path
+**Current value (from the default):** `[]`
 
-**Current value (from the default):** `""`
+From //build/config/BUILDCONFIG.gn:631
 
-From [//topaz/runtime/flutter_runner/prebuilt_framework.gni:6](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/flutter_runner/prebuilt_framework.gni#6)
+### target_cpu
 
-### skia_enable_fontmgr_win_gdi
+**Current value for `target_cpu = "arm64"`:** `"arm64"`
 
-**Current value (from the default):** `false`
+From //boards/arm64.gni:5
 
-From //third_party/skia/BUILD.gn:73
+**Overridden from the default:** `""`
 
-### update_kernels
-(deprecated) List of kernel images to include in the update (OTA) package.
-If no list is provided, all built kernels are included. The names in the
-list are strings that must match the filename to be included in the update
-package.
+**Current value for `target_cpu = "x64"`:** `"x64"`
 
-**Current value (from the default):** `[]`
+From //boards/x64.gni:5
 
-From //build/images/BUILD.gn:498
+**Overridden from the default:** `""`
 
-### zircon_b_partition
+### active_partition
 
 **Current value (from the default):** `""`
 
-From //build/images/BUILD.gn:40
+From //build/images/BUILD.gn:45
 
-### dart_core_snapshot_kind
-Controls the kind of core snapshot linked into the standalone VM. Using a
-core-jit snapshot breaks the ability to change various flags that affect
-code generation.
+### data_partition_manifest
+Path to manifest file containing data to place into the initial /data
+partition.
 
-**Current value (from the default):** `"core"`
+**Current value (from the default):** `""`
 
-From //third_party/dart/runtime/runtime_args.gni:56
+From //build/images/BUILD.gn:28
 
-### zedboot_cmdline_files
-Files containing additional kernel command line arguments to bake into
-the Zedboot image.  The contents of these files (in order) come after any
-arguments directly in [`zedboot_cmdline_args`](#zedboot_cmdline_args).
-These can be GN `//` source pathnames or absolute system pathnames.
+### build_libvulkan_img_rgx
+Targets that will be built as IMG vulkan ICDS.
 
 **Current value (from the default):** `[]`
 
-From //build/images/zedboot/BUILD.gn:23
-
-### export_x64_sdk_images
-
-**Current value (from the default):** `false`
-
-From //sdk/BUILD.gn:13
-
-### skia_use_zlib
-
-**Current value (from the default):** `true`
-
-From //third_party/skia/BUILD.gn:35
+From //garnet/lib/magma/gnbuild/magma.gni:47
 
-### zircon_enable_netsvc_debugging_features
+### skia_enable_pdf
 
 **Current value for `target_cpu = "arm64"`:** `false`
 
-From //products/core.gni:10
+From //.gn:25
 
-**Overridden from the default:** `false`
+**Overridden from the default:** `true`
 
-From //build/config/fuchsia/zircon.gni:33
+From //third_party/skia/BUILD.gn:46
 
 **Current value for `target_cpu = "x64"`:** `false`
 
-From //products/core.gni:10
-
-**Overridden from the default:** `false`
-
-From //build/config/fuchsia/zircon.gni:33
-
-### board_packages
+From //.gn:25
 
-**Current value for `target_cpu = "arm64"`:** `[]`
+**Overridden from the default:** `true`
 
-From //boards/arm64.gni:9
+From //third_party/skia/BUILD.gn:46
 
-**Overridden from the default:** `[]`
+### toolchain_manifests
+Manifest files describing target libraries from toolchains.
+Can be either // source paths or absolute system paths.
 
-From //BUILD.gn:40
+**Current value (from the default):** `["/b/s/w/ir/k/buildtools/linux-x64/clang/lib/aarch64-fuchsia.manifest"]`
 
-**Current value for `target_cpu = "x64"`:** `[]`
+From //build/images/manifest.gni:11
 
-From //boards/x64.gni:9
+### zircon_asserts
 
-**Overridden from the default:** `[]`
+**Current value (from the default):** `true`
 
-From //BUILD.gn:40
+From //build/config/fuchsia/BUILD.gn:205
 
 ### bootfs_extra
 List of extra manifest entries for files to add to the BOOTFS.
@@ -450,565 +439,562 @@ Each entry can be a "TARGET=SOURCE" string, or it can be a scope
 with `sources` and `outputs` in the style of a copy() target:
 `outputs[0]` is used as `TARGET` (see `gn help source_expansion`).
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `[]`
+
+From //build/images/BUILD.gn:492
+
+### scenic_use_views2
+Temporary flag, switches Flutter to using Scenic's new View API.
+
+**Current value (from the default):** `false`
 
-From //build/images/BUILD.gn:492
+From //garnet/bin/ui/scenic/config.gni:7
 
-### build_libvulkan_img_rgx
-Targets that will be built as IMG vulkan ICDS.
+### skia_use_opencl
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `false`
 
-From //garnet/lib/magma/gnbuild/magma.gni:47
+From //third_party/skia/BUILD.gn:32
 
-### dart_use_fallback_root_certificates
-Whether to fall back to built-in root certificates when they cannot be
-verified at the operating system level.
+### allow_layer_guesswork
+Does nothing.
+
+Will be removed after 30 April 2019.
 
 **Current value (from the default):** `false`
 
-From //third_party/dart/runtime/runtime_args.gni:43
+From //BUILD.gn:39
 
-### dart_version_git_info
-Whether the Dart binary version string should include the git hash and
-git commit time.
+### escher_use_null_vulkan_config_on_host
+Using Vulkan on host (i.e. Linux) is an involved affair that involves
+downloading the Vulkan SDK, setting environment variables, and so forth...
+all things that are difficult to achieve in a CQ environment.  Therefore,
+by default we use a stub implementation of Vulkan which fails to create a
+VkInstance.  This allows everything to build, and also allows running Escher
+unit tests which don't require Vulkan.
 
 **Current value (from the default):** `true`
 
-From //third_party/dart/runtime/runtime_args.gni:60
+From //src/ui/lib/escher/BUILD.gn:16
 
-### fastboot_product
+### clang_prefix
+The default clang toolchain provided by the buildtools. This variable is
+additionally consumed by the Go toolchain.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `"../buildtools/linux-x64/clang/bin"`
 
-From //build/images/BUILD.gn:47
+From //build/config/clang/clang.gni:11
 
-### go_vet_enabled
-  go_vet_enabled
-    [bool] if false, go vet invocations are disabled for all builds.
+### using_fuchsia_sdk
+Only set in buildroots where targets configure themselves for use with the
+Fuchsia SDK
 
 **Current value (from the default):** `false`
 
-From //build/go/go_build.gni:20
+From //build/fuchsia/sdk.gni:8
 
-### goma_dir
-Absolute directory containing the Goma source code.
+### skia_tools_require_resources
 
-**Current value (from the default):** `"/home/swarming/goma"`
+**Current value (from the default):** `false`
 
-From //build/toolchain/goma.gni:12
+From //third_party/skia/BUILD.gn:60
 
-### kernel_cmdline_args
-List of kernel command line arguments to bake into the boot image.
-See also //zircon/docs/kernel_cmdline.md and
-[`devmgr_config`](#devmgr_config).
+### dart_component_kind
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `"static_library"`
 
-From //build/images/BUILD.gn:480
+From //third_party/dart/runtime/runtime_args.gni:80
 
-### rust_lto
-Sets the default LTO type for rustc bulids.
+### linux_runner_netmask
 
-**Current value (from the default):** `"unset"`
+**Current value (from the default):** `"255.255.255.0"`
 
-From //build/rust/config.gni:20
+From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:19
 
-### scenic_ignore_vsync
+### blobfs_maximum_bytes
+In addition to reserving space for inodes and data, fs needs additional
+space for maintaining some internal data structures. So the
+space required to reserve inodes and data may exceed sum of the space
+needed for inodes and data.
+maximum_bytes puts an upper bound on the total bytes reserved for inodes,
+data bytes and reservation for all other internal fs metadata.
+An empty string does not put any upper bound. A filesystem may
+reserve few blocks required for its operations.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `""`
 
-From //garnet/lib/ui/gfx/BUILD.gn:8
+From //build/images/fvm.gni:47
 
-### skia_enable_fontmgr_fuchsia
+### build_info_product
+Product configuration of the current build
+
+**Current value (from the default):** `""`
+
+From //garnet/BUILD.gn:21
+
+### skia_enable_fontmgr_android
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:71
+From //third_party/skia/BUILD.gn:70
 
-### skia_skqp_global_error_tolerance
+### base_package_labels
+If you add package labels to this variable, the packages will be included in
+the 'base' package set, which represents the set of packages that are part
+of an OTA. These pacakages are updated as an atomic unit during an OTA
+process and are immutable and are a superset of the TCB (Trusted Computing
+Base) for a product. These packages are never evicted by the system.
 
-**Current value (from the default):** `0`
+**Current value for `target_cpu = "arm64"`:** `["//garnet/packages/config:kernel_crash_checker", "//garnet/packages/prod:crashpad_agent", "//garnet/packages/prod:feedback_agent", "//garnet/packages/prod:kernel_crash_checker", "//garnet/packages/products:base", "//bundles:kitchen_sink"]`
 
-From //third_party/skia/BUILD.gn:55
+From //root_build_dir/args.gn:3
 
-### enable_frame_pointers
-Controls whether the compiler emits full stack frames for function calls.
-This reduces performance but increases the ability to generate good
-stack traces, especially when we have bugs around unwind table generation.
-It applies only for Fuchsia targets (see below where it is unset).
+**Overridden from the default:** `[]`
 
-TODO(ZX-2361): Theoretically unwind tables should be good enough so we can
-remove this option when the issues are addressed.
+From //BUILD.gn:14
 
-**Current value (from the default):** `true`
+**Current value for `target_cpu = "x64"`:** `["//garnet/packages/config:kernel_crash_checker", "//garnet/packages/prod:crashpad_agent", "//garnet/packages/prod:feedback_agent", "//garnet/packages/prod:kernel_crash_checker", "//garnet/packages/products:base", "//bundles:kitchen_sink"]`
 
-From //build/config/BUILD.gn:19
+From //root_build_dir/args.gn:3
 
-### fuchsia_use_vulkan
-Consolidated build toggle for use of Vulkan across Fuchsia
+**Overridden from the default:** `[]`
 
-**Current value (from the default):** `true`
+From //BUILD.gn:14
 
-From //build/vulkan/config.gni:7
+### dart_default_app
+Controls whether dart_app() targets generate JIT or AOT Dart snapshots.
+This defaults to JIT, use `fx set <ARCH> --args
+'dart_default_app="dart_aot_app"' to switch to AOT.
 
-### embedder_for_target
-By default, the dynamic library target exposing the embedder API is only
-built for the host. The reasoning is that platforms that have target
-definitions would not need an embedder API because an embedder
-implementation is already provided for said target. This flag allows tbe
-builder to obtain a shared library exposing the embedder API for alternative
-embedder implementations.
+**Current value (from the default):** `"dart_jit_app"`
 
-**Current value (from the default):** `false`
+From [//topaz/runtime/dart/dart_component.gni:19](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#19)
 
-From //third_party/flutter/shell/platform/embedder/embedder.gni:12
+### extra_variants
+Additional variant toolchain configs to support.
+This is just added to [`known_variants`](#known_variants).
 
-### prebuilt_framework_name
+**Current value (from the default):** `[]`
 
-**Current value (from the default):** `""`
+From //build/config/BUILDCONFIG.gn:403
 
-From [//topaz/runtime/flutter_runner/prebuilt_framework.gni:7](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/flutter_runner/prebuilt_framework.gni#7)
+### host_tools_dir
+This is the directory where host tools intended for manual use by
+developers get installed.  It's something a developer might put
+into their shell's $PATH.  Host tools that are just needed as part
+of the build do not get copied here.  This directory is only for
+things that are generally useful for testing or debugging or
+whatnot outside of the GN build itself.  These are only installed
+by an explicit install_host_tools() rule (see //build/host.gni).
 
-### skia_enable_pdf
+**Current value (from the default):** `"//root_build_dir/tools"`
+
+From //build/host.gni:13
+
+### skia_use_dng_sdk
 
 **Current value for `target_cpu = "arm64"`:** `false`
 
-From //.gn:25
+From //.gn:26
 
 **Overridden from the default:** `true`
 
-From //third_party/skia/BUILD.gn:46
+From //third_party/skia/BUILD.gn:63
 
 **Current value for `target_cpu = "x64"`:** `false`
 
-From //.gn:25
+From //.gn:26
 
 **Overridden from the default:** `true`
 
-From //third_party/skia/BUILD.gn:46
-
-### skia_use_libpng
-
-**Current value (from the default):** `true`
+From //third_party/skia/BUILD.gn:63
 
-From //third_party/skia/BUILD.gn:29
+### build_libvulkan_vsl_gc
+Targets that will be built as verisilicon vulkan ICDS.
 
-### concurrent_dart_jobs
-Maximum number of Dart processes to run in parallel.
+**Current value (from the default):** `[]`
 
-Dart analyzer uses a lot of memory which may cause issues when building
-with many parallel jobs e.g. when using goma. To avoid out-of-memory
-errors we explicitly reduce the number of jobs.
+From //garnet/lib/magma/gnbuild/magma.gni:41
 
-**Current value (from the default):** `16`
+### current_os
 
-From //build/dart/BUILD.gn:15
+**Current value (from the default):** `""`
 
-### dart_use_crashpad
-Whether to link Crashpad library for crash handling. Only supported on
-Windows for now.
+### use_mock_magma
 
 **Current value (from the default):** `false`
 
-From //third_party/dart/runtime/runtime_args.gni:51
+From [//third_party/mesa/src/intel/vulkan/BUILD.gn:25](https://fuchsia.googlesource.com/third_party/mesa/+/232bf12b10899d335a3fe69d947a738541ace7d3/src/intel/vulkan/BUILD.gn#25)
 
-### extra_variants
-Additional variant toolchain configs to support.
-This is just added to [`known_variants`](#known_variants).
+### magma_build_root
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `"//garnet/lib/magma"`
 
-From //build/config/BUILDCONFIG.gn:403
+From //garnet/lib/magma/gnbuild/magma.gni:8
 
-### linux_runner_netmask
+### skia_llvm_path
 
-**Current value (from the default):** `"255.255.255.0"`
+**Current value (from the default):** `""`
 
-From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:19
+From //third_party/skia/BUILD.gn:57
 
-### skia_use_sfntly
+### enable_value_subsystem
 
-**Current value for `target_cpu = "arm64"`:** `false`
+**Current value (from the default):** `false`
 
-From //.gn:30
+From //garnet/bin/ui/scenic/BUILD.gn:11
 
-**Overridden from the default:** `true`
+### fvm_image_size
+The size in bytes of the FVM partition image to create. Normally this is
+computed to be just large enough to fit the blob and data images. The
+default value is "", which means to size based on inputs. Specifying a size
+that is too small will result in build failure.
 
-From //third_party/skia/BUILD.gn:64
+**Current value (from the default):** `""`
 
-**Current value for `target_cpu = "x64"`:** `false`
+From //build/images/fvm.gni:12
 
-From //.gn:30
+### minfs_maximum_bytes
 
-**Overridden from the default:** `true`
+**Current value (from the default):** `""`
 
-From //third_party/skia/BUILD.gn:64
+From //build/images/fvm.gni:48
 
-### use_lto
-Use link time optimization (LTO).
+### skia_use_x11
 
-**Current value (from the default):** `false`
+**Current value for `target_cpu = "arm64"`:** `false`
 
-From //build/config/lto/config.gni:7
+From //.gn:31
 
-### fuchsia_sdk_root
-Consumers of the Fuchsia SDK instantiate templates for various SDK parts at
-a specific spot within their buildroots. The target name for the specific
-part is then derived from the part name as specified in the meta.json
-manifest. Different buildroot instantiate the SDK parts at different
-locations and then set this variable. GN rules can then prefix this variable
-name in SDK builds to the name of the SDK part. This flag is meaningless in
-non-SDK buildroots.
+**Overridden from the default:** `true`
 
-**Current value (from the default):** `""`
+From //third_party/skia/BUILD.gn:38
 
-From //build/fuchsia/sdk.gni:17
+**Current value for `target_cpu = "x64"`:** `false`
 
-### crash_diagnostics_dir
-Clang crash reports directory path. Use empty path to disable altogether.
+From //.gn:31
+
+**Overridden from the default:** `true`
 
-**Current value (from the default):** `"//root_build_dir/clang-crashreports"`
+From //third_party/skia/BUILD.gn:38
 
-From //build/config/BUILD.gn:9
+### signed_image
 
-### current_os
+**Current value (from the default):** `false`
 
-**Current value (from the default):** `""`
+From //build/images/BUILD.gn:46
 
-### skia_use_egl
+### support_insecure_wep
+Enable WEP support.
+Use temporarily for testing driver WEP support.
+This build flag will be replaced by providing
+dedicated WEP specific WLAN targets which products
+can depend on.
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:22
+From //src/connectivity/wlan/lib/wep_deprecated/BUILD.gn:15
 
-### warn_on_sdk_changes
-Whether to only warn when an SDK has been modified.
-If false, any unacknowledged SDK change will cause a build failure.
+### use_ccache
+Set to true to enable compiling with ccache
 
 **Current value (from the default):** `false`
 
-From //build/sdk/config.gni:8
+From //build/toolchain/ccache.gni:9
 
-### zircon_args
-[Zircon GN build arguments](../../../zircon/docs/gen/build_arguments.md).
-The default passes through GOMA settings and
-[`select_variant`](#select_variant) shorthand selectors.
-**Only set this if you want to wipe out all the defaults that
-propagate from Fuchsia GN to Zircon GN.**  The default value
-folds in [`zircon_extra_args`](#zircon_extra_args), so usually
-it's better to just set `zircon_extra_args` and leave `zircon_args` alone.
-Any individual Zircon build argument set in `zircon_extra_args` will
-silently clobber the default value shown here.
+### zircon_r_partition
 
-**Current value (from the default):**
-```
-{
-  default_deps = [":legacy-arm64"]
-  enable_kernel_debugging_features = false
-  enable_netsvc_debugging_features = false
-  goma_dir = "/home/swarming/goma"
-  use_goma = false
-  variants = []
-}
-```
+**Current value (from the default):** `""`
 
-From //build/config/fuchsia/zircon.gni:46
+From //build/images/BUILD.gn:41
 
-### fuchsia_vulkan_sdk
-Path to Fuchsia Vulkan SDK
+### zxcrypt_key_source
+This argument specifies from where the system should obtain the zxcrypt
+master key to the system data partition.
 
-**Current value (from the default):** `"//third_party/vulkan_loader_and_validation_layers"`
+This value be reified as /boot/config/zxcrypt in both the zircon boot image
+and the zedboot boot image, for consumption by fshost and the paver,
+respectively.
 
-From //build/vulkan/config.gni:10
+Acceptable values are:
+* "null": the device should use an all-0's master key, as we lack support
+for any secure on-device storage.
+* "tee": the device is required to have a Trusted Execution Environment
+(TEE) which includes the "keysafe" Trusted Application (associated with the
+KMS service).  The zxcrypt master key should be derived from a per-device
+key accessible only to trusted apps running in the TEE.
+* "tee-opportunistic": the device will attempt to use keys from the TEE if
+available, but will fall back to using the null key if the key from the TEE
+does not work, or if the TEE is not functional on this device.
+* "tee-transitional": the device will require the use of a key from the TEE
+for new volume creation, but will continue to try both a TEE-sourced key and
+the null key when unsealing volumes.
 
-### skia_llvm_lib
+In the future, we may consider adding support for TPMs, or additional logic
+to explicitly support other fallback behavior.
 
-**Current value (from the default):** `"LLVM"`
+**Current value (from the default):** `"null"`
 
-From //third_party/skia/BUILD.gn:58
+From //build/images/zxcrypt.gni:29
 
-### minfs_maximum_bytes
+### dart_use_tcmalloc
+Whether to link the standalone VM against tcmalloc. The standalone build of
+the VM enables this only for Linux builds.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `false`
 
-From //build/images/fvm.gni:48
+From //third_party/dart/runtime/runtime_args.gni:47
 
-### build_libvulkan_arm_mali
-Targets that will be built as mali vulkan ICDS.
+### rustc_prefix
+Sets a custom base directory for `rustc` and `cargo`.
+This can be used to test custom Rust toolchains.
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `"//buildtools/linux-x64/rust/bin"`
 
-From //garnet/lib/magma/gnbuild/magma.gni:38
+From //build/rust/config.gni:17
 
-### skia_enable_skpicture
+### skia_use_piex
 
 **Current value (from the default):** `true`
 
-From //third_party/skia/BUILD.gn:48
+From //third_party/skia/BUILD.gn:33
 
-### dart_debug_optimization_level
-The optimization level to use for debug builds. Defaults to 0 for builds with
-code coverage enabled.
+### use_scudo
+TODO(davemoore): Remove this entire mechanism once standalone scudo is the
+default (DNO-442)
+Enable the [Scudo](https://llvm.org/docs/ScudoHardenedAllocator.html)
+memory allocator.
 
-**Current value (from the default):** `"2"`
+**Current value (from the default):** `false`
 
-From //third_party/dart/runtime/runtime_args.gni:36
+From //build/config/scudo/scudo.gni:10
 
-### rust_warnings
-Sets whether Rust compiler warnings cause errors or not.
-"deny" will make all warnings into errors, while "allow" will ignore warnings
+### dart_version
 
-**Current value (from the default):** `"deny"`
+**Current value (from the default):** `""`
 
-From //build/rust/config.gni:27
+From //third_party/flutter/shell/version/version.gni:10
 
-### sdk_dirs
-The directories to search for parts of the SDK.
+### magma_enable_tracing
+Enable this to include fuchsia tracing capability
 
-By default, we search the public directories for the various layers.
-In the future, we'll search a pre-built SDK as well.
+**Current value (from the default):** `true`
 
-**Current value (from the default):** `["//garnet/public", "//peridot/public", "//topaz/public"]`
+From //garnet/lib/magma/gnbuild/magma.gni:17
 
-From //build/config/fuchsia/sdk.gni:10
+### build_libvulkan_qcom_adreno
+Targets that will be built as qualcomm vulkan ICDS.
 
-### select_variant
-List of "selectors" to request variant builds of certain targets.
-Each selector specifies matching criteria and a chosen variant.
-The first selector in the list to match a given target determines
-which variant is used for that target.
+**Current value (from the default):** `[]`
 
-Each selector is either a string or a scope.  A shortcut selector is
-a string; it gets expanded to a full selector.  A full selector is a
-scope, described below.
+From //garnet/lib/magma/gnbuild/magma.gni:44
 
-A string selector can match a name in
-[`select_variant_shortcuts`](#select_variant_shortcuts).  If it's not a
-specific shortcut listed there, then it can be the name of any variant
-described in [`known_variants`](#known_variants) and
-[`universal_variants`](#universal_variants) (and combinations thereof).
-A `selector` that's a simple variant name selects for every binary
-built in the target toolchain: `{ host=false variant=selector }`.
+### enable_mdns_trace
+Enables the tracing feature of mdns, which can be turned on using
+"mdns-util verbose".
 
-If a string selector contains a slash, then it's `"shortcut/filename"`
-and selects only the binary in the target toolchain whose `output_name`
-matches `"filename"`, i.e. it adds `output_name=["filename"]` to each
-selector scope that the shortcut's name alone would yield.
+**Current value (from the default):** `false`
 
-The scope that forms a full selector defines some of these:
+From //src/connectivity/network/mdns/service/BUILD.gn:15
 
-    variant (required)
-        [string or `false`] The variant that applies if this selector
-        matches.  This can be `false` to choose no variant, or a string
-        that names the variant.  See
-        [`known_variants`](#known_variants) and
-        [`universal_variants`](#universal_variants).
+### use_vboot
+Use vboot images
 
-The rest below are matching criteria.  All are optional.
-The selector matches if and only if all of its criteria match.
-If none of these is defined, then the selector always matches.
+**Current value (from the default):** `false`
 
-The first selector in the list to match wins and then the rest of
-the list is ignored.  So construct more complex rules by using a
-"blacklist" selector with `variant=false` before a catch-all or
-"whitelist" selector that names a variant.
+From //build/images/boot.gni:11
 
-Each "[strings]" criterion is a list of strings, and the criterion
-is satisfied if any of the strings matches against the candidate string.
+### wlancfg_config_type
+Selects the wlan configuration type to use. Choices:
+  "client" - client mode
+  "ap" - access point mode
+  "" (empty string) - no configuration
 
-    host
-        [boolean] If true, the selector matches in the host toolchain.
-        If false, the selector matches in the target toolchain.
+**Current value (from the default):** `"client"`
 
-    testonly
-        [boolean] If true, the selector matches targets with testonly=true.
-        If false, the selector matches in targets without testonly=true.
+From //src/connectivity/wlan/wlancfg/BUILD.gn:15
 
-    target_type
-        [strings]: `"executable"`, `"loadable_module"`, or `"driver_module"`
+### zedboot_cmdline_files
+Files containing additional kernel command line arguments to bake into
+the Zedboot image.  The contents of these files (in order) come after any
+arguments directly in [`zedboot_cmdline_args`](#zedboot_cmdline_args).
+These can be GN `//` source pathnames or absolute system pathnames.
 
-    output_name
-        [strings]: target's `output_name` (default: its `target name`)
+**Current value (from the default):** `[]`
 
-    label
-        [strings]: target's full label with `:` (without toolchain suffix)
+From //build/images/zedboot/BUILD.gn:23
 
-    name
-        [strings]: target's simple name (label after last `/` or `:`)
+### flutter_profile
 
-    dir
-        [strings]: target's label directory (`//dir` for `//dir:name`).
+**Current value (from the default):** `true`
 
-**Current value (from the default):** `[]`
+From [//topaz/runtime/dart/dart_component.gni:32](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#32)
 
-From //build/config/BUILDCONFIG.gn:626
+### select_variant_shortcuts
+List of short names for commonly-used variant selectors.  Normally this
+is not set as a build argument, but it serves to document the available
+set of short-cut names for variant selectors.  Each element of this list
+is a scope where `.name` is the short name and `.select_variant` is a
+a list that can be spliced into [`select_variant`](#select_variant).
 
-### system_package_key
-The package key to use for signing Fuchsia packages made by the
-`package()` template (and the `system_image` package).  If this
-doesn't exist yet when it's needed, it will be generated.  New
-keys can be generated with the `pm -k FILE genkey` host command.
+**Current value (from the default):**
+```
+[{
+  name = "host_asan"
+  select_variant = [{
+  dir = ["//third_party/yasm", "//third_party/vboot_reference", "//garnet/tools/vboot_reference", "//third_party/shaderc/third_party/spirv-tools"]
+  host = true
+  variant = "asan_no_detect_leaks"
+}, {
+  host = true
+  variant = "asan"
+}]
+}, {
+  name = "asan"
+  select_variant = [{
+  target_type = ["driver_module"]
+  variant = false
+}, {
+  host = false
+  variant = "asan"
+}]
+}]
+```
+
+From //build/config/BUILDCONFIG.gn:449
+
+### minfs_minimum_data_bytes
+
+**Current value (from the default):** `""`
+
+From //build/images/fvm.gni:37
+
+### scenic_ignore_vsync
 
-**Current value (from the default):** `"//build/development.key"`
+**Current value (from the default):** `false`
 
-From //build/package.gni:18
+From //garnet/lib/ui/gfx/BUILD.gn:8
 
-### board_name
-Board name used for paving and amber updates.
+### zircon_enable_netsvc_debugging_features
 
-**Current value for `target_cpu = "arm64"`:** `"qemu-arm64"`
+**Current value for `target_cpu = "arm64"`:** `false`
 
-From //boards/arm64.gni:7
+From //products/core.gni:10
 
-**Overridden from the default:** `""`
+**Overridden from the default:** `false`
 
-From //build/package.gni:21
+From //build/config/fuchsia/zircon.gni:33
 
-**Current value for `target_cpu = "x64"`:** `"pc"`
+**Current value for `target_cpu = "x64"`:** `false`
 
-From //boards/x64.gni:7
+From //products/core.gni:10
 
-**Overridden from the default:** `""`
+**Overridden from the default:** `false`
 
-From //build/package.gni:21
+From //build/config/fuchsia/zircon.gni:33
 
-### dart_force_product
-Forces all Dart and Flutter apps to build in a specific configuration that
-we use to build products.
+### full_dart_sdk
 
 **Current value (from the default):** `false`
 
-From [//topaz/runtime/dart/config.gni:10](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/config.gni#10)
+From //third_party/flutter/BUILD.gn:14
 
-### dart_platform_bytecode
-Whether the VM's platform dill file contains bytecode.
+### log_startup_sleep
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"30000"`
 
-From //third_party/dart/runtime/runtime_args.gni:84
+From //garnet/bin/log_listener/BUILD.gn:14
 
-### concurrent_link_jobs
-Maximum number of concurrent link jobs.
+### board_packages
 
-We often want to run fewer links at once than we do compiles, because
-linking is memory-intensive. The default to use varies by platform and by
-the amount of memory available, so we call out to a script to get the right
-value.
+**Current value for `target_cpu = "arm64"`:** `[]`
 
-**Current value (from the default):** `16`
+From //boards/arm64.gni:9
 
-From //build/toolchain/BUILD.gn:15
+**Overridden from the default:** `[]`
 
-### dart_debug
-Instead of using is_debug, we introduce a different flag for specifying a
-Debug build of Dart so that clients can still use a Release build of Dart
-while themselves doing a Debug build.
+From //BUILD.gn:40
 
-**Current value (from the default):** `false`
+**Current value for `target_cpu = "x64"`:** `[]`
 
-From //third_party/dart/runtime/runtime_args.gni:9
+From //boards/x64.gni:9
 
-### dart_default_app
-Controls whether dart_app() targets generate JIT or AOT Dart snapshots.
-This defaults to JIT, use `fx set <ARCH> --args
-'dart_default_app="dart_aot_app"' to switch to AOT.
+**Overridden from the default:** `[]`
 
-**Current value (from the default):** `"dart_jit_app"`
+From //BUILD.gn:40
 
-From [//topaz/runtime/dart/dart_component.gni:19](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#19)
+### dart_aot_sharing_basis
+module_suggester is not AOT compiled in debug builds
 
-### full_dart_sdk
+**Current value (from the default):** `""`
 
-**Current value (from the default):** `false`
+From [//topaz/runtime/dart/dart_component.gni:51](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#51)
 
-From //third_party/flutter/BUILD.gn:14
+### skia_enable_skpicture
 
-### universal_variants
+**Current value (from the default):** `true`
 
-**Current value (from the default):**
-```
-[{
-  configs = []
-  name = "release"
-  toolchain_args = {
-  is_debug = false
-}
-}]
-```
+From //third_party/skia/BUILD.gn:48
 
-From //build/config/BUILDCONFIG.gn:423
+### meta_package_labels
+A list of labels for meta packages to be included in the monolith.
 
-### host_tools_dir
-This is the directory where host tools intended for manual use by
-developers get installed.  It's something a developer might put
-into their shell's $PATH.  Host tools that are just needed as part
-of the build do not get copied here.  This directory is only for
-things that are generally useful for testing or debugging or
-whatnot outside of the GN build itself.  These are only installed
-by an explicit install_host_tools() rule (see //build/host.gni).
+**Current value for `target_cpu = "arm64"`:** `["//build/images:config-data", "//build/images:shell-commands", "//src/sys/component_index:component_index"]`
 
-**Current value (from the default):** `"//root_build_dir/tools"`
+From //products/core.gni:12
 
-From //build/host.gni:13
+**Overridden from the default:** `[]`
 
-### skia_use_wuffs
+From //build/images/BUILD.gn:36
 
-**Current value (from the default):** `false`
+**Current value for `target_cpu = "x64"`:** `["//build/images:config-data", "//build/images:shell-commands", "//src/sys/component_index:component_index"]`
 
-From //third_party/skia/BUILD.gn:34
+From //products/core.gni:12
 
-### zircon_r_partition
+**Overridden from the default:** `[]`
 
-**Current value (from the default):** `""`
+From //build/images/BUILD.gn:36
 
-From //build/images/BUILD.gn:41
+### skia_compile_processors
 
-### icu_use_data_file
-Tells icu to load an external data file rather than rely on the icudata
-being linked directly into the binary.
+**Current value (from the default):** `false`
 
-This flag is a bit confusing. As of this writing, icu.gyp set the value to
-0 but common.gypi sets the value to 1 for most platforms (and the 1 takes
-precedence).
+From //third_party/skia/BUILD.gn:51
 
-TODO(GYP) We'll probably need to enhance this logic to set the value to
-true or false in similar circumstances.
+### skia_enable_fontmgr_custom
 
 **Current value (from the default):** `true`
 
-From [//third_party/icu/config.gni:15](https://fuchsia.googlesource.com/third_party/icu/+/65e4aa3b8cc6b41cf31136b9474a9c97bdc27739/config.gni#15)
-
-### skia_use_dng_sdk
+From //third_party/skia/BUILD.gn:68
 
-**Current value for `target_cpu = "arm64"`:** `false`
+### skia_enable_tools
 
-From //.gn:26
+**Current value (from the default):** `false`
 
-**Overridden from the default:** `true`
+From //third_party/skia/gn/skia.gni:12
 
-From //third_party/skia/BUILD.gn:63
+### skia_use_fixed_gamma_text
 
-**Current value for `target_cpu = "x64"`:** `false`
+**Current value (from the default):** `false`
 
-From //.gn:26
+From //third_party/skia/BUILD.gn:27
 
-**Overridden from the default:** `true`
+### use_lto
+Use link time optimization (LTO).
 
-From //third_party/skia/BUILD.gn:63
+**Current value (from the default):** `false`
 
-### thinlto_cache_dir
-ThinLTO cache directory path.
+From //build/config/lto/config.gni:7
 
-**Current value (from the default):** `"linux_x64-shared/thinlto-cache"`
+### host_byteorder
 
-From //build/config/lto/config.gni:16
+**Current value (from the default):** `"undefined"`
 
-### vbmeta_a_partition
+From //build/config/host_byteorder.gni:7
 
-**Current value (from the default):** `""`
+### host_cpu
 
-From //build/images/BUILD.gn:42
+**Current value (from the default):** `"x64"`
 
 ### zedboot_cmdline_args
 List of kernel command line arguments to bake into the Zedboot image.
@@ -1019,685 +1005,711 @@ See //zircon/docs/kernel_cmdline.md and
 
 From //build/images/zedboot/BUILD.gn:17
 
-### dart_version
-
-**Current value (from the default):** `""`
+### zedboot_devmgr_config
+List of arguments to populate /boot/config/devmgr in the Zedboot image.
 
-From //third_party/flutter/shell/version/version.gni:10
+**Current value (from the default):** `["netsvc.netboot=true"]`
 
-### skia_enable_fontmgr_custom_empty
+From //build/images/zedboot/BUILD.gn:26
 
-**Current value (from the default):** `false`
+### skia_enable_flutter_defines
 
-From //third_party/skia/BUILD.gn:69
+**Current value for `target_cpu = "arm64"`:** `true`
 
-### use_vboot
-Use vboot images
+From //.gn:24
 
-**Current value (from the default):** `false`
+**Overridden from the default:** `false`
 
-From //build/images/boot.gni:11
+From //third_party/skia/BUILD.gn:17
 
-### experimental_wlan_client_mlme
-Selects the SoftMAC client implementation to use. Choices:
-  false (default) - C++ Client MLME implementation
-  true - Rust Client MLME implementation
-This argument is temporary until Rust MLME is ready to be used.
+**Current value for `target_cpu = "x64"`:** `true`
 
-**Current value (from the default):** `false`
+From //.gn:24
 
-From //src/connectivity/wlan/lib/mlme/cpp/BUILD.gn:10
+**Overridden from the default:** `false`
 
-### meta_package_labels
-A list of labels for meta packages to be included in the monolith.
+From //third_party/skia/BUILD.gn:17
 
-**Current value for `target_cpu = "arm64"`:** `["//build/images:config-data", "//build/images:shell-commands", "//src/sys/component_index:component_index"]`
+### skia_use_libwebp
 
-From //products/core.gni:12
+**Current value for `target_cpu = "arm64"`:** `false`
 
-**Overridden from the default:** `[]`
+From //.gn:29
 
-From //build/images/BUILD.gn:36
+**Overridden from the default:** `true`
 
-**Current value for `target_cpu = "x64"`:** `["//build/images:config-data", "//build/images:shell-commands", "//src/sys/component_index:component_index"]`
+From //third_party/skia/BUILD.gn:30
 
-From //products/core.gni:12
+**Current value for `target_cpu = "x64"`:** `false`
 
-**Overridden from the default:** `[]`
+From //.gn:29
 
-From //build/images/BUILD.gn:36
+**Overridden from the default:** `true`
 
-### toolchain_manifests
-Manifest files describing target libraries from toolchains.
-Can be either // source paths or absolute system paths.
+From //third_party/skia/BUILD.gn:30
 
-**Current value (from the default):** `["/b/s/w/ir/k/buildtools/linux-x64/clang/lib/aarch64-fuchsia.manifest"]`
+### thinlto_cache_dir
+ThinLTO cache directory path.
 
-From //build/images/manifest.gni:11
+**Current value (from the default):** `"linux_x64/thinlto-cache"`
 
-### wlancfg_config_type
-Selects the wlan configuration type to use. Choices:
-  "client" - client mode
-  "ap" - access point mode
-  "" (empty string) - no configuration
+From //build/config/lto/config.gni:16
 
-**Current value (from the default):** `"client"`
+### prebuilt_framework_path
 
-From //src/connectivity/wlan/wlancfg/BUILD.gn:15
+**Current value (from the default):** `""`
 
-### rustc_prefix
-Sets a custom base directory for `rustc` and `cargo`.
-This can be used to test custom Rust toolchains.
+From [//topaz/runtime/flutter_runner/prebuilt_framework.gni:6](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/flutter_runner/prebuilt_framework.gni#6)
 
-**Current value (from the default):** `"//buildtools/linux-x64/rust/bin"`
+### select_variant
+List of "selectors" to request variant builds of certain targets.
+Each selector specifies matching criteria and a chosen variant.
+The first selector in the list to match a given target determines
+which variant is used for that target.
 
-From //build/rust/config.gni:17
+Each selector is either a string or a scope.  A shortcut selector is
+a string; it gets expanded to a full selector.  A full selector is a
+scope, described below.
 
-### flutter_aot_sharing_basis
-When AOT compiling, an app will reference objects in the sharing basis's
-snapshot when available instead of writing the objects in its own snapshot.
-The snapshot of the sharing basis app will be included in every other app's
-package and deduplicated by blobfs.
+A string selector can match a name in
+[`select_variant_shortcuts`](#select_variant_shortcuts).  If it's not a
+specific shortcut listed there, then it can be the name of any variant
+described in [`known_variants`](#known_variants) and
+[`universal_variants`](#universal_variants) (and combinations thereof).
+A `selector` that's a simple variant name selects for every binary
+built in the target toolchain: `{ host=false variant=selector }`.
 
-**Current value (from the default):** `""`
+If a string selector contains a slash, then it's `"shortcut/filename"`
+and selects only the binary in the target toolchain whose `output_name`
+matches `"filename"`, i.e. it adds `output_name=["filename"]` to each
+selector scope that the shortcut's name alone would yield.
 
-From [//topaz/runtime/dart/dart_component.gni:27](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#27)
+The scope that forms a full selector defines some of these:
 
-### linux_runner_gateway
+    variant (required)
+        [string or `false`] The variant that applies if this selector
+        matches.  This can be `false` to choose no variant, or a string
+        that names the variant.  See
+        [`known_variants`](#known_variants) and
+        [`universal_variants`](#universal_variants).
 
-**Current value (from the default):** `"10.0.0.1"`
+The rest below are matching criteria.  All are optional.
+The selector matches if and only if all of its criteria match.
+If none of these is defined, then the selector always matches.
 
-From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:18
+The first selector in the list to match wins and then the rest of
+the list is ignored.  So construct more complex rules by using a
+"blacklist" selector with `variant=false` before a catch-all or
+"whitelist" selector that names a variant.
 
-### skia_enable_discrete_gpu
+Each "[strings]" criterion is a list of strings, and the criterion
+is satisfied if any of the strings matches against the candidate string.
 
-**Current value (from the default):** `true`
+    host
+        [boolean] If true, the selector matches in the host toolchain.
+        If false, the selector matches in the target toolchain.
 
-From //third_party/skia/BUILD.gn:44
+    testonly
+        [boolean] If true, the selector matches targets with testonly=true.
+        If false, the selector matches in targets without testonly=true.
 
-### minfs_minimum_data_bytes
+    target_type
+        [strings]: `"executable"`, `"loadable_module"`, or `"driver_module"`
 
-**Current value (from the default):** `""`
+    output_name
+        [strings]: target's `output_name` (default: its `target name`)
 
-From //build/images/fvm.gni:37
+    label
+        [strings]: target's full label with `:` (without toolchain suffix)
 
-### create_kernel_service_snapshot
+    name
+        [strings]: target's simple name (label after last `/` or `:`)
 
-**Current value (from the default):** `false`
+    dir
+        [strings]: target's label directory (`//dir` for `//dir:name`).
 
-From //third_party/dart/runtime/runtime_args.gni:101
+**Current value (from the default):** `[]`
 
-### zircon_a_partition
-arguments to fx flash script
+From //build/config/BUILDCONFIG.gn:626
 
-**Current value (from the default):** `""`
+### msd_intel_gen_build_root
 
-From //build/images/BUILD.gn:39
+**Current value (from the default):** `"//garnet/drivers/gpu/msd-intel-gen"`
 
-### escher_use_null_vulkan_config_on_host
-Using Vulkan on host (i.e. Linux) is an involved affair that involves
-downloading the Vulkan SDK, setting environment variables, and so forth...
-all things that are difficult to achieve in a CQ environment.  Therefore,
-by default we use a stub implementation of Vulkan which fails to create a
-VkInstance.  This allows everything to build, and also allows running Escher
-unit tests which don't require Vulkan.
+From //garnet/lib/magma/gnbuild/magma.gni:10
 
-**Current value (from the default):** `true`
+### concurrent_rust_jobs
+Maximum number of Rust processes to run in parallel.
 
-From //src/ui/lib/escher/BUILD.gn:16
+We run multiple rustc jobs in parallel, each of which can cause significant
+amount of memory, especially when using LTO. To avoid out-of-memory errors
+we explicitly reduce the number of jobs.
 
-### scenic_enable_vulkan_validation
-Include the vulkan validation layers in scenic.
+**Current value (from the default):** `14`
 
-**Current value (from the default):** `true`
+From //build/rust/BUILD.gn:15
 
-From //garnet/bin/ui/BUILD.gn:40
+### custom_signing_script
+If non-empty, the given script will be invoked to produce a signed ZBI
+image. The given script must accept -z for the input zbi path, and -o for
+the output signed zbi path. The path must be in GN-label syntax (i.e.
+starts with //).
 
-### skia_enable_nvpr
+**Current value (from the default):** `""`
 
-**Current value (from the default):** `false`
+From //build/images/custom_signing.gni:12
 
-From //third_party/skia/BUILD.gn:43
+### zircon_enable_kernel_debugging_features
+Whether to include various features (non-shipping, insecure, etc.) in the
+kernel or netsvc builds.
 
-### skia_qt_path
+**Current value for `target_cpu = "arm64"`:** `false`
 
-**Current value (from the default):** `""`
+From //products/core.gni:9
 
-From //third_party/skia/BUILD.gn:50
+**Overridden from the default:** `false`
 
-### skia_tools_require_resources
+From //build/config/fuchsia/zircon.gni:32
 
-**Current value (from the default):** `false`
+**Current value for `target_cpu = "x64"`:** `false`
 
-From //third_party/skia/BUILD.gn:60
+From //products/core.gni:9
 
-### blobfs_minimum_data_bytes
-Number of bytes to reserve for data in the fs. This is in addition
-to what is reserved, if any, for the inodes. Data bytes constitutes
-"usable" space of the fs.
-An empty string does not reserve any additional space than minimum
-required for the filesystem.
+**Overridden from the default:** `false`
 
-**Current value (from the default):** `""`
+From //build/config/fuchsia/zircon.gni:32
 
-From //build/images/fvm.gni:36
+### skia_enable_fontmgr_win_gdi
 
-### dart_target_arch
-Explicitly set the target architecture to use a simulator.
-Available options are: arm, arm64, x64, ia32, and dbc.
+**Current value (from the default):** `false`
 
-**Current value (from the default):** `"arm64"`
+From //third_party/skia/BUILD.gn:73
 
-From //third_party/dart/runtime/runtime_args.gni:32
+### skia_use_libpng
 
-### skia_enable_flutter_defines
+**Current value (from the default):** `true`
 
-**Current value for `target_cpu = "arm64"`:** `true`
+From //third_party/skia/BUILD.gn:29
 
-From //.gn:24
+### skia_enable_ccpr
 
-**Overridden from the default:** `false`
+**Current value (from the default):** `true`
 
-From //third_party/skia/BUILD.gn:17
+From //third_party/skia/BUILD.gn:42
 
-**Current value for `target_cpu = "x64"`:** `true`
+### kernel_cmdline_args
+List of kernel command line arguments to bake into the boot image.
+See also //zircon/docs/kernel_cmdline.md and
+[`devmgr_config`](#devmgr_config).
 
-From //.gn:24
+**Current value (from the default):** `[]`
 
-**Overridden from the default:** `false`
+From //build/images/BUILD.gn:480
 
-From //third_party/skia/BUILD.gn:17
+### linux_runner_extras
+If `true`, the extras.img will be built and mounted inside the container
+at /mnt/chromeos.
 
-### toolchain_variant
-*This should never be set as a build argument.*
-It exists only to be set in `toolchain_args`.
-See //build/toolchain/clang_toolchain.gni for details.
-This variable is a scope giving details about the current toolchain:
-    `toolchain_variant.base`
-        [label] The "base" toolchain for this variant, *often the
-        right thing to use in comparisons, not `current_toolchain`.*
-        This is the toolchain actually referenced directly in GN
-        source code.  If the current toolchain is not
-        `shlib_toolchain` or a variant toolchain, this is the same
-        as `current_toolchain`.  In one of those derivative
-        toolchains, this is the toolchain the GN code probably
-        thought it was in.  This is the right thing to use in a test
-        like `toolchain_variant.base == target_toolchain`, rather
-        rather than comparing against `current_toolchain`.
-    `toolchain_variant.name`
-        [string] The name of this variant, as used in `variant` fields
-        in [`select_variant`](#select_variant) clauses.  In the base
-        toolchain and its `shlib_toolchain`, this is `""`.
-    `toolchain_variant.suffix`
-        [string] This is "-${toolchain_variant.name}", "" if name is empty.
-    `toolchain_variant.is_pic_default`
-        [bool] This is true in `shlib_toolchain`.
-The other fields are the variant's effects as defined in
-[`known_variants`](#known_variants).
+This is useful for including some GN-built binaries into the guest image
+without modifying the termina images.
 
-**Current value (from the default):**
-```
-{
-  base = "//build/toolchain/fuchsia:arm64"
-}
-```
+**Current value (from the default):** `false`
 
-From //build/config/BUILDCONFIG.gn:74
+From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:26
 
-### use_prebuilt_dart_sdk
-Whether to use the prebuilt Dart SDK for everything.
-When setting this to false, the preubilt Dart SDK will not be used in
-situations where the version of the SDK matters, but may still be used as an
-optimization where the version does not matter.
+### magma_python_path
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `"/b/s/w/ir/k/third_party/mako"`
 
-From //build/dart/dart.gni:15
+From //garnet/lib/magma/gnbuild/magma.gni:14
 
-### max_fvm_size
-Maximum allowable size for the FVM in a release mode build
-Zero means no limit
+### vbmeta_r_partition
 
-**Current value (from the default):** `"0"`
+**Current value (from the default):** `""`
 
-From //build/images/max_fvm_size.gni:8
+From //build/images/BUILD.gn:44
 
-### msd_arm_enable_all_cores
-Enable all 8 cores, which is faster but emits more heat.
+### dart_debug
+Instead of using is_debug, we introduce a different flag for specifying a
+Debug build of Dart so that clients can still use a Release build of Dart
+while themselves doing a Debug build.
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //garnet/drivers/gpu/msd-arm-mali/src/BUILD.gn:9
+From //third_party/dart/runtime/runtime_args.gni:9
 
-### skia_enable_gpu
+### skia_use_freetype
 
 **Current value (from the default):** `true`
 
-From //third_party/skia/gn/skia.gni:11
-
-### skia_enable_nima
+From //third_party/skia/BUILD.gn:26
 
-**Current value (from the default):** `false`
+### dart_runtime_mode
+Set the runtime mode. This affects how the runtime is built and what
+features it has. Valid values are:
+'develop' (the default) - VM is built to run as a JIT with all development
+features enabled.
+'profile' - The VM is built to run with AOT compiled code with only the
+CPU profiling features enabled.
+'release' - The VM is built to run with AOT compiled code with no developer
+features enabled.
 
-From //third_party/skia/BUILD.gn:45
+These settings are only used for Flutter, at the moment. A standalone build
+of the Dart VM should leave this set to "develop", and should set
+'is_debug', 'is_release', or 'is_product'.
 
-### host_byteorder
+TODO(rmacnak): dart_runtime_mode no longer selects whether libdart is build
+for JIT or AOT, since libdart waw split into libdart_jit and
+libdart_precompiled_runtime. We should remove this flag and just set
+dart_debug/dart_product.
 
-**Current value (from the default):** `"undefined"`
+**Current value (from the default):** `"develop"`
 
-From //build/config/host_byteorder.gni:7
+From //third_party/dart/runtime/runtime_args.gni:28
 
-### skia_use_piex
+### skia_enable_vulkan_debug_layers
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:33
+From //third_party/skia/BUILD.gn:49
 
-### target_sysroot
-The absolute path of the sysroot that is used with the target toolchain.
+### skia_enable_gpu
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `true`
 
-From //build/config/sysroot.gni:7
+From //third_party/skia/gn/skia.gni:11
 
-### zircon_enable_kernel_debugging_features
-Whether to include various features (non-shipping, insecure, etc.) in the
-kernel or netsvc builds.
+### enable_dart_analysis
+Enable all dart analysis
 
-**Current value for `target_cpu = "arm64"`:** `false`
+**Current value (from the default):** `true`
 
-From //products/core.gni:9
+From //build/dart/dart_library.gni:15
 
-**Overridden from the default:** `false`
+### engine_version
 
-From //build/config/fuchsia/zircon.gni:32
+**Current value (from the default):** `""`
 
-**Current value for `target_cpu = "x64"`:** `false`
+From //third_party/flutter/shell/version/version.gni:6
 
-From //products/core.gni:9
+### flutter_default_app
 
-**Overridden from the default:** `false`
+**Current value (from the default):** `"flutter_jit_app"`
 
-From //build/config/fuchsia/zircon.gni:32
+From [//topaz/runtime/dart/dart_component.gni:12](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#12)
 
-### scenic_use_views2
-Temporary flag, switches Flutter to using Scenic's new View API.
+### msd_arm_enable_cache_coherency
+With this flag set the system tries to use cache coherent memory if the
+GPU supports it.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `true`
 
-From //garnet/bin/ui/scenic/config.gni:7
+From //garnet/drivers/gpu/msd-arm-mali/src/BUILD.gn:13
 
-### debian_guest_qcow
-Package the rootfs as a QCOW image (as opposed to a flat file).
+### skia_enable_nvpr
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //src/virtualization/packages/debian_guest/BUILD.gn:9
+From //third_party/skia/BUILD.gn:43
 
-### use_prebuilt_ffmpeg
-Use a prebuilt ffmpeg binary rather than building it locally.  See
-//src/media/lib/ffmpeg/README.md for details.  This is ignored when
-building in variant builds for which there is no prebuilt.  In that
-case, ffmpeg is always built from source so as to be built with the
-selected variant's config.  When this is false (either explicitly or in
-a variant build) then //third_party/ffmpeg must be in the source tree,
-which requires:
-`jiri import -name integration third_party/ffmpeg https://fuchsia.googlesource.com/integration`
+### skia_use_libjpeg_turbo
 
 **Current value (from the default):** `true`
 
-From //src/media/lib/ffmpeg/BUILD.gn:14
+From //third_party/skia/BUILD.gn:28
 
-### enable_mdns_trace
-Enables the tracing feature of mdns, which can be turned on using
-"mdns-util verbose".
+### dart_force_product
+Forces all Dart and Flutter apps to build in a specific configuration that
+we use to build products.
 
 **Current value (from the default):** `false`
 
-From //src/connectivity/network/mdns/service/BUILD.gn:15
+From [//topaz/runtime/dart/config.gni:10](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/config.gni#10)
 
-### exclude_kernel_service
-Whether the VM includes the kernel service in all modes (debug, release,
-product).
+### dart_target_arch
+Explicitly set the target architecture to use a simulator.
+Available options are: arm, arm64, x64, ia32, and dbc.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"arm64"`
 
-From //third_party/dart/runtime/runtime_args.gni:88
+From //third_party/dart/runtime/runtime_args.gni:32
 
-### magma_build_root
+### toolchain_variant
+*This should never be set as a build argument.*
+It exists only to be set in `toolchain_args`.
+See //build/toolchain/clang_toolchain.gni for details.
+This variable is a scope giving details about the current toolchain:
+    `toolchain_variant.base`
+        [label] The "base" toolchain for this variant, *often the
+        right thing to use in comparisons, not `current_toolchain`.*
+        This is the toolchain actually referenced directly in GN
+        source code.  If the current toolchain is not
+        `shlib_toolchain` or a variant toolchain, this is the same
+        as `current_toolchain`.  In one of those derivative
+        toolchains, this is the toolchain the GN code probably
+        thought it was in.  This is the right thing to use in a test
+        like `toolchain_variant.base == target_toolchain`, rather
+        rather than comparing against `current_toolchain`.
+    `toolchain_variant.name`
+        [string] The name of this variant, as used in `variant` fields
+        in [`select_variant`](#select_variant) clauses.  In the base
+        toolchain and its `shlib_toolchain`, this is `""`.
+    `toolchain_variant.suffix`
+        [string] This is "-${toolchain_variant.name}", "" if name is empty.
+    `toolchain_variant.is_pic_default`
+        [bool] This is true in `shlib_toolchain`.
+The other fields are the variant's effects as defined in
+[`known_variants`](#known_variants).
 
-**Current value (from the default):** `"//garnet/lib/magma"`
+**Current value (from the default):**
+```
+{
+  base = "//build/toolchain/fuchsia:arm64"
+}
+```
 
-From //garnet/lib/magma/gnbuild/magma.gni:8
+From //build/config/BUILDCONFIG.gn:74
 
-### skia_enable_skshaper
+### update_kernels
+(deprecated) List of kernel images to include in the update (OTA) package.
+If no list is provided, all built kernels are included. The names in the
+list are strings that must match the filename to be included in the update
+package.
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `[]`
 
-From //third_party/skia/modules/skshaper/BUILD.gn:9
+From //build/images/BUILD.gn:498
 
-### skia_gl_standard
+### thinlto_jobs
+Number of parallel ThinLTO jobs.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `8`
 
-From //third_party/skia/BUILD.gn:80
+From //build/config/lto/config.gni:13
 
-### use_vbmeta
-If true, then the paving script will pave vbmeta images to the target device.
-It is assumed that the vbmeta image will be created by the custom_signing_script.
+### dart_use_crashpad
+Whether to link Crashpad library for crash handling. Only supported on
+Windows for now.
 
 **Current value (from the default):** `false`
 
-From //build/images/custom_signing.gni:16
+From //third_party/dart/runtime/runtime_args.gni:51
 
-### active_partition
+### enable_netboot
+Whether to build the netboot zbi by default.
 
-**Current value (from the default):** `""`
+You can still build //build/images:netboot explicitly even if enable_netboot is false.
 
-From //build/images/BUILD.gn:45
+**Current value for `target_cpu = "arm64"`:** `false`
 
-### log_startup_sleep
+From //products/core.gni:7
 
-**Current value (from the default):** `"30000"`
+**Overridden from the default:** `false`
 
-From //garnet/bin/log_listener/BUILD.gn:14
+From //build/images/BUILD.gn:33
 
-### msd_arm_enable_cache_coherency
-With this flag set the system tries to use cache coherent memory if the
-GPU supports it.
+**Current value for `target_cpu = "x64"`:** `false`
 
-**Current value (from the default):** `true`
+From //products/core.gni:7
 
-From //garnet/drivers/gpu/msd-arm-mali/src/BUILD.gn:13
+**Overridden from the default:** `false`
 
-### skia_enable_fontmgr_custom
+From //build/images/BUILD.gn:33
+
+### skia_enable_discrete_gpu
 
 **Current value (from the default):** `true`
 
-From //third_party/skia/BUILD.gn:68
+From //third_party/skia/BUILD.gn:44
 
-### skia_version
+### skia_enable_skottie
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `true`
 
-From //third_party/flutter/shell/version/version.gni:8
+From //third_party/skia/modules/skottie/BUILD.gn:9
 
-### is_debug
-Debug build.
+### dart_use_fallback_root_certificates
+Whether to fall back to built-in root certificates when they cannot be
+verified at the operating system level.
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //build/config/BUILDCONFIG.gn:11
+From //third_party/dart/runtime/runtime_args.gni:43
 
-### skia_use_opencl
+### enable_sketchy_subsystem
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:32
+From //garnet/bin/ui/scenic/BUILD.gn:13
 
-### skia_use_xps
+### flutter_runtime_mode
+The runtime mode ("debug", "profile", "release", "dynamic_profile", or "dynamic_release")
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `"debug"`
 
-From //third_party/skia/BUILD.gn:39
+From //third_party/flutter/common/config.gni:19
 
-### support_insecure_wep
-Enable WEP support.
-Use temporarily for testing driver WEP support.
-This build flag will be replaced by providing
-dedicated WEP specific WLAN targets which products
-can depend on.
+### glm_build_root
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"//third_party/glm"`
 
-From //src/connectivity/wlan/lib/wep_deprecated/BUILD.gn:15
+From //garnet/lib/magma/gnbuild/magma.gni:11
 
-### zircon_asserts
+### msd_arm_enable_protected_debug_swap_mode
+In protected mode, faults don't return as much information so they're much harder to debug. To
+work around that, add a mode where protected atoms are executed in non-protected mode and
+vice-versa.
 
-**Current value (from the default):** `true`
+NOTE: The memory security ranges should also be set (in TrustZone) to the opposite of normal, so
+that non-protected mode accesses can only access protected memory and vice versa.  Also,
+growable memory faults won't work in this mode, so larger portions of growable memory should
+precommitted (which is not done by default).
 
-From //build/config/fuchsia/BUILD.gn:205
+**Current value (from the default):** `false`
 
-### cloudkms_key_dir
+From //garnet/drivers/gpu/msd-arm-mali/src/BUILD.gn:23
 
-**Current value (from the default):** `"projects/fuchsia-infra/locations/global/keyRings/test-secrets/cryptoKeys"`
+### skia_enable_fontmgr_fuchsia
 
-From //build/testing/secret_spec.gni:8
+**Current value (from the default):** `false`
 
-### concurrent_go_jobs
-Maximum number of Go processes to run in parallel.
+From //third_party/skia/BUILD.gn:71
 
-**Current value (from the default):** `16`
+### skia_enable_particles
 
-From //build/go/BUILD.gn:11
+**Current value (from the default):** `true`
 
-### skia_use_fixed_gamma_text
+From //third_party/skia/modules/particles/BUILD.gn:7
+
+### skia_use_fonthost_mac
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:27
+From //third_party/skia/BUILD.gn:25
 
-### skia_use_freetype
+### add_qemu_to_build_archives
+Whether to include images necessary to run Fuchsia in QEMU in build
+archives.
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:26
+From //build/images/BUILD.gn:51
 
-### build_sdk_archives
-Whether to build SDK tarballs.
+### export_x64_sdk_images
 
 **Current value (from the default):** `false`
 
-From //build/sdk/sdk.gni:13
-
-### dart_aot_sharing_basis
-module_suggester is not AOT compiled in debug builds
-
-**Current value (from the default):** `""`
+From //sdk/BUILD.gn:13
 
-From [//topaz/runtime/dart/dart_component.gni:51](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#51)
+### skia_generate_workarounds
 
-### dart_runtime_mode
-Set the runtime mode. This affects how the runtime is built and what
-features it has. Valid values are:
-'develop' (the default) - VM is built to run as a JIT with all development
-features enabled.
-'profile' - The VM is built to run with AOT compiled code with only the
-CPU profiling features enabled.
-'release' - The VM is built to run with AOT compiled code with no developer
-features enabled.
+**Current value (from the default):** `false`
 
-These settings are only used for Flutter, at the moment. A standalone build
-of the Dart VM should leave this set to "develop", and should set
-'is_debug', 'is_release', or 'is_product'.
+From //third_party/skia/BUILD.gn:52
 
-TODO(rmacnak): dart_runtime_mode no longer selects whether libdart is build
-for JIT or AOT, since libdart waw split into libdart_jit and
-libdart_precompiled_runtime. We should remove this flag and just set
-dart_debug/dart_product.
+### extra_manifest_args
+Extra args to globally apply to the manifest generation script.
 
-**Current value (from the default):** `"develop"`
+**Current value (from the default):** `[]`
 
-From //third_party/dart/runtime/runtime_args.gni:28
+From //build/images/manifest.gni:22
 
-### dart_use_tcmalloc
-Whether to link the standalone VM against tcmalloc. The standalone build of
-the VM enables this only for Linux builds.
+### fastboot_product
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `""`
 
-From //third_party/dart/runtime/runtime_args.gni:47
+From //build/images/BUILD.gn:47
 
-### crashpad_dependencies
+### rust_warnings
+Sets whether Rust compiler warnings cause errors or not.
+"deny" will make all warnings into errors, while "allow" will ignore warnings
 
-**Current value (from the default):** `"fuchsia"`
+**Current value (from the default):** `"deny"`
 
-From [//third_party/crashpad/build/crashpad_buildconfig.gni:22](https://chromium.googlesource.com/crashpad/crashpad/+/d221b7cadab5f00c6999f060a5bcb0896e25c7b7/build/crashpad_buildconfig.gni#22)
+From //build/rust/config.gni:27
 
-### magma_enable_tracing
-Enable this to include fuchsia tracing capability
+### skia_use_vulkan
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //garnet/lib/magma/gnbuild/magma.gni:17
+From //third_party/skia/BUILD.gn:88
 
-### enable_input_subsystem
+### use_prebuilt_ffmpeg
+Use a prebuilt ffmpeg binary rather than building it locally.  See
+//src/media/lib/ffmpeg/README.md for details.  This is ignored when
+building in variant builds for which there is no prebuilt.  In that
+case, ffmpeg is always built from source so as to be built with the
+selected variant's config.  When this is false (either explicitly or in
+a variant build) then //third_party/ffmpeg must be in the source tree,
+which requires:
+`jiri import -name integration third_party/ffmpeg https://fuchsia.googlesource.com/integration`
 
 **Current value (from the default):** `true`
 
-From //garnet/bin/ui/scenic/BUILD.gn:14
+From //src/media/lib/ffmpeg/BUILD.gn:14
 
-### framework_packages
+### dart_lib_export_symbols
+Whether libdart should export the symbols of the Dart API.
 
-**Current value (from the default):** `["collection", "flutter", "meta", "typed_data", "vector_math"]`
+**Current value (from the default):** `true`
 
-From [//topaz/runtime/flutter_runner/prebuilt_framework.gni:8](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/flutter_runner/prebuilt_framework.gni#8)
+From //third_party/dart/runtime/runtime_args.gni:91
 
-### gocache_dir
-  gocache_dir
-    Directory GOCACHE environment variable will be set to. This directory
-    will have build and test results cached, and is safe to be written to
-    concurrently. If overridden, this directory must be a full path.
+### devmgr_config
+List of arguments to add to /boot/config/devmgr.
+These come after synthesized arguments to configure blobfs and pkgfs.
 
-**Current value (from the default):** `"/b/s/w/ir/k/root_build_dir/host_x64/.gocache"`
+**Current value (from the default):** `[]`
 
-From //build/go/go_build.gni:16
+From //build/images/BUILD.gn:475
 
-### skia_android_serial
+### magma_enable_developer_build
+Enable this to have the msd include a suite of tests and invoke them
+automatically when the driver starts.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:41
+From //garnet/lib/magma/gnbuild/magma.gni:21
 
-### skia_llvm_path
+### minfs_minimum_inodes
 
 **Current value (from the default):** `""`
 
-From //third_party/skia/BUILD.gn:57
+From //build/images/fvm.gni:29
 
-### extra_authorized_keys_file
-Additional SSH authorized_keys file to include in the build.
-For example:
-  extra_authorized_keys_file=\"$HOME/.ssh/id_rsa.pub\"
+### skia_enable_atlas_text
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `false`
 
-From [//third_party/openssh-portable/fuchsia/developer-keys/BUILD.gn:11](https://fuchsia.googlesource.com/third_party/openssh-portable/+/62f4ca0d82fa50a3405703837031a15c36dccdd4/fuchsia/developer-keys/BUILD.gn#11)
+From //third_party/skia/BUILD.gn:65
 
-### skia_enable_fontmgr_android
+### auto_login_to_guest
+Whether basemgr should automatically login as a persistent guest user.
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:70
+From //peridot/bin/basemgr/BUILD.gn:13
 
-### build_info_version
-Logical version of the current build. If not set, defaults to the timestamp
-of the most recent update.
+### linux_runner_ip
+Default values for the guest network configuration.
 
-**Current value (from the default):** `""`
+These are currently hard-coded to match what is setup in the virtio-net
+device.
 
-From //garnet/BUILD.gn:28
+See //src/virtualization/bin/vmm/device/virtio_net.cc for more details.
 
-### enable_value_subsystem
+**Current value (from the default):** `"10.0.0.2"`
 
-**Current value (from the default):** `false`
+From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:17
 
-From //garnet/bin/ui/scenic/BUILD.gn:11
+### skia_use_icu
 
-### skia_enable_tools
+**Current value (from the default):** `true`
 
-**Current value (from the default):** `false`
+From //third_party/skia/gn/skia.gni:13
 
-From //third_party/skia/gn/skia.gni:12
+### symbol_level
+How many symbols to include in the build. This affects the performance of
+the build since the symbols are large and dealing with them is slow.
+  2 means regular build with symbols.
+  1 means minimal symbols, usually enough for backtraces only. Symbols with
+internal linkage (static functions or those in anonymous namespaces) may not
+appear when using this level.
+  0 means no symbols.
 
-### blobfs_minimum_inodes
-minimum_inodes is the number of inodes to reserve for the fs
-An empty string does not reserve any additional space than minimum
-required for the filesystem.
+**Current value (from the default):** `2`
 
-**Current value (from the default):** `""`
+From //build/config/compiler.gni:13
 
-From //build/images/fvm.gni:28
+### concurrent_dart_jobs
+Maximum number of Dart processes to run in parallel.
 
-### cache_package_labels
-If you add package labels to this variable, the packages will be included
-in the 'cache' package set, which represents an additional set of software
-that is made available on disk immediately after paving and in factory
-flows. These packages are not updated with an OTA, but instead are updated
-ephemerally. This cache of software can be evicted by the system if storage
-pressure arises or other policies indicate.
+Dart analyzer uses a lot of memory which may cause issues when building
+with many parallel jobs e.g. when using goma. To avoid out-of-memory
+errors we explicitly reduce the number of jobs.
 
-**Current value for `target_cpu = "arm64"`:** `[]`
+**Current value (from the default):** `16`
 
-From //products/core.gni:25
+From //build/dart/BUILD.gn:15
 
-**Overridden from the default:** `[]`
+### skia_lex
 
-From //BUILD.gn:22
+**Current value (from the default):** `false`
 
-**Current value for `target_cpu = "x64"`:** `[]`
+From //third_party/skia/BUILD.gn:53
 
-From //products/core.gni:25
+### skia_use_sfntly
 
-**Overridden from the default:** `[]`
+**Current value for `target_cpu = "arm64"`:** `false`
 
-From //BUILD.gn:22
+From //.gn:30
 
-### linux_runner_extras
-If `true`, the extras.img will be built and mounted inside the container
-at /mnt/chromeos.
+**Overridden from the default:** `true`
 
-This is useful for including some GN-built binaries into the guest image
-without modifying the termina images.
+From //third_party/skia/BUILD.gn:64
 
-**Current value (from the default):** `false`
+**Current value for `target_cpu = "x64"`:** `false`
 
-From //src/virtualization/packages/biscotti_guest/linux_runner/BUILD.gn:26
+From //.gn:30
 
-### max_log_disk_usage
-Controls how many bytes of space on disk are used to persist device logs.
-Should be a string value that only contains digits.
+**Overridden from the default:** `true`
 
-**Current value (from the default):** `"0"`
+From //third_party/skia/BUILD.gn:64
 
-From //garnet/bin/log_listener/BUILD.gn:13
+### cloudkms_key_dir
 
-### prebuilt_dart_sdk
-Directory containing prebuilt Dart SDK.
-This must have in its `bin/` subdirectory `gen_snapshot.OS-CPU` binaries.
-Set to empty for a local build.
+**Current value (from the default):** `"projects/fuchsia-infra/locations/global/keyRings/test-secrets/cryptoKeys"`
 
-**Current value (from the default):** `"//topaz/tools/prebuilt-dart-sdk/linux-x64"`
+From //build/testing/secret_spec.gni:8
 
-From //build/dart/dart.gni:9
+### ledger_sync_credentials_file
 
-### skia_use_x11
+**Current value (from the default):** `""`
 
-**Current value for `target_cpu = "arm64"`:** `false`
+From //src/ledger/bin/testing/sync_params.gni:6
 
-From //.gn:31
+### goma_dir
+Absolute directory containing the Goma source code.
 
-**Overridden from the default:** `true`
+**Current value (from the default):** `"/home/swarming/goma"`
 
-From //third_party/skia/BUILD.gn:38
+From //build/toolchain/goma.gni:12
 
-**Current value for `target_cpu = "x64"`:** `false`
+### scudo_default_options
+Default [Scudo](https://llvm.org/docs/ScudoHardenedAllocator.html)
+options (before the `SCUDO_OPTIONS` environment variable is read at
+runtime).  *NOTE:* This affects only components using the `scudo`
+variant (see GN build argument `select_variant`), and does not affect
+anything when the `use_scudo` build flag is set instead.
 
-From //.gn:31
+**Current value (from the default):** `["abort_on_error=1", "QuarantineSizeKb=0", "ThreadLocalQuarantineSizeKb=0", "DeallocationTypeMismatch=false", "DeleteSizeMismatch=false", "allocator_may_return_null=true"]`
 
-**Overridden from the default:** `true`
+From //build/config/scudo/scudo.gni:17
 
-From //third_party/skia/BUILD.gn:38
+### skia_skqp_global_error_tolerance
 
-### use_vulkan_loader_for_tests
-Mesa doesn't properly handle loader-less operation;
-their GetInstanceProcAddr implementation returns 0 for some interfaces.
-On ARM there may be multiple libvulkan_arms, so they can't all be linked
-to.
+**Current value (from the default):** `0`
+
+From //third_party/skia/BUILD.gn:55
+
+### use_thinlto
+Use ThinLTO variant of LTO if use_lto = true.
 
 **Current value (from the default):** `true`
 
-From //garnet/lib/magma/gnbuild/magma.gni:31
+From //build/config/lto/config.gni:10
+
+### embedder_for_target
+By default, the dynamic library target exposing the embedder API is only
+built for the host. The reasoning is that platforms that have target
+definitions would not need an embedder API because an embedder
+implementation is already provided for said target. This flag allows tbe
+builder to obtain a shared library exposing the embedder API for alternative
+embedder implementations.
+
+**Current value (from the default):** `false`
+
+From //third_party/flutter/shell/platform/embedder/embedder.gni:12
 
 ### flutter_space_dart
 Whether experimental space dart mode is enabled for Flutter applications.
@@ -1706,25 +1718,50 @@ Whether experimental space dart mode is enabled for Flutter applications.
 
 From [//topaz/runtime/dart/dart_component.gni:38](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#38)
 
-### board_package_labels
-A list of package labels to include in the 'base' package set. Used by the
-board definition rather than the product definition.
+### skia_enable_fontmgr_empty
 
-**Current value for `target_cpu = "arm64"`:** `["//garnet/packages/prod:drivers", "//garnet/packages/prod:sysmem-assistant"]`
+**Current value (from the default):** `false`
 
-From //boards/arm64.gni:11
+From //third_party/skia/BUILD.gn:66
+
+### skia_llvm_lib
+
+**Current value (from the default):** `"LLVM"`
+
+From //third_party/skia/BUILD.gn:58
+
+### skia_use_angle
+
+**Current value (from the default):** `false`
+
+From //third_party/skia/BUILD.gn:21
+
+### system_package_key
+The package key to use for signing Fuchsia packages made by the
+`package()` template (and the `system_image` package).  If this
+doesn't exist yet when it's needed, it will be generated.  New
+keys can be generated with the `pm -k FILE genkey` host command.
+
+**Current value (from the default):** `"//build/development.key"`
+
+From //build/package.gni:18
 
-**Overridden from the default:** `[]`
+### use_vulkan_loader_for_tests
+Mesa doesn't properly handle loader-less operation;
+their GetInstanceProcAddr implementation returns 0 for some interfaces.
+On ARM there may be multiple libvulkan_arms, so they can't all be linked
+to.
 
-From //BUILD.gn:34
+**Current value (from the default):** `true`
 
-**Current value for `target_cpu = "x64"`:** `["//garnet/packages/prod:drivers"]`
+From //garnet/lib/magma/gnbuild/magma.gni:31
 
-From //boards/x64.gni:13
+### zircon_a_partition
+arguments to fx flash script
 
-**Overridden from the default:** `[]`
+**Current value (from the default):** `""`
 
-From //BUILD.gn:34
+From //build/images/BUILD.gn:39
 
 ### dart_vm_code_coverage
 Whether to enable code coverage for the standalone VM.
@@ -1733,214 +1770,226 @@ Whether to enable code coverage for the standalone VM.
 
 From //third_party/dart/runtime/runtime_args.gni:39
 
-### enable_dart_analysis
-Enable all dart analysis
-
-**Current value (from the default):** `true`
-
-From //build/dart/dart_library.gni:15
-
-### glm_build_root
-
-**Current value (from the default):** `"//third_party/glm"`
+### rust_toolchain_triple_suffix
+Sets the fuchsia toolchain target triple suffix (after arch)
 
-From //garnet/lib/magma/gnbuild/magma.gni:11
+**Current value (from the default):** `"fuchsia"`
 
-### zircon_build_root
+From //build/rust/config.gni:23
 
-**Current value (from the default):** `"//zircon"`
+### kernel_cmdline_files
+Files containing additional kernel command line arguments to bake into
+the boot image.  The contents of these files (in order) come after any
+arguments directly in [`kernel_cmdline_args`](#kernel_cmdline_args).
+These can be GN `//` source pathnames or absolute system pathnames.
 
-From //garnet/lib/magma/gnbuild/magma.gni:12
+**Current value (from the default):** `[]`
 
-### allow_layer_guesswork
-Does nothing.
+From //build/images/BUILD.gn:486
 
-Will be removed after 30 April 2019.
+### max_log_disk_usage
+Controls how many bytes of space on disk are used to persist device logs.
+Should be a string value that only contains digits.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"0"`
 
-From //BUILD.gn:39
+From //garnet/bin/log_listener/BUILD.gn:13
 
-### data_partition_manifest
-Path to manifest file containing data to place into the initial /data
-partition.
+### skia_android_serial
 
 **Current value (from the default):** `""`
 
-From //build/images/BUILD.gn:28
-
-### flutter_runtime_mode
-The runtime mode ("debug", "profile", "release", "dynamic_profile", or "dynamic_release")
-
-**Current value (from the default):** `"debug"`
-
-From //third_party/flutter/common/config.gni:19
+From //third_party/skia/BUILD.gn:41
 
-### skia_enable_skottie
+### skia_use_zlib
 
 **Current value (from the default):** `true`
 
-From //third_party/skia/modules/skottie/BUILD.gn:9
-
-### skia_enable_vulkan_debug_layers
-
-**Current value (from the default):** `false`
-
-From //third_party/skia/BUILD.gn:49
+From //third_party/skia/BUILD.gn:35
 
-### vbmeta_r_partition
+### blobfs_minimum_data_bytes
+Number of bytes to reserve for data in the fs. This is in addition
+to what is reserved, if any, for the inodes. Data bytes constitutes
+"usable" space of the fs.
+An empty string does not reserve any additional space than minimum
+required for the filesystem.
 
 **Current value (from the default):** `""`
 
-From //build/images/BUILD.gn:44
+From //build/images/fvm.gni:36
 
-### zedboot_devmgr_config
-List of arguments to populate /boot/config/devmgr in the Zedboot image.
+### exclude_kernel_service
+Whether the VM includes the kernel service in all modes (debug, release,
+product).
 
-**Current value (from the default):** `["netsvc.netboot=true"]`
+**Current value (from the default):** `false`
 
-From //build/images/zedboot/BUILD.gn:26
+From //third_party/dart/runtime/runtime_args.gni:88
 
-### persist_logs
+### skia_use_expat
 
-**Current value (from the default):** `true`
+**Current value for `target_cpu = "arm64"`:** `false`
 
-From //build/persist_logs.gni:13
+From //.gn:27
 
-### skia_use_libjpeg_turbo
+**Overridden from the default:** `true`
 
-**Current value (from the default):** `true`
+From //third_party/skia/BUILD.gn:23
 
-From //third_party/skia/BUILD.gn:28
+**Current value for `target_cpu = "x64"`:** `false`
 
-### using_fuchsia_sdk
-Only set in buildroots where targets configure themselves for use with the
-Fuchsia SDK
+From //.gn:27
 
-**Current value (from the default):** `false`
+**Overridden from the default:** `true`
 
-From //build/fuchsia/sdk.gni:8
+From //third_party/skia/BUILD.gn:23
 
-### build_info_product
-Product configuration of the current build
+### universe_package_labels
+If you add package labels to this variable, the packages will be included
+in the 'universe' package set, which represents all software that is
+produced that is to be published to a package repository or to the SDK by
+the build. The build system ensures that the universe package set includes
+the base and cache package sets, which means you do not need to redundantly
+include those labels in this variable.
 
-**Current value (from the default):** `""`
+**Current value for `target_cpu = "arm64"`:** `["//garnet/packages/prod:vboot_reference", "//bundles:tools"]`
 
-From //garnet/BUILD.gn:21
+From //products/core.gni:27
 
-### magma_enable_developer_build
-Enable this to have the msd include a suite of tests and invoke them
-automatically when the driver starts.
+**Overridden from the default:** `[]`
 
-**Current value (from the default):** `false`
+From //BUILD.gn:30
 
-From //garnet/lib/magma/gnbuild/magma.gni:21
+**Current value for `target_cpu = "x64"`:** `["//garnet/packages/prod:vboot_reference", "//bundles:tools"]`
 
-### msd_intel_gen_build_root
+From //products/core.gni:27
 
-**Current value (from the default):** `"//garnet/drivers/gpu/msd-intel-gen"`
+**Overridden from the default:** `[]`
 
-From //garnet/lib/magma/gnbuild/magma.gni:10
+From //BUILD.gn:30
 
-### prebuilt_libvulkan_arm_path
+### zircon_extra_args
+[Zircon GN build arguments](../../../zircon/docs/gen/build_arguments.md).
+This is included in the default value of [`zircon_args`](#zircon_args) so
+you can set this to add things there without wiping out the defaults.
+When you set `zircon_args` directly, then this has no effect at all.
+Arguments you set here override any arguments in the default
+`zircon_args`.  There is no way to append to a value from the defaults.
+Note that for just setting simple (string-only) values in Zircon GN's
+[`variants`](../../../zircon/docs/gen/build_arguments.md#variants), the
+default [`zircon_args`](#zircon_args) uses a `variants` value derived from
+[`select_variant`](#select_variant) so for simple cases there is no need
+to explicitly set Zircon's `variants` here.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `{ }`
 
-From //garnet/lib/magma/gnbuild/magma.gni:23
+From //build/config/fuchsia/zircon.gni:27
 
-### skia_pdf_subset_harfbuzz
-TODO: set skia_pdf_subset_harfbuzz to skia_use_harfbuzz.
+### dart_space_dart
+Whether experimental space dart mode is enabled for Dart applications.
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/gn/skia.gni:18
-
-### concurrent_rust_jobs
-Maximum number of Rust processes to run in parallel.
+From [//topaz/runtime/dart/dart_component.gni:41](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#41)
 
-We run multiple rustc jobs in parallel, each of which can cause significant
-amount of memory, especially when using LTO. To avoid out-of-memory errors
-we explicitly reduce the number of jobs.
+### fuchsia_vulkan_sdk
+Path to Fuchsia Vulkan SDK
 
-**Current value (from the default):** `14`
+**Current value (from the default):** `"//third_party/vulkan_loader_and_validation_layers"`
 
-From //build/rust/BUILD.gn:15
+From //build/vulkan/config.gni:10
 
-### rust_toolchain_triple_suffix
-Sets the fuchsia toolchain target triple suffix (after arch)
+### have_secmem_ta
+The secmem TA must be obtained elsewhere and put into the firmware
+directory.
 
-**Current value (from the default):** `"fuchsia"`
+**Current value (from the default):** `false`
 
-From //build/rust/config.gni:23
+From //garnet/bin/sysmem-assistant/BUILD.gn:44
 
-### skia_generate_workarounds
+### skia_use_egl
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:52
+From //third_party/skia/BUILD.gn:22
 
-### skia_use_fontconfig
+### use_prebuilt_dart_sdk
+Whether to use the prebuilt Dart SDK for everything.
+When setting this to false, the preubilt Dart SDK will not be used in
+situations where the version of the SDK matters, but may still be used as an
+optimization where the version does not matter.
 
-**Current value for `target_cpu = "arm64"`:** `false`
+**Current value (from the default):** `true`
 
-From //.gn:28
+From //build/dart/dart.gni:15
 
-**Overridden from the default:** `true`
+### zircon_b_partition
 
-From //third_party/skia/BUILD.gn:24
+**Current value (from the default):** `""`
 
-**Current value for `target_cpu = "x64"`:** `false`
+From //build/images/BUILD.gn:40
 
-From //.gn:28
+### dart_version_git_info
+Whether the Dart binary version string should include the git hash and
+git commit time.
 
-**Overridden from the default:** `true`
+**Current value (from the default):** `true`
 
-From //third_party/skia/BUILD.gn:24
+From //third_party/dart/runtime/runtime_args.gni:60
 
-### always_zedboot
-Build boot images that prefer Zedboot over local boot (only for EFI).
+### debian_guest_earlycon
 
 **Current value (from the default):** `false`
 
-From //build/images/BUILD.gn:809
+From //src/virtualization/packages/debian_guest/BUILD.gn:10
 
-### enable_gfx_subsystem
+### linux_guest_extras_path
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `""`
 
-From //garnet/bin/ui/scenic/BUILD.gn:12
+From //src/virtualization/packages/linux_guest/BUILD.gn:13
 
-### enable_sketchy_subsystem
+### skia_enable_spirv_validation
 
 **Current value (from the default):** `false`
 
-From //garnet/bin/ui/scenic/BUILD.gn:13
+From //third_party/skia/BUILD.gn:47
 
-### signed_image
+### clang_lib_dir
+Path to Clang lib directory.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"../build/buildtools/linux-x64/clang/lib"`
 
-From //build/images/BUILD.gn:46
+From //build/images/manifest.gni:19
 
-### build_info_board
-Board configuration of the current build
+### extra_authorized_keys_file
+Additional SSH authorized_keys file to include in the build.
+For example:
+  extra_authorized_keys_file=\"$HOME/.ssh/id_rsa.pub\"
 
-**Current value (from the default):** `"qemu-arm64"`
+**Current value (from the default):** `""`
 
-From //garnet/BUILD.gn:24
+From [//third_party/openssh-portable/fuchsia/developer-keys/BUILD.gn:11](https://fuchsia.googlesource.com/third_party/openssh-portable/+/62f4ca0d82fa50a3405703837031a15c36dccdd4/fuchsia/developer-keys/BUILD.gn#11)
 
-### extra_manifest_args
-Extra args to globally apply to the manifest generation script.
+### vbmeta_b_partition
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `""`
+
+From //build/images/BUILD.gn:43
+
+### warn_on_sdk_changes
+Whether to only warn when an SDK has been modified.
+If false, any unacknowledged SDK change will cause a build failure.
+
+**Current value (from the default):** `false`
 
-From //build/images/manifest.gni:22
+From //build/sdk/config.gni:8
 
-### skia_use_lua
+### expat_build_root
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"//third_party/expat"`
 
-From //third_party/skia/BUILD.gn:31
+From //garnet/lib/magma/gnbuild/magma.gni:9
 
 ### use_goma
 Set to true to enable distributed compilation using Goma.
@@ -1949,432 +1998,377 @@ Set to true to enable distributed compilation using Goma.
 
 From //build/toolchain/goma.gni:9
 
-### vbmeta_b_partition
+### always_zedboot
+Build boot images that prefer Zedboot over local boot (only for EFI).
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `false`
 
-From //build/images/BUILD.gn:43
+From //build/images/BUILD.gn:809
 
-### expat_build_root
+### skia_use_wuffs
 
-**Current value (from the default):** `"//third_party/expat"`
+**Current value (from the default):** `false`
 
-From //garnet/lib/magma/gnbuild/magma.gni:9
+From //third_party/skia/BUILD.gn:34
 
-### have_secmem_ta
-The secmem TA must be obtained elsewhere and put into the firmware
-directory.
+### fvm_slice_size
+The size of the FVM partition images "slice size". The FVM slice size is a
+minimum size of a particular chunk of a partition that is stored within
+FVM. A very small slice size may lead to decreased throughput. A very large
+slice size may lead to wasted space. The selected default size of 8mb is
+selected for conservation of space, rather than performance.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"8388608"`
 
-From //garnet/bin/sysmem-assistant/BUILD.gn:44
+From //build/images/fvm.gni:19
 
-### linux_guest_extras_path
+### skia_version
 
 **Current value (from the default):** `""`
 
-From //src/virtualization/packages/linux_guest/BUILD.gn:13
+From //third_party/flutter/shell/version/version.gni:8
 
-### select_variant_canonical
-*This should never be set as a build argument.*
-It exists only to be set in `toolchain_args`.
-See //build/toolchain/clang_toolchain.gni for details.
+### build_info_board
+Board configuration of the current build
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `"qemu-arm64"`
 
-From //build/config/BUILDCONFIG.gn:631
+From //garnet/BUILD.gn:24
 
-### skia_lex
+### dart_custom_version_for_pub
+When this argument is a non-empty string, the version repoted by the
+Dart VM will be one that is compatible with pub's interpretation of
+semantic version strings. The version string will also include the values
+of the argument. In particular the version string will read:
 
-**Current value (from the default):** `false`
+    "M.m.p-dev.x.x-$(dart_custom_version_for_pub)-$(short_git_hash)"
 
-From //third_party/skia/BUILD.gn:53
+Where 'M', 'm', and 'p' are the major, minor and patch version numbers,
+and 'dev.x.x' is the dev version tag most recently preceeding the current
+revision. The short git hash can be omitted by setting
+dart_version_git_info=false
 
-### skia_use_angle
+**Current value (from the default):** `""`
+
+From //third_party/dart/runtime/runtime_args.gni:73
+
+### create_kernel_service_snapshot
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:21
+From //third_party/dart/runtime/runtime_args.gni:101
 
-### skia_use_harfbuzz
+### dart_debug_optimization_level
+The optimization level to use for debug builds. Defaults to 0 for builds with
+code coverage enabled.
+
+**Current value (from the default):** `"2"`
+
+From //third_party/dart/runtime/runtime_args.gni:36
+
+### msd_arm_enable_all_cores
+Enable all 8 cores, which is faster but emits more heat.
 
 **Current value (from the default):** `true`
 
-From //third_party/skia/gn/skia.gni:14
+From //garnet/drivers/gpu/msd-arm-mali/src/BUILD.gn:9
 
-### engine_version
+### skia_enable_skshaper
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `true`
 
-From //third_party/flutter/shell/version/version.gni:6
+From //third_party/skia/modules/skshaper/BUILD.gn:9
 
-### flutter_default_app
+### concurrent_go_jobs
+Maximum number of Go processes to run in parallel.
 
-**Current value (from the default):** `"flutter_jit_app"`
+**Current value (from the default):** `16`
 
-From [//topaz/runtime/dart/dart_component.gni:12](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#12)
+From //build/go/BUILD.gn:11
 
-### skia_enable_ccpr
+### debian_guest_qcow
+Package the rootfs as a QCOW image (as opposed to a flat file).
 
 **Current value (from the default):** `true`
 
-From //third_party/skia/BUILD.gn:42
-
-### skia_use_libwebp
+From //src/virtualization/packages/debian_guest/BUILD.gn:9
 
-**Current value for `target_cpu = "arm64"`:** `false`
+### enable_gfx_subsystem
 
-From //.gn:29
+**Current value (from the default):** `true`
 
-**Overridden from the default:** `true`
+From //garnet/bin/ui/scenic/BUILD.gn:12
 
-From //third_party/skia/BUILD.gn:30
+### host_os
 
-**Current value for `target_cpu = "x64"`:** `false`
+**Current value (from the default):** `"linux"`
 
-From //.gn:29
+### prebuilt_dart_sdk
+Directory containing prebuilt Dart SDK.
+This must have in its `bin/` subdirectory `gen_snapshot.OS-CPU` binaries.
+Set to empty for a local build.
 
-**Overridden from the default:** `true`
+**Current value (from the default):** `"//topaz/tools/prebuilt-dart-sdk/linux-x64"`
 
-From //third_party/skia/BUILD.gn:30
+From //build/dart/dart.gni:9
 
-### use_thinlto
-Use ThinLTO variant of LTO if use_lto = true.
+### skia_enable_fontmgr_custom_empty
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //build/config/lto/config.gni:10
+From //third_party/skia/BUILD.gn:69
 
-### custom_signing_script
-If non-empty, the given script will be invoked to produce a signed ZBI
-image. The given script must accept -z for the input zbi path, and -o for
-the output signed zbi path. The path must be in GN-label syntax (i.e.
-starts with //).
+### skia_qt_path
 
 **Current value (from the default):** `""`
 
-From //build/images/custom_signing.gni:12
+From //third_party/skia/BUILD.gn:50
 
-### debian_guest_earlycon
+### concurrent_link_jobs
+Maximum number of concurrent link jobs.
 
-**Current value (from the default):** `false`
+We often want to run fewer links at once than we do compiles, because
+linking is memory-intensive. The default to use varies by platform and by
+the amount of memory available, so we call out to a script to get the right
+value.
 
-From //src/virtualization/packages/debian_guest/BUILD.gn:10
+**Current value (from the default):** `16`
 
-### host_cpu
+From //build/toolchain/BUILD.gn:15
 
-**Current value (from the default):** `"x64"`
+### dart_platform_bytecode
+Whether the VM's platform dill file contains bytecode.
 
-### target_cpu
+**Current value (from the default):** `false`
 
-**Current value for `target_cpu = "arm64"`:** `"arm64"`
+From //third_party/dart/runtime/runtime_args.gni:84
 
-From //boards/arm64.gni:5
+### sdk_dirs
+The directories to search for parts of the SDK.
 
-**Overridden from the default:** `""`
+By default, we search the public directories for the various layers.
+In the future, we'll search a pre-built SDK as well.
 
-**Current value for `target_cpu = "x64"`:** `"x64"`
+**Current value (from the default):** `["//garnet/public", "//peridot/public", "//topaz/public"]`
 
-From //boards/x64.gni:5
+From //build/config/fuchsia/sdk.gni:10
 
-**Overridden from the default:** `""`
+### vbmeta_a_partition
 
-### base_package_labels
-If you add package labels to this variable, the packages will be included in
-the 'base' package set, which represents the set of packages that are part
-of an OTA. These pacakages are updated as an atomic unit during an OTA
-process and are immutable and are a superset of the TCB (Trusted Computing
-Base) for a product. These packages are never evicted by the system.
+**Current value (from the default):** `""`
 
-**Current value for `target_cpu = "arm64"`:** `["//garnet/packages/config:kernel_crash_checker", "//garnet/packages/prod:crashpad_agent", "//garnet/packages/prod:feedback_agent", "//garnet/packages/prod:kernel_crash_checker", "//garnet/packages/products:base", "//bundles:kitchen_sink"]`
+From //build/images/BUILD.gn:42
 
-From //root_build_dir/args.gn:3
+### auto_update_packages
+Whether the component loader should automatically update packages.
 
-**Overridden from the default:** `[]`
+**Current value (from the default):** `true`
 
-From //BUILD.gn:14
+From //garnet/bin/sysmgr/BUILD.gn:10
 
-**Current value for `target_cpu = "x64"`:** `["//garnet/packages/config:kernel_crash_checker", "//garnet/packages/prod:crashpad_agent", "//garnet/packages/prod:feedback_agent", "//garnet/packages/prod:kernel_crash_checker", "//garnet/packages/products:base", "//bundles:kitchen_sink"]`
+### build_info_version
+Logical version of the current build. If not set, defaults to the timestamp
+of the most recent update.
 
-From //root_build_dir/args.gn:3
+**Current value (from the default):** `""`
 
-**Overridden from the default:** `[]`
+From //garnet/BUILD.gn:28
 
-From //BUILD.gn:14
+### gocache_dir
+  gocache_dir
+    Directory GOCACHE environment variable will be set to. This directory
+    will have build and test results cached, and is safe to be written to
+    concurrently. If overridden, this directory must be a full path.
 
-### skia_use_fonthost_mac
+**Current value (from the default):** `"/b/s/w/ir/k/root_build_dir/host_x64/.gocache"`
 
-**Current value (from the default):** `false`
+From //build/go/go_build.gni:16
 
-From //third_party/skia/BUILD.gn:25
+### board_package_labels
+A list of package labels to include in the 'base' package set. Used by the
+board definition rather than the product definition.
 
-### skia_use_vulkan
+**Current value for `target_cpu = "arm64"`:** `["//garnet/packages/prod:drivers", "//garnet/packages/prod:sysmem-assistant"]`
 
-**Current value (from the default):** `false`
+From //boards/arm64.gni:11
 
-From //third_party/skia/BUILD.gn:88
+**Overridden from the default:** `[]`
 
-### use_mock_magma
+From //BUILD.gn:34
 
-**Current value (from the default):** `false`
+**Current value for `target_cpu = "x64"`:** `["//garnet/packages/prod:drivers"]`
 
-From [//third_party/mesa/src/intel/vulkan/BUILD.gn:25](https://fuchsia.googlesource.com/third_party/mesa/+/232bf12b10899d335a3fe69d947a738541ace7d3/src/intel/vulkan/BUILD.gn#25)
+From //boards/x64.gni:13
 
-### flutter_profile
+**Overridden from the default:** `[]`
 
-**Current value (from the default):** `true`
+From //BUILD.gn:34
 
-From [//topaz/runtime/dart/dart_component.gni:32](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/dart/dart_component.gni#32)
+### build_sdk_archives
+Whether to build SDK tarballs.
 
-### known_variants
-List of variants that will form the basis for variant toolchains.
-To make use of a variant, set [`select_variant`](#select_variant).
+**Current value (from the default):** `false`
 
-Normally this is not set as a build argument, but it serves to
-document the available set of variants.
-See also [`universal_variants`](#universal_variants).
-Only set this to remove all the default variants here.
-To add more, set [`extra_variants`](#extra_variants) instead.
+From //build/sdk/sdk.gni:13
 
-Each element of the list is one variant, which is a scope defining:
+### skia_pdf_subset_harfbuzz
+TODO: set skia_pdf_subset_harfbuzz to skia_use_harfbuzz.
 
-  `configs` (optional)
-      [list of labels] Each label names a config that will be
-      automatically used by every target built in this variant.
-      For each config `${label}`, there must also be a target
-      `${label}_deps`, which each target built in this variant will
-      automatically depend on.  The `variant()` template is the
-      recommended way to define a config and its `_deps` target at
-      the same time.
+**Current value (from the default):** `false`
 
-  `remove_common_configs` (optional)
-  `remove_shared_configs` (optional)
-      [list of labels] This list will be removed (with `-=`) from
-      the `default_common_binary_configs` list (or the
-      `default_shared_library_configs` list, respectively) after
-      all other defaults (and this variant's configs) have been
-      added.
+From //third_party/skia/gn/skia.gni:18
+
+### current_cpu
 
-  `deps` (optional)
-      [list of labels] Added to the deps of every target linked in
-      this variant (as well as the automatic `${label}_deps` for
-      each label in configs).
+**Current value (from the default):** `""`
 
-  `name` (required if configs is omitted)
-      [string] Name of the variant as used in
-      [`select_variant`](#select_variant) elements' `variant` fields.
-      It's a good idea to make it something concise and meaningful when
-      seen as e.g. part of a directory name under `$root_build_dir`.
-      If name is omitted, configs must be nonempty and the simple names
-      (not the full label, just the part after all `/`s and `:`s) of these
-      configs will be used in toolchain names (each prefixed by a "-"),
-      so the list of config names forming each variant must be unique
-      among the lists in `known_variants + extra_variants`.
+### experimental_wlan_client_mlme
+Selects the SoftMAC client implementation to use. Choices:
+  false (default) - C++ Client MLME implementation
+  true - Rust Client MLME implementation
+This argument is temporary until Rust MLME is ready to be used.
 
-  `toolchain_args` (optional)
-      [scope] Each variable defined in this scope overrides a
-      build argument in the toolchain context of this variant.
+**Current value (from the default):** `false`
 
-  `host_only` (optional)
-  `target_only` (optional)
-      [scope] This scope can contain any of the fields above.
-      These values are used only for host or target, respectively.
-      Any fields included here should not also be in the outer scope.
+From //src/connectivity/wlan/lib/mlme/cpp/BUILD.gn:10
 
+### max_fvm_size
+Maximum allowable size for the FVM in a release mode build
+Zero means no limit
 
-**Current value (from the default):**
-```
-[{
-  configs = ["//build/config/lto"]
-}, {
-  configs = ["//build/config/lto:thinlto"]
-}, {
-  configs = ["//build/config/profile"]
-}, {
-  configs = ["//build/config/scudo"]
-}, {
-  configs = ["//build/config/sanitizers:ubsan"]
-}, {
-  configs = ["//build/config/sanitizers:ubsan", "//build/config/sanitizers:sancov"]
-}, {
-  configs = ["//build/config/sanitizers:asan"]
-  host_only = {
-  remove_shared_configs = ["//build/config:symbol_no_undefined"]
-}
-  toolchain_args = {
-  use_scudo = false
-}
-}, {
-  configs = ["//build/config/sanitizers:asan", "//build/config/sanitizers:sancov"]
-  host_only = {
-  remove_shared_configs = ["//build/config:symbol_no_undefined"]
-}
-  toolchain_args = {
-  use_scudo = false
-}
-}, {
-  configs = ["//build/config/sanitizers:asan"]
-  host_only = {
-  remove_shared_configs = ["//build/config:symbol_no_undefined"]
-}
-  name = "asan_no_detect_leaks"
-  toolchain_args = {
-  asan_default_options = "detect_leaks=0"
-  use_scudo = false
-}
-}, {
-  configs = ["//build/config/sanitizers:asan", "//build/config/sanitizers:fuzzer"]
-  host_only = {
-  remove_shared_configs = ["//build/config:symbol_no_undefined"]
-}
-  remove_shared_configs = ["//build/config:symbol_no_undefined"]
-  toolchain_args = {
-  asan_default_options = "alloc_dealloc_mismatch=0"
-  use_scudo = false
-}
-}, {
-  configs = ["//build/config/sanitizers:ubsan", "//build/config/sanitizers:fuzzer"]
-  remove_shared_configs = ["//build/config:symbol_no_undefined"]
-}]
-```
+**Current value (from the default):** `"0"`
 
-From //build/config/BUILDCONFIG.gn:338
+From //build/images/max_fvm_size.gni:8
 
-### shell_enable_vulkan
+### crash_diagnostics_dir
+Clang crash reports directory path. Use empty path to disable altogether.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"//root_build_dir/clang-crashreports"`
 
-From //third_party/flutter/shell/config.gni:6
+From //build/config/BUILD.gn:9
 
-### skia_compile_processors
+### crashpad_dependencies
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"fuchsia"`
 
-From //third_party/skia/BUILD.gn:51
+From [//third_party/crashpad/build/crashpad_buildconfig.gni:22](https://chromium.googlesource.com/crashpad/crashpad/+/d221b7cadab5f00c6999f060a5bcb0896e25c7b7/build/crashpad_buildconfig.gni#22)
 
-### use_ccache
-Set to true to enable compiling with ccache
+### prebuilt_framework_name
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `""`
 
-From //build/toolchain/ccache.gni:9
+From [//topaz/runtime/flutter_runner/prebuilt_framework.gni:7](https://fuchsia.googlesource.com/topaz/+/e815667d2e8f06051f242e52f04785428bd8e743/runtime/flutter_runner/prebuilt_framework.gni#7)
 
-### zxcrypt_key_source
-This argument specifies from where the system should obtain the zxcrypt
-master key to the system data partition.
+### skia_use_fontconfig
 
-This value be reified as /boot/config/zxcrypt in both the zircon boot image
-and the zedboot boot image, for consumption by fshost and the paver,
-respectively.
+**Current value for `target_cpu = "arm64"`:** `false`
 
-Acceptable values are:
-* "null": the device should use an all-0's master key, as we lack support
-for any secure on-device storage.
-* "tee": the device is required to have a Trusted Execution Environment
-(TEE) which includes the "keysafe" Trusted Application (associated with the
-KMS service).  The zxcrypt master key should be derived from a per-device
-key accessible only to trusted apps running in the TEE.
-* "tee-opportunistic": the device will attempt to use keys from the TEE if
-available, but will fall back to using the null key if the key from the TEE
-does not work, or if the TEE is not functional on this device.
-* "tee-transitional": the device will require the use of a key from the TEE
-for new volume creation, but will continue to try both a TEE-sourced key and
-the null key when unsealing volumes.
+From //.gn:28
 
-In the future, we may consider adding support for TPMs, or additional logic
-to explicitly support other fallback behavior.
+**Overridden from the default:** `true`
 
-**Current value (from the default):** `"null"`
+From //third_party/skia/BUILD.gn:24
 
-From //build/images/zxcrypt.gni:29
+**Current value for `target_cpu = "x64"`:** `false`
 
-### auto_update_packages
-Whether the component loader should automatically update packages.
+From //.gn:28
 
-**Current value (from the default):** `true`
+**Overridden from the default:** `true`
 
-From //garnet/bin/sysmgr/BUILD.gn:10
+From //third_party/skia/BUILD.gn:24
 
-### dart_snapshot_kind
+### target_os
 
-**Current value (from the default):** `"kernel"`
+**Current value (from the default):** `""`
 
-From //third_party/dart/utils/application_snapshot.gni:14
+### cache_package_labels
+If you add package labels to this variable, the packages will be included
+in the 'cache' package set, which represents an additional set of software
+that is made available on disk immediately after paving and in factory
+flows. These packages are not updated with an OTA, but instead are updated
+ephemerally. This cache of software can be evicted by the system if storage
+pressure arises or other policies indicate.
 
-### skia_use_metal
+**Current value for `target_cpu = "arm64"`:** `[]`
 
-**Current value (from the default):** `false`
+From //products/core.gni:25
 
-From //third_party/skia/BUILD.gn:36
+**Overridden from the default:** `[]`
 
-### devmgr_config
-List of arguments to add to /boot/config/devmgr.
-These come after synthesized arguments to configure blobfs and pkgfs.
+From //BUILD.gn:22
 
-**Current value (from the default):** `[]`
+**Current value for `target_cpu = "x64"`:** `[]`
 
-From //build/images/BUILD.gn:475
+From //products/core.gni:25
 
-### skia_enable_particles
+**Overridden from the default:** `[]`
 
-**Current value (from the default):** `true`
+From //BUILD.gn:22
 
-From //third_party/skia/modules/particles/BUILD.gn:7
+### dart_snapshot_kind
 
-### thinlto_jobs
-Number of parallel ThinLTO jobs.
+**Current value (from the default):** `"kernel"`
 
-**Current value (from the default):** `8`
+From //third_party/dart/utils/application_snapshot.gni:14
 
-From //build/config/lto/config.gni:13
+### fuchsia_use_vulkan
+Consolidated build toggle for use of Vulkan across Fuchsia
 
-### build_libvulkan_vsl_gc
-Targets that will be built as verisilicon vulkan ICDS.
+**Current value (from the default):** `true`
 
-**Current value (from the default):** `[]`
+From //build/vulkan/config.gni:7
 
-From //garnet/lib/magma/gnbuild/magma.gni:41
+### persist_logs
 
-### current_cpu
+**Current value (from the default):** `true`
 
-**Current value (from the default):** `""`
+From //build/persist_logs.gni:13
 
-### dart_component_kind
+### skia_gl_standard
 
-**Current value (from the default):** `"static_library"`
+**Current value (from the default):** `""`
 
-From //third_party/dart/runtime/runtime_args.gni:80
+From //third_party/skia/BUILD.gn:80
 
-### host_os
+### skia_use_libheif
 
-**Current value (from the default):** `"linux"`
+**Current value (from the default):** `false`
 
-### skia_enable_fontmgr_win
+From //third_party/skia/BUILD.gn:37
+
+### use_vbmeta
+If true, then the paving script will pave vbmeta images to the target device.
+It is assumed that the vbmeta image will be created by the custom_signing_script.
 
 **Current value (from the default):** `false`
 
-From //third_party/skia/BUILD.gn:72
+From //build/images/custom_signing.gni:16
 
-### symbol_level
-How many symbols to include in the build. This affects the performance of
-the build since the symbols are large and dealing with them is slow.
-  2 means regular build with symbols.
-  1 means minimal symbols, usually enough for backtraces only. Symbols with
-internal linkage (static functions or those in anonymous namespaces) may not
-appear when using this level.
-  0 means no symbols.
+### zircon_build_root
 
-**Current value (from the default):** `2`
+**Current value (from the default):** `"//zircon"`
 
-From //build/config/compiler.gni:13
+From //garnet/lib/magma/gnbuild/magma.gni:12
 
-## `target_cpu = "arm64"`
+### blobfs_minimum_inodes
+minimum_inodes is the number of inodes to reserve for the fs
+An empty string does not reserve any additional space than minimum
+required for the filesystem.
 
-### arm_version
+**Current value (from the default):** `""`
 
-**Current value (from the default):** `8`
+From //build/images/fvm.gni:28
 
-From //build/config/arm.gni:12
+### crashpad_use_boringssl_for_http_transport_socket
+TODO(scottmg): https://crbug.com/crashpad/266 fuchsia:DX-690: BoringSSL
+was removed from the Fuchsia SDK. Re-enable it when we have a way to acquire
+a BoringSSL lib again.
+
+**Current value (from the default):** `true`
+
+From [//third_party/crashpad/util/net/tls.gni:21](https://chromium.googlesource.com/crashpad/crashpad/+/d221b7cadab5f00c6999f060a5bcb0896e25c7b7/util/net/tls.gni#21)
+
+## `target_cpu = "arm64"`
 
 ### amlogic_decoder_tests
 
@@ -2414,6 +2408,12 @@ Whether to use the neon FPU instruction set or not.
 
 From //build/config/arm.gni:28
 
+### arm_version
+
+**Current value (from the default):** `8`
+
+From //build/config/arm.gni:12
+
 ## `target_cpu = "x64"`
 
 ### msd_intel_enable_mapping_cache
diff --git a/zircon/docs/gen/build_arguments.md b/zircon/docs/gen/build_arguments.md
index 0c742e4bf9350ac4e1a6189421641a7a495b3a93..aabb41ca764c53f1242125f04bbabb557b2ab4d4 100644
--- a/zircon/docs/gen/build_arguments.md
+++ b/zircon/docs/gen/build_arguments.md
@@ -2,16 +2,71 @@
 
 ## All builds
 
-### current_os
+### asan_default_options
+Default [AddressSanitizer](https://llvm.org/docs/AddressSanitizer.html)
+options (before the `ASAN_OPTIONS` environment variable is read at
+runtime).  This can be set as a build argument to affect most "asan"
+variants in $variants (which see), or overridden in $toolchain_args in
+one of those variants.  Note that setting this nonempty may conflict
+with programs that define their own `__asan_default_options` C
+function.
 
 **Current value (from the default):** `""`
 
-### enable_acpi_debug
-Enable debug output in the ACPI library (used by the ACPI bus driver).
+From //public/gn/config/instrumentation/BUILD.gn:15
 
-**Current value (from the default):** `false`
+### symbol_level
+* 0 means no debugging information.
+* 1 means minimal debugging information sufficient to symbolize backtraces.
+* 2 means full debugging information for use with a symbolic debugger.
 
-From //third_party/lib/acpica/BUILD.gn:9
+**Current value (from the default):** `2`
+
+From //public/gn/config/levels.gni:20
+
+### thinlto_cache_dir
+ThinLTO cache directory path.
+
+**Current value (from the default):** `"user-arm64-thinlto.shlib/thinlto-cache"`
+
+From //public/gn/config/lto/BUILD.gn:22
+
+### build_id_dir
+Directory to populate with `xx/yyy` and `xx/yyy.debug` links to ELF
+files.  For every ELF binary built, with build ID `xxyyy` (lowercase
+hexadecimal of any length), `xx/yyy` is a hard link to the stripped
+file and `xx/yyy.debug` is a hard link to the unstripped file.
+Symbolization tools and debuggers find symbolic information this way.
+
+**Current value (from the default):** `"/b/s/w/ir/k/out/build-zircon/.build-id"`
+
+From //public/gn/toolchain/c_toolchain.gni:17
+
+### kernel_version_string
+Version string embedded in the kernel for `zx_system_get_version`.
+If set to the default "", a string is generated based on the
+Zircon git revision of the checkout.
+
+**Current value (from the default):** `""`
+
+From //kernel/lib/version/BUILD.gn:9
+
+### use_prebuilt_gcc
+If $gcc_tool_dir is "", then this controls how the GCC toolchain
+binaries are found.  If true, the standard prebuilt is used.  If false,
+the tools are just expected to be found in PATH.
+
+**Current value (from the default):** `true`
+
+From //public/gn/toolchain/gcc.gni:9
+
+### current_cpu
+
+**Current value (from the default):** `""`
+
+### current_os
+
+**Current value (from the default):** `""`
 
 ### enable_kernel_debugging_features
 Whether to include various features (non-shipping, insecure, etc.) in the
@@ -25,48 +80,52 @@ From //public/gn/config/product_parameters.gni:12
 
 **Current value (from the default):** `"x64"`
 
-### kernel_extra_defines
-Extra macro definitions for kernel code, e.g. "DISABLE_KASLR",
-"ENABLE_KERNEL_LL_DEBUG".
+### clang_tool_dir
+Directory where the Clang toolchain binaries ("clang", "llvm-nm", etc.) are
+found.  If this is "", then the behavior depends on $use_prebuilt_clang.
+This toolchain is expected to support both Fuchsia targets and the host.
 
-**Current value (from the default):** `[]`
+**Current value (from the default):** `""`
 
-From //kernel/params.gni:46
+From //public/gn/toolchain/clang.gni:14
 
-### opt_level
-* -1 means really unoptimized (-O0), usually only build-tested and not run.
-* 0 means "optimized for debugging" (-Og), light enough to avoid confusion.
-  1, 2, and 3 are increasing levels of optimization.
-* 4 is optimized for space rather than purely for speed.
+### enable_netsvc_debugging_features
 
-**Current value (from the default):** `2`
+**Current value (from the default):** `false`
 
-From //public/gn/config/levels.gni:15
+From //public/gn/config/product_parameters.gni:13
 
-### use_prebuilt_gcc
-If $gcc_tool_dir is "", then this controls how the GCC toolchain
-binaries are found.  If true, the standard prebuilt is used.  If false,
-the tools are just expected to be found in PATH.
+### enable_user_pci
+Enable userspace PCI and disable kernel PCI.
 
-**Current value (from the default):** `true`
+**Current value (from the default):** `false`
 
-From //public/gn/toolchain/gcc.gni:9
+From //kernel/params.gni:42
 
-### thinlto_jobs
-Number of parallel ThinLTO jobs.
+### target_os
 
-**Current value (from the default):** `8`
+**Current value (from the default):** `""`
 
-From //public/gn/config/lto/BUILD.gn:19
+### kernel_extra_defines
+Extra macro definitions for kernel code, e.g. "DISABLE_KASLR",
+"ENABLE_KERNEL_LL_DEBUG".
 
-### use_prebuilt_clang
-If $clang_tool_dir is "", then this controls how the Clang toolchain
-binaries are found.  If true, then the standard prebuilt is used.
-Otherwise the tools are just expected to be found by the shell via `PATH`.
+**Current value (from the default):** `[]`
 
-**Current value (from the default):** `true`
+From //kernel/params.gni:46
 
-From //public/gn/toolchain/clang.gni:9
+### malloc
+
+**Current value (from the default):** `"scudo"`
+
+From //third_party/ulib/musl/BUILD.gn:6
+
+### smp_max_cpus
+Maximum number of CPUs the kernel will run on (others will be ignored).
+
+**Current value (from the default):** `32`
+
+From //kernel/params.gni:7
 
 ### assert_level
 * 0 means no assertions, not even standard C `assert()`.
@@ -77,18 +136,35 @@ From //public/gn/toolchain/clang.gni:9
 
 From //public/gn/config/levels.gni:9
 
-### crash_diagnostics_dir
-Clang crash reports directory path. Use empty path to disable altogether.
+### enable_acpi_debug
+Enable debug output in the ACPI library (used by the ACPI bus driver).
 
-**Current value (from the default):** `"/b/s/w/ir/k/out/build-zircon/clang-crashreports"`
+**Current value (from the default):** `false`
 
-From //public/gn/config/BUILD.gn:11
+From //third_party/lib/acpica/BUILD.gn:9
 
-### target_cpu
+### enable_lock_dep
+Enable kernel lock dependency tracking.
 
-**Current value (from the default):** `""`
+**Current value (from the default):** `false`
 
-### target_os
+From //kernel/params.gni:32
+
+### host_os
+
+**Current value (from the default):** `"linux"`
+
+### opt_level
+* -1 means really unoptimized (-O0), usually only build-tested and not run.
+* 0 means "optimized for debugging" (-Og), light enough to avoid confusion.
+  1, 2, and 3 are increasing levels of optimization.
+* 4 is optimized for space rather than purely for speed.
+
+**Current value (from the default):** `2`
+
+From //public/gn/config/levels.gni:15
+
+### target_cpu
 
 **Current value (from the default):** `""`
 
@@ -102,12 +178,50 @@ to be pared down.
 
 From //BUILD.gn:16
 
-### thinlto_cache_dir
-ThinLTO cache directory path.
+### toolchain
+*This must never be set as a build argument.*
+It exists only to be set via c_toolchain().
+See environment() for more information.
+
+**Current value (from the default):**
+```
+{
+  configs = []
+  environment = "stub"
+  globals = { }
+  label = "//public/gn/toolchain:stub"
+}
+```
 
-**Current value (from the default):** `"user-arm64-thinlto/thinlto-cache"`
+From //public/gn/BUILDCONFIG.gn:20
 
-From //public/gn/config/lto/BUILD.gn:22
+### default_deps
+Defines the `//:default` target: what `ninja` with no arguments does.
+
+**Current value (from the default):** `[":build-tests", ":ids", ":images", ":tools"]`
+
+From //BUILD.gn:19
+
+### detailed_scheduler_tracing
+Enable detailed scheduler traces.
+
+**Current value (from the default):** `false`
+
+From //kernel/params.gni:39
+
+### enable_fair_scheduler
+Disable fair scheduler by default on all architectures.
+ZX-3959: Disable by default until E2E tests stabilize.
+
+**Current value (from the default):** `false`
+
+From //kernel/params.gni:36
+
+### kernel_base
+
+**Current value (from the default):** `"0xffffffff80100000"`
+
+From //kernel/params.gni:20
 
 ### variants
 List of "selectors" to request variant builds of certain targets.  Each
@@ -331,53 +445,18 @@ Variant scope parameters
 
 From //public/gn/toolchain/variants.gni:222
 
-### enable_user_pci
-Enable userspace PCI and disable kernel PCI.
-
-**Current value (from the default):** `false`
-
-From //kernel/params.gni:42
-
-### kernel_aspace_base
-
-**Current value (from the default):** `"0xffffff8000000000UL"`
-
-From //kernel/params.gni:28
-
-### kernel_version_string
-Version string embedded in the kernel for `zx_system_get_version`.
-If set to the default "", a string is generated based on the
-Zircon git revision of the checkout.
-
-**Current value (from the default):** `""`
-
-From //kernel/lib/version/BUILD.gn:9
-
-### build_id_dir
-Directory to populate with `xx/yyy` and `xx/yyy.debug` links to ELF
-files.  For every ELF binary built, with build ID `xxyyy` (lowercase
-hexadecimal of any length), `xx/yyy` is a hard link to the stripped
-file and `xx/yyy.debug` is a hard link to the unstripped file.
-Symbolization tools and debuggers find symbolic information this way.
-
-**Current value (from the default):** `"/b/s/w/ir/k/out/build-zircon/.build-id"`
-
-From //public/gn/toolchain/c_toolchain.gni:17
-
-### enable_fair_scheduler
-Disable fair scheduler by default on all architectures.
-ZX-3959: Disable by default until E2E tests stabilize.
-
-**Current value (from the default):** `false`
-
-From //kernel/params.gni:36
+### zx
+*This must never be set as a build argument*.
 
-### enable_lock_dep
-Enable kernel lock dependency tracking.
+"$zx/" is the prefix for GN "source-absolute" paths in the Zircon
+build.  When Zircon is built standalone, the Zircon repository is the
+root of the build (where `.gn` is found) so "$zx/" becomes "//".  When
+Zircon is part of a larger unified build, there is a higher-level `.gn`
+file that uses `default_args` to set "$zx/" to "//zircon/".
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"/"`
 
-From //kernel/params.gni:32
+From //public/gn/BUILDCONFIG.gn:13
 
 ### gcc_tool_dir
 Directory where the GCC toolchain binaries ("gcc", "nm", etc.) are
@@ -391,11 +470,32 @@ system-installed tools found by the shell via `PATH` will be used.
 
 From //public/gn/toolchain/gcc.gni:17
 
-### kernel_base
+### kernel_aspace_base
 
-**Current value (from the default):** `"0xffffffff80100000"`
+**Current value (from the default):** `"0xffffff8000000000UL"`
 
-From //kernel/params.gni:20
+From //kernel/params.gni:28
+
+### sysroot
+The `--sysroot` directory for host compilations.
+This can be a string, which only applies to $host_os-$host_cpu.
+Or it can be a list of scopes containing `cpu`, `os`, and `sysroot`.
+The empty list (or empty string) means don't use `--sysroot` at all.
+
+**Current value (from the default):**
+```
+[{
+  cpu = "arm64"
+  os = "linux"
+  sysroot = "//prebuilt/downloads/sysroot/linux-arm64"
+}, {
+  cpu = "x64"
+  os = "linux"
+  sysroot = "//prebuilt/downloads/sysroot/linux-x64"
+}]
+```
+
+From //public/gn/config/BUILD.gn:17
 
 ### use_ccache
 Set to true to enable compiling with ccache.
@@ -411,25 +511,21 @@ Set to true to enable distributed compilation using Goma.
 
 From //public/gn/toolchain/goma.gni:9
 
-### zx
-*This must never be set as a build argument*.
-
-"$zx/" is the prefix for GN "source-absolute" paths in the Zircon
-build.  When Zircon is built standalone, the Zircon repository is the
-root of the build (where `.gn` is found) so "$zx/" becomes "//".  When
-Zircon is part of a larger unified build, there is a higher-level `.gn`
-file that uses `default_args` to set "$zx/" to "//zircon/".
+### use_prebuilt_clang
+If $clang_tool_dir is "", then this controls how the Clang toolchain
+binaries are found.  If true, then the standard prebuilt is used.
+Otherwise the tools are just expected to be found by the shell via `PATH`.
 
-**Current value (from the default):** `"/"`
+**Current value (from the default):** `true`
 
-From //public/gn/BUILDCONFIG.gn:13
+From //public/gn/toolchain/clang.gni:9
 
-### detailed_scheduler_tracing
-Enable detailed scheduler traces.
+### crash_diagnostics_dir
+Clang crash reports directory path. Use empty path to disable altogether.
 
-**Current value (from the default):** `false`
+**Current value (from the default):** `"/b/s/w/ir/k/out/build-zircon/clang-crashreports"`
 
-From //kernel/params.gni:39
+From //public/gn/config/BUILD.gn:11
 
 ### enable_lock_dep_tests
 Enable kernel lock dependency tracking tests.  By default this is
@@ -441,12 +537,6 @@ disabled.
 
 From //kernel/params.gni:54
 
-### enable_netsvc_debugging_features
-
-**Current value (from the default):** `false`
-
-From //public/gn/config/product_parameters.gni:13
-
 ### goma_dir
 Absolute directory containing the Goma source code.
 
@@ -454,100 +544,10 @@ Absolute directory containing the Goma source code.
 
 From //public/gn/toolchain/goma.gni:12
 
-### smp_max_cpus
-Maximum number of CPUs the kernel will run on (others will be ignored).
-
-**Current value (from the default):** `32`
-
-From //kernel/params.gni:7
-
-### toolchain
-*This must never be set as a build argument.*
-It exists only to be set via c_toolchain().
-See environment() for more information.
-
-**Current value (from the default):**
-```
-{
-  configs = []
-  environment = "stub"
-  globals = { }
-  label = "//public/gn/toolchain:stub"
-}
-```
-
-From //public/gn/BUILDCONFIG.gn:20
-
-### asan_default_options
-Default [AddressSanitizer](https://llvm.org/docs/AddressSanitizer.html)
-options (before the `ASAN_OPTIONS` environment variable is read at
-runtime).  This can be set as a build argument to affect most "asan"
-variants in $variants (which see), or overridden in $toolchain_args in
-one of those variants.  Note that setting this nonempty may conflict
-with programs that define their own `__asan_default_options` C
-function.
-
-**Current value (from the default):** `""`
-
-From //public/gn/config/instrumentation/BUILD.gn:15
-
-### host_os
-
-**Current value (from the default):** `"linux"`
-
-### sysroot
-The `--sysroot` directory for host compilations.
-This can be a string, which only applies to $host_os-$host_cpu.
-Or it can be a list of scopes containing `cpu`, `os`, and `sysroot`.
-The empty list (or empty string) means don't use `--sysroot` at all.
-
-**Current value (from the default):**
-```
-[{
-  cpu = "arm64"
-  os = "linux"
-  sysroot = "//prebuilt/downloads/sysroot/linux-arm64"
-}, {
-  cpu = "x64"
-  os = "linux"
-  sysroot = "//prebuilt/downloads/sysroot/linux-x64"
-}]
-```
-
-From //public/gn/config/BUILD.gn:17
-
-### clang_tool_dir
-Directory where the Clang toolchain binaries ("clang", "llvm-nm", etc.) are
-found.  If this is "", then the behavior depends on $use_prebuilt_clang.
-This toolchain is expected to support both Fuchsia targets and the host.
-
-**Current value (from the default):** `""`
-
-From //public/gn/toolchain/clang.gni:14
-
-### current_cpu
-
-**Current value (from the default):** `""`
-
-### default_deps
-Defines the `//:default` target: what `ninja` with no arguments does.
-
-**Current value (from the default):** `[":build-tests", ":ids", ":images", ":tools"]`
-
-From //BUILD.gn:19
-
-### malloc
-
-**Current value (from the default):** `"scudo"`
-
-From //third_party/ulib/musl/BUILD.gn:6
-
-### symbol_level
-* 0 means no debugging information.
-* 1 means minimal debugging information sufficient to symbolize backtraces.
-* 2 means full debugging information for use with a symbolic debugger.
+### thinlto_jobs
+Number of parallel ThinLTO jobs.
 
-**Current value (from the default):** `2`
+**Current value (from the default):** `8`
 
-From //public/gn/config/levels.gni:20
+From //public/gn/config/lto/BUILD.gn:19