diff --git a/build/core/toolchains/aarch64-linux-android-clang3.6/config.mk b/build/core/toolchains/aarch64-linux-android-clang3.6/config.mk
index 0705ddf..a294825 100644
--- a/build/core/toolchains/aarch64-linux-android-clang3.6/config.mk
+++ b/build/core/toolchains/aarch64-linux-android-clang3.6/config.mk
@@ -13,7 +13,7 @@
 # limitations under the License.
 #
 
-# config file for the arm64 llvm-3.6 toolchain for the Android NDK
+# config file for the arm64 llvm toolchain for the Android NDK
 # the real meat is in the setup.mk file adjacent to this one
 #
 TOOLCHAIN_ARCH := arm64
diff --git a/build/core/toolchains/aarch64-linux-android-clang3.6/setup.mk b/build/core/toolchains/aarch64-linux-android-clang3.6/setup.mk
index d1bc458..201a39e 100644
--- a/build/core/toolchains/aarch64-linux-android-clang3.6/setup.mk
+++ b/build/core/toolchains/aarch64-linux-android-clang3.6/setup.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# this file is used to prepare the NDK to build with the arm64 clang-3.6
-# toolchain any number of source files
+# this file is used to prepare the NDK to build with the arm64 clang toolchain
+# any number of source files
 #
 # its purpose is to define (or re-define) templates used to build
 # various sources into target object files, libraries or executables.
@@ -27,9 +27,7 @@
 # Override the toolchain prefix
 #
 
-LLVM_VERSION := 3.6
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),llvm)
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_NAME := aarch64-linux-android
diff --git a/build/core/toolchains/arm-linux-androideabi-clang3.6/config.mk b/build/core/toolchains/arm-linux-androideabi-clang3.6/config.mk
index 97024f8..bc52fc8 100644
--- a/build/core/toolchains/arm-linux-androideabi-clang3.6/config.mk
+++ b/build/core/toolchains/arm-linux-androideabi-clang3.6/config.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# config file for the arm llvm-3.6 toolchain for the Android NDK
-# the real meat is in the setup.mk file adjacent to this one
+# config file for the arm llvm toolchain for the Android NDK the real meat is in
+# the setup.mk file adjacent to this one
 #
 TOOLCHAIN_ARCH := arm
 TOOLCHAIN_ABIS := armeabi armeabi-v7a armeabi-v7a-hard
diff --git a/build/core/toolchains/arm-linux-androideabi-clang3.6/setup.mk b/build/core/toolchains/arm-linux-androideabi-clang3.6/setup.mk
index 0178df3..c3f48b2 100644
--- a/build/core/toolchains/arm-linux-androideabi-clang3.6/setup.mk
+++ b/build/core/toolchains/arm-linux-androideabi-clang3.6/setup.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# this file is used to prepare the NDK to build with the arm clang-3.6
-# toolchain any number of source files
+# this file is used to prepare the NDK to build with the arm clang toolchain any
+# number of source files
 #
 # its purpose is to define (or re-define) templates used to build
 # various sources into target object files, libraries or executables.
@@ -27,9 +27,7 @@
 # Override the toolchain prefix
 #
 
-LLVM_VERSION := 3.6
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),llvm)
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_NAME := arm-linux-androideabi
diff --git a/build/core/toolchains/mips64el-linux-android-clang3.6/config.mk b/build/core/toolchains/mips64el-linux-android-clang3.6/config.mk
index e1fc232..ea570a1 100644
--- a/build/core/toolchains/mips64el-linux-android-clang3.6/config.mk
+++ b/build/core/toolchains/mips64el-linux-android-clang3.6/config.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# config file for the mips64el llvm-3.6 toolchain for the Android NDK
-# the real meat is in the setup.mk file adjacent to this one
+# config file for the mips64el llvm toolchain for the Android NDK the real meat
+# is in the setup.mk file adjacent to this one
 #
 TOOLCHAIN_ARCH := mips64
 TOOLCHAIN_ABIS := mips64
diff --git a/build/core/toolchains/mips64el-linux-android-clang3.6/setup.mk b/build/core/toolchains/mips64el-linux-android-clang3.6/setup.mk
index b99fde4..dd38d96 100644
--- a/build/core/toolchains/mips64el-linux-android-clang3.6/setup.mk
+++ b/build/core/toolchains/mips64el-linux-android-clang3.6/setup.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# this file is used to prepare the NDK to build with the mips64el llvm-3.6
-# toolchain any number of source files
+# this file is used to prepare the NDK to build with the mips64el llvm toolchain
+# any number of source files
 #
 # its purpose is to define (or re-define) templates used to build
 # various sources into target object files, libraries or executables.
@@ -27,9 +27,7 @@
 # Override the toolchain prefix
 #
 
-LLVM_VERSION := 3.6
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),llvm)
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_NAME := mips64el-linux-android
diff --git a/build/core/toolchains/mipsel-linux-android-clang3.6/config.mk b/build/core/toolchains/mipsel-linux-android-clang3.6/config.mk
index 8bedc04..4357e2c 100644
--- a/build/core/toolchains/mipsel-linux-android-clang3.6/config.mk
+++ b/build/core/toolchains/mipsel-linux-android-clang3.6/config.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# config file for the mipsel llvm-3.6 toolchain for the Android NDK
-# the real meat is in the setup.mk file adjacent to this one
+# config file for the mipsel llvm toolchain for the Android NDK the real meat is
+# in the setup.mk file adjacent to this one
 #
 TOOLCHAIN_ARCH := mips
 TOOLCHAIN_ABIS := mips
diff --git a/build/core/toolchains/mipsel-linux-android-clang3.6/setup.mk b/build/core/toolchains/mipsel-linux-android-clang3.6/setup.mk
index 11194cc..fe63f3c 100644
--- a/build/core/toolchains/mipsel-linux-android-clang3.6/setup.mk
+++ b/build/core/toolchains/mipsel-linux-android-clang3.6/setup.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# this file is used to prepare the NDK to build with the mipsel llvm-3.6
-# toolchain any number of source files
+# this file is used to prepare the NDK to build with the mipsel llvm toolchain
+# any number of source files
 #
 # its purpose is to define (or re-define) templates used to build
 # various sources into target object files, libraries or executables.
@@ -27,9 +27,7 @@
 # Override the toolchain prefix
 #
 
-LLVM_VERSION := 3.6
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),llvm)
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_NAME := mipsel-linux-android
diff --git a/build/core/toolchains/x86-clang3.6/config.mk b/build/core/toolchains/x86-clang3.6/config.mk
index dbd6c2d..571afe0 100644
--- a/build/core/toolchains/x86-clang3.6/config.mk
+++ b/build/core/toolchains/x86-clang3.6/config.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# config file for the x86 clang-3.6 toolchain for the Android NDK
-# the real meat is in the setup.mk file adjacent to this one
+# config file for the x86 clang toolchain for the Android NDK the real meat is
+# in the setup.mk file adjacent to this one
 #
 TOOLCHAIN_ARCH := x86
 TOOLCHAIN_ABIS := x86
diff --git a/build/core/toolchains/x86-clang3.6/setup.mk b/build/core/toolchains/x86-clang3.6/setup.mk
index 15c3c65..5af3086 100644
--- a/build/core/toolchains/x86-clang3.6/setup.mk
+++ b/build/core/toolchains/x86-clang3.6/setup.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# this file is used to prepare the NDK to build with the x86 llvm-3.6
-# toolchain any number of source files
+# this file is used to prepare the NDK to build with the x86 llvm toolchain any
+# number of source files
 #
 # its purpose is to define (or re-define) templates used to build
 # various sources into target object files, libraries or executables.
@@ -27,9 +27,7 @@
 # Override the toolchain prefix
 #
 
-LLVM_VERSION := 3.6
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),llvm)
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_NAME := i686-linux-android
diff --git a/build/core/toolchains/x86_64-clang3.6/config.mk b/build/core/toolchains/x86_64-clang3.6/config.mk
index 39f6625..0a00f90 100644
--- a/build/core/toolchains/x86_64-clang3.6/config.mk
+++ b/build/core/toolchains/x86_64-clang3.6/config.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# config file for the x86_64 clang-3.6 toolchain for the Android NDK
-# the real meat is in the setup.mk file adjacent to this one
+# config file for the x86_64 clang toolchain for the Android NDK the real meat
+# is in the setup.mk file adjacent to this one
 #
 TOOLCHAIN_ARCH := x86_64
 TOOLCHAIN_ABIS := x86_64
diff --git a/build/core/toolchains/x86_64-clang3.6/setup.mk b/build/core/toolchains/x86_64-clang3.6/setup.mk
index 686da1f..f6b1388 100644
--- a/build/core/toolchains/x86_64-clang3.6/setup.mk
+++ b/build/core/toolchains/x86_64-clang3.6/setup.mk
@@ -13,8 +13,8 @@
 # limitations under the License.
 #
 
-# this file is used to prepare the NDK to build with the x86_64 llvm-3.6
-# toolchain any number of source files
+# this file is used to prepare the NDK to build with the x86_64 llvm toolchain
+# any number of source files
 #
 # its purpose is to define (or re-define) templates used to build
 # various sources into target object files, libraries or executables.
@@ -27,9 +27,7 @@
 # Override the toolchain prefix
 #
 
-LLVM_VERSION := 3.6
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),llvm)
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_NAME := x86_64-linux-android
diff --git a/build/tools/build-llvm.py b/build/tools/build-llvm.py
index cab7e22..ecc2c56 100755
--- a/build/tools/build-llvm.py
+++ b/build/tools/build-llvm.py
@@ -64,14 +64,7 @@
     package_name = 'llvm-{}.tar.bz2'.format(host)
     package_path = os.path.join(package_dir, package_name)
     with tarfile.TarFile.open(package_path, 'w:bz2') as tarball:
-        # TODO(danalbert): Make this version not be a lie. http://b/25782259
-        # Right now the version number for clang is in waaaaaaaay to many
-        # places to update sanely. We either need to make that not be the case,
-        # or just drop the version number entirely.
-        #
-        # For now, we'll just let the version number continue being a lie (it
-        # already was anyway).
-        arcname = 'toolchains/llvm-{}'.format('3.6')
+        arcname = 'toolchains/llvm'
 
         def package_filter(tarinfo):
             if os.path.basename(tarinfo.name) == '.git':
diff --git a/build/tools/package-release.sh b/build/tools/package-release.sh
index 8682389..e0d4071 100755
--- a/build/tools/package-release.sh
+++ b/build/tools/package-release.sh
@@ -81,9 +81,6 @@
 GDB_VERSION=$DEFAULT_GDB_VERSION
 register_var_option "--gdb-version=<versions>" GDB_VERSION "GDB release version"
 
-LLVM_VERSION_LIST=$DEFAULT_LLVM_VERSION_LIST
-register_var_option "--llvm-version-list=<versions>" LLVM_VERSION_LIST "List of LLVM release versions"
-
 register_try64_option
 
 PROGRAM_PARAMETERS=
@@ -125,9 +122,6 @@
     fi
 done
 
-# Convert comma-separated list to space-separated list
-LLVM_VERSION_LIST=$(commas_to_spaces $LLVM_VERSION_LIST)
-
 # If --arch is used to list x86 as a target architecture, Add x86-4.8 to
 # the list of default toolchains to package. That is, unless you also
 # explicitely use --toolchains=<list>
@@ -208,7 +202,6 @@
 echo "Architectures: $ARCHS"
 echo "CPU ABIs: $ABIS"
 echo "GCC Toolchains: $TOOLCHAINS"
-echo "LLVM Toolchains: $LLVM_VERSION_LIST"
 echo "Host systems: $SYSTEMS"
 
 
@@ -424,9 +417,7 @@
         done
 
         # Unpack clang/llvm
-        for LLVM_VERSION in $LLVM_VERSION_LIST; do
-            unpack_prebuilt llvm-$LLVM_VERSION-$SYSTEM "$DSTDIR"
-        done
+        unpack_prebuilt llvm-$SYSTEM "$DSTDIR"
 
         rm -rf $DSTDIR/toolchains/$SYSTEM/*l
 
diff --git a/build/tools/package.py b/build/tools/package.py
index 5eb766c..4256d40 100755
--- a/build/tools/package.py
+++ b/build/tools/package.py
@@ -45,8 +45,8 @@
     >>> expand_packages('gcclibs-{arch}', 'linux', ['arm64', 'x86_64'])
     ['gcclibs-arm64', 'gcclibs-x86_64']
 
-    >>> expand_packages('llvm-3.6-{host}', 'linux', ['arm'])
-    ['llvm-3.6-linux-x86_64']
+    >>> expand_packages('llvm-{host}', 'linux', ['arm'])
+    ['llvm-linux-x86_64']
 
     >>> expand_packages('platforms', 'linux', ['arm'])
     ['platforms']
diff --git a/tests/build/standalone-toolchain/test.py b/tests/build/standalone-toolchain/test.py
index a697a16..87ae5f1 100644
--- a/tests/build/standalone-toolchain/test.py
+++ b/tests/build/standalone-toolchain/test.py
@@ -37,6 +37,9 @@
         cmd.append('--platform=' + platform)
 
     if toolchain is not None:
+        if toolchain == 'clang':
+            # make-standalone-toolchain.sh still expects a version.
+            toolchain = 'clang3.6'
         toolchain_triple = build_support.arch_to_toolchain(arch)
         name = '{}-{}'.format(toolchain_triple, toolchain)
         cmd.append('--toolchain=' + name)
@@ -51,7 +54,7 @@
         if arch == 'x86':
             triple = 'i686-linux-android'
         compiler_name = triple + '-g++'
-    elif toolchain == 'clang3.6':
+    elif toolchain == 'clang':
         compiler_name = 'clang++'
     else:
         raise ValueError
diff --git a/tests/run-all.py b/tests/run-all.py
index fcb892c..4e23fbf 100644
--- a/tests/run-all.py
+++ b/tests/run-all.py
@@ -182,7 +182,7 @@
             help=('Run tests against the specified platform version. Defaults '
                   'to the contents of APP_PLATFORM in jni/Application.mk'))
         self.add_argument(
-            '--toolchain', default='4.9', choices=('4.9', 'clang3.6'),
+            '--toolchain', default='4.9', choices=('4.9', 'clang'),
             help='Toolchain for building tests. Defaults to gcc-4.9.')
 
         self.add_argument(
