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
This commit is contained in:
Colin Cross
2021-06-22 13:20:01 -07:00
parent d1a2813063
commit 9ecb42dd31
5 changed files with 219 additions and 23 deletions

View File

@@ -2189,7 +2189,7 @@ func TestSystemSharedLibPropagation(t *testing.T) {
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 @@ func TestSystemSharedLibPropagation(t *testing.T) {
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 {
},
},
}
`))
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_prebuilt_library_shared {
},
},
}
cc_library {
name: "dslvariants",
host_supported: true,
target: {
android: {
default_shared_libs: [],
},
},
}
`)
CheckSnapshot(t, result, "mysdk", "",
@@ -2315,6 +2389,37 @@ cc_prebuilt_library_shared {
},
},
}
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 {
},
}
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,