Link libgcc_stripped into libc.so and libm.so with --whole-archive on ARM.
This library was previously being statically linked into both libraries as a
consequence of the relocation to __aeabi_unwind_cpp_prX present in most object
files. However, after LLVM commit 1549b469, we no longer emit these relocations
on Android, so we need to link the library explicitly with --whole-archive. The
intent is to eventually stop linking libgcc into these libraries altogether,
but for now, we need to keep linking them in order to avoid breaking the build.
Change-Id: I275109527b7cbd6c4247b3fe348975d720626273
diff --git a/libc/Android.bp b/libc/Android.bp
index 9c2d713..cdbdf63 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1710,6 +1710,8 @@
strip: {
keep_symbols_and_debug_frame: true,
},
+
+ whole_static_libs: [ "libgcc_stripped" ],
},
arm64: {
version_script: ":libc.arm64.map",
diff --git a/libm/Android.bp b/libm/Android.bp
index bf05b17..de32185 100644
--- a/libm/Android.bp
+++ b/libm/Android.bp
@@ -286,6 +286,7 @@
pack_relocations: false,
ldflags: ["-Wl,--hash-style=both"],
version_script: ":libm.arm.map",
+ whole_static_libs: [ "libgcc_stripped" ],
},
arm64: {