Prevent statically linking to a lib providing stable C APIs
A lib providing stable C APIs should be available only to the APEX containing the library. It shouldn't be available to other APEXes, especially via static linking. This change also fixes a bug that llndkImplDep (the dependency from llndk stub to its implementation library) was recognized as being in the same APEX. Bug: 151051671 Test: m Change-Id: Ifda7f4a367f68afcde93c86cda45a28cacd91f99
This commit is contained in:
@@ -4774,6 +4774,42 @@ func TestTestFor(t *testing.T) {
|
||||
ensureNotContains(t, ldFlags, "mylib/android_arm64_armv8-a_shared_1/mylib.so")
|
||||
}
|
||||
|
||||
func TestNoStaticLinkingToStubsLib(t *testing.T) {
|
||||
testApexError(t, `.*required by "mylib" is a native library providing stub.*`, `
|
||||
apex {
|
||||
name: "myapex",
|
||||
key: "myapex.key",
|
||||
native_shared_libs: ["mylib"],
|
||||
}
|
||||
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
public_key: "testkey.avbpubkey",
|
||||
private_key: "testkey.pem",
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "mylib",
|
||||
srcs: ["mylib.cpp"],
|
||||
static_libs: ["otherlib"],
|
||||
system_shared_libs: [],
|
||||
stl: "none",
|
||||
apex_available: [ "myapex" ],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "otherlib",
|
||||
srcs: ["mylib.cpp"],
|
||||
system_shared_libs: [],
|
||||
stl: "none",
|
||||
stubs: {
|
||||
versions: ["1", "2", "3"],
|
||||
},
|
||||
apex_available: [ "myapex" ],
|
||||
}
|
||||
`)
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
run := func() int {
|
||||
setUp()
|
||||
|
Reference in New Issue
Block a user