diff --git a/zircon/kernel/lib/userboot/user/BUILD.gn b/zircon/kernel/lib/userboot/user/BUILD.gn
index 1486923e232608bc2966d6f83d6b8dcf3a5cb7af..91a9b611c0f6cde98235535d3c3771e3466072c5 100644
--- a/zircon/kernel/lib/userboot/user/BUILD.gn
+++ b/zircon/kernel/lib/userboot/user/BUILD.gn
@@ -35,8 +35,9 @@ if (current_toolchain == default_toolchain) {
   # Everything in userboot gets compiled this way.
   config("userboot_config") {
     configs = [
-      "$zx/public/gn/config:no_sanitizers",
       "$zx/public/gn/config:user",
+      "$zx/public/gn/config:static-libc++",
+      "$zx/public/gn/config:no_sanitizers",
     ]
 
     cflags = [
diff --git a/zircon/public/gn/BUILDCONFIG.gn b/zircon/public/gn/BUILDCONFIG.gn
index 43e2b91cef4afa262975211f5ffa47a74b16fb6d..a287ce86a8ba4734f6948f7fae171ffa561b3066 100644
--- a/zircon/public/gn/BUILDCONFIG.gn
+++ b/zircon/public/gn/BUILDCONFIG.gn
@@ -131,8 +131,15 @@ template("_shlib_toolchain_target") {
         # and mutators.  See environment().
         if (dep == "$dep") {
           deps += [ dep ]
-        } else if (!defined(dep.types) || dep.types + [ invoker.match ] -
-                                          [ invoker.match ] != dep.types) {
+        } else if (defined(dep.types) && dep.types + [ invoker.match ] -
+                                         [ invoker.match ] == dep.types) {
+          # The types list doesn't include this target's type, so skip this
+          # element.
+        } else if (defined(dep.unless_configs) && configs + dep.unless_configs -
+                                                  dep.unless_configs != configs) {
+          # Something in the unless_configs list is in this target's configs,
+          # so skip this element.
+        } else {
           deps += dep.add
           deps -= dep.remove
         }
diff --git a/zircon/public/gn/config/BUILD.gn b/zircon/public/gn/config/BUILD.gn
index 5b79a5638632279cd67ea8514b339e6ab3c51013..bb114a3ea1dca80ef26ea0f3b627b7dfd0b7bc84 100644
--- a/zircon/public/gn/config/BUILD.gn
+++ b/zircon/public/gn/config/BUILD.gn
@@ -3,6 +3,7 @@
 # found in the LICENSE file.
 
 import("$zx/public/gn/config/standard.gni")
+import("$zx/public/gn/toolchain/clang.gni")
 import("levels.gni")
 
 declare_args() {
@@ -226,16 +227,23 @@ config("relative_paths") {
   ldflags = compiler_flags
 }
 
-config("nostdlib") {
-  # Don't actually use -nostdlib, because the builtins (or libgcc) are what
-  # we want and are otherwise annoying to find and specify.  It's just the
-  # -lc (and -lc++) that we really want to defeat, and that's handled by
-  # giving a -L that will find exactly nothing but a dummy libc.so.
+config("nolibc") {
   ldflags = [ "-nostartfiles" ]
+
+  # Don't use -nostdlib, because the builtins (or libgcc) are what we want
+  # and are otherwise annoying to find and specify.  It's just the -lc that
+  # we really want to defeat, and that's handled by giving a -L that will
+  # find exactly nothing but a dummy libc.so.  Clang has -nolibc to kill
+  # the -lc, but for C++ it still uses -lm under -nolibc.  So this is still
+  # needed to make -lm into a dummy, though for -lc only GCC needs it.
   lib_dirs = [ "libc-dummy" ]
+
   if (is_gcc) {
     # Include this in every link.
     libs = [ "$zx/scripts/dso_handle.ld" ]
+  } else {
+    # TODO(mcgrathr): GCC 9 has -nolibc, so use it when we get that toolchain.
+    ldflags += [ "-nolibc" ]
   }
 }
 
@@ -517,7 +525,10 @@ config("machine") {
 
 config("user") {
   defines = [ "_ALL_SOURCE" ]
-  configs = [ "$zx/third_party/ulib/musl:headers" ]
+  configs = [
+    ":nolibc",
+    "$zx/third_party/ulib/musl:headers",
+  ]
 }
 
 config("user_executable") {
@@ -571,6 +582,15 @@ config("static-libc++") {
   }
 }
 
+if (is_fuchsia) {
+  toolchain_manifest("shared-libcxx-deps") {
+    args = []
+    foreach(soname, libcxx_dt_needed) {
+      args += [ "lib/${toolchain.libprefix}${soname}" ]
+    }
+  }
+}
+
 config("rodso") {
   if (is_gcc) {
     inputs = [
diff --git a/zircon/public/gn/config/instrumentation/BUILD.gn b/zircon/public/gn/config/instrumentation/BUILD.gn
index df0bfcff1e7dd9b37c72a0fe8efe44d7f9a741df..f0310518ec7fbcdc95ae42113642d600dafe2504 100644
--- a/zircon/public/gn/config/instrumentation/BUILD.gn
+++ b/zircon/public/gn/config/instrumentation/BUILD.gn
@@ -2,6 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("$zx/public/gn/toolchain/clang.gni")
+
 declare_args() {
   # Default [AddressSanitizer](https://llvm.org/docs/AddressSanitizer.html)
   # options (before the `ASAN_OPTIONS` environment variable is read at
@@ -13,52 +15,6 @@ declare_args() {
   asan_default_options = ""
 }
 
-# Define a group() to be used in implicit_deps for a variant with runtime DSOs.
-#
-# Parameters
-#
-#   args
-#     - Required: List of regexps to match in the toolchain manifest file.
-#     - Type: list(string)
-#
-template("clang_runtime_deps") {
-  if (is_fuchsia) {
-    deps_target = target_name
-    manifest_target = "_clang_runtime_deps.$target_name.manifest"
-    manifest_file = "$target_gen_dir/$target_name.manifest"
-
-    # TODO(TC-366): Ideally we'd get JSON from the toolchain that we could
-    # massage directly here into a resource() target or the like.
-    action(manifest_target) {
-      visibility = [ ":$deps_target" ]
-      script = "runtime-manifest.sh"
-      outputs = [
-        manifest_file,
-      ]
-      sources = [
-        "${toolchain.tool_dir}/../lib/${toolchain.target_tuple}.manifest",
-      ]
-      args = rebase_path(sources + outputs, root_build_dir) + invoker.args
-    }
-  } else {
-    not_needed(invoker, [ "args" ])
-  }
-
-  group(target_name) {
-    if (is_fuchsia) {
-      deps = [
-        ":$manifest_target",
-      ]
-      metadata = {
-        zbi_input_args = [
-          "--files",
-          rebase_path(manifest_file, root_build_dir),
-        ]
-      }
-    }
-  }
-}
-
 config("asan") {
   compiler_flags = [ "-fsanitize=address" ]
   asmflags = compiler_flags
@@ -82,8 +38,18 @@ source_set("asan_default_options") {
 
 # This is included in ${toolchain.implicit_deps} for asan variants.  It
 # ensures that the runtime library is visible in the filesystem image.
-clang_runtime_deps("asan_deps") {
-  args = [ "asan" ]
+if (is_fuchsia) {
+  toolchain_manifest("asan_deps") {
+    # TODO(TC-366): Ideally we'd get JSON from the toolchain that we could
+    # massage directly here into a resource() target or the like.
+    args = [ "lib/libclang_rt.asan.so" ]
+    foreach(soname, libcxxabi_dt_needed) {
+      args += [ "lib/asan/${soname}" ]
+    }
+  }
+} else {
+  group("asan_deps") {
+  }
 }
 
 config("ubsan") {
@@ -95,12 +61,18 @@ config("ubsan") {
 
 # This is included in ${toolchain.implicit_deps} for ubsan variants.  It
 # ensures that the runtime library is visible in the filesystem image.
-clang_runtime_deps("ubsan_deps") {
-  args = [
-    "ubsan",
-    "lib[/]libc[+][+]abi[.]so",
-    "lib[/]libunwind[.]so",
-  ]
+if (is_fuchsia) {
+  toolchain_manifest("ubsan_deps") {
+    # TODO(TC-366): Ideally we'd get JSON from the toolchain that we could
+    # massage directly here into a resource() target or the like.
+    args = [ "lib/libclang_rt.ubsan_standalone.so" ]
+    foreach(soname, libcxxabi_dt_needed) {
+      args += [ "lib/${soname}" ]
+    }
+  }
+} else {
+  group("ubsan_deps") {
+  }
 }
 
 # NOTE: Every variant that includes any sancov configs must have "sancov"
diff --git a/zircon/public/gn/config/instrumentation/runtime-manifest.sh b/zircon/public/gn/config/instrumentation/runtime-manifest.sh
deleted file mode 100755
index 5be37c68e642070bb4abe2840c8d4ee77aec90b1..0000000000000000000000000000000000000000
--- a/zircon/public/gn/config/instrumentation/runtime-manifest.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Copyright 2019 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-INPUT="$1"
-shift
-OUTPUT="$1"
-shift
-manifest_dir="${INPUT%/*}"
-
-SCRIPT=
-for regexp in "$@"; do
-  SCRIPT+="/$regexp/s@=@=$manifest_dir/@p
-"
-done
-
-sed -n "$SCRIPT" "$INPUT" > "$OUTPUT"
diff --git a/zircon/public/gn/config/libc-dummy/libc++.so b/zircon/public/gn/config/libc-dummy/libc++.so
deleted file mode 100644
index 5b7a55393378739e5c851bffc02c0c259ceb9102..0000000000000000000000000000000000000000
--- a/zircon/public/gn/config/libc-dummy/libc++.so
+++ /dev/null
@@ -1,4 +0,0 @@
-/*
- * This is an empty input linker script just to be found as -lc++.
- * See $zx/public/gn/config/BUILD.gn:nostdlib.
- */
diff --git a/zircon/public/gn/config/libc-dummy/libstdc++.so b/zircon/public/gn/config/libc-dummy/libstdc++.so
new file mode 100644
index 0000000000000000000000000000000000000000..307e6dcc221ab5d8ec186c33ddf3c7efd7d15aa8
--- /dev/null
+++ b/zircon/public/gn/config/libc-dummy/libstdc++.so
@@ -0,0 +1,2 @@
+# GCC looks for -lstdc++ but we actually use -lc++.
+INPUT ( libc++.so )
diff --git a/zircon/public/gn/config/standard.gni b/zircon/public/gn/config/standard.gni
index 0798bc75a08075bcc8a8305a79e259553459fcd0..09faca565811c6e4b6b339d8e65c7f5181e98a7a 100644
--- a/zircon/public/gn/config/standard.gni
+++ b/zircon/public/gn/config/standard.gni
@@ -88,10 +88,7 @@ standard_configs = [
 ]
 
 # Additional configs apply to code built for Fuchsia but not to host code.
-standard_fuchsia_configs = [
-  "$zx/public/gn/config:nostdlib",
-  "$zx/public/gn/config:werror",
-]
+standard_fuchsia_configs = [ "$zx/public/gn/config:werror" ]
 
 # See environment().  These are the environments that are
 # vanilla bases to make derived environments from.
@@ -159,6 +156,13 @@ standard_environments = [
         ]
         add = [ "$zx/system/core/devmgr:driver_deps" ]
       },
+      {
+        # Unless we're statically linking the C++ standard library, we have
+        # to assume there will be some link-time references that turn into
+        # runtime dependencies on the shared libraries.
+        unless_configs = [ "$zx/public/gn/config:static-libc++" ]
+        add = [ "$zx/public/gn/config:shared-libcxx-deps" ]
+      },
     ]
     shlib = true
     strip = "--strip-sections"
diff --git a/zircon/public/gn/manifest-cat.sh b/zircon/public/gn/manifest-cat.sh
new file mode 100755
index 0000000000000000000000000000000000000000..035be94f57517a7c4057c226715b12e2ad3e6be0
--- /dev/null
+++ b/zircon/public/gn/manifest-cat.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This script is used by manifest.gni which see.
+#   Usage: manifest-cat.sh LISTFILE OUTPUT DEPFILE
+# It's just cat with a response file and a dep file.
+
+set -e
+
+readonly LISTFILE="$1"
+readonly OUTPUT="$2"
+readonly DEPFILE="$3"
+
+readonly FILES=($(<"$LISTFILE"))
+
+cleanup() {
+  rm -f "$OUTPUT" "$DEPFILE"
+}
+
+trap cleanup ERR HUP INT TERM
+cleanup
+
+echo "$OUTPUT: $LISTFILE ${FILES[*]}" > "$DEPFILE"
+
+cat "${FILES[@]}" > "$OUTPUT"
diff --git a/zircon/public/gn/manifest.gni b/zircon/public/gn/manifest.gni
index 4077e549c84a58ca4ef2d33a145b1796f9d6038c..271b1a16a9c00b2659db40386b71ccc59d839ea4 100644
--- a/zircon/public/gn/manifest.gni
+++ b/zircon/public/gn/manifest.gni
@@ -30,7 +30,10 @@
 #   deps
 #     Optional: Dependencies examined for metadata.  Transitive dependencies
 #     from here defining `metadata.manifest_lines` contribute to the manifest,
-#     pruned at targets that set `metadata.manifest_barrier`.
+#     pruned at targets that set `metadata.manifest_barrier`.  Likewise,
+#     `metadata.manifest_files` contributes manifests (like $sources).
+#     Each manifest_file() target itself contributes that way, so another
+#     manifest_file() in the deps will be folded into this one.
 #     Type: list(label)
 #
 #   output_dir
@@ -55,6 +58,10 @@
 #     with $sources and $outputs like a resource() target.
 #     Type: list(string or scope)
 #
+#   sources
+#     Optional: Additional manifest files to be concatenated onto this one.
+#     Type: list(file)
+#
 template("manifest_file") {
   forward_variables_from(invoker,
                          [
@@ -78,71 +85,116 @@ template("manifest_file") {
   }
 
   manifest_target = target_name
-  file_target = "_manifest_file.$target_name.manifest"
+  list_file = "$target_gen_dir/$target_name.list"
+  raw_file = "$target_gen_dir/$target_name.raw.manifest"
+  list_file_target = "_manifest_file.$target_name.list"
+  raw_file_target = "_manifest_file.$target_name.raw"
 
-  # This target produces the actual manifest file.
-  generated_file(file_target) {
-    visibility = [ ":$manifest_target" ]
+  # An embedded manifest contributes to metadata.manifest_lines directly.
+  manifest_entries = []
+  manifest_inputs = []
+  if (defined(invoker.manifest)) {
+    foreach(entry, invoker.manifest) {
+      if (entry == "$entry") {
+        # It's a literal manifest entry string.
+        # Note this doesn't express any dependency on its source file!
+        manifest_entries += [ entry ]
+      } else {
+        # It's a manifest entry in the style of a copy() target.
+        foreach(source, entry.sources) {
+          manifest_inputs += [ source ]
+          source_path = rebase_path(source, root_build_dir)
+          foreach(target, process_file_template([ source ], entry.outputs)) {
+            manifest_entries += [ "${target}=${source_path}" ]
+          }
+        }
+      }
+    }
+  }
+
+  # This target produces the raw manifest file from metadata and fixed entries.
+  generated_file(raw_file_target) {
+    visibility = [ ":$list_file_target" ]
     forward_variables_from(invoker,
                            [
                              "deps",
                              "testonly",
                            ])
     outputs = [
-      manifest_file,
+      raw_file,
     ]
     output_conversion = "list lines"
     data_keys = [ "manifest_lines" ]
     walk_keys = [ "manifest_barrier" ]
-
-    # An embedded manifest contributes to metadata.manifest_lines directly.
-    if (defined(invoker.manifest)) {
-      entries = []
-      foreach(entry, invoker.manifest) {
-        if (entry == "$entry") {
-          # It's a literal manifest entry string.
-          # Note this doesn't express any dependency on its source file!
-          entries += [ entry ]
-        } else {
-          # It's a manifest entry in the style of a copy() target.
-          foreach(source, entry.sources) {
-            inputs += [ source ]
-            source_path = rebase_path(source, root_build_dir)
-            foreach(target, process_file_template([ source ], entry.outputs)) {
-              entries += [ "${target}=${source_path}" ]
-            }
-          }
-        }
-      }
-      metadata = {
-        manifest_lines = entries
+    metadata = {
+      # This will be picked up by raw_file_target, below.
+      manifest_files = rebase_path(outputs, root_build_dir)
+      if (defined(invoker.sources)) {
+        manifest_files += rebase_path(invoker.sources, root_build_dir)
       }
+
+      # This will be picked up by this target's own collection.
+      manifest_lines = manifest_entries
     }
   }
 
-  # The metadata collection always starts with the generated_file() target
-  # itself.  That's handy for throwing in extra entries here.  But it also
-  # means that that target can't define `manifest_barrier` metadata because
-  # that would short-circuit its own collection, not just collections that
-  # reach it via dependencies.  So we always have a group() target wrapping
-  # the generated_file().  For clarity we pass the invoker's metadata on
-  # there instead of inside the generated_file() though it doesn't really
-  # matter for collections; note this means that we allow the invoker to
-  # define an additional `metadata.manifest_lines` too (though it ought
-  # to just use `manifest` for that).
-  group(manifest_target) {
+  # This target produces the list of manifest files to combine.
+  # It always includes the raw file just produced and $sources,
+  # but can also pick up more files from metadata.
+  generated_file(list_file_target) {
+    visibility = [ ":$manifest_target" ]
+    forward_variables_from(invoker, [ "testonly" ])
+    outputs = [
+      list_file,
+    ]
+    output_conversion = "list lines"
+    data_keys = [ "manifest_files" ]
+    walk_keys = [ "manifest_barrier" ]
+    deps = [
+      ":$raw_file_target",
+    ]
+  }
+
+  # This target produces the final manifest by combining all those files.
+  # The metadata from the invoker and for other manifest_file() targets
+  # goes here.  It shouldn't be seen by the generated_file() targets above.
+  action(manifest_target) {
     forward_variables_from(invoker,
                            [
                              "data_deps",
                              "testonly",
                              "visibility",
                            ])
+
+    script = "$zx/public/gn/manifest-cat.sh"
+    sources = [
+      list_file,
+    ]
+    outputs = [
+      manifest_file,
+    ]
     deps = [
-      ":$file_target",
+      ":$list_file_target",
     ]
+    inputs = manifest_inputs
+    if (defined(invoker.sources)) {
+      # These are listed in $list_file and will appear in the depfile.
+      # Make sure they're built before the first run if necessary and let
+      # GN enforce that they come from the deps.  This is the only reason
+      # to include deps and not just data_deps in this action() target.
+      # The deps are reached by $raw_file_target already.
+      inputs += invoker.sources
+      if (defined(invoker.deps)) {
+        deps += invoker.deps
+      }
+    }
+    depfile = "$manifest_file.d"
+    args = rebase_path(sources + outputs + [ depfile ], root_build_dir)
+
     metadata = {
       images = []
       manifest_barrier = []
+      manifest_files = []
 
       if (defined(invoker.metadata)) {
         # This lets the invoker add to `images` and `manifest_barrier`,
@@ -161,6 +213,12 @@ template("manifest_file") {
           os = current_os
         },
       ]
+
+      # Another manifest_file() depending on this one will fold it in,
+      # just as this one folded in any `manifest_files` from its deps.
+      # The `manifest_barrier` set here (above) prevents any dependents
+      # from reaching dependencies we've already folded in.
+      manifest_files += [ rebase_path(manifest_file, root_build_dir) ]
     }
   }
 }
diff --git a/zircon/public/gn/toolchain/clang.gni b/zircon/public/gn/toolchain/clang.gni
index 2e1c26a5c727842ba8e59b53454861ae62f91c97..f36b3ab12a198add3c098bcfa0e9a5710a29a17d 100644
--- a/zircon/public/gn/toolchain/clang.gni
+++ b/zircon/public/gn/toolchain/clang.gni
@@ -30,3 +30,67 @@ if (clang_tool_dir == "" && use_prebuilt_clang) {
       read_file("$_prebuilt_dir/.versions/clang.cipd_version", "json")
   clang_version_string = _prebuilt_cipd_version.instance_id
 }
+
+# TODO(TC-366): Ideally the toolchain itself would emit this info in
+# a readable (JSON) form.
+libcxxabi_dt_needed = [
+  "libc++abi.so.1",
+  "libunwind.so.1",
+]
+libcxx_dt_needed = [ "libc++.so.2" ] + libcxxabi_dt_needed
+
+# Generate a manifest file extracted from the Clang toolchain manifest.
+#
+# This acts like a manifest_file() target in the dependency graph of
+# another manifest_file() target (or a zbi() or zbi_input() target).
+# Its contents are extracted from the manifest file supplied by the
+# Clang toolchain.
+#
+# TODO(TC-366): Ideally the toolchain itself would emit this info in a
+# GN-readable (i.e. JSON) form.  Then this could be a resource() target
+# that extracted the file names at gen time.  Also it could be keyed by
+# things like compiler options (-fsanitize=foo, -stdlib++) to make this
+# more generic and e.g. get rid of libcxx_dt_needed.
+#
+# Parameters
+#
+#   args
+#     Required: Patterns to match (like sh `case`) in the lhs of the manifest.
+#     Type: list(string)
+#
+template("toolchain_manifest") {
+  if (defined(toolchain.shlib) && current_toolchain != toolchain.shlib) {
+    not_needed(invoker, [ "args" ])
+    group(target_name) {
+      forward_variables_from(invoker,
+                             [
+                               "testonly",
+                               "visibility",
+                             ])
+      public_deps = [
+        ":$target_name(${toolchain.shlib})",
+      ]
+    }
+  } else {
+    action(target_name) {
+      forward_variables_from(invoker,
+                             [
+                               "testonly",
+                               "visibility",
+                             ])
+      sources = [
+        # Note: Not ${toolchain.tool_dir} here because this might be GCC.
+        "$clang_tool_dir/../lib/${toolchain.target_tuple}.manifest",
+      ]
+      outputs = [
+        "$target_gen_dir/$target_name.manifest",
+      ]
+      script = "$zx/public/gn/toolchain/toolchain-manifest.sh"
+      args = rebase_path(sources + outputs, root_build_dir) + invoker.args
+      metadata = {
+        # This tells manifest_file() to fold this manifest in.
+        manifest_files = rebase_path(outputs, root_build_dir)
+      }
+    }
+  }
+}
diff --git a/zircon/public/gn/toolchain/toolchain-manifest.sh b/zircon/public/gn/toolchain/toolchain-manifest.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5cf088238794f838aeb3d52b20cc2e27a7200bf5
--- /dev/null
+++ b/zircon/public/gn/toolchain/toolchain-manifest.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+set -e
+
+INPUT="$1"
+OUTPUT="$2"
+shift 2
+
+trap 'rm -f "$OUTPUT"' ERR HUP INT TERM
+
+manifest_dir="${INPUT%/*}"
+
+IFS='='
+while read target source; do
+  for arg in "$@"; do
+    if [[ "$target" == $arg ]]; then
+      echo "$target=$manifest_dir/$source"
+      break
+    fi
+  done
+done < "$INPUT" > "$OUTPUT"
diff --git a/zircon/system/core/bootsvc/BUILD.gn b/zircon/system/core/bootsvc/BUILD.gn
index b28e64752427209c8c42a8d072d10320625e1d34..5cc582b596bb945c66fbd7e386d60c12be23404f 100644
--- a/zircon/system/core/bootsvc/BUILD.gn
+++ b/zircon/system/core/bootsvc/BUILD.gn
@@ -36,7 +36,6 @@ executable("bootsvc") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/lz4",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 
   data_deps = [
     "$zx/system/core/devmgr/devcoordinator",
@@ -76,7 +75,6 @@ test("bootsvc-unit-test") {
     "$zx/system/ulib/fbl",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 executable("bootsvc-integration-test") {
@@ -94,5 +92,4 @@ executable("bootsvc-integration-test") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/safemath",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/core/devmgr/devcoordinator/BUILD.gn b/zircon/system/core/devmgr/devcoordinator/BUILD.gn
index c12f3c34e8f887ff27a461208b108bdeaf0409f5..9cb207d335ba5fe154204ec729456c3f0f6abaea 100644
--- a/zircon/system/core/devmgr/devcoordinator/BUILD.gn
+++ b/zircon/system/core/devmgr/devcoordinator/BUILD.gn
@@ -25,8 +25,6 @@ executable("devcoordinator") {
     "$zx/system/core/virtcon:virtual-console",
     "$zx/system/core/pwrbtn-monitor",
   ]
-
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 source_set("internal-drivers") {
@@ -102,5 +100,4 @@ test("devcoordinator-test") {
     "$zx/system/ulib/zxtest",
     "../shared:env",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/core/devmgr/fshost/BUILD.gn b/zircon/system/core/devmgr/fshost/BUILD.gn
index b08119924f6c0da34226522ee5f2b30782557547..67df601ad5c75a986b0f02b00ae1ab0799f8d93b 100644
--- a/zircon/system/core/devmgr/fshost/BUILD.gn
+++ b/zircon/system/core/devmgr/fshost/BUILD.gn
@@ -77,7 +77,6 @@ executable("fshost") {
     "$zx/system/ulib/loader-service",
     "$zx/system/ulib/ramdevice-client",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("fshost-test") {
@@ -89,7 +88,6 @@ test("fshost-test") {
     ":fshost-registry",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("block-watcher-test") {
@@ -104,5 +102,4 @@ test("block-watcher-test") {
     "$zx/system/ulib/ramdevice-client",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/core/miscsvc/BUILD.gn b/zircon/system/core/miscsvc/BUILD.gn
index dafc7c520f6004c5d5044b66519529945e75ea64..651e491867b20e4c642068aed8d1ae2880092813 100644
--- a/zircon/system/core/miscsvc/BUILD.gn
+++ b/zircon/system/core/miscsvc/BUILD.gn
@@ -14,5 +14,4 @@ executable("miscsvc") {
     "$zx/system/ulib/svc",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/core/netsvc/BUILD.gn b/zircon/system/core/netsvc/BUILD.gn
index ccea687d71ce0b2bc05d3b41af9681a981913f32..f827b070d1072434d4eedca7f2160ee5698ec7b2 100644
--- a/zircon/system/core/netsvc/BUILD.gn
+++ b/zircon/system/core/netsvc/BUILD.gn
@@ -41,7 +41,6 @@ executable("netsvc") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
   data_deps = [
     # netsvc launches /boot/bin/install-disk-image under --netboot.
     "$zx/system/uapp/disk-pave",
diff --git a/zircon/system/core/pwrbtn-monitor/BUILD.gn b/zircon/system/core/pwrbtn-monitor/BUILD.gn
index 9ca290c23cea2e7b04ec57fa378ac9649d00b732..5fc0330b2197a6b898b27591ac29fe9a85a63fb9 100644
--- a/zircon/system/core/pwrbtn-monitor/BUILD.gn
+++ b/zircon/system/core/pwrbtn-monitor/BUILD.gn
@@ -16,5 +16,4 @@ executable("pwrbtn-monitor") {
     "$zx/system/ulib/hid-parser",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/core/svchost/BUILD.gn b/zircon/system/core/svchost/BUILD.gn
index 58e37487e3fb83fa34a72acba271d1addf1a7734..db49f3bfafd0bea60b4dbc452e66a5486adf4ad7 100644
--- a/zircon/system/core/svchost/BUILD.gn
+++ b/zircon/system/core/svchost/BUILD.gn
@@ -34,5 +34,4 @@ executable("svchost") {
     "$zx/system/ulib/sysmem-connector",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/core/virtcon/BUILD.gn b/zircon/system/core/virtcon/BUILD.gn
index 112a3d04686b0c20b4b8b2c2f09ad12aa8555e4d..58c9d5054ec6ab8531a3aa9068885ebd0088c5b9 100644
--- a/zircon/system/core/virtcon/BUILD.gn
+++ b/zircon/system/core/virtcon/BUILD.gn
@@ -51,7 +51,6 @@ executable("virtual-console") {
   deps = [
     ":common",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("virtual-console-test") {
@@ -65,5 +64,4 @@ test("virtual-console-test") {
     ":common",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/backlight/sg-micro/BUILD.gn b/zircon/system/dev/backlight/sg-micro/BUILD.gn
index 0867368a05570186756201692c79c17ce9185a66..45625e898174be74e5bee804cb811defde5b6e0f 100644
--- a/zircon/system/dev/backlight/sg-micro/BUILD.gn
+++ b/zircon/system/dev/backlight/sg-micro/BUILD.gn
@@ -42,5 +42,4 @@ test("sgm37603a-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/block/ahci/BUILD.gn b/zircon/system/dev/block/ahci/BUILD.gn
index 1d62e1c68eaec97bb72ecf9e7f64049aee995ed4..b220ee09e479ef7876acf4351b26c47a81d05f0b 100644
--- a/zircon/system/dev/block/ahci/BUILD.gn
+++ b/zircon/system/dev/block/ahci/BUILD.gn
@@ -25,7 +25,6 @@ test("ahci-unittest") {
     "$zx/system/ulib/driver",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 source_set("shared") {
diff --git a/zircon/system/dev/block/ftl/test/BUILD.gn b/zircon/system/dev/block/ftl/test/BUILD.gn
index 24b35c8134a536260e02b7ca7d7647fe2b6e37f2..d862fd8d615ab8aa83d771135dfb4b1fcb701529 100644
--- a/zircon/system/dev/block/ftl/test/BUILD.gn
+++ b/zircon/system/dev/block/ftl/test/BUILD.gn
@@ -28,7 +28,6 @@ test("ftl") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("ftl-integration") {
@@ -53,5 +52,4 @@ test("ftl-integration") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/block/fvm/test/BUILD.gn b/zircon/system/dev/block/fvm/test/BUILD.gn
index 53c40a5d69fa83daba97f87b7b982b83748aa180..8b9e8c1dfd412348290fa2ddd1000dffaf708c48 100644
--- a/zircon/system/dev/block/fvm/test/BUILD.gn
+++ b/zircon/system/dev/block/fvm/test/BUILD.gn
@@ -19,5 +19,4 @@ test("fvm-driver-unittests") {
     "$zx/system/ulib/zxtest",
     "..:shared",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/block/mtk-sdmmc/BUILD.gn b/zircon/system/dev/block/mtk-sdmmc/BUILD.gn
index 021966b59357ddef1d70ff344023f6cdf3c24dd4..64989c7a7e0133920af8dffa06ebbae9d5773b2d 100644
--- a/zircon/system/dev/block/mtk-sdmmc/BUILD.gn
+++ b/zircon/system/dev/block/mtk-sdmmc/BUILD.gn
@@ -50,5 +50,4 @@ test("mtk-sdmmc-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/block/sdmmc/BUILD.gn b/zircon/system/dev/block/sdmmc/BUILD.gn
index 8f9ffd150e2cb6978d4a199d8ff2dcf02f1dafcb..b99559c7444648bcf3eba5bd7beda31b6cde5a83 100644
--- a/zircon/system/dev/block/sdmmc/BUILD.gn
+++ b/zircon/system/dev/block/sdmmc/BUILD.gn
@@ -63,5 +63,4 @@ test("sdmmc-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/block/usb-mass-storage/BUILD.gn b/zircon/system/dev/block/usb-mass-storage/BUILD.gn
index 9e2fcff9e3f70b36969332415528c0affe4df0b2..194b51f72afde23009cd228da51743a45c81f59c 100644
--- a/zircon/system/dev/block/usb-mass-storage/BUILD.gn
+++ b/zircon/system/dev/block/usb-mass-storage/BUILD.gn
@@ -57,7 +57,6 @@ test("ums-block") {
     "$zx/system/ulib/fit",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("ums") {
@@ -75,5 +74,4 @@ test("ums") {
     "$zx/system/ulib/fit",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/bluetooth/bt-hci-mediatek/BUILD.gn b/zircon/system/dev/bluetooth/bt-hci-mediatek/BUILD.gn
index 6ba268c199864e698a3574d001b9b2bc00c80300..6a0c96f1d633d3d4338657f8a5c3eefc1a622de2 100644
--- a/zircon/system/dev/bluetooth/bt-hci-mediatek/BUILD.gn
+++ b/zircon/system/dev/bluetooth/bt-hci-mediatek/BUILD.gn
@@ -51,5 +51,4 @@ test("bt-hci-mediatek-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/board/mt8167s_ref/BUILD.gn b/zircon/system/dev/board/mt8167s_ref/BUILD.gn
index f331f4a5ca408a01781f5228017ef9ba3a9c6c8c..a2866cd19c056942f00621fd3631f25ff8e9d937 100644
--- a/zircon/system/dev/board/mt8167s_ref/BUILD.gn
+++ b/zircon/system/dev/board/mt8167s_ref/BUILD.gn
@@ -88,5 +88,4 @@ test("mt8167s_ref-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/bus/pci/BUILD.gn b/zircon/system/dev/bus/pci/BUILD.gn
index 77edef525883eb19c623f02d3248955dc35163cc..191c1a23029f1b467b74fcb6cf064426befa31c4 100644
--- a/zircon/system/dev/bus/pci/BUILD.gn
+++ b/zircon/system/dev/bus/pci/BUILD.gn
@@ -95,5 +95,4 @@ test("pci_tests") {
     "$zx/system/ulib/hwreg",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/bus/virtio/BUILD.gn b/zircon/system/dev/bus/virtio/BUILD.gn
index 16601c81225391c3d723af762b8246415d641e6a..eb6a11b8eecce7d351552c33cda9cd08d5ae8210 100644
--- a/zircon/system/dev/bus/virtio/BUILD.gn
+++ b/zircon/system/dev/bus/virtio/BUILD.gn
@@ -66,5 +66,4 @@ test("virtio-test") {
     "$zx/system/ulib/driver",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/clk/amlogic-clk/BUILD.gn b/zircon/system/dev/clk/amlogic-clk/BUILD.gn
index c7d2d084307d1de17fd2cda2ccd97528f4129480..38932b93ae3166db3a4a6993b78f04b55c4d06eb 100644
--- a/zircon/system/dev/clk/amlogic-clk/BUILD.gn
+++ b/zircon/system/dev/clk/amlogic-clk/BUILD.gn
@@ -48,5 +48,4 @@ test("amlogic-clk-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/clk/msm8x53-clk/BUILD.gn b/zircon/system/dev/clk/msm8x53-clk/BUILD.gn
index ee91ea8eefaed8fca66380ab09f1feafb10388dd..981617a35439ec3e1652989c3a20f230165d6204 100644
--- a/zircon/system/dev/clk/msm8x53-clk/BUILD.gn
+++ b/zircon/system/dev/clk/msm8x53-clk/BUILD.gn
@@ -55,5 +55,4 @@ test("msm8x53-clk-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/display/mt8167s-display/BUILD.gn b/zircon/system/dev/display/mt8167s-display/BUILD.gn
index d4d65bd347bd9bb7edb360779351d962de3237b8..9a5afbc0d34a4b1f5a4fe9298ff2a9fad41a0399 100644
--- a/zircon/system/dev/display/mt8167s-display/BUILD.gn
+++ b/zircon/system/dev/display/mt8167s-display/BUILD.gn
@@ -73,5 +73,4 @@ test("dsi-host") {
     "$zx/system/ulib/driver",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/gpio/as370-gpio/BUILD.gn b/zircon/system/dev/gpio/as370-gpio/BUILD.gn
index 86acc02d97a34f93d7305873ce62f5d3429ac1a1..41e4129eefd8f58d214ae3ac3250f157f1364cb9 100644
--- a/zircon/system/dev/gpio/as370-gpio/BUILD.gn
+++ b/zircon/system/dev/gpio/as370-gpio/BUILD.gn
@@ -37,5 +37,4 @@ test("as370-gpio-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/gpio/mt-8167/BUILD.gn b/zircon/system/dev/gpio/mt-8167/BUILD.gn
index 4e682ca921f28e021165e53b8140f10370a8bd8b..af9d8b487035b31e384389065949239f94cfb4ad 100644
--- a/zircon/system/dev/gpio/mt-8167/BUILD.gn
+++ b/zircon/system/dev/gpio/mt-8167/BUILD.gn
@@ -47,5 +47,4 @@ test("mtk-gpio") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/gpio/qcom-gpio/BUILD.gn b/zircon/system/dev/gpio/qcom-gpio/BUILD.gn
index 4f118795728dac099a738057ebf4051fa5f4bd13..ee010bc78385711a46c2001e82230ce71dc217e2 100644
--- a/zircon/system/dev/gpio/qcom-gpio/BUILD.gn
+++ b/zircon/system/dev/gpio/qcom-gpio/BUILD.gn
@@ -41,5 +41,4 @@ test("qcom-gpio-test") {
     "$zx/system/ulib/sync",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn b/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn
index b38011a04a402fe85b2e056e637baab5a2220b2b..966e40ea4a9fd4a49e972fbd46d5d697d5ebabf6 100644
--- a/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn
+++ b/zircon/system/dev/i2c/mt8167-i2c/BUILD.gn
@@ -49,5 +49,4 @@ test("mt8167-i2c-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/input/bma253/BUILD.gn b/zircon/system/dev/input/bma253/BUILD.gn
index 65fc6acfeeef11a9d79ac5e349443976f467d597..99a6067f4270f84a3ddf2680a4e52afc045817f1 100644
--- a/zircon/system/dev/input/bma253/BUILD.gn
+++ b/zircon/system/dev/input/bma253/BUILD.gn
@@ -46,5 +46,4 @@ test("bma253-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/lib/scsi/BUILD.gn b/zircon/system/dev/lib/scsi/BUILD.gn
index a132d86dca6697d96a5639211ba5e25a70294a72..e7ee42a03b9266e1d9dea5cdaf1e4ff405a87c52 100644
--- a/zircon/system/dev/lib/scsi/BUILD.gn
+++ b/zircon/system/dev/lib/scsi/BUILD.gn
@@ -42,5 +42,4 @@ test("scsilib-disk-test") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/light-sensor/lite-on/BUILD.gn b/zircon/system/dev/light-sensor/lite-on/BUILD.gn
index 87f716393c4b2a90508ec9170a3484baa8776940..fdaccdd17f63de7108dcad0b4420829b7d5544b3 100644
--- a/zircon/system/dev/light-sensor/lite-on/BUILD.gn
+++ b/zircon/system/dev/light-sensor/lite-on/BUILD.gn
@@ -47,5 +47,4 @@ test("ltr-578als-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/nand/broker/test/BUILD.gn b/zircon/system/dev/nand/broker/test/BUILD.gn
index 1fd8e7005f846c9d59c0e32bafb03be7222ddd20..1552c51ad181d85881260a6a8a5e62c69878c198 100644
--- a/zircon/system/dev/nand/broker/test/BUILD.gn
+++ b/zircon/system/dev/nand/broker/test/BUILD.gn
@@ -42,7 +42,6 @@ test("nand-broker") {
   deps = [
     ":common",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("nandpart-broker") {
@@ -52,5 +51,4 @@ test("nandpart-broker") {
   deps = [
     ":common",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/nand/nand/test/BUILD.gn b/zircon/system/dev/nand/nand/test/BUILD.gn
index 5ed975eb0a63448ede32742e2305baa6b9801819..e2234a484e48c1a11fbdff7d8297ef36bd5797f7 100644
--- a/zircon/system/dev/nand/nand/test/BUILD.gn
+++ b/zircon/system/dev/nand/nand/test/BUILD.gn
@@ -26,7 +26,6 @@ test("nand-unittest") {
     "$zx/system/ulib/sync",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 # TODO(mcgrathr): This really should be in ..:common and actually shared
diff --git a/zircon/system/dev/nand/nandpart/BUILD.gn b/zircon/system/dev/nand/nandpart/BUILD.gn
index c796d17550351e50bb0f91e404d847274375b72f..11903ea25f4464a0224bd846aff9066a85fca3ca 100644
--- a/zircon/system/dev/nand/nandpart/BUILD.gn
+++ b/zircon/system/dev/nand/nandpart/BUILD.gn
@@ -47,5 +47,4 @@ test("nandpart-test") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/nand/ram-nand/BUILD.gn b/zircon/system/dev/nand/ram-nand/BUILD.gn
index 384224bced43085f5704e5d7f95d32fc36f9b00c..51b2172afbd58d1c47eec0051f23d07f630e7a66 100644
--- a/zircon/system/dev/nand/ram-nand/BUILD.gn
+++ b/zircon/system/dev/nand/ram-nand/BUILD.gn
@@ -61,5 +61,4 @@ test("ram-nand-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/nand/skip-block/BUILD.gn b/zircon/system/dev/nand/skip-block/BUILD.gn
index 0eaa1a1919d77a8fb77482eafd87cec5269ceacd..aa3025ceaa69686bff9fac562cc06d51580fa7f9 100644
--- a/zircon/system/dev/nand/skip-block/BUILD.gn
+++ b/zircon/system/dev/nand/skip-block/BUILD.gn
@@ -52,5 +52,4 @@ test("skip-block-test") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/power/msm8x53-power/BUILD.gn b/zircon/system/dev/power/msm8x53-power/BUILD.gn
index 02c035e06eb1fac34e2489de213d9442eed5a158..d9291be7bee7383a6481039043f5dc595e36ef92 100644
--- a/zircon/system/dev/power/msm8x53-power/BUILD.gn
+++ b/zircon/system/dev/power/msm8x53-power/BUILD.gn
@@ -46,5 +46,4 @@ test("msm8x53-power-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/power/mtk-power/BUILD.gn b/zircon/system/dev/power/mtk-power/BUILD.gn
index 07410e587b1a836df2b597ee149c903b8ab4c005..eb6933bac00df87acea95c282d2dc14a8898dd58 100644
--- a/zircon/system/dev/power/mtk-power/BUILD.gn
+++ b/zircon/system/dev/power/mtk-power/BUILD.gn
@@ -48,5 +48,4 @@ test("mtk-power-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/sysmem/sysmem/BUILD.gn b/zircon/system/dev/sysmem/sysmem/BUILD.gn
index e14f573c2fd100928d15a3a2b2ad0a9c4b748949..c79ebce9b03862f23a73fc9263efcc1a0bcf418b 100644
--- a/zircon/system/dev/sysmem/sysmem/BUILD.gn
+++ b/zircon/system/dev/sysmem/sysmem/BUILD.gn
@@ -65,5 +65,4 @@ test("sysmem-unittest") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/test/operation/BUILD.gn b/zircon/system/dev/test/operation/BUILD.gn
index 033d6a05dfc40d4433cb23f52450cc4aa0a12bd4..8fcc27801db81736dbe93881c975a9eb71dc5ca7 100644
--- a/zircon/system/dev/test/operation/BUILD.gn
+++ b/zircon/system/dev/test/operation/BUILD.gn
@@ -18,5 +18,4 @@ test("operation") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/test/usb/BUILD.gn b/zircon/system/dev/test/usb/BUILD.gn
index 815b2d78a3e214f0fc85167a8dd87354112ee5d3..0256fba0ee54333ca27eb3fe37f891df06dcce2e 100644
--- a/zircon/system/dev/test/usb/BUILD.gn
+++ b/zircon/system/dev/test/usb/BUILD.gn
@@ -29,5 +29,4 @@ test("usb-unittest") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/thermal/mtk-thermal/BUILD.gn b/zircon/system/dev/thermal/mtk-thermal/BUILD.gn
index c57cd4177cfda39a69d3d132783b827b0fda3e3e..14973d012ee4db4f44650d4e969d9fd111a45494 100644
--- a/zircon/system/dev/thermal/mtk-thermal/BUILD.gn
+++ b/zircon/system/dev/thermal/mtk-thermal/BUILD.gn
@@ -53,5 +53,4 @@ test("mtk-thermal-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/dev/usb/mt-musb-host/BUILD.gn b/zircon/system/dev/usb/mt-musb-host/BUILD.gn
index 999683f83ec922c42cc809ba331f3188b051aeec..b650e44ead99e63d07f46004c75270a07125f95c 100644
--- a/zircon/system/dev/usb/mt-musb-host/BUILD.gn
+++ b/zircon/system/dev/usb/mt-musb-host/BUILD.gn
@@ -44,5 +44,4 @@ test("usb-transaction-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/aslr-analysis/BUILD.gn b/zircon/system/uapp/aslr-analysis/BUILD.gn
index e4b91bec2240f7ed2dfbc6594f52b54ebf689963..582093fbb1f720aedfee78ba7f48ac95b142cbda 100644
--- a/zircon/system/uapp/aslr-analysis/BUILD.gn
+++ b/zircon/system/uapp/aslr-analysis/BUILD.gn
@@ -11,5 +11,4 @@ executable("aslr-analysis") {
     "$zx/system/ulib/fdio",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/audio/BUILD.gn b/zircon/system/uapp/audio/BUILD.gn
index 5999216805bf1d03cd6af45424e5265ef47d00f7..6f440c6b6fc0a134de38c23de9def31f981bee22 100644
--- a/zircon/system/uapp/audio/BUILD.gn
+++ b/zircon/system/uapp/audio/BUILD.gn
@@ -18,5 +18,4 @@ executable("audio") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/biotime/BUILD.gn b/zircon/system/uapp/biotime/BUILD.gn
index ca652fe26904a229919df36e62eaff5da83921c2..f24ab68f5f819603b8d9dbd5874585c5ec74e473 100644
--- a/zircon/system/uapp/biotime/BUILD.gn
+++ b/zircon/system/uapp/biotime/BUILD.gn
@@ -18,5 +18,4 @@ executable("biotime") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zircon-internal",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/blobfs/BUILD.gn b/zircon/system/uapp/blobfs/BUILD.gn
index fbe3b816d33b3b2240d12657f3006e6563cfb73a..ea13702d1cb9d46421e60f0efc0f448a96749e42 100644
--- a/zircon/system/uapp/blobfs/BUILD.gn
+++ b/zircon/system/uapp/blobfs/BUILD.gn
@@ -28,5 +28,4 @@ executable("blobfs") {
     "$zx/third_party/ulib/lz4",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/channel-perf/BUILD.gn b/zircon/system/uapp/channel-perf/BUILD.gn
index 9dffbbaf0051814a32bb887836106fe71fd8b121..9f0304c0a9c89d3e245806c3f1d41cc177bebb68 100644
--- a/zircon/system/uapp/channel-perf/BUILD.gn
+++ b/zircon/system/uapp/channel-perf/BUILD.gn
@@ -11,5 +11,4 @@ executable("channel-perf") {
     "$zx/system/ulib/fdio",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/crasher/BUILD.gn b/zircon/system/uapp/crasher/BUILD.gn
index 4755991dfebc002437152900790383c131f53822..f424f591ac9a8cdcca5ebefb1d4bcddc9d273c13 100644
--- a/zircon/system/uapp/crasher/BUILD.gn
+++ b/zircon/system/uapp/crasher/BUILD.gn
@@ -12,5 +12,4 @@ executable("crasher") {
     "$zx/system/ulib/fdio",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/disk-pave/BUILD.gn b/zircon/system/uapp/disk-pave/BUILD.gn
index 730feb88323ac4769af4b96f748095ef3313ec5f..fc759cc93a4d6d3100e1c42fd1417340cf1e26b6 100644
--- a/zircon/system/uapp/disk-pave/BUILD.gn
+++ b/zircon/system/uapp/disk-pave/BUILD.gn
@@ -23,7 +23,6 @@ executable("install-disk-image") {
     "$zx/system/ulib/paver",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("install-disk-image-test") {
@@ -46,5 +45,4 @@ test("install-disk-image-test") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/display-test/BUILD.gn b/zircon/system/uapp/display-test/BUILD.gn
index 321e3e3facb3d8d916bbed333720738999993a9f..eac2e421f463c9cd01468effd30a2c8015410e99 100644
--- a/zircon/system/uapp/display-test/BUILD.gn
+++ b/zircon/system/uapp/display-test/BUILD.gn
@@ -19,5 +19,4 @@ executable("display-test") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/fvm-check/BUILD.gn b/zircon/system/uapp/fvm-check/BUILD.gn
index 1657d965a8b09e24491cc8ce7dd5e711feabdb3e..6eb384256077ec5336b4ff459af274fbda263495 100644
--- a/zircon/system/uapp/fvm-check/BUILD.gn
+++ b/zircon/system/uapp/fvm-check/BUILD.gn
@@ -19,5 +19,4 @@ executable("fvm-check") {
     "$zx/third_party/ulib/cksum",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/goldfish-benchmark/BUILD.gn b/zircon/system/uapp/goldfish-benchmark/BUILD.gn
index 65819f7c228b46095f7db3a15580f4c826096e7a..d85d893a9e7247a61f4372ea593a56cf69da810a 100644
--- a/zircon/system/uapp/goldfish-benchmark/BUILD.gn
+++ b/zircon/system/uapp/goldfish-benchmark/BUILD.gn
@@ -13,5 +13,4 @@ executable("goldfish-benchmark") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/gpt/BUILD.gn b/zircon/system/uapp/gpt/BUILD.gn
index 4446e6173290b0a5baaad0995f11a1403c4a8870..b8237c8ecea5fcdbfab4239da121d184ce6d2918 100644
--- a/zircon/system/uapp/gpt/BUILD.gn
+++ b/zircon/system/uapp/gpt/BUILD.gn
@@ -16,5 +16,4 @@ executable("gpt") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/cksum",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/hid/BUILD.gn b/zircon/system/uapp/hid/BUILD.gn
index 1e2f5ed0faf4579b4f6f4c9a9ca4e9b164f5278f..d0c6ee1119adfe81c53addd1c1449351d8cc9ecc 100644
--- a/zircon/system/uapp/hid/BUILD.gn
+++ b/zircon/system/uapp/hid/BUILD.gn
@@ -16,5 +16,4 @@ executable("hid") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/ihda/BUILD.gn b/zircon/system/uapp/ihda/BUILD.gn
index 8c501174a82cf27491a14a78188b55d1871c2af4..2c3dbddaefd4f61e22fb8a55a37e52e39600c540 100644
--- a/zircon/system/uapp/ihda/BUILD.gn
+++ b/zircon/system/uapp/ihda/BUILD.gn
@@ -20,5 +20,4 @@ executable("ihda") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/iochk/BUILD.gn b/zircon/system/uapp/iochk/BUILD.gn
index 5a02f538f39d8f47117e5440c36609a95fb3bacf..3802183efa7685a0b0db5a7188c6ef0d63f57edf 100644
--- a/zircon/system/uapp/iochk/BUILD.gn
+++ b/zircon/system/uapp/iochk/BUILD.gn
@@ -18,5 +18,4 @@ executable("iochk") {
     "$zx/system/ulib/zircon-internal",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/kcounter/BUILD.gn b/zircon/system/uapp/kcounter/BUILD.gn
index 8096823a110859f85e4719699f290add8dddc0e1..75f1b470914f98f8fccfaf6eaf95166023a882ed 100644
--- a/zircon/system/uapp/kcounter/BUILD.gn
+++ b/zircon/system/uapp/kcounter/BUILD.gn
@@ -14,5 +14,4 @@ executable("kcounter") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/kstress/BUILD.gn b/zircon/system/uapp/kstress/BUILD.gn
index c18bcdb06e29b91b6681be0de6bf2fe7fcdde81b..e4e7ea8e8042f7460b8da0999d6a7d9915f82020 100644
--- a/zircon/system/uapp/kstress/BUILD.gn
+++ b/zircon/system/uapp/kstress/BUILD.gn
@@ -16,5 +16,4 @@ executable("kstress") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/ktrace/BUILD.gn b/zircon/system/uapp/ktrace/BUILD.gn
index ee7a5550b3a789c410ea1cbcac97e931b0655112..ff467dd7d966f4e1b6fcf3909b9b4d40957d7152 100644
--- a/zircon/system/uapp/ktrace/BUILD.gn
+++ b/zircon/system/uapp/ktrace/BUILD.gn
@@ -13,5 +13,4 @@ executable("ktrace") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/light/BUILD.gn b/zircon/system/uapp/light/BUILD.gn
index ad000f77f0a4a5dae76d3f242c2aee6bb2523e6b..9cce05e9b53113aca4a1cc5db05e525cca8da522 100644
--- a/zircon/system/uapp/light/BUILD.gn
+++ b/zircon/system/uapp/light/BUILD.gn
@@ -14,5 +14,4 @@ executable("light") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/loadgen/BUILD.gn b/zircon/system/uapp/loadgen/BUILD.gn
index 98e96c4c890be8aacf8c5d6b9990947979bf1b99..11f9703e5d145d2deca64be8e03347394e2bfbba 100644
--- a/zircon/system/uapp/loadgen/BUILD.gn
+++ b/zircon/system/uapp/loadgen/BUILD.gn
@@ -11,5 +11,4 @@ executable("loadgen") {
     "$zx/system/ulib/fdio",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/lsblk/BUILD.gn b/zircon/system/uapp/lsblk/BUILD.gn
index d51296a408496797ef7d72d6155bf4595092ec0e..f1bdf1d9afeb9e55d5633d6e825a67357bf4adbb 100644
--- a/zircon/system/uapp/lsblk/BUILD.gn
+++ b/zircon/system/uapp/lsblk/BUILD.gn
@@ -20,5 +20,4 @@ executable("lsblk") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/cksum",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/lspwr/BUILD.gn b/zircon/system/uapp/lspwr/BUILD.gn
index d717299775b5acc4c6e7ed30d7cc9c9150e27fb8..44bfcfc19b4a6c97cdd30b13b34b034bc0ebaed6 100644
--- a/zircon/system/uapp/lspwr/BUILD.gn
+++ b/zircon/system/uapp/lspwr/BUILD.gn
@@ -12,5 +12,4 @@ executable("lspwr") {
     "$zx/system/ulib/fdio",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/minfs/BUILD.gn b/zircon/system/uapp/minfs/BUILD.gn
index 40ddf2cce672404a12636bb76ff773f7f4763c2a..108f379f8affe884e3dc2b192daf63bc345f08c2 100644
--- a/zircon/system/uapp/minfs/BUILD.gn
+++ b/zircon/system/uapp/minfs/BUILD.gn
@@ -30,5 +30,4 @@ executable("minfs") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/nand-loader/BUILD.gn b/zircon/system/uapp/nand-loader/BUILD.gn
index c1027183f758ddd64d1043f869310b800abfdb34..58a11b5fa0ead69809d6c11aa974bbcd803e1c85 100644
--- a/zircon/system/uapp/nand-loader/BUILD.gn
+++ b/zircon/system/uapp/nand-loader/BUILD.gn
@@ -15,5 +15,4 @@ executable("nand-loader") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/nand-util/BUILD.gn b/zircon/system/uapp/nand-util/BUILD.gn
index af7e92b372bb82eb6593f8a5cc6c9e0642131a0d..a9defdd701c3b09f7113b88f8dfe992b5305f1d5 100644
--- a/zircon/system/uapp/nand-util/BUILD.gn
+++ b/zircon/system/uapp/nand-util/BUILD.gn
@@ -20,7 +20,6 @@ executable("nand-util") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/cksum",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 source_set("common") {
@@ -52,5 +51,4 @@ test("nand-util-test") {
     "$zx/system/ulib/fdio",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/psutils/BUILD.gn b/zircon/system/uapp/psutils/BUILD.gn
index c38dfecbc54fc3be141f298e95282b7ecabb0740..b68cf7b26920c3ab23596c207715484a15a66623 100644
--- a/zircon/system/uapp/psutils/BUILD.gn
+++ b/zircon/system/uapp/psutils/BUILD.gn
@@ -108,7 +108,6 @@ executable("memgraph") {
     "$zx/system/ulib/task-utils",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 # Generate an include file that contains the schema JSON.
@@ -151,7 +150,6 @@ executable("threads") {
     "$zx/system/ulib/zircon",
     "$zx/third_party/ulib/backtrace",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 executable("signal") {
diff --git a/zircon/system/uapp/runtests/BUILD.gn b/zircon/system/uapp/runtests/BUILD.gn
index 64796a2d99f773c60708813777630d326d3a8017..5db94a6a3cc347b251b75a10c51d08bf5be9201d 100644
--- a/zircon/system/uapp/runtests/BUILD.gn
+++ b/zircon/system/uapp/runtests/BUILD.gn
@@ -20,5 +20,4 @@ executable("runtests") {
     "$zx/system/ulib/zircon-internal",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/thermal-cli/BUILD.gn b/zircon/system/uapp/thermal-cli/BUILD.gn
index bc9cc74185b80b2b8e5b97a93286f8687df6a6f4..06ce930840268c0f6f33f83ff0ff056d871c4c52 100644
--- a/zircon/system/uapp/thermal-cli/BUILD.gn
+++ b/zircon/system/uapp/thermal-cli/BUILD.gn
@@ -14,5 +14,4 @@ executable("thermal-cli") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/trace-benchmark/BUILD.gn b/zircon/system/uapp/trace-benchmark/BUILD.gn
index b3b7b773fd5938843330c00b0eb58d87d36e5b05..4e28a4aceed2a1466bc5c8f5779d8fc0e1d2b1e3 100644
--- a/zircon/system/uapp/trace-benchmark/BUILD.gn
+++ b/zircon/system/uapp/trace-benchmark/BUILD.gn
@@ -23,5 +23,4 @@ executable("trace-benchmark") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/trace-example/BUILD.gn b/zircon/system/uapp/trace-example/BUILD.gn
index 19255fb6f557bedc82902fca8a971f3d1fbead93..9e011d01f512587bf84053fcbb395464ed0df8b9 100644
--- a/zircon/system/uapp/trace-example/BUILD.gn
+++ b/zircon/system/uapp/trace-example/BUILD.gn
@@ -20,5 +20,4 @@ executable("trace-example") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/usb-fwloader/BUILD.gn b/zircon/system/uapp/usb-fwloader/BUILD.gn
index 99264d1c9e7fe8c2a56416902e88431d14f9d775..e04711af5975ccd0d2a98134806cf47c8df6e193 100644
--- a/zircon/system/uapp/usb-fwloader/BUILD.gn
+++ b/zircon/system/uapp/usb-fwloader/BUILD.gn
@@ -18,5 +18,4 @@ executable("usb-fwloader") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/waitfor/BUILD.gn b/zircon/system/uapp/waitfor/BUILD.gn
index 885b51f11d5d3a4af2e144d5b84574227be2b120..b3a75c1fba98f2f54dd9df2e1a4c47ff66281fea 100644
--- a/zircon/system/uapp/waitfor/BUILD.gn
+++ b/zircon/system/uapp/waitfor/BUILD.gn
@@ -15,5 +15,4 @@ executable("waitfor") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/cksum",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/uapp/xdc-test/BUILD.gn b/zircon/system/uapp/xdc-test/BUILD.gn
index 4517b583409a6dc4c4e88613e23e06cb41f3d961..95a2519cf2c8f17ecf9893e4de27ef0b7e3e1332 100644
--- a/zircon/system/uapp/xdc-test/BUILD.gn
+++ b/zircon/system/uapp/xdc-test/BUILD.gn
@@ -15,7 +15,6 @@ executable("xdc-test") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 host_tool("xdc-test-host") {
diff --git a/zircon/system/ulib/async-loop/test/BUILD.gn b/zircon/system/ulib/async-loop/test/BUILD.gn
index 320af07bc8ca9f0ba959afaba85ace1fb3b06cd1..8ad603c84247ac0678706a91702fd15dbb30978b 100644
--- a/zircon/system/ulib/async-loop/test/BUILD.gn
+++ b/zircon/system/ulib/async-loop/test/BUILD.gn
@@ -25,5 +25,4 @@ test("async-loop") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/async/test/BUILD.gn b/zircon/system/ulib/async/test/BUILD.gn
index 868dc79dea03499d44e8be936dac06535e85f858..fb9ab2a0e5cfe20d32a237c5867678b61a15264e 100644
--- a/zircon/system/ulib/async/test/BUILD.gn
+++ b/zircon/system/ulib/async/test/BUILD.gn
@@ -30,5 +30,4 @@ test("async") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/blobfs/test/BUILD.gn b/zircon/system/ulib/blobfs/test/BUILD.gn
index 90d6053dbcb510882f34d22ff9f735eae3be3425..243b6141a6dcbabd7835a8df60c293716cd31dcd 100644
--- a/zircon/system/ulib/blobfs/test/BUILD.gn
+++ b/zircon/system/ulib/blobfs/test/BUILD.gn
@@ -34,5 +34,4 @@ test("blobfs-unit") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/bootfs/BUILD.gn b/zircon/system/ulib/bootfs/BUILD.gn
index 55a2c48ff831d8633ac384a8c692a8a4e160debf..da7fe3f5e2d9da0768318f6d223b6acbf8687d59 100644
--- a/zircon/system/ulib/bootfs/BUILD.gn
+++ b/zircon/system/ulib/bootfs/BUILD.gn
@@ -26,5 +26,4 @@ test("bootfs-test") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/cobalt-client/test/BUILD.gn b/zircon/system/ulib/cobalt-client/test/BUILD.gn
index 2fe4e2ef0316d1122f1d3ec9983968327c9ce333..aa80d5a1822a161851dd0e7dbdfb7cebb284b5b6 100644
--- a/zircon/system/ulib/cobalt-client/test/BUILD.gn
+++ b/zircon/system/ulib/cobalt-client/test/BUILD.gn
@@ -18,5 +18,4 @@ test("cobalt-client-unit") {
     "$zx/system/ulib/cobalt-client:in-memory-logger",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/ddk/BUILD.gn b/zircon/system/ulib/ddk/BUILD.gn
index 03b8693ceb657ff3b2854bd777cd1a6c13fb6a17..7b9ac2dc821f2a83fb93a9c9a55ee9eea68b2a89 100644
--- a/zircon/system/ulib/ddk/BUILD.gn
+++ b/zircon/system/ulib/ddk/BUILD.gn
@@ -80,5 +80,4 @@ test("ddk-unittest") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/digest/test/BUILD.gn b/zircon/system/ulib/digest/test/BUILD.gn
index 7c2f24ca13522dbca6c553817874d92db82c993a..95056c2b357e26f4a30cf1e8f5e1b174da4ae432 100644
--- a/zircon/system/ulib/digest/test/BUILD.gn
+++ b/zircon/system/ulib/digest/test/BUILD.gn
@@ -22,5 +22,4 @@ test("digest") {
     "$zx/system/ulib/zircon",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/disk-inspector/test/BUILD.gn b/zircon/system/ulib/disk-inspector/test/BUILD.gn
index f88537b11c453700e3dbf7c394196102b2de1309..5ac44424b5b1883faaeac0ca4d0b972edd572c38 100644
--- a/zircon/system/ulib/disk-inspector/test/BUILD.gn
+++ b/zircon/system/ulib/disk-inspector/test/BUILD.gn
@@ -20,5 +20,4 @@ test("disk-inspector-unit") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/driver-integration-test/test/BUILD.gn b/zircon/system/ulib/driver-integration-test/test/BUILD.gn
index 3e78b00f6ea3a3c4fa21c3ae9afbc2b6d8bb09c0..2dc6e2e8a3fd4aa8cef59d9763d4b001c12c7558 100644
--- a/zircon/system/ulib/driver-integration-test/test/BUILD.gn
+++ b/zircon/system/ulib/driver-integration-test/test/BUILD.gn
@@ -25,5 +25,4 @@ test("driver-integration") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/fvm/test/BUILD.gn b/zircon/system/ulib/fvm/test/BUILD.gn
index 682b162d2f8f54e63fb70b73037b193d841728ed..3e91459f2da8576bcb6b97e5ad60ee4e448288b2 100644
--- a/zircon/system/ulib/fvm/test/BUILD.gn
+++ b/zircon/system/ulib/fvm/test/BUILD.gn
@@ -25,6 +25,5 @@ test("fvm-unit") {
       "$zx/system/ulib/zircon",
       "$zx/system/ulib/zx",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
diff --git a/zircon/system/ulib/gpt/test/BUILD.gn b/zircon/system/ulib/gpt/test/BUILD.gn
index 1fb674bb6d56b15d498b1c4a45ce7053b88b7e6d..397e011d1988150ca6a8331ac058f8a74a1c5f32 100644
--- a/zircon/system/ulib/gpt/test/BUILD.gn
+++ b/zircon/system/ulib/gpt/test/BUILD.gn
@@ -26,5 +26,4 @@ test("gpt-unit") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/cksum",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/id_allocator/test/BUILD.gn b/zircon/system/ulib/id_allocator/test/BUILD.gn
index aff3e63fa3366bf258cf96ce2235ccc1ea78243b..82bff67232f2436646c5753fa25330a714beb9ba 100644
--- a/zircon/system/ulib/id_allocator/test/BUILD.gn
+++ b/zircon/system/ulib/id_allocator/test/BUILD.gn
@@ -19,5 +19,4 @@ test("id_allocator") {
     "$zx/system/ulib/id_allocator",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/io-scheduler/BUILD.gn b/zircon/system/ulib/io-scheduler/BUILD.gn
index 720339bc50f189d2a762ac9ffd53d5534f9c4dd6..c37e34ea9df176facca46f8944435cdbd8d38a6c 100644
--- a/zircon/system/ulib/io-scheduler/BUILD.gn
+++ b/zircon/system/ulib/io-scheduler/BUILD.gn
@@ -28,5 +28,4 @@ test("io-scheduler-test") {
     "$zx/system/ulib/io-scheduler",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/minfs/allocator/test/BUILD.gn b/zircon/system/ulib/minfs/allocator/test/BUILD.gn
index 86e6ab072492dce318d17697c3a8c7166bca3733..5932ee34d8af14a43200a98642ed2bfcfc4c2560 100644
--- a/zircon/system/ulib/minfs/allocator/test/BUILD.gn
+++ b/zircon/system/ulib/minfs/allocator/test/BUILD.gn
@@ -21,7 +21,6 @@ test("minfs-allocator-unit") {
     "$zx/system/ulib/minfs",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 
   include_dirs = [ ".." ]
 }
diff --git a/zircon/system/ulib/minfs/test/BUILD.gn b/zircon/system/ulib/minfs/test/BUILD.gn
index aac1f7053994134f20d320bb3a8a6d7bb94d7090..2d4a7880f5eb7dc6adc0b150ca7feac451fa8196 100644
--- a/zircon/system/ulib/minfs/test/BUILD.gn
+++ b/zircon/system/ulib/minfs/test/BUILD.gn
@@ -25,7 +25,6 @@ test("minfs-work-queue-unit") {
     "$zx/system/ulib/zxtest",
   ]
   include_dirs = [ "$zx/system/ulib/minfs" ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("minfs-format-unit") {
@@ -39,7 +38,6 @@ test("minfs-format-unit") {
     "$zx/system/ulib/zxtest",
   ]
   include_dirs = [ "$zx/system/ulib/minfs" ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("minfs-inspector-unit") {
diff --git a/zircon/system/ulib/paver/BUILD.gn b/zircon/system/ulib/paver/BUILD.gn
index 24bd8975cc87ae345b7c8e30ea5924a0da3a904a..4ee2857b19e2d1a48a434fea70bdd4c73aef797b 100644
--- a/zircon/system/ulib/paver/BUILD.gn
+++ b/zircon/system/ulib/paver/BUILD.gn
@@ -79,5 +79,4 @@ test("paver-test") {
     "$zx/system/ulib/svc",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/simplehid/test/BUILD.gn b/zircon/system/ulib/simplehid/test/BUILD.gn
index 0ec997866f57c1e7803040ab0af1083b43081e6a..b943df00c793c6ec80609b831a12f8cb78d61ac7 100644
--- a/zircon/system/ulib/simplehid/test/BUILD.gn
+++ b/zircon/system/ulib/simplehid/test/BUILD.gn
@@ -27,5 +27,4 @@ test("simplehid") {
     "$zx/system/ulib/zx",
     "..",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/storage-metrics/test/BUILD.gn b/zircon/system/ulib/storage-metrics/test/BUILD.gn
index 0e40e46820b73f2c0a57c17dd8213ef233717492..3b0e662fb5774de26d085f277fcef80ec62d669b 100644
--- a/zircon/system/ulib/storage-metrics/test/BUILD.gn
+++ b/zircon/system/ulib/storage-metrics/test/BUILD.gn
@@ -23,5 +23,4 @@ test("storage-metrics") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/tftp/BUILD.gn b/zircon/system/ulib/tftp/BUILD.gn
index e28bbda6d6e3191b7b0225b90fae0d927a8d9753..7f260f0c34bcff7c589d033405208deea2742824 100644
--- a/zircon/system/ulib/tftp/BUILD.gn
+++ b/zircon/system/ulib/tftp/BUILD.gn
@@ -37,7 +37,6 @@ if (!is_kernel) {
       "$zx/system/ulib/tftp",
       "$zx/system/ulib/unittest",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 
   host_tool("tftp-example") {
diff --git a/zircon/system/ulib/trace-vthread/BUILD.gn b/zircon/system/ulib/trace-vthread/BUILD.gn
index 837eb32615463d89899aee876d05d329b36e424a..a6817f96e45a94c8a285499a67d9cbf1aadfe676 100644
--- a/zircon/system/ulib/trace-vthread/BUILD.gn
+++ b/zircon/system/ulib/trace-vthread/BUILD.gn
@@ -102,7 +102,6 @@ test("trace-vthread-test") {
     ":test-common",
     "$zx/system/ulib/trace-engine",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 # The unittest with a static trace-engine.
@@ -111,5 +110,4 @@ test("trace-vthread-with-static-engine-test") {
     ":test-common",
     "$zx/system/ulib/trace-engine:trace-engine-static",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/ulib/zbi-bootfs/test/BUILD.gn b/zircon/system/ulib/zbi-bootfs/test/BUILD.gn
index f1033caa622c94ba381621933bbadf827115a634..90deaf6bde919520e668f4e1dc673bc7f47e403b 100644
--- a/zircon/system/ulib/zbi-bootfs/test/BUILD.gn
+++ b/zircon/system/ulib/zbi-bootfs/test/BUILD.gn
@@ -39,7 +39,6 @@ test("zbi-bootfs-test") {
     "$zx/system/ulib/zbi-bootfs",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 
   data_deps = [
     ":test-zbi",
diff --git a/zircon/system/ulib/zircon/BUILD.gn b/zircon/system/ulib/zircon/BUILD.gn
index 4161cfb39bd1173b5251797f32cc25a7140c28d4..79a0cf8c71f8ccb6d0d56fa59eaa58e37da03fc4 100644
--- a/zircon/system/ulib/zircon/BUILD.gn
+++ b/zircon/system/ulib/zircon/BUILD.gn
@@ -8,17 +8,33 @@ import("$zx/public/gn/toolchain/environment_redirect.gni")
 # The vDSO can't be built with instrumentation.
 exclude_tags = [ "instrumented" ]
 
-if (toolchain.tags + exclude_tags - exclude_tags != toolchain.tags ||
-    toolchain.base_environment != "user") {
-  # References from other toolchains just redirect.  This prevents extra
-  # abigen runs in other toolchains just to get identical generated headers.
+if (toolchain.environment != "user") {
+  # References from other environments only get the headers.
+  group("zircon") {
+    public_deps = [
+      ":headers",
+    ]
+  }
+  environment_redirect("headers") {
+    environment_label = "$zx/public/gn/toolchain:user"
+    direct = true
+    shlib = true
+    exclude_variant_tags = exclude_tags
+    deps = [
+      ":headers",
+    ]
+  }
+} else if (toolchain.tags + exclude_tags - exclude_tags != toolchain.tags) {
+  # References from instrumented variants just redirect.  This prevents
+  # extra abigen runs in other toolchains just to get identical generated
+  # headers.
   foreach(target,
           [
             "zircon",
             "headers",
           ]) {
     environment_redirect(target) {
-      environment_label = "$zx/public/gn/toolchain:user"
+      direct = true
       shlib = true
       exclude_variant_tags = exclude_tags
       deps = [
@@ -80,6 +96,13 @@ if (toolchain.tags + exclude_tags - exclude_tags != toolchain.tags ||
     # This doesn't get normal default deps on libc.
     no_implicit_deps = true
 
+    # This doesn't actually use libc++ at all, really (only header-only use
+    # would be safe).  But the compiler driver implicitly links it in, and by
+    # default with dynamic linking.  So it's crucial to tell it to link it in
+    # statically instead even though really we shouldn't get it at all.  We
+    # don't just use `-nostdlib++` because we still want the header access.
+    configs += [ "$zx/public/gn/config:static-libc++" ]
+
     # TODO(BLD-353): The SDK exports this as part of the sysroot rather
     # than as an independent library.  Legacy integration likewise does not
     # use a //zircon/public/lib/zircon buts instead uses libs=["zircon"].
diff --git a/zircon/system/ulib/zxtest/test/BUILD.gn b/zircon/system/ulib/zxtest/test/BUILD.gn
index 41d2c11a4ef0803cdaa88ff62e57ef00c371c6d3..a3e4d486ab55082e17e778d1ee441e382060246d 100644
--- a/zircon/system/ulib/zxtest/test/BUILD.gn
+++ b/zircon/system/ulib/zxtest/test/BUILD.gn
@@ -30,6 +30,5 @@ test("zxtest") {
       "$zx/system/ulib/zircon",
       "$zx/system/ulib/zx",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
diff --git a/zircon/system/ulib/zxtest/test/integration/BUILD.gn b/zircon/system/ulib/zxtest/test/integration/BUILD.gn
index 85a0df36c89943d88db8ec871bbfee705a75b0bf..9b9b521a357b0ff76dc87f1b444dc29de927d70e 100644
--- a/zircon/system/ulib/zxtest/test/integration/BUILD.gn
+++ b/zircon/system/ulib/zxtest/test/integration/BUILD.gn
@@ -30,6 +30,5 @@ test("zxtest-integration") {
       "$zx/system/ulib/zircon",
       "$zx/system/ulib/zx",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
diff --git a/zircon/system/utest/async-testutils/BUILD.gn b/zircon/system/utest/async-testutils/BUILD.gn
index 391b5eed0ee724156c289ed58eb603aa736925c3..11a551b9a79107f790455f0c9f690447c24abfc8 100644
--- a/zircon/system/utest/async-testutils/BUILD.gn
+++ b/zircon/system/utest/async-testutils/BUILD.gn
@@ -17,5 +17,4 @@ test("async-testutils") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/biotime/BUILD.gn b/zircon/system/utest/biotime/BUILD.gn
index 39b63a6562735ce9d9228ca1374aea657de98794..7762568fbfb547c3767a1e4d9f7d3dc68da10039 100644
--- a/zircon/system/utest/biotime/BUILD.gn
+++ b/zircon/system/utest/biotime/BUILD.gn
@@ -14,5 +14,4 @@ test("biotime") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/bitmap/BUILD.gn b/zircon/system/utest/bitmap/BUILD.gn
index bbfec5385f81ce154e10b8b84185634d7d8aeb9f..2df2dc7dff6a85aba84eafc9ac657bb5940cfbc0 100644
--- a/zircon/system/utest/bitmap/BUILD.gn
+++ b/zircon/system/utest/bitmap/BUILD.gn
@@ -15,5 +15,4 @@ test("bitmap") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/blobfs-bench/BUILD.gn b/zircon/system/utest/blobfs-bench/BUILD.gn
index 6f1ba7e3fbe1b7836a1c084376322c4dddff68fb..d8292259a8b63644723588fea73b1fbbec086a35 100644
--- a/zircon/system/utest/blobfs-bench/BUILD.gn
+++ b/zircon/system/utest/blobfs-bench/BUILD.gn
@@ -36,5 +36,4 @@ test("blobfs-bench") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/blobfs/BUILD.gn b/zircon/system/utest/blobfs/BUILD.gn
index 13c7ecf0f9154fada9777f81ed1b4457130a7b60..449e12bdb624768ec47117586bdd6703a51ab902 100644
--- a/zircon/system/utest/blobfs/BUILD.gn
+++ b/zircon/system/utest/blobfs/BUILD.gn
@@ -37,5 +37,4 @@ test("blobfs") {
     "$zx/third_party/ulib/lz4",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/chromeos-disk-setup/BUILD.gn b/zircon/system/utest/chromeos-disk-setup/BUILD.gn
index d2bd4daa53822a7d8d8e58351be75bf4963167f7..27aa5524fbf2be0b5aa7eca44d73770c9d4d2e43 100644
--- a/zircon/system/utest/chromeos-disk-setup/BUILD.gn
+++ b/zircon/system/utest/chromeos-disk-setup/BUILD.gn
@@ -19,5 +19,4 @@ test("chromeos-disk-setup") {
     "$zx/system/ulib/zxio",
     "$zx/third_party/ulib/cksum",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/cobalt-client/BUILD.gn b/zircon/system/utest/cobalt-client/BUILD.gn
index d782dac59ed1edd200804eba5ced5654ea468d13..bb8e48ae74a1d8273fa3e5b67d22b37afabf61af 100644
--- a/zircon/system/utest/cobalt-client/BUILD.gn
+++ b/zircon/system/utest/cobalt-client/BUILD.gn
@@ -31,5 +31,4 @@ test("cobalt-client") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/core/BUILD.gn b/zircon/system/utest/core/BUILD.gn
index 24a3a38fb7f2aa864e869063a7e370dfa2edfa88..f7b40d91e437af524344a5c25604dca7c0008743 100644
--- a/zircon/system/utest/core/BUILD.gn
+++ b/zircon/system/utest/core/BUILD.gn
@@ -75,7 +75,6 @@ executable("core-tests") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 # Next, build each into its own standalone test binary.
@@ -85,6 +84,5 @@ foreach(test_name, core_tests) {
     deps = [
       test_name,
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
diff --git a/zircon/system/utest/crypto/BUILD.gn b/zircon/system/utest/crypto/BUILD.gn
index 49b6d3602e8032507d77ff19654717b59194410c..bea76c0cfd70b55878782914e3853e1d78506582 100644
--- a/zircon/system/utest/crypto/BUILD.gn
+++ b/zircon/system/utest/crypto/BUILD.gn
@@ -19,5 +19,4 @@ test("crypto") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/ctor/BUILD.gn b/zircon/system/utest/ctor/BUILD.gn
index 202a22e3f47560681a88a7e2f764e01838946391..def594fc989713e9017347371f8a7f5a621bd83b 100644
--- a/zircon/system/utest/ctor/BUILD.gn
+++ b/zircon/system/utest/ctor/BUILD.gn
@@ -11,7 +11,6 @@ test("ctor") {
     "$zx/system/ulib/fdio",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 library("dso-ctor") {
@@ -24,5 +23,4 @@ library("dso-ctor") {
   deps = [
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/devfs/BUILD.gn b/zircon/system/utest/devfs/BUILD.gn
index afb1a4871427311c34db5a2787001185bcec4967..b122b2152e90ed38459e6e38b0dd387999e88667 100644
--- a/zircon/system/utest/devfs/BUILD.gn
+++ b/zircon/system/utest/devfs/BUILD.gn
@@ -17,5 +17,4 @@ test("devfs") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/device-enumeration/BUILD.gn b/zircon/system/utest/device-enumeration/BUILD.gn
index 4cb374c6f8739ce49eb148db8b6f814358ab0863..76896fdcb25541a8ad78f84656cdc061f360578f 100644
--- a/zircon/system/utest/device-enumeration/BUILD.gn
+++ b/zircon/system/utest/device-enumeration/BUILD.gn
@@ -16,5 +16,4 @@ test("device-enumeration") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/driver-test/BUILD.gn b/zircon/system/utest/driver-test/BUILD.gn
index 566ffef2e3d6bff21620b330a70d891a9f69f885..04442060397d09605722226c0593cfcbefe64ab8 100644
--- a/zircon/system/utest/driver-test/BUILD.gn
+++ b/zircon/system/utest/driver-test/BUILD.gn
@@ -18,5 +18,4 @@ test("driver-test") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/elf-search/BUILD.gn b/zircon/system/utest/elf-search/BUILD.gn
index d24e9e25c949ee89512dfa4872bd85aca0b3dc7b..f737a7388546c6b6112f10fe50411d246dc515d4 100644
--- a/zircon/system/utest/elf-search/BUILD.gn
+++ b/zircon/system/utest/elf-search/BUILD.gn
@@ -15,5 +15,4 @@ test("elf-search") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/entropy/BUILD.gn b/zircon/system/utest/entropy/BUILD.gn
index 55642416bf2f0650f9312a0051c559729aae5b3e..5f552164935abf7e21ad48a7f5c1c20240faac14 100644
--- a/zircon/system/utest/entropy/BUILD.gn
+++ b/zircon/system/utest/entropy/BUILD.gn
@@ -13,5 +13,4 @@ test("entropy") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/ethernet/BUILD.gn b/zircon/system/utest/ethernet/BUILD.gn
index 2b14fe631e892f9747311d84e1d2e258f0e51c89..327c01aca2d3bea24eb49ede6b0305a3572f5423 100644
--- a/zircon/system/utest/ethernet/BUILD.gn
+++ b/zircon/system/utest/ethernet/BUILD.gn
@@ -19,5 +19,4 @@ test("ethernet") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fbl/BUILD.gn b/zircon/system/utest/fbl/BUILD.gn
index 18d1919085bac62788b050cab634249116e07d33..cdd09a9411e488e2d56e18b9c34a500e014f2208 100644
--- a/zircon/system/utest/fbl/BUILD.gn
+++ b/zircon/system/utest/fbl/BUILD.gn
@@ -57,6 +57,5 @@ test("fbl") {
       "$zx/system/ulib/zircon",
       "$zx/system/ulib/zx",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
diff --git a/zircon/system/utest/fdio/BUILD.gn b/zircon/system/utest/fdio/BUILD.gn
index 6d1bbb8d8e8055613ae053ea60899f5f3bb40edc..118040f2eaee5f9a513cbc0bdd7dd2f775dc053c 100644
--- a/zircon/system/utest/fdio/BUILD.gn
+++ b/zircon/system/utest/fdio/BUILD.gn
@@ -19,7 +19,6 @@ test("fdio") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 
   data_deps = [
     ":accept-child",
diff --git a/zircon/system/utest/fidl-coding-tables/BUILD.gn b/zircon/system/utest/fidl-coding-tables/BUILD.gn
index 9e96c52f87f056396fb1a95dc682f4bf2f21e1f4..63341ed904f0ba7acddd569bc84569a0c969bacc 100644
--- a/zircon/system/utest/fidl-coding-tables/BUILD.gn
+++ b/zircon/system/utest/fidl-coding-tables/BUILD.gn
@@ -21,7 +21,6 @@ if (current_toolchain != default_toolchain) {
       "$zx/system/ulib/zx",
       "$zx/system/ulib/zxtest",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
 
diff --git a/zircon/system/utest/fidl-llcpp-interop/BUILD.gn b/zircon/system/utest/fidl-llcpp-interop/BUILD.gn
index a55b928af056554d290f9cd25ea4f476fc713ba6..f84ad1171b16ec68f0798a8530da67ad1ad790c6 100644
--- a/zircon/system/utest/fidl-llcpp-interop/BUILD.gn
+++ b/zircon/system/utest/fidl-llcpp-interop/BUILD.gn
@@ -36,7 +36,6 @@ if (current_toolchain != default_toolchain) {
       "$zx/system/ulib/zircon",
       "$zx/system/ulib/zx",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
 
diff --git a/zircon/system/utest/fidl-simple/BUILD.gn b/zircon/system/utest/fidl-simple/BUILD.gn
index f788ee696b9a996b7026ebc194da2c72553c8088..e2dd801289d068e5ead8529ab0d744df8c994ff0 100644
--- a/zircon/system/utest/fidl-simple/BUILD.gn
+++ b/zircon/system/utest/fidl-simple/BUILD.gn
@@ -32,7 +32,6 @@ if (is_fuchsia) {
       "$zx/system/ulib/zircon",
       "$zx/system/ulib/zx",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
 
diff --git a/zircon/system/utest/fidl/BUILD.gn b/zircon/system/utest/fidl/BUILD.gn
index 782bedd0ac8658f8c72de03e40b78c15cb6f95d4..01cbabc8bdc655ff2c0e008bda37c5aa8c72bfd0 100644
--- a/zircon/system/utest/fidl/BUILD.gn
+++ b/zircon/system/utest/fidl/BUILD.gn
@@ -35,7 +35,6 @@ executable("fidl-handle-policy-test-app") {
   deps = [
     ":common",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("fidl") {
@@ -53,5 +52,4 @@ test("fidl") {
     ":common",
     ":fidl-handle-policy-test-app",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fit/BUILD.gn b/zircon/system/utest/fit/BUILD.gn
index 48416c70f461cf6cacc2ad4bce0f83c518ce8bc1..859f5ec33218824e273fa05a740d0d24db4e0cc7 100644
--- a/zircon/system/utest/fit/BUILD.gn
+++ b/zircon/system/utest/fit/BUILD.gn
@@ -18,7 +18,6 @@ test("fit") {
   if (is_fuchsia) {
     defines = [ "FIT_NO_STD_FOR_ZIRCON_USERSPACE" ]
     deps += [ "$zx/system/ulib/fdio" ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   } else {
     sources += [
       "bridge_tests.cpp",
diff --git a/zircon/system/utest/fs-bench/BUILD.gn b/zircon/system/utest/fs-bench/BUILD.gn
index b45a5745075f9e3c6b0805f78667efa900973b69..2ed4c1ff8e68f565c625791a98dbd3fef44c2482 100644
--- a/zircon/system/utest/fs-bench/BUILD.gn
+++ b/zircon/system/utest/fs-bench/BUILD.gn
@@ -34,5 +34,4 @@ test("fs-bench") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fs-management/BUILD.gn b/zircon/system/utest/fs-management/BUILD.gn
index 428d11a2bc265c1b7b87464c8a1aed035116579f..c545073d55d20c8915123b5e7b2a78c044e0911c 100644
--- a/zircon/system/utest/fs-management/BUILD.gn
+++ b/zircon/system/utest/fs-management/BUILD.gn
@@ -33,5 +33,4 @@ test("fs-management") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fs-recovery/BUILD.gn b/zircon/system/utest/fs-recovery/BUILD.gn
index 6dce13d84b1f26b640d3edf9de11317ec21e0670..efe2ab07df8a07cce05bacf65a27833c327661d3 100644
--- a/zircon/system/utest/fs-recovery/BUILD.gn
+++ b/zircon/system/utest/fs-recovery/BUILD.gn
@@ -28,5 +28,4 @@ test("fs-recovery") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fs-test-utils/BUILD.gn b/zircon/system/utest/fs-test-utils/BUILD.gn
index 2e9f851a26f7f8991040bb0ff1debb9b6984e646..2990616aa806b48d217ac78963d5ca6167ba6a0a 100644
--- a/zircon/system/utest/fs-test-utils/BUILD.gn
+++ b/zircon/system/utest/fs-test-utils/BUILD.gn
@@ -38,5 +38,4 @@ test("fs-test-utils") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fs-vnode/BUILD.gn b/zircon/system/utest/fs-vnode/BUILD.gn
index 387fad66225128fdbb16e90cce346289eef252a0..f7532d2616cace167b928ce72315c0741f01a0eb 100644
--- a/zircon/system/utest/fs-vnode/BUILD.gn
+++ b/zircon/system/utest/fs-vnode/BUILD.gn
@@ -31,5 +31,4 @@ test("fs-vnode") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fs/BUILD.gn b/zircon/system/utest/fs/BUILD.gn
index 4a78f2ebba50248efe368ff6cac2e2ec7a2e0a55..6f86cbb4b72aeaa30e73545078bcf4274a858653 100644
--- a/zircon/system/utest/fs/BUILD.gn
+++ b/zircon/system/utest/fs/BUILD.gn
@@ -96,5 +96,4 @@ test("fs") {
     "$zx/system/ulib/zx",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/futex-ownership/BUILD.gn b/zircon/system/utest/futex-ownership/BUILD.gn
index b1208e127d3eb8619f44d44951acc29c468f9dc6..7f4c0e9bd8c202ae6983ee12ed5d3413c07710c5 100644
--- a/zircon/system/utest/futex-ownership/BUILD.gn
+++ b/zircon/system/utest/futex-ownership/BUILD.gn
@@ -16,5 +16,4 @@ test("futex-ownership") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fvm/BUILD.gn b/zircon/system/utest/fvm/BUILD.gn
index b377dfacbf36e846656dfdc0051655f8578716b6..6b7542be9aa9827e58dad6f2e2e7e9408367632a 100644
--- a/zircon/system/utest/fvm/BUILD.gn
+++ b/zircon/system/utest/fvm/BUILD.gn
@@ -38,5 +38,4 @@ test("fvm") {
     "$zx/third_party/ulib/cksum",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/fzl/BUILD.gn b/zircon/system/utest/fzl/BUILD.gn
index 1edb34da1aa879234918de698274c379fa2fceb6..7762795e185a8a2776c400ed3c1c35ddc14ddff3 100644
--- a/zircon/system/utest/fzl/BUILD.gn
+++ b/zircon/system/utest/fzl/BUILD.gn
@@ -23,5 +23,4 @@ test("fzl") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/goldfish/BUILD.gn b/zircon/system/utest/goldfish/BUILD.gn
index ec2efa54116fd557b74d1babfec364fd08dd31a6..2a52ec69950eb0d2d9031c3af8699de01d3f59c5 100644
--- a/zircon/system/utest/goldfish/BUILD.gn
+++ b/zircon/system/utest/goldfish/BUILD.gn
@@ -15,5 +15,4 @@ test("goldfish") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/hid-parser/BUILD.gn b/zircon/system/utest/hid-parser/BUILD.gn
index b87af3085ce8730746c301f3d4a4c94375c86b1e..f1dcd3ae6eb8cd86cf07704acfe8d0e0f05645a5 100644
--- a/zircon/system/utest/hid-parser/BUILD.gn
+++ b/zircon/system/utest/hid-parser/BUILD.gn
@@ -15,7 +15,6 @@ test("hid-parser") {
     "$zx/system/ulib/hid-parser",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 # TODO(BLD-356): hid-parser-fuzzer
 # sources=["hid-parser-fuzztest.cpp"]
diff --git a/zircon/system/utest/hid/BUILD.gn b/zircon/system/utest/hid/BUILD.gn
index 00647d8d020ce65a3f653b22d45c1dc0f59e975b..bc3cf7a25f62b4cc08298d7e8aca80d01f703eaf 100644
--- a/zircon/system/utest/hid/BUILD.gn
+++ b/zircon/system/utest/hid/BUILD.gn
@@ -20,7 +20,6 @@ test("hid") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
 
 test("hid-parse-size") {
@@ -41,5 +40,4 @@ test("hid-parse-size") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/hypervisor/BUILD.gn b/zircon/system/utest/hypervisor/BUILD.gn
index 53f10767e908e6909a7bbfcda48fd93be7710b43..785168ceb05e8333fa21e4b017ff660a050af40f 100644
--- a/zircon/system/utest/hypervisor/BUILD.gn
+++ b/zircon/system/utest/hypervisor/BUILD.gn
@@ -15,5 +15,4 @@ test("hypervisor") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/inspect-vmo/BUILD.gn b/zircon/system/utest/inspect-vmo/BUILD.gn
index c78635f2f19238d625ac7425eca35a9331829b96..3c1cf31b918dc599cc3fde3fb2462cdcbaa9a512 100644
--- a/zircon/system/utest/inspect-vmo/BUILD.gn
+++ b/zircon/system/utest/inspect-vmo/BUILD.gn
@@ -19,5 +19,4 @@ test("inspect-vmo") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/kcounter/BUILD.gn b/zircon/system/utest/kcounter/BUILD.gn
index 65a9b03ebda67acf1dffd4a810d43fa2647937ec..f581bae128c103688a6e9bac09779f72c33bbffb 100644
--- a/zircon/system/utest/kcounter/BUILD.gn
+++ b/zircon/system/utest/kcounter/BUILD.gn
@@ -16,5 +16,4 @@ test("kcounter") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/launchpad/BUILD.gn b/zircon/system/utest/launchpad/BUILD.gn
index ddfaf44e0daa51635257b8d41a10ce668ddc6e01..c470a30a8666b4c81a82bbcd63597e40f6f613fd 100644
--- a/zircon/system/utest/launchpad/BUILD.gn
+++ b/zircon/system/utest/launchpad/BUILD.gn
@@ -16,5 +16,4 @@ test("launchpad") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/libfzl/BUILD.gn b/zircon/system/utest/libfzl/BUILD.gn
index 4f89e8a11552a60ceed946e6e511066cbf6e960d..6eec9d2935039a73274176504f0c7160cac2f54c 100644
--- a/zircon/system/utest/libfzl/BUILD.gn
+++ b/zircon/system/utest/libfzl/BUILD.gn
@@ -19,5 +19,4 @@ test("libfzl") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/log/BUILD.gn b/zircon/system/utest/log/BUILD.gn
index 668abd9168e3ced1982f653cb2656745823b2068..799fb1c2f52ee50dd7206b2f4e8c627bd29ef655 100644
--- a/zircon/system/utest/log/BUILD.gn
+++ b/zircon/system/utest/log/BUILD.gn
@@ -19,5 +19,4 @@ test("log") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/logger/BUILD.gn b/zircon/system/utest/logger/BUILD.gn
index 6b61e46e95b776e055165f1bf752ca6b45de958d..c7942e6edb8ad7c485695e508bd9529add2c0960 100644
--- a/zircon/system/utest/logger/BUILD.gn
+++ b/zircon/system/utest/logger/BUILD.gn
@@ -22,5 +22,4 @@ test("logger") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/memfs/BUILD.gn b/zircon/system/utest/memfs/BUILD.gn
index 27a700e4761e0456f5d9486f5a964c834aace11c..2d76ff731a4296aae6e1e3355763326d94ca2285 100644
--- a/zircon/system/utest/memfs/BUILD.gn
+++ b/zircon/system/utest/memfs/BUILD.gn
@@ -28,5 +28,4 @@ test("memfs") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/miscsvc/BUILD.gn b/zircon/system/utest/miscsvc/BUILD.gn
index ce4de960e9592d76d5cdaa03c9bba4174165bfcd..b83b190b9cd69e26a87c4d7d70edea0cd29ba3fd 100644
--- a/zircon/system/utest/miscsvc/BUILD.gn
+++ b/zircon/system/utest/miscsvc/BUILD.gn
@@ -13,5 +13,4 @@ test("miscsvc") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/perftest/BUILD.gn b/zircon/system/utest/perftest/BUILD.gn
index cd9be37f721245746814630477717bf130b7639c..e732c958302a1fa5da480ea202bd487e7cc31390 100644
--- a/zircon/system/utest/perftest/BUILD.gn
+++ b/zircon/system/utest/perftest/BUILD.gn
@@ -37,5 +37,4 @@ test("perftest") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/platform-bus/BUILD.gn b/zircon/system/utest/platform-bus/BUILD.gn
index a220252da3b908d4aed75cd1096d78707062616b..73fb1da046eb6cd7f94b7e1722e3dfa6b80bd270 100644
--- a/zircon/system/utest/platform-bus/BUILD.gn
+++ b/zircon/system/utest/platform-bus/BUILD.gn
@@ -18,5 +18,4 @@ test("platform-bus") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/ramdisk/BUILD.gn b/zircon/system/utest/ramdisk/BUILD.gn
index 712516b7d1f7e7b96a75454de4f06371154fd2bd..2751e51a0a65e3722cd1446c5fc60acd4acef27a 100644
--- a/zircon/system/utest/ramdisk/BUILD.gn
+++ b/zircon/system/utest/ramdisk/BUILD.gn
@@ -22,5 +22,4 @@ test("ramdisk") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/region-alloc/BUILD.gn b/zircon/system/utest/region-alloc/BUILD.gn
index c88ce5e1fe72a37d5907104d0f40addc57d3160b..70cb70ab921c0cc5e36c724fa5dd5e16a185309c 100644
--- a/zircon/system/utest/region-alloc/BUILD.gn
+++ b/zircon/system/utest/region-alloc/BUILD.gn
@@ -13,5 +13,4 @@ test("region-alloc") {
     "$zx/system/ulib/region-alloc",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/runtests-utils/BUILD.gn b/zircon/system/utest/runtests-utils/BUILD.gn
index 6721ee55a5ec157bf11ba94e9b52c1359fde0418..2760a8e1911263777897a70447af1f31e5d04841 100644
--- a/zircon/system/utest/runtests-utils/BUILD.gn
+++ b/zircon/system/utest/runtests-utils/BUILD.gn
@@ -12,7 +12,6 @@ test("runtests-utils") {
     "$zx/system/ulib/runtests-utils",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
   if (is_fuchsia) {
     sources += [
       "fuchsia-run-test.cpp",
diff --git a/zircon/system/utest/sysinfo/BUILD.gn b/zircon/system/utest/sysinfo/BUILD.gn
index 4d9f0367769e5001d6435c93869b288712b4b80f..568e0e1332674017c799c757012040e051517a74 100644
--- a/zircon/system/utest/sysinfo/BUILD.gn
+++ b/zircon/system/utest/sysinfo/BUILD.gn
@@ -14,5 +14,4 @@ test("sysinfo") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/sysmem/BUILD.gn b/zircon/system/utest/sysmem/BUILD.gn
index a6072dcdbec6bef02ddc3d0c2a11a1d30e45a5ac..35cf88103c22ddc85da4bce6e326543b10dfa6ef 100644
--- a/zircon/system/utest/sysmem/BUILD.gn
+++ b/zircon/system/utest/sysmem/BUILD.gn
@@ -17,5 +17,4 @@ test("sysmem") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/task-utils/BUILD.gn b/zircon/system/utest/task-utils/BUILD.gn
index 14e9aa5bfb67de2312467ed0991e2858f99b02ef..8d1fab3e6255ffa6a6553e9a50df0588c617262d 100644
--- a/zircon/system/utest/task-utils/BUILD.gn
+++ b/zircon/system/utest/task-utils/BUILD.gn
@@ -13,5 +13,4 @@ test("task-utils") {
     "$zx/system/ulib/unittest",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/trace-reader/BUILD.gn b/zircon/system/utest/trace-reader/BUILD.gn
index e0e739b6981a33b2def248c15d15fe82f86434e3..f2b3be0dc4b6eed928748990c60624dcd14fe543 100644
--- a/zircon/system/utest/trace-reader/BUILD.gn
+++ b/zircon/system/utest/trace-reader/BUILD.gn
@@ -19,6 +19,5 @@ test("trace-reader") {
       "$zx/system/ulib/zircon",
       "$zx/system/ulib/zx",
     ]
-    configs += [ "$zx/public/gn/config:static-libc++" ]
   }
 }
diff --git a/zircon/system/utest/trace/BUILD.gn b/zircon/system/utest/trace/BUILD.gn
index 1d87f055ee453df4a2c483b5e8e7758bf4b541bc..b55d05968605136f796982299785f0eaca166cbc 100644
--- a/zircon/system/utest/trace/BUILD.gn
+++ b/zircon/system/utest/trace/BUILD.gn
@@ -44,7 +44,6 @@ test("trace") {
     ":common",
     "$zx/system/ulib/trace-engine",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
   data_deps = [
     ":trace-static-engine",
   ]
@@ -56,5 +55,4 @@ test("trace-static-engine") {
     ":common",
     "$zx/system/ulib/trace-engine:trace-engine-static",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/usb-virtual-bus/BUILD.gn b/zircon/system/utest/usb-virtual-bus/BUILD.gn
index e3d5b0b0795bd56e0c7fd4bf3484a53e5a4fef82..9131ab3d05146d4e121e4ac95747cf360a71862b 100644
--- a/zircon/system/utest/usb-virtual-bus/BUILD.gn
+++ b/zircon/system/utest/usb-virtual-bus/BUILD.gn
@@ -31,5 +31,4 @@ test("usb-virtual-bus") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/utf_conversion/BUILD.gn b/zircon/system/utest/utf_conversion/BUILD.gn
index cb6e51873c00dd12ca52ad2b652f0332c44d344b..37f4cb0a5c3af7b9a5d082ecff8d35b39b331d02 100644
--- a/zircon/system/utest/utf_conversion/BUILD.gn
+++ b/zircon/system/utest/utf_conversion/BUILD.gn
@@ -14,5 +14,4 @@ test("utf_conversion") {
     "$zx/system/ulib/utf_conversion",
     "$zx/system/ulib/zircon",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/vdso/BUILD.gn b/zircon/system/utest/vdso/BUILD.gn
index cb05bcd4edc0cb702274487c3306b12ecd4058ac..62152e7eba515fdafcdc94cba723f6567c14050a 100644
--- a/zircon/system/utest/vdso/BUILD.gn
+++ b/zircon/system/utest/vdso/BUILD.gn
@@ -14,5 +14,4 @@ test("vdso") {
     "$zx/system/ulib/zircon",
     "$zx/system/ulib/zx",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/virtio/BUILD.gn b/zircon/system/utest/virtio/BUILD.gn
index c1adcf7bf650ae2a33f2a4fe34069dd16dbba8b5..d21f5f7a98b4effd4d7e7b77f1970b256f5ac251 100644
--- a/zircon/system/utest/virtio/BUILD.gn
+++ b/zircon/system/utest/virtio/BUILD.gn
@@ -16,5 +16,4 @@ test("virtio") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/virtual_camera/BUILD.gn b/zircon/system/utest/virtual_camera/BUILD.gn
index 14b423b76329d6686ae2327a17227c3db901eb58..c5ddecba304519d5af88a2b973438ad3bf3e6fc2 100644
--- a/zircon/system/utest/virtual_camera/BUILD.gn
+++ b/zircon/system/utest/virtual_camera/BUILD.gn
@@ -17,5 +17,4 @@ test("virtual_camera") {
     "$zx/system/ulib/zx",
     "$zx/system/ulib/zxtest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }
diff --git a/zircon/system/utest/zbi/BUILD.gn b/zircon/system/utest/zbi/BUILD.gn
index aca27c21db361f3c77b96a99b78318f6e43b2e3b..aa4c25fdbb0e1e33486e5881918a1e1f1fb9cf29 100644
--- a/zircon/system/utest/zbi/BUILD.gn
+++ b/zircon/system/utest/zbi/BUILD.gn
@@ -12,7 +12,6 @@ test("zbi") {
     "$zx/system/ulib/pretty",
     "$zx/system/ulib/unittest",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 
   if (is_fuchsia) {
     deps += [ "$zx/system/ulib/fdio" ]
diff --git a/zircon/system/utest/zxcrypt/BUILD.gn b/zircon/system/utest/zxcrypt/BUILD.gn
index ea943725a8122322587331a2723eb240d06b1fd6..38674e1488702ea126c2cfd777e29383c65fdca4 100644
--- a/zircon/system/utest/zxcrypt/BUILD.gn
+++ b/zircon/system/utest/zxcrypt/BUILD.gn
@@ -39,5 +39,4 @@ test("zxcrypt") {
     "$zx/third_party/ulib/cryptolib",
     "$zx/third_party/ulib/uboringssl",
   ]
-  configs += [ "$zx/public/gn/config:static-libc++" ]
 }