diff --git a/bin/real-aarch64-linux-android-gcc b/bin/a8fe5040-2585-11e9-9684-4b547fbede22
similarity index 100%
rename from bin/real-aarch64-linux-android-gcc
rename to bin/a8fe5040-2585-11e9-9684-4b547fbede22
Binary files differ
diff --git a/bin/aarch64-linux-android-g++ b/bin/aarch64-linux-android-g++
index 54944a2..4ee0963 100755
--- a/bin/aarch64-linux-android-g++
+++ b/bin/aarch64-linux-android-g++
@@ -1,5 +1,6 @@
 #!/usr/bin/python
 
+from __future__ import print_function
 import os
 import sys
 
@@ -24,7 +25,7 @@
       compiler = os.path.basename(os.path.abspath(__file__))
     self.real_compiler = os.path.join(
         compiler_path,
-        "real-" + compiler)
+        "c2219de2-2586-11e9-8b3d-0bdcf7ee6101")
     self.argv0 = self.real_compiler
 
   def process_gomacc_command(self):
@@ -49,7 +50,15 @@
   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/aarch64-linux-android-gcc b/bin/aarch64-linux-android-gcc
index 54944a2..35ef419 100755
--- a/bin/aarch64-linux-android-gcc
+++ b/bin/aarch64-linux-android-gcc
@@ -1,5 +1,6 @@
 #!/usr/bin/python
 
+from __future__ import print_function
 import os
 import sys
 
@@ -24,7 +25,7 @@
       compiler = os.path.basename(os.path.abspath(__file__))
     self.real_compiler = os.path.join(
         compiler_path,
-        "real-" + compiler)
+        "a8fe5040-2585-11e9-9684-4b547fbede22")
     self.argv0 = self.real_compiler
 
   def process_gomacc_command(self):
@@ -49,7 +50,15 @@
   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/real-aarch64-linux-android-g++ b/bin/c2219de2-2586-11e9-8b3d-0bdcf7ee6101
similarity index 100%
rename from bin/real-aarch64-linux-android-g++
rename to bin/c2219de2-2586-11e9-8b3d-0bdcf7ee6101
Binary files differ
