Merge "Fix volantis boot."
diff --git a/libc/Android.mk b/libc/Android.mk
index 0de0fb2..e632ee7 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -1384,7 +1384,8 @@
# We'd really like to do this for all architectures, but since this wasn't done
# before, these symbols must continue to be exported on LP32 for binary
# compatibility.
-LOCAL_LDFLAGS_64 := -Wl,--exclude-libs,libgcc.a
+# TODO: disabled for http://b/20065774.
+#LOCAL_LDFLAGS_64 := -Wl,--exclude-libs,libgcc.a
# TODO: This is to work around b/19059885. Remove after root cause is fixed
LOCAL_LDFLAGS_arm := -Wl,--hash-style=sysv
diff --git a/libc/arch-arm64/arm64.mk b/libc/arch-arm64/arm64.mk
index 470a038..6a2f313 100644
--- a/libc/arch-arm64/arm64.mk
+++ b/libc/arch-arm64/arm64.mk
@@ -40,6 +40,8 @@
arch-arm64/bionic/syscall.S \
arch-arm64/bionic/vfork.S \
+# Work around for http://b/20065774.
+libc_bionic_src_files_arm64 += arch-arm64/bionic/libgcc_compat.c
libc_crt_target_cflags_arm64 := \
-I$(LOCAL_PATH)/arch-arm64/include
diff --git a/libc/arch-arm64/bionic/libgcc_compat.c b/libc/arch-arm64/bionic/libgcc_compat.c
new file mode 100644
index 0000000..35158ce
--- /dev/null
+++ b/libc/arch-arm64/bionic/libgcc_compat.c
@@ -0,0 +1,11 @@
+/* STOPSHIP: remove this once the flounder blobs have been rebuilt (http://b/20065774). */
+
+extern void __clear_cache(char*, char*);
+extern char _Unwind_Backtrace;
+extern char _Unwind_GetIP;
+
+void* __bionic_libgcc_compat_symbols[] = {
+ &__clear_cache,
+ &_Unwind_Backtrace,
+ &_Unwind_GetIP,
+};
diff --git a/libc/version_script.txt b/libc/version_script.txt
index afc5e5c..349a2fc 100644
--- a/libc/version_script.txt
+++ b/libc/version_script.txt
@@ -1,4 +1,9 @@
LIBC {
+ global:
+ /* Work-around for http://b/20065774. */
+ __clear_cache;
+ _Unwind_Backtrace;
+ _Unwind_GetIP;
local:
_ZSt7nothrow;
_ZdaPv;