diff --git a/bin/arm-linux-androideabi-g++ b/bin/arm-linux-androideabi-g++
index 5923d19..54944a2 100755
--- a/bin/arm-linux-androideabi-g++
+++ b/bin/arm-linux-androideabi-g++
@@ -1,6 +1,5 @@
 #!/usr/bin/python
 
-from __future__ import print_function
 import os
 import sys
 
@@ -25,7 +24,7 @@
       compiler = os.path.basename(os.path.abspath(__file__))
     self.real_compiler = os.path.join(
         compiler_path,
-        "8345f5e4-2588-11e9-ba23-c7b0d410816e")
+        "real-" + compiler)
     self.argv0 = self.real_compiler
 
   def process_gomacc_command(self):
@@ -50,15 +49,7 @@
   def add_flags(self):
     self.args = self.prepend_flags + self.args + self.append_flags
 
-  def print_deprecation_warning(self):
-    print("Android GCC has been deprecated in favor of Clang, and will be removed from\n"
-          "Android in 2020-01 as per the deprecation plan in:\n"
-          "https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/master/GCC_4_9_DEPRECATION.md\n\n",
-          file=sys.stderr)
-
-
   def invoke_compiler(self):
-    self.print_deprecation_warning()
     self.set_real_compiler()
     self.parse_custom_flags()
     self.process_gomacc_command()
diff --git a/bin/arm-linux-androideabi-gcc b/bin/arm-linux-androideabi-gcc
index e937a80..54944a2 100755
--- a/bin/arm-linux-androideabi-gcc
+++ b/bin/arm-linux-androideabi-gcc
@@ -1,6 +1,5 @@
 #!/usr/bin/python
 
-from __future__ import print_function
 import os
 import sys
 
@@ -25,7 +24,7 @@
       compiler = os.path.basename(os.path.abspath(__file__))
     self.real_compiler = os.path.join(
         compiler_path,
-        "7fefe5b2-2588-11e9-996b-2bbad94f2d53")
+        "real-" + compiler)
     self.argv0 = self.real_compiler
 
   def process_gomacc_command(self):
@@ -50,15 +49,7 @@
   def add_flags(self):
     self.args = self.prepend_flags + self.args + self.append_flags
 
-  def print_deprecation_warning(self):
-    print("Android GCC has been deprecated in favor of Clang, and will be removed from\n"
-          "Android in 2020-01 as per the deprecation plan in:\n"
-          "https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/master/GCC_4_9_DEPRECATION.md\n\n",
-          file=sys.stderr)
-
-
   def invoke_compiler(self):
-    self.print_deprecation_warning()
     self.set_real_compiler()
     self.parse_custom_flags()
     self.process_gomacc_command()
diff --git a/bin/8345f5e4-2588-11e9-ba23-c7b0d410816e b/bin/real-arm-linux-androideabi-g++
similarity index 100%
rename from bin/8345f5e4-2588-11e9-ba23-c7b0d410816e
rename to bin/real-arm-linux-androideabi-g++
Binary files differ
diff --git a/bin/7fefe5b2-2588-11e9-996b-2bbad94f2d53 b/bin/real-arm-linux-androideabi-gcc
similarity index 100%
rename from bin/7fefe5b2-2588-11e9-996b-2bbad94f2d53
rename to bin/real-arm-linux-androideabi-gcc
Binary files differ
