Add default_shared_libs property
Building against a locally-built libc besides bionic requires setting
system_shared_libs to avoid circular dependencies, but modules all
over the tree assume that system_shared_libs only affects modules
building against bionic. Add a new default_shared_libs property
that applies to all modules, which will generally be set in
arch-specific clauses to only affect the desired set of modules.
Bug: 190084016
Test: m checkbuild
Change-Id: Ia2349d84c70e503916f90a5d2702e135248f73df
diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go
index 31555c0..98697dc 100644
--- a/sdk/cc_sdk_test.go
+++ b/sdk/cc_sdk_test.go
@@ -2189,7 +2189,7 @@
result := testSdkWithCc(t, `
sdk {
name: "mysdk",
- native_shared_libs: ["sslnil", "sslempty", "sslnonempty"],
+ native_shared_libs: ["sslnil", "sslempty", "sslnonempty", "dslnil", "dslempty", "dslnonempty"],
}
cc_library {
@@ -2206,6 +2206,21 @@
name: "sslnonempty",
system_shared_libs: ["sslnil"],
}
+
+ cc_library {
+ name: "dslnil",
+ host_supported: true,
+ }
+
+ cc_library {
+ name: "dslempty",
+ default_shared_libs: [],
+ }
+
+ cc_library {
+ name: "dslnonempty",
+ default_shared_libs: ["sslnil"],
+ }
`)
CheckSnapshot(t, result, "mysdk", "",
@@ -2261,13 +2276,62 @@
},
},
}
-`))
+
+cc_prebuilt_library_shared {
+ name: "dslnil",
+ prefer: false,
+ visibility: ["//visibility:public"],
+ apex_available: ["//apex_available:platform"],
+ compile_multilib: "both",
+ arch: {
+ arm64: {
+ srcs: ["arm64/lib/dslnil.so"],
+ },
+ arm: {
+ srcs: ["arm/lib/dslnil.so"],
+ },
+ },
+}
+
+cc_prebuilt_library_shared {
+ name: "dslempty",
+ prefer: false,
+ visibility: ["//visibility:public"],
+ apex_available: ["//apex_available:platform"],
+ compile_multilib: "both",
+ default_shared_libs: [],
+ arch: {
+ arm64: {
+ srcs: ["arm64/lib/dslempty.so"],
+ },
+ arm: {
+ srcs: ["arm/lib/dslempty.so"],
+ },
+ },
+}
+
+cc_prebuilt_library_shared {
+ name: "dslnonempty",
+ prefer: false,
+ visibility: ["//visibility:public"],
+ apex_available: ["//apex_available:platform"],
+ compile_multilib: "both",
+ default_shared_libs: ["sslnil"],
+ arch: {
+ arm64: {
+ srcs: ["arm64/lib/dslnonempty.so"],
+ },
+ arm: {
+ srcs: ["arm/lib/dslnonempty.so"],
+ },
+ },
+}`))
result = testSdkWithCc(t, `
sdk {
name: "mysdk",
host_supported: true,
- native_shared_libs: ["sslvariants"],
+ native_shared_libs: ["sslvariants", "dslvariants"],
}
cc_library {
@@ -2279,6 +2343,16 @@
},
},
}
+
+ cc_library {
+ name: "dslvariants",
+ host_supported: true,
+ target: {
+ android: {
+ default_shared_libs: [],
+ },
+ },
+ }
`)
CheckSnapshot(t, result, "mysdk", "",
@@ -2315,6 +2389,37 @@
},
},
}
+
+cc_prebuilt_library_shared {
+ name: "dslvariants",
+ prefer: false,
+ visibility: ["//visibility:public"],
+ apex_available: ["//apex_available:platform"],
+ host_supported: true,
+ compile_multilib: "both",
+ target: {
+ host: {
+ enabled: false,
+ },
+ android: {
+ default_shared_libs: [],
+ },
+ android_arm64: {
+ srcs: ["android/arm64/lib/dslvariants.so"],
+ },
+ android_arm: {
+ srcs: ["android/arm/lib/dslvariants.so"],
+ },
+ linux_glibc_x86_64: {
+ enabled: true,
+ srcs: ["linux_glibc/x86_64/lib/dslvariants.so"],
+ },
+ linux_glibc_x86: {
+ enabled: true,
+ srcs: ["linux_glibc/x86/lib/dslvariants.so"],
+ },
+ },
+}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
@@ -2351,11 +2456,46 @@
},
}
+cc_prebuilt_library_shared {
+ name: "mysdk_dslvariants@current",
+ sdk_member_name: "dslvariants",
+ visibility: ["//visibility:public"],
+ apex_available: ["//apex_available:platform"],
+ host_supported: true,
+ installable: false,
+ compile_multilib: "both",
+ target: {
+ host: {
+ enabled: false,
+ },
+ android: {
+ default_shared_libs: [],
+ },
+ android_arm64: {
+ srcs: ["android/arm64/lib/dslvariants.so"],
+ },
+ android_arm: {
+ srcs: ["android/arm/lib/dslvariants.so"],
+ },
+ linux_glibc_x86_64: {
+ enabled: true,
+ srcs: ["linux_glibc/x86_64/lib/dslvariants.so"],
+ },
+ linux_glibc_x86: {
+ enabled: true,
+ srcs: ["linux_glibc/x86/lib/dslvariants.so"],
+ },
+ },
+}
+
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
host_supported: true,
- native_shared_libs: ["mysdk_sslvariants@current"],
+ native_shared_libs: [
+ "mysdk_sslvariants@current",
+ "mysdk_dslvariants@current",
+ ],
target: {
host: {
enabled: false,