Skip to content

Commit

Permalink
Link libnativeloader statically into its unit tests.
Browse files Browse the repository at this point in the history
Repurpose libnativeloader-defaults for use between lib and tests,
rather than lib and the libnativeloader_lazy shim.

Test: atest libnativeloader_tests
Bug: 346515837
Change-Id: I8787194e8ec052b39e36048a72feb95f20175a91
  • Loading branch information
marstj committed Jun 19, 2024
1 parent 386b126 commit b8d63df
Showing 1 changed file with 29 additions and 23 deletions.
52 changes: 29 additions & 23 deletions libnativeloader/Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -35,35 +35,18 @@ cc_library_headers {
cc_defaults {
name: "libnativeloader-defaults",
defaults: ["art_defaults"],
header_libs: ["libnativeloader-headers"],
export_header_lib_headers: ["libnativeloader-headers"],
}

art_cc_library {
name: "libnativeloader",
defaults: ["libnativeloader-defaults"],
visibility: [
"//frameworks/base/cmds/app_process",
// TODO(b/133140750): Clean this up.
"//frameworks/base/native/webview/loader",
],
apex_available: [
"com.android.art",
"com.android.art.debug",
"test_broken_com.android.art",
],
host_supported: true,
srcs: [
"native_loader.cpp",
],
header_libs: [
"art_libartbase_headers",
"libnativehelper_header_only",
"libnativeloader-headers",
],
export_header_lib_headers: ["libnativeloader-headers"],
shared_libs: [
"liblog",
"libnativebridge",
"libbase",
],
target: {
android: {
Expand All @@ -81,6 +64,25 @@ art_cc_library {
],
},
},
}

art_cc_library {
name: "libnativeloader",
defaults: ["libnativeloader-defaults"],
shared_libs: [
"libbase",
"liblog",
],
visibility: [
"//frameworks/base/cmds/app_process",
// TODO(b/133140750): Clean this up.
"//frameworks/base/native/webview/loader",
],
apex_available: [
"com.android.art",
"com.android.art.debug",
"test_broken_com.android.art",
],
stubs: {
symbol_file: "libnativeloader.map.txt",
versions: ["1"],
Expand All @@ -93,7 +95,7 @@ art_cc_library {
// TODO(b/124250621) eliminate the need for this library
cc_library {
name: "libnativeloader_lazy",
defaults: ["libnativeloader-defaults"],
defaults: ["art_defaults"],
visibility: [
"//frameworks/base/core/jni",
"//frameworks/native/opengl/libs",
Expand All @@ -108,15 +110,20 @@ cc_library {
srcs: ["native_loader_lazy.cpp"],
runtime_libs: ["libnativeloader"],
shared_libs: ["liblog"],
header_libs: ["libnativeloader-headers"],
export_header_lib_headers: ["libnativeloader-headers"],
}

// native_loader_test.cpp mocks functions from libdl_android and
// libnativebridge, so those have to be linked dynamically and this test binary
// needs to export symbols to override them.
art_cc_test {
name: "libnativeloader_test",
defaults: [
// Cannot use art_standalone_gtest_defaults because it makes us link
// libnativebridge statically through libart-gtest, but we need to mock
// its symbols here.
// libnativebridge statically through libart-gtest.
"art_standalone_test_defaults",
"libnativeloader-defaults",
],
host_supported: false,

Expand All @@ -132,7 +139,6 @@ art_cc_test {
],
shared_libs: [
"liblog", // libbase dependency
"libnativeloader",
],
static_libs: [
"libbase",
Expand Down

0 comments on commit b8d63df

Please sign in to comment.