diff --git a/build/core/init.mk b/build/core/init.mk
index 45ac16c..5c3fb7f 100644
--- a/build/core/init.mk
+++ b/build/core/init.mk
@@ -564,13 +564,13 @@
 # version number. Unlike NDK_TOOLCHAIN, this only changes the suffix of
 # the toolchain path we're using.
 #
-# For example, if GCC 4.6 is the default, defining NDK_TOOLCHAIN_VERSION=4.7
+# For example, if GCC 4.6 is the default, defining NDK_TOOLCHAIN_VERSION=4.8
 # will ensure that ndk-build uses the following toolchains, depending on
 # the target architecture:
 #
-#    arm -> arm-linux-androideabi-4.7
-#    x86 -> x86-android-linux-4.7
-#    mips -> mipsel-linux-android-4.7
+#    arm -> arm-linux-androideabi-4.8
+#    x86 -> x86-android-linux-4.8
+#    mips -> mipsel-linux-android-4.8
 #
 # This is used in setup-toolchain.mk
 #
diff --git a/build/tools/build-host-gdb.sh b/build/tools/build-host-gdb.sh
index 40d2f0f..72b47a2 100755
--- a/build/tools/build-host-gdb.sh
+++ b/build/tools/build-host-gdb.sh
@@ -258,9 +258,9 @@
             # ${DSTDIR}/bin/$(bh_tag_to_config_triplet $2)-gdb.exe (2) because
             # the final layout is to (1) which is a folder deeper than (2).
             # Sample (1):
-            #  $NDK/gdb-arm-linux-androideabi-7.6/prebuilt/windows/bin/arm-linux-androideabi-gdb.exe
+            #  $NDK/gdb-arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-gdb.exe
             # Sample (2):
-            #  $NDK/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-gdb.exe
+            #  $NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-gdb.exe
             run $NDK_BUILDTOOLS_PATH/build-gdb-stub.sh \
                 --gdb-executable-path=${DSTDIR}/bin/$(bh_tag_to_config_triplet $2)-gdb.exe \
                 --python-prefix-dir=${PYDIR} \
diff --git a/build/tools/dev-defaults.sh b/build/tools/dev-defaults.sh
index 9877af1..c8b066f 100644
--- a/build/tools/dev-defaults.sh
+++ b/build/tools/dev-defaults.sh
@@ -39,7 +39,7 @@
 TOOLCHAIN_GIT_DATE=now
 
 # The space-separated list of all GCC versions we support in this NDK
-DEFAULT_GCC_VERSION_LIST="4.6 4.7 4.8"
+DEFAULT_GCC_VERSION_LIST="4.6 4.8"
 
 # The default GCC version for this NDK, i.e. the first item in
 # $DEFAULT_GCC_VERSION_LIST
@@ -80,7 +80,7 @@
 DEFAULT_ARCH_TOOLCHAIN_PREFIX_mips=mipsel-linux-android
 
 # The space-separated list of all LLVM versions we support in NDK
-DEFAULT_LLVM_VERSION_LIST="3.3 3.2"
+DEFAULT_LLVM_VERSION_LIST="3.3"
 
 # The default LLVM version (first item in the list)
 DEFAULT_LLVM_VERSION=$(echo "$DEFAULT_LLVM_VERSION_LIST" | tr ' ' '\n' | head -n 1)
@@ -171,7 +171,7 @@
 
 # Get the list of all toolchain names for a given architecture
 # $1: architecture (e.g. 'arm')
-# Out: list of toolchain names for this arch (e.g. arm-linux-androideabi-4.6 arm-linux-androideabi-4.7)
+# Out: list of toolchain names for this arch (e.g. arm-linux-androideabi-4.6 arm-linux-androideabi-4.8)
 # Return empty for unknown arch
 get_toolchain_name_list_for_arch ()
 {
diff --git a/build/tools/download-toolchain-sources.sh b/build/tools/download-toolchain-sources.sh
index 5822554..09de574 100755
--- a/build/tools/download-toolchain-sources.sh
+++ b/build/tools/download-toolchain-sources.sh
@@ -214,8 +214,8 @@
 toolchain_checkout "" $BRANCH isl .
 toolchain_checkout "" $BRANCH ppl .
 toolchain_checkout "" $BRANCH expat .
-toolchain_checkout "" $BRANCH binutils binutils-2.21 binutils-2.22 binutils-2.23
-toolchain_checkout "" $BRANCH gcc gcc-4.6 gcc-4.7 gcc-4.8
+toolchain_checkout "" $BRANCH binutils binutils-2.21 binutils-2.23
+toolchain_checkout "" $BRANCH gcc gcc-4.6 gcc-4.8
 toolchain_checkout "" $BRANCH gdb gdb-7.3.x gdb-7.6
 toolchain_checkout "" $BRANCH python Python-2.7.5
 toolchain_checkout "" $BRANCH perl perl-5.16.2
diff --git a/build/tools/toolchain-patches/gcc/0001-Enable-C-exceptions-and-RTTI-by-default.patch b/build/tools/toolchain-patches/gcc/0001-Enable-C-exceptions-and-RTTI-by-default.patch
index 79aa56e..fd727cf 100644
--- a/build/tools/toolchain-patches/gcc/0001-Enable-C-exceptions-and-RTTI-by-default.patch
+++ b/build/tools/toolchain-patches/gcc/0001-Enable-C-exceptions-and-RTTI-by-default.patch
@@ -24,21 +24,6 @@
  
  #define ANDROID_ASM_SPEC \
    "--noexecstack"
-diff --git a/gcc-4.7/gcc/config/linux-android.h b/gcc-4.7/gcc/config/linux-android.h
-index 94c5274..7256082 100644
---- a/gcc-4.7/gcc/config/linux-android.h
-+++ b/gcc-4.7/gcc/config/linux-android.h
-@@ -46,8 +46,8 @@
-   "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: " ANDROID_PIC_DEFAULT "}}}}"
- 
- #define ANDROID_CC1PLUS_SPEC						\
--  "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} "		\
--  "%{!frtti:%{!fno-rtti: -fno-rtti}}"
-+  "%{!fexceptions:%{!fno-exceptions: -fexceptions}} "		\
-+  "%{!frtti:%{!fno-rtti: -frtti}}"
- 
- #define ANDROID_ASM_SPEC \
-   "--noexecstack"
 diff --git a/gcc-4.8/gcc/config/linux-android.h b/gcc-4.8/gcc/config/linux-android.h
 index 2c87c84..47a3e7c 100644
 --- a/gcc-4.8/gcc/config/linux-android.h
diff --git a/build/tools/toolchain-patches/gcc/0002-gcc-prevent-crash-on-Eclair-and-older-platforms.patch b/build/tools/toolchain-patches/gcc/0002-gcc-prevent-crash-on-Eclair-and-older-platforms.patch
index befa6a0..ee9f307 100644
--- a/build/tools/toolchain-patches/gcc/0002-gcc-prevent-crash-on-Eclair-and-older-platforms.patch
+++ b/build/tools/toolchain-patches/gcc/0002-gcc-prevent-crash-on-Eclair-and-older-platforms.patch
@@ -48,30 +48,6 @@
  #include <pthread.h>
  #include <unistd.h>
  
-diff --git a/gcc-4.7/libgcc/gthr-posix.h b/gcc-4.7/libgcc/gthr-posix.h
-index a935e92..08281b7 100644
---- a/gcc-4.7/libgcc/gthr-posix.h
-+++ b/gcc-4.7/libgcc/gthr-posix.h
-@@ -38,6 +38,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- #define _REENTRANT 1
- #endif
- 
-+/* The following should normally be in a different header file,
-+ * but I couldn't find the right location. The point of the macro
-+ * definition below is to prevent libsupc++ and libstdc++ to reference
-+ * weak symbols in their static C++ constructors. Such code crashes
-+ * when a shared object linked statically to these libraries is
-+ * loaded on Android 2.1 (Eclair) and older platform releases, due
-+ * to a dynamic linker bug.
-+ */
-+#ifdef __ANDROID__
-+#undef GTHREAD_USE_WEAK
-+#define GTHREAD_USE_WEAK 0
-+#endif
-+
- #include <pthread.h>
- 
- #if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \
 diff --git a/gcc-4.8/libgcc/gthr-posix.h b/gcc-4.8/libgcc/gthr-posix.h
 index f0d8cd7..1d03af0 100644
 --- a/gcc-4.8/libgcc/gthr-posix.h
diff --git a/build/tools/toolchain-patches/gcc/0006-Disable-libstdc-versioning.patch b/build/tools/toolchain-patches/gcc/0006-Disable-libstdc-versioning.patch
index b11c128..3ca8b77 100644
--- a/build/tools/toolchain-patches/gcc/0006-Disable-libstdc-versioning.patch
+++ b/build/tools/toolchain-patches/gcc/0006-Disable-libstdc-versioning.patch
@@ -35,29 +35,6 @@
  mostlyclean-compile:
  	-rm -f *.$(OBJEXT)
  
-diff --git a/gcc-4.7/libstdc++-v3/src/Makefile.in b/gcc-4.7/libstdc++-v3/src/Makefile.in
-index b10d853..3669b06 100644
---- a/gcc-4.7/libstdc++-v3/src/Makefile.in
-+++ b/gcc-4.7/libstdc++-v3/src/Makefile.in
-@@ -332,7 +332,7 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
- SUBDIRS = c++98 c++11
- 
- # Cross compiler support.
--toolexeclib_LTLIBRARIES = libstdc++.la
-+toolexeclib_LTLIBRARIES = libgnustl_shared.la
- @GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources = 
- @GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
- @ENABLE_PARALLEL_FALSE@parallel_compat_sources = 
-@@ -515,6 +515,9 @@ clean-toolexeclibLTLIBRARIES:
- libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES) 
- 	$(libstdc___la_LINK) -rpath $(toolexeclibdir) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
- 
-+libgnustl_shared.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES)
-+	$(libstdc___la_LINK) -rpath $(toolexeclibdir) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
-+
- mostlyclean-compile:
- 	-rm -f *.$(OBJEXT)
- 
 diff --git a/gcc-4.8/libstdc++-v3/src/Makefile.in b/gcc-4.8/libstdc++-v3/src/Makefile.in
 index 69001b4..e875539 100644
 --- a/gcc-4.8/libstdc++-v3/src/Makefile.in
diff --git a/toolchains/arm-linux-androideabi-4.7/config.mk b/toolchains/arm-linux-androideabi-4.7/config.mk
deleted file mode 100644
index fee36b4..0000000
--- a/toolchains/arm-linux-androideabi-4.7/config.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# config file for the arm gcc-4.7 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
diff --git a/toolchains/arm-linux-androideabi-4.7/setup.mk b/toolchains/arm-linux-androideabi-4.7/setup.mk
deleted file mode 100644
index 137ff68..0000000
--- a/toolchains/arm-linux-androideabi-4.7/setup.mk
+++ /dev/null
@@ -1,109 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# this file is used to prepare the NDK to build with the arm gcc-4.7
-# 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.
-#
-# Note that this file may end up being parsed several times in future
-# revisions of the NDK.
-#
-
-TARGET_CFLAGS := \
-    -fpic \
-    -ffunction-sections \
-    -funwind-tables \
-    -fstack-protector \
-    -no-canonical-prefixes
-
-TARGET_LDFLAGS := -no-canonical-prefixes
-
-TARGET_C_INCLUDES := \
-    $(SYSROOT_INC)/usr/include
-
-ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
-    TARGET_CFLAGS += -march=armv7-a \
-                     -mfloat-abi=softfp \
-                     -mfpu=vfpv3-d16
-
-    TARGET_LDFLAGS += -march=armv7-a \
-                     -Wl,--fix-cortex-a8
-else
-    TARGET_CFLAGS += -march=armv5te \
-                            -mtune=xscale \
-                            -msoft-float
-endif
-
-TARGET_CFLAGS.neon := -mfpu=neon
-
-TARGET_arm_release_CFLAGS :=  -O2 \
-                              -g \
-                              -DNDEBUG \
-                              -fomit-frame-pointer \
-                              -fstrict-aliasing    \
-                              -funswitch-loops     \
-                              -finline-limit=300
-
-TARGET_thumb_release_CFLAGS := -mthumb \
-                               -Os \
-                               -g \
-                               -DNDEBUG \
-                               -fomit-frame-pointer \
-                               -fno-strict-aliasing \
-                               -finline-limit=64
-
-# When building for debug, compile everything as arm.
-TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \
-                           -O0 \
-                           -UNDEBUG \
-                           -fno-omit-frame-pointer \
-                           -fno-strict-aliasing
-
-TARGET_thumb_debug_CFLAGS := $(TARGET_thumb_release_CFLAGS) \
-                             -O0 \
-                             -UNDEBUG \
-                             -marm \
-                             -fno-omit-frame-pointer
-
-# This function will be called to determine the target CFLAGS used to build
-# a C or Assembler source file, based on its tags.
-#
-TARGET-process-src-files-tags = \
-$(eval __arm_sources := $(call get-src-files-with-tag,arm)) \
-$(eval __thumb_sources := $(call get-src-files-without-tag,arm)) \
-$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
-$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
-$(call set-src-files-target-cflags, \
-    $(call set_intersection,$(__arm_sources),$(__debug_sources)), \
-    $(TARGET_arm_debug_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__arm_sources),$(__release_sources)),\
-    $(TARGET_arm_release_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__arm_sources),$(__debug_sources)),\
-    $(TARGET_arm_debug_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__thumb_sources),$(__release_sources)),\
-    $(TARGET_thumb_release_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__thumb_sources),$(__debug_sources)),\
-    $(TARGET_thumb_debug_CFLAGS)) \
-$(call add-src-files-target-cflags,\
-    $(call get-src-files-with-tag,neon),\
-    $(TARGET_CFLAGS.neon)) \
-$(call set-src-files-text,$(__arm_sources),arm) \
-$(call set-src-files-text,$(__thumb_sources),thumb)
diff --git a/toolchains/arm-linux-androideabi-clang3.2/config.mk b/toolchains/arm-linux-androideabi-clang3.2/config.mk
deleted file mode 100644
index 6b0bf2b..0000000
--- a/toolchains/arm-linux-androideabi-clang3.2/config.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# config file for the arm llvm-3.2 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
diff --git a/toolchains/arm-linux-androideabi-clang3.2/setup.mk b/toolchains/arm-linux-androideabi-clang3.2/setup.mk
deleted file mode 100644
index 80b5728..0000000
--- a/toolchains/arm-linux-androideabi-clang3.2/setup.mk
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# this file is used to prepare the NDK to build with the arm clang-3.2
-# 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.
-#
-# Note that this file may end up being parsed several times in future
-# revisions of the NDK.
-#
-
-#
-# Override the toolchain prefix
-#
-
-LLVM_VERSION := 3.2
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
-LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
-
-TOOLCHAIN_VERSION := 4.8
-TOOLCHAIN_NAME := arm-linux-androideabi-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
-TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/arm-linux-androideabi-
-
-TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
-TARGET_CXX := $(LLVM_TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
-
-#
-# CFLAGS and LDFLAGS
-#
-
-TARGET_CFLAGS := \
-    -gcc-toolchain $(call host-path,$(TOOLCHAIN_PREBUILT_ROOT)) \
-    -fpic \
-    -ffunction-sections \
-    -funwind-tables \
-    -fstack-protector \
-    -no-canonical-prefixes
-
-TARGET_LDFLAGS += \
-    -gcc-toolchain $(call host-path,$(TOOLCHAIN_PREBUILT_ROOT)) \
-    -no-canonical-prefixes
-
-TARGET_C_INCLUDES := \
-    $(SYSROOT_INC)/usr/include
-
-ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),)
-    LLVM_TRIPLE := armv7-none-linux-androideabi
-
-    TARGET_CFLAGS += -target $(LLVM_TRIPLE) \
-                     -march=armv7-a \
-                     -mfloat-abi=softfp \
-                     -mfpu=vfpv3-d16
-
-    TARGET_LDFLAGS += -target $(LLVM_TRIPLE) \
-                      -Wl,--fix-cortex-a8
-else
-    LLVM_TRIPLE := armv5te-none-linux-androideabi
-
-    TARGET_CFLAGS += -target $(LLVM_TRIPLE) \
-                     -march=armv5te \
-                     -mtune=xscale \
-                     -msoft-float
-
-    TARGET_LDFLAGS += -target $(LLVM_TRIPLE)
-endif
-
-TARGET_CFLAGS.neon := -mfpu=neon
-
-TARGET_arm_release_CFLAGS :=  -O2 \
-                              -g \
-                              -DNDEBUG \
-                              -fomit-frame-pointer \
-                              -fstrict-aliasing
-
-TARGET_thumb_release_CFLAGS := -mthumb \
-                               -Os \
-                               -g \
-                               -DNDEBUG \
-                               -fomit-frame-pointer \
-                               -fno-strict-aliasing
-
-# When building for debug, compile everything as arm.
-TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \
-                           -O0 \
-                           -UNDEBUG \
-                           -fno-omit-frame-pointer \
-                           -fno-strict-aliasing
-
-TARGET_thumb_debug_CFLAGS := $(TARGET_thumb_release_CFLAGS) \
-                             -O0 \
-                             -UNDEBUG \
-                             -marm \
-                             -fno-omit-frame-pointer
-
-# This function will be called to determine the target CFLAGS used to build
-# a C or Assembler source file, based on its tags.
-#
-TARGET-process-src-files-tags = \
-$(eval __arm_sources := $(call get-src-files-with-tag,arm)) \
-$(eval __thumb_sources := $(call get-src-files-without-tag,arm)) \
-$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
-$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
-$(call set-src-files-target-cflags, \
-    $(call set_intersection,$(__arm_sources),$(__debug_sources)), \
-    $(TARGET_arm_debug_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__arm_sources),$(__release_sources)),\
-    $(TARGET_arm_release_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__arm_sources),$(__debug_sources)),\
-    $(TARGET_arm_debug_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__thumb_sources),$(__release_sources)),\
-    $(TARGET_thumb_release_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(call set_intersection,$(__thumb_sources),$(__debug_sources)),\
-    $(TARGET_thumb_debug_CFLAGS)) \
-$(call add-src-files-target-cflags,\
-    $(call get-src-files-with-tag,neon),\
-    $(TARGET_CFLAGS.neon)) \
-$(call set-src-files-text,$(__arm_sources),arm) \
-$(call set-src-files-text,$(__thumb_sources),thumb)
diff --git a/toolchains/llvm-3.2/config.mk b/toolchains/llvm-3.2/config.mk
deleted file mode 100644
index c110571..0000000
--- a/toolchains/llvm-3.2/config.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# config file for the clang-3.2 toolchain for the Android NDK
-# the real meat is in the setup.mk file adjacent to this one
-#
-TOOLCHAIN_ARCH :=
-TOOLCHAIN_ABIS :=
diff --git a/toolchains/llvm-3.2/setup-common.mk b/toolchains/llvm-3.2/setup-common.mk
deleted file mode 100644
index 63f3b72..0000000
--- a/toolchains/llvm-3.2/setup-common.mk
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (C) 2013 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-TOOLCHAIN_NAME   := clang-3.2
-TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/
-LLVM_TRIPLE := le32-none-ndk
-
-# For sources/cxx-stl/gnu-libstdc++/$(TOOLCHAIN_VERSION)/libs/*/libsupc++.a
-TOOLCHAIN_VERSION := 4.8
-
-TARGET_CC := $(TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
-TARGET_CXX := $(TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
-TARGET_LD := $(TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
-TARGET_AR := $(TOOLCHAIN_PREFIX)llvm-ar$(HOST_EXEEXT)
-TARGET_STRIP := $(TOOLCHAIN_PREFIX)$(LLVM_TRIPLE)-strip$(HOST_EXEEXT)
-
-# Compiler runtime is determined in bc2native
-TARGET_LIBGCC :=
-
-BC2NATIVE := $(HOST_PYTHON) $(TOOLCHAIN_PREBUILT_ROOT)/bin/ndk-bc2native.py
-
-TARGET_CFLAGS := \
-    -target $(LLVM_TRIPLE) \
-    -emit-llvm \
-    -ffunction-sections \
-    -funwind-tables \
-    -fPIC \
-    -no-canonical-prefixes
-# -nostdlibinc
-
-#TARGET_CXXFLAGS := $(TARGET_CFLAGS) -fno-exceptions -fno-rtti
-
-# reset backend flags
-TARGET_NO_EXECUTE_CFLAGS :=
-
-# Add and LDFLAGS for the target here
-TARGET_LDFLAGS += \
-    -target $(LLVM_TRIPLE) \
-    -emit-llvm \
-    -no-canonical-prefixes
-
-TARGET_C_INCLUDES := \
-    $(SYSROOT_INC)/usr/include
-
-TARGET_release_CFLAGS := -O2 \
-                         -g \
-                         -DNDEBUG \
-                         -fomit-frame-pointer \
-                         -fstrict-aliasing
-
-TARGET_debug_CFLAGS := $(TARGET_release_CFLAGS) \
-                       -O0 \
-                       -UNDEBUG \
-                       -fno-omit-frame-pointer \
-                       -fno-strict-aliasing
-
-# This function will be called to determine the target CFLAGS used to build
-# a C or Assembler source file, based on its tags.
-#
-TARGET-process-src-files-tags = \
-$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
-$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
-$(call set-src-files-target-cflags, $(__debug_sources), $(TARGET_debug_CFLAGS)) \
-$(call set-src-files-target-cflags, $(__release_sources),$(TARGET_release_CFLAGS)) \
-$(call set-src-files-text,$(LOCAL_SRC_FILES),bc) \
-
-ifeq ($(strip $(filter-out $(NDK_KNOWN_ABIS),$(TARGET_ARCH_ABI))),)
-
-define cmd-build-shared-library
-$(PRIVATE_CXX) \
-    -Wl,-soname,$(notdir $(LOCAL_BUILT_MODULE)) \
-    -shared \
-    --sysroot=$(call host-path,$(PRIVATE_SYSROOT_LINK)) \
-    $(PRIVATE_LINKER_OBJECTS_AND_LIBRARIES) \
-    $(PRIVATE_LDFLAGS) \
-    $(PRIVATE_LDLIBS) \
-    -o $(call host-path,$(LOCAL_BUILT_MODULE)) && \
-    $(call host-mv, $(call host-path,$(LOCAL_BUILT_MODULE)), $(call host-path,$(LOCAL_BUILT_MODULE)).bc) && \
-    $(BC2NATIVE) \
-    --ndk-dir=$(NDK_ROOT) \
-    --abi=$(TARGET_ARCH_ABI) \
-    --platform=$(TARGET_PLATFORM) \
-    --file $(call host-path, $(LOCAL_BUILT_MODULE)).bc $(patsubst %.bc,%.so,$(call host-path,$(LOCAL_BUILT_MODULE)))
-endef
-
-define cmd-build-executable
-$(PRIVATE_CXX) \
-    -Wl,--gc-sections \
-    -Wl,-z,nocopyreloc \
-    --sysroot=$(call host-path,$(PRIVATE_SYSROOT_LINK)) \
-    $(PRIVATE_LINKER_OBJECTS_AND_LIBRARIES) \
-    $(PRIVATE_LDFLAGS) \
-    $(PRIVATE_LDLIBS) \
-    -o $(call host-path,$(LOCAL_BUILT_MODULE)) && \
-    $(call host-mv, $(call host-path,$(LOCAL_BUILT_MODULE)), $(call host-path,$(LOCAL_BUILT_MODULE)).bc) && \
-    $(BC2NATIVE) \
-    --ndk-dir=$(NDK_ROOT) \
-    --abi=$(TARGET_ARCH_ABI) \
-    --platform=$(TARGET_PLATFORM) \
-    --file $(call host-path,$(LOCAL_BUILT_MODULE)).bc $(call host-path,$(LOCAL_BUILT_MODULE))
-endef
-
-endif
diff --git a/toolchains/llvm-3.2/setup.mk b/toolchains/llvm-3.2/setup.mk
deleted file mode 100644
index 852d59c..0000000
--- a/toolchains/llvm-3.2/setup.mk
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# this file is used to prepare the NDK to build with the clang-3.2
-# 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.
-#
-# Note that this file may end up being parsed several times in future
-# revisions of the NDK.
-#
-
-TOOLCHAIN_VERSION := 4.8
-
-ifneq ($(filter %bcarmeabi-v7a,$(TARGET_ARCH_ABI)),)
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
-TARGET_ARCH_ABI  := armeabi-v7a
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-
-TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION))
-cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
-
-include $(NDK_ROOT)/toolchains/llvm-3.2/setup-common.mk
-
-else
-ifneq ($(filter %bcarmeabi,$(TARGET_ARCH_ABI)),)
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
-TARGET_ARCH_ABI  := armeabi
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-
-TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION))
-cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
-
-include $(NDK_ROOT)/toolchains/llvm-3.2/setup-common.mk
-
-else
-ifneq ($(filter %bcx86,$(TARGET_ARCH_ABI)),)
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver
-TARGET_ARCH_ABI  := x86
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-
-TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/x86-$(TOOLCHAIN_VERSION))
-cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/i686-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
-
-include $(NDK_ROOT)/toolchains/llvm-3.2/setup-common.mk
-
-else
-ifneq ($(filter %bcmips,$(TARGET_ARCH_ABI)),)
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver
-TARGET_ARCH_ABI  := mips
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-
-TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/mipsel-linux-android-$(TOOLCHAIN_VERSION))
-cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/mipsel-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
-
-include $(NDK_ROOT)/toolchains/llvm-3.2/setup-common.mk
-
-else
-
-ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),)
-
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
-TARGET_ARCH_ABI  := armeabi-v7a
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.a $(TARGET_LDLIBS)
-TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.wrap
-include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.2/setup.mk
-
-else
-ifneq ($(filter %armeabi,$(TARGET_ARCH_ABI)),)
-
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
-TARGET_ARCH_ABI  := armeabi
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.a $(TARGET_LDLIBS)
-TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.wrap
-include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.2/setup.mk
-
-else
-ifneq ($(filter %x86,$(TARGET_ARCH_ABI)),)
-
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver
-TARGET_ARCH_ABI  := x86
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.a $(TARGET_LDLIBS)
-TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.wrap
-include $(NDK_ROOT)/toolchains/x86-clang3.2/setup.mk
-
-else
-ifneq ($(filter %mips,$(TARGET_ARCH_ABI)),)
-
-SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips
-TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver
-TARGET_ARCH_ABI  := mips
-NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
-TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.a $(TARGET_LDLIBS)
-TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.wrap
-include $(NDK_ROOT)/toolchains/mipsel-linux-android-clang3.2/setup.mk
-
-else
-
-TARGET_OBJ_EXTENSION := .bc
-TARGET_LIB_EXTENSION := .a
-TARGET_SONAME_EXTENSION := .bc
-
-include $(NDK_ROOT)/toolchains/llvm-3.2/setup-common.mk
-
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-endif
diff --git a/toolchains/mipsel-linux-android-4.7/config.mk b/toolchains/mipsel-linux-android-4.7/config.mk
deleted file mode 100644
index d5e700e..0000000
--- a/toolchains/mipsel-linux-android-4.7/config.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# config file for the mipsel gcc-4.7 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/toolchains/mipsel-linux-android-4.7/setup.mk b/toolchains/mipsel-linux-android-4.7/setup.mk
deleted file mode 100644
index a02f2ad..0000000
--- a/toolchains/mipsel-linux-android-4.7/setup.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# this file is used to prepare the NDK to build with the mipsel gcc-4.7
-# 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.
-#
-# Note that this file may end up being parsed several times in future
-# revisions of the NDK.
-#
-
-TARGET_CFLAGS := \
-        -fpic \
-        -fno-strict-aliasing \
-        -finline-functions \
-        -ffunction-sections \
-        -funwind-tables \
-        -fmessage-length=0 \
-        -fno-inline-functions-called-once \
-        -fgcse-after-reload \
-        -frerun-cse-after-loop \
-        -frename-registers \
-        -no-canonical-prefixes
-
-TARGET_LDFLAGS := -no-canonical-prefixes
-
-TARGET_C_INCLUDES := \
-    $(SYSROOT_INC)/usr/include
-
-TARGET_mips_release_CFLAGS := -O2 \
-                              -g \
-                              -DNDEBUG \
-                              -fomit-frame-pointer \
-                              -funswitch-loops     \
-                              -finline-limit=300
-
-TARGET_mips_debug_CFLAGS := -O0 \
-                            -g \
-                            -fno-omit-frame-pointer
-
-
-# This function will be called to determine the target CFLAGS used to build
-# a C or Assembler source file, based on its tags.
-TARGET-process-src-files-tags = \
-$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
-$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
-$(call set-src-files-target-cflags, \
-    $(__debug_sources),\
-    $(TARGET_mips_debug_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(__release_sources),\
-    $(TARGET_mips_release_CFLAGS)) \
diff --git a/toolchains/mipsel-linux-android-clang3.2/config.mk b/toolchains/mipsel-linux-android-clang3.2/config.mk
deleted file mode 100644
index 34e354b..0000000
--- a/toolchains/mipsel-linux-android-clang3.2/config.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# config file for the mipsel llvm-3.2 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/toolchains/mipsel-linux-android-clang3.2/setup.mk b/toolchains/mipsel-linux-android-clang3.2/setup.mk
deleted file mode 100644
index 96863db..0000000
--- a/toolchains/mipsel-linux-android-clang3.2/setup.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# this file is used to prepare the NDK to build with the mipsel llvm-3.2
-# 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.
-#
-# Note that this file may end up being parsed several times in future
-# revisions of the NDK.
-#
-
-#
-# Override the toolchain prefix
-#
-
-LLVM_VERSION := 3.2
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
-LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
-
-TOOLCHAIN_VERSION := 4.8
-TOOLCHAIN_NAME := mipsel-linux-android-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
-TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/mipsel-linux-android-
-
-TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
-TARGET_CXX := $(LLVM_TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
-
-#
-# CFLAGS, C_INCLUDES, and LDFLAGS
-#
-
-LLVM_TRIPLE := mipsel-none-linux-android
-
-TARGET_CFLAGS := \
-        -gcc-toolchain $(call host-path,$(TOOLCHAIN_PREBUILT_ROOT)) \
-        -target $(LLVM_TRIPLE) \
-        -fpic \
-        -fno-strict-aliasing \
-        -finline-functions \
-        -ffunction-sections \
-        -funwind-tables \
-        -fmessage-length=0 \
-        -no-canonical-prefixes
-
-TARGET_LDFLAGS += \
-        -gcc-toolchain $(call host-path,$(TOOLCHAIN_PREBUILT_ROOT)) \
-        -target $(LLVM_TRIPLE) \
-        -no-canonical-prefixes
-
-TARGET_C_INCLUDES := \
-    $(SYSROOT_INC)/usr/include
-
-TARGET_mips_release_CFLAGS := -O2 \
-                              -g \
-                              -DNDEBUG \
-                              -fomit-frame-pointer
-
-TARGET_mips_debug_CFLAGS := -O0 \
-                            -g \
-                            -fno-omit-frame-pointer
-
-
-# This function will be called to determine the target CFLAGS used to build
-# a C or Assembler source file, based on its tags.
-TARGET-process-src-files-tags = \
-$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
-$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
-$(call set-src-files-target-cflags, \
-    $(__debug_sources),\
-    $(TARGET_mips_debug_CFLAGS)) \
-$(call set-src-files-target-cflags,\
-    $(__release_sources),\
-    $(TARGET_mips_release_CFLAGS)) \
diff --git a/toolchains/x86-4.7/config.mk b/toolchains/x86-4.7/config.mk
deleted file mode 100644
index 132ec52..0000000
--- a/toolchains/x86-4.7/config.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# config file for the x86 gcc-4.7 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/toolchains/x86-4.7/setup.mk b/toolchains/x86-4.7/setup.mk
deleted file mode 100644
index 8f87d17..0000000
--- a/toolchains/x86-4.7/setup.mk
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# this file is used to prepare the NDK to build with the x86 gcc-4.7
-# 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.
-#
-# Note that this file may end up being parsed several times in future
-# revisions of the NDK.
-#
-
-TOOLCHAIN_NAME   := x86-4.7
-TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/i686-linux-android-
-
-TARGET_CFLAGS := \
-    -ffunction-sections \
-    -funwind-tables \
-    -no-canonical-prefixes
-
-TARGET_C_INCLUDES := \
-    $(SYSROOT_INC)/usr/include
-
-# Add and LDFLAGS for the target here
-TARGET_LDFLAGS := -no-canonical-prefixes
-
-TARGET_CFLAGS += -fstack-protector
-
-TARGET_x86_release_CFLAGS := -O2 \
-                             -g \
-                             -DNDEBUG \
-                             -fomit-frame-pointer \
-                             -fstrict-aliasing    \
-                             -funswitch-loops     \
-                             -finline-limit=300
-
-# When building for debug, compile everything as x86.
-TARGET_x86_debug_CFLAGS := $(TARGET_x86_release_CFLAGS) \
-                           -O0 \
-                           -UNDEBUG \
-                           -fno-omit-frame-pointer \
-                           -fno-strict-aliasing
-
-# This function will be called to determine the target CFLAGS used to build
-# a C or Assembler source file, based on its tags.
-#
-TARGET-process-src-files-tags = \
-$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
-$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
-$(call set-src-files-target-cflags, $(__debug_sources), $(TARGET_x86_debug_CFLAGS)) \
-$(call set-src-files-target-cflags, $(__release_sources),$(TARGET_x86_release_CFLAGS)) \
-
-# The ABI-specific sub-directory that the SDK tools recognize for
-# this toolchain's generated binaries
-TARGET_ABI_SUBDIR := x86
diff --git a/toolchains/x86-clang3.2/config.mk b/toolchains/x86-clang3.2/config.mk
deleted file mode 100644
index ccae85f..0000000
--- a/toolchains/x86-clang3.2/config.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# config file for the x86 clang-3.2 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/toolchains/x86-clang3.2/setup.mk b/toolchains/x86-clang3.2/setup.mk
deleted file mode 100644
index 886b6e4..0000000
--- a/toolchains/x86-clang3.2/setup.mk
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# this file is used to prepare the NDK to build with the x86 llvm-3.2
-# 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.
-#
-# Note that this file may end up being parsed several times in future
-# revisions of the NDK.
-#
-
-#
-# Override the toolchain prefix
-#
-
-LLVM_VERSION := 3.2
-LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
-LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
-
-TOOLCHAIN_VERSION := 4.8
-TOOLCHAIN_NAME := x86-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
-TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/i686-linux-android-
-
-TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
-TARGET_CXX := $(LLVM_TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
-
-LLVM_TRIPLE := i686-none-linux-android
-
-TARGET_CFLAGS := \
-    -gcc-toolchain $(call host-path,$(TOOLCHAIN_PREBUILT_ROOT)) \
-    -target $(LLVM_TRIPLE) \
-    -ffunction-sections \
-    -funwind-tables \
-    -fstack-protector \
-    -fPIC \
-    -no-canonical-prefixes
-
-TARGET_C_INCLUDES := \
-    $(SYSROOT_INC)/usr/include
-
-# Add and LDFLAGS for the target here
-TARGET_LDFLAGS += \
-    -gcc-toolchain $(call host-path,$(TOOLCHAIN_PREBUILT_ROOT)) \
-    -target $(LLVM_TRIPLE) \
-    -no-canonical-prefixes
-
-TARGET_x86_release_CFLAGS := -O2 \
-                             -g \
-                             -DNDEBUG \
-                             -fomit-frame-pointer \
-                             -fstrict-aliasing
-
-# When building for debug, compile everything as x86.
-TARGET_x86_debug_CFLAGS := $(TARGET_x86_release_CFLAGS) \
-                           -O0 \
-                           -UNDEBUG \
-                           -fno-omit-frame-pointer \
-                           -fno-strict-aliasing
-
-# This function will be called to determine the target CFLAGS used to build
-# a C or Assembler source file, based on its tags.
-#
-TARGET-process-src-files-tags = \
-$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
-$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
-$(call set-src-files-target-cflags, $(__debug_sources), $(TARGET_x86_debug_CFLAGS)) \
-$(call set-src-files-target-cflags, $(__release_sources),$(TARGET_x86_release_CFLAGS)) \
-
-# The ABI-specific sub-directory that the SDK tools recognize for
-# this toolchain's generated binaries
-TARGET_ABI_SUBDIR := x86
