Stop exporting unwinder from arm32 libc.a
The unwinder is still exported from libc.so.
Previously, the object files from libunwind_llvm.a were repackaged into
arm32's libc.a. For a static library output, whole_static_libs did not
repackage the symbols from libgcc_stripped, which is a
toolchain_library, so only the arm32 libc.a exported an unwinder.
Bug: http://b/153028957
Test: bionic-unit-tests / bionic-unit-tests-static
Change-Id: I3048179032d8bc08e1cbad7cd7e2b1fd2e213f7f
diff --git a/libc/Android.bp b/libc/Android.bp
index 650726a..987446d 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1639,6 +1639,8 @@
srcs: [":libc_sources_shared_arm"],
// special for arm
cflags: ["-DCRT_LEGACY_WORKAROUND"],
+
+ whole_static_libs: [ "libunwind_llvm" ],
},
// Arm 32 bit does not produce complete exidx unwind information
@@ -1648,8 +1650,6 @@
strip: {
keep_symbols_and_debug_frame: true,
},
-
- whole_static_libs: [ "libunwind_llvm" ],
},
arm64: {
version_script: ":libc.arm64.map",
@@ -1660,7 +1660,9 @@
keep_symbols: true,
},
- whole_static_libs: [ "libgcc_stripped" ],
+ shared: {
+ whole_static_libs: [ "libgcc_stripped" ],
+ },
},
x86: {
// TODO: This is to work around b/24465209. Remove after root cause is fixed.
@@ -1675,7 +1677,9 @@
keep_symbols: true,
},
- whole_static_libs: [ "libgcc_stripped" ],
+ shared: {
+ whole_static_libs: [ "libgcc_stripped" ],
+ },
},
x86_64: {
version_script: ":libc.x86_64.map",
@@ -1686,7 +1690,9 @@
keep_symbols: true,
},
- whole_static_libs: [ "libgcc_stripped" ],
+ shared: {
+ whole_static_libs: [ "libgcc_stripped" ],
+ },
},
},