diff --git a/bin/aarch64-linux-android-c++ b/bin/aarch64-linux-android-c++
deleted file mode 120000
index 348d40b..0000000
--- a/bin/aarch64-linux-android-c++
+++ /dev/null
@@ -1 +0,0 @@
-aarch64-linux-android-g++
\ No newline at end of file
diff --git a/bin/aarch64-linux-android-cpp b/bin/aarch64-linux-android-cpp
deleted file mode 100755
index 8a5aa5a..0000000
--- a/bin/aarch64-linux-android-cpp
+++ /dev/null
Binary files differ
diff --git a/bin/aarch64-linux-android-g++ b/bin/aarch64-linux-android-g++
deleted file mode 100755
index 54944a2..0000000
--- a/bin/aarch64-linux-android-g++
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/python
-
-import os
-import sys
-
-class CompilerWrapper():
-  def __init__(self, argv):
-    self.args = argv
-    self.execargs = []
-    self.real_compiler = None
-    self.argv0 = None
-    self.append_flags = []
-    self.prepend_flags = []
-    self.custom_flags = {
-      '--gomacc-path': None
-    }
-
-  def set_real_compiler(self):
-    """Find the real compiler with the absolute path."""
-    compiler_path = os.path.dirname(os.path.abspath(__file__))
-    if os.path.islink(__file__):
-      compiler = os.path.basename(os.readlink(__file__))
-    else:
-      compiler = os.path.basename(os.path.abspath(__file__))
-    self.real_compiler = os.path.join(
-        compiler_path,
-        "real-" + compiler)
-    self.argv0 = self.real_compiler
-
-  def process_gomacc_command(self):
-    """Return the gomacc command if '--gomacc-path' is set."""
-    gomacc = self.custom_flags['--gomacc-path']
-    if gomacc and os.path.isfile(gomacc):
-      self.argv0 = gomacc
-      self.execargs += [gomacc]
-
-  def parse_custom_flags(self):
-    i = 0
-    args = []
-    while i < len(self.args):
-      if self.args[i] in self.custom_flags:
-        self.custom_flags[self.args[i]] = self.args[i + 1]
-        i = i + 2
-      else:
-        args.append(self.args[i])
-        i = i + 1
-    self.args = args
-
-  def add_flags(self):
-    self.args = self.prepend_flags + self.args + self.append_flags
-
-  def invoke_compiler(self):
-    self.set_real_compiler()
-    self.parse_custom_flags()
-    self.process_gomacc_command()
-    self.add_flags()
-    self.execargs += [self.real_compiler] + self.args
-    os.execv(self.argv0, self.execargs)
-
-
-def main(argv):
-  cw = CompilerWrapper(argv[1:])
-  cw.invoke_compiler()
-
-if __name__ == "__main__":
-  main(sys.argv)
diff --git a/bin/aarch64-linux-android-gcc b/bin/aarch64-linux-android-gcc
deleted file mode 100755
index 54944a2..0000000
--- a/bin/aarch64-linux-android-gcc
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/python
-
-import os
-import sys
-
-class CompilerWrapper():
-  def __init__(self, argv):
-    self.args = argv
-    self.execargs = []
-    self.real_compiler = None
-    self.argv0 = None
-    self.append_flags = []
-    self.prepend_flags = []
-    self.custom_flags = {
-      '--gomacc-path': None
-    }
-
-  def set_real_compiler(self):
-    """Find the real compiler with the absolute path."""
-    compiler_path = os.path.dirname(os.path.abspath(__file__))
-    if os.path.islink(__file__):
-      compiler = os.path.basename(os.readlink(__file__))
-    else:
-      compiler = os.path.basename(os.path.abspath(__file__))
-    self.real_compiler = os.path.join(
-        compiler_path,
-        "real-" + compiler)
-    self.argv0 = self.real_compiler
-
-  def process_gomacc_command(self):
-    """Return the gomacc command if '--gomacc-path' is set."""
-    gomacc = self.custom_flags['--gomacc-path']
-    if gomacc and os.path.isfile(gomacc):
-      self.argv0 = gomacc
-      self.execargs += [gomacc]
-
-  def parse_custom_flags(self):
-    i = 0
-    args = []
-    while i < len(self.args):
-      if self.args[i] in self.custom_flags:
-        self.custom_flags[self.args[i]] = self.args[i + 1]
-        i = i + 2
-      else:
-        args.append(self.args[i])
-        i = i + 1
-    self.args = args
-
-  def add_flags(self):
-    self.args = self.prepend_flags + self.args + self.append_flags
-
-  def invoke_compiler(self):
-    self.set_real_compiler()
-    self.parse_custom_flags()
-    self.process_gomacc_command()
-    self.add_flags()
-    self.execargs += [self.real_compiler] + self.args
-    os.execv(self.argv0, self.execargs)
-
-
-def main(argv):
-  cw = CompilerWrapper(argv[1:])
-  cw.invoke_compiler()
-
-if __name__ == "__main__":
-  main(sys.argv)
diff --git a/bin/aarch64-linux-android-gcc-4.9 b/bin/aarch64-linux-android-gcc-4.9
deleted file mode 120000
index 347842f..0000000
--- a/bin/aarch64-linux-android-gcc-4.9
+++ /dev/null
@@ -1 +0,0 @@
-aarch64-linux-android-gcc
\ No newline at end of file
diff --git a/bin/aarch64-linux-android-gcc-4.9.x b/bin/aarch64-linux-android-gcc-4.9.x
deleted file mode 100644
index cfe211a..0000000
--- a/bin/aarch64-linux-android-gcc-4.9.x
+++ /dev/null
Binary files differ
diff --git a/bin/aarch64-linux-androidkernel-cpp b/bin/aarch64-linux-androidkernel-cpp
deleted file mode 120000
index 7057f43..0000000
--- a/bin/aarch64-linux-androidkernel-cpp
+++ /dev/null
@@ -1 +0,0 @@
-aarch64-linux-android-cpp
\ No newline at end of file
diff --git a/bin/aarch64-linux-androidkernel-gcc b/bin/aarch64-linux-androidkernel-gcc
deleted file mode 120000
index 347842f..0000000
--- a/bin/aarch64-linux-androidkernel-gcc
+++ /dev/null
@@ -1 +0,0 @@
-aarch64-linux-android-gcc
\ No newline at end of file
diff --git a/bin/real-aarch64-linux-android-g++ b/bin/real-aarch64-linux-android-g++
deleted file mode 100755
index 932be84..0000000
--- a/bin/real-aarch64-linux-android-g++
+++ /dev/null
Binary files differ
diff --git a/bin/real-aarch64-linux-android-gcc b/bin/real-aarch64-linux-android-gcc
deleted file mode 100755
index deaa426..0000000
--- a/bin/real-aarch64-linux-android-gcc
+++ /dev/null
Binary files differ
