Propagate flags necessary for a prebuilt of the Bionic linker.
The flags are necessary to avoid implicit dependencies on crt libs, libc, and the linker (recursively). The reason cc_prebuilt_binary react to these flags is that they can affect the install rules. Test: m nothing Test: art/test/testrunner/run_build_test_target.py art-linux-bionic-x64 on a master-art branch using snapshot built from runtime-module-sdk and runtime-module-host-exports Bug: 152255951 Change-Id: I6b2fe92d105d1f446fffd00bd3267a416f75efb7
This commit is contained in:
@@ -401,7 +401,6 @@ func TestSnapshotWithCcBinary(t *testing.T) {
|
||||
"Test.cpp",
|
||||
],
|
||||
compile_multilib: "both",
|
||||
stl: "none",
|
||||
}
|
||||
`)
|
||||
|
||||
@@ -494,6 +493,7 @@ cc_prebuilt_binary {
|
||||
device_supported: false,
|
||||
host_supported: true,
|
||||
installable: false,
|
||||
stl: "none",
|
||||
target: {
|
||||
linux_glibc: {
|
||||
compile_multilib: "both",
|
||||
@@ -518,6 +518,7 @@ cc_prebuilt_binary {
|
||||
prefer: false,
|
||||
device_supported: false,
|
||||
host_supported: true,
|
||||
stl: "none",
|
||||
target: {
|
||||
linux_glibc: {
|
||||
compile_multilib: "both",
|
||||
@@ -557,6 +558,90 @@ module_exports_snapshot {
|
||||
)
|
||||
}
|
||||
|
||||
// Test that we support the necessary flags for the linker binary, which is
|
||||
// special in several ways.
|
||||
func TestSnapshotWithCcStaticNocrtBinary(t *testing.T) {
|
||||
// b/145598135 - Generating host snapshots for anything other than linux is not supported.
|
||||
SkipIfNotLinux(t)
|
||||
|
||||
result := testSdkWithCc(t, `
|
||||
module_exports {
|
||||
name: "mymodule_exports",
|
||||
host_supported: true,
|
||||
device_supported: false,
|
||||
native_binaries: ["linker"],
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "linker",
|
||||
host_supported: true,
|
||||
static_executable: true,
|
||||
nocrt: true,
|
||||
stl: "none",
|
||||
srcs: [
|
||||
"Test.cpp",
|
||||
],
|
||||
compile_multilib: "both",
|
||||
}
|
||||
`)
|
||||
|
||||
result.CheckSnapshot("mymodule_exports", "",
|
||||
checkAndroidBpContents(`
|
||||
// This is auto-generated. DO NOT EDIT.
|
||||
|
||||
cc_prebuilt_binary {
|
||||
name: "mymodule_exports_linker@current",
|
||||
sdk_member_name: "linker",
|
||||
device_supported: false,
|
||||
host_supported: true,
|
||||
installable: false,
|
||||
stl: "none",
|
||||
static_executable: true,
|
||||
nocrt: true,
|
||||
compile_multilib: "both",
|
||||
arch: {
|
||||
x86_64: {
|
||||
srcs: ["x86_64/bin/linker"],
|
||||
},
|
||||
x86: {
|
||||
srcs: ["x86/bin/linker"],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
cc_prebuilt_binary {
|
||||
name: "linker",
|
||||
prefer: false,
|
||||
device_supported: false,
|
||||
host_supported: true,
|
||||
stl: "none",
|
||||
static_executable: true,
|
||||
nocrt: true,
|
||||
compile_multilib: "both",
|
||||
arch: {
|
||||
x86_64: {
|
||||
srcs: ["x86_64/bin/linker"],
|
||||
},
|
||||
x86: {
|
||||
srcs: ["x86/bin/linker"],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
module_exports_snapshot {
|
||||
name: "mymodule_exports@current",
|
||||
device_supported: false,
|
||||
host_supported: true,
|
||||
native_binaries: ["mymodule_exports_linker@current"],
|
||||
}
|
||||
`),
|
||||
checkAllCopyRules(`
|
||||
.intermediates/linker/linux_glibc_x86_64/linker -> x86_64/bin/linker
|
||||
.intermediates/linker/linux_glibc_x86/linker -> x86/bin/linker
|
||||
`),
|
||||
)
|
||||
}
|
||||
|
||||
func TestSnapshotWithCcSharedLibrary(t *testing.T) {
|
||||
result := testSdkWithCc(t, `
|
||||
sdk {
|
||||
|
Reference in New Issue
Block a user