Prevent dependency cycle due to system_shared_libs expansion
It was discovered that we were building some objects inconsistently due
to an optimization in cc_library to only build objects once and use them
for both the static and shared libraries. But static libraries didn't
get system_shared_libs set automatically, and we didn't notice that we
would have built the objects differently.
So static libraries now get the default system_shared_libs, we allow
adjusting that for static vs shared in a cc_library, and we disable the
optimization if the linked libraries are configured differently between
static and shared in a single cc_library.
This triggers dependency cycles for static libraries that libc/libdl
use, so fix those cycles here.
Test: treehugger
Change-Id: I3cf7fda161a05ec32e0c1e871999720d12a4d38e
diff --git a/libc/Android.bp b/libc/Android.bp
index 6b46ba0..ad9ffbf 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1623,9 +1623,15 @@
],
name: "libstdc++",
static_ndk_lib: true,
- system_shared_libs: ["libc"],
static_libs: ["libasync_safe"],
+ static: {
+ system_shared_libs: [],
+ },
+ shared: {
+ system_shared_libs: ["libc"],
+ },
+
//TODO (dimitry): This is to work around b/24465209. Remove after root cause is fixed
arch: {
arm: {