diff --git a/build/toolchain/embedded.gni b/build/toolchain/embedded.gni
index fa26b2e..beed6aa 100644
--- a/build/toolchain/embedded.gni
+++ b/build/toolchain/embedded.gni
@@ -170,40 +170,7 @@
   }
 }
 
-# Specialize for gcc.
-template("embedded_gcc_toolchain") {
-  assert(defined(invoker.tool_prefix),
-         "\"tool_prefix\" must be defined for ${target_name}.")
-  assert(defined(invoker.extra_defines),
-         "\"extra_defines\" must be defined for ${target_name}.")
-  assert(defined(invoker.extra_cflags),
-         "\"extra_cflags\" must be defined for ${target_name}.")
-  assert(defined(invoker.extra_ldflags),
-         "\"extra_ldflags\" must be defined for ${target_name}.")
-
-  embedded_cc_toolchain(target_name) {
-    cc = "${invoker.tool_prefix}gcc"
-    ld = "${invoker.tool_prefix}ld"
-
-    forward_variables_from(invoker,
-                           [
-                             "extra_defines",
-                             "extra_cflags",
-                             "extra_ldflags",
-                           ])
-
-    extra_cflags += " -fdiagnostics-color=always"
-
-    toolchain_args = {
-      tool_prefix = invoker.tool_prefix
-      if (defined(invoker.toolchain_args)) {
-        forward_variables_from(invoker.toolchain_args, "*")
-      }
-    }
-  }
-}
-
-# Expand to clang and gcc variants.
+# Expand to clang variants.
 template("embedded_platform_toolchain") {
   assert(defined(invoker.arch), "\"arch\" must be defined for ${target_name}.")
   assert(defined(invoker.target),
@@ -244,7 +211,6 @@
       forward_variables_from(invoker.toolchain_args, "*")
     }
   }
-  tool_prefix = invoker.tool_prefix
 
   embedded_clang_toolchain("${target_name}_clang") {
     target = invoker.target
@@ -252,9 +218,7 @@
 
   embedded_clang_bfd_toolchain("${target_name}_clang_bfd") {
     target = invoker.target
-  }
-
-  embedded_gcc_toolchain("${target_name}_gcc") {
+    tool_prefix = invoker.tool_prefix
   }
 }
 
diff --git a/build/toolchain/host.gni b/build/toolchain/host.gni
index 4d2dfa3..535ec61 100644
--- a/build/toolchain/host.gni
+++ b/build/toolchain/host.gni
@@ -158,28 +158,4 @@
       }
     }
   }
-
-  # Specialize for gcc.
-  host_cc_toolchain("${target_name}_gcc") {
-    ar = "ar"
-    cc = "gcc -fdiagnostics-color=always"
-    cxx = "g++ -fdiagnostics-color=always"
-
-    # TODO: remove the need for this
-    extra_defines = "-DPL011_BASE=0"
-
-    if (invoker.use_platform) {
-      toolchain_args = {
-        use_platform = true
-
-        # When building for the ${target_name}, use the fake architecture to make things
-        # testable.
-        plat_arch = "fake"
-        plat_console = "//src/arch/fake:console"
-        plat_heap_pages = invoker.heap_pages
-        plat_max_cpus = invoker.max_cpus
-        plat_max_vms = invoker.max_vms
-      }
-    }
-  }
 }
diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md
index 4ece4ec..b208175 100644
--- a/docs/GettingStarted.md
+++ b/docs/GettingStarted.md
@@ -22,7 +22,7 @@
 Install prerequisites:
 
 ```shell
-sudo apt install make binutils-aarch64-linux-gnu aarch64-linux-gnu-gcc device-tree-compiler libssl-dev flex bison
+sudo apt install make binutils-aarch64-linux-gnu device-tree-compiler libssl-dev flex bison
 ```
 
 By default, the hypervisor is built with clang for a few target platforms along
diff --git a/project/reference b/project/reference
index 3fe2408..2b571af 160000
--- a/project/reference
+++ b/project/reference
@@ -1 +1 @@
-Subproject commit 3fe2408c6b10192ee285b611062f9eae814577c5
+Subproject commit 2b571afde8f1e48b8708e7bb940786dc11dbf0e3
