Merge "Fix: required deps from native module to phony module is respected" into main

This commit is contained in:
Jiyong Park 2024-05-14 05:04:27 +00:00 committed by Gerrit Code Review
commit 635e1218bd
2 changed files with 34 additions and 1 deletions

View file

@ -1069,7 +1069,8 @@ func addRequiredDeps(ctx BottomUpMutatorContext) {
// TODO(jiyong): the Make-side does this only when the required module is a shared
// library or a native test.
bothInAndroid := ctx.Device() && target.Os.Class == Device
nativeArch := InList(ctx.Arch().ArchType.Multilib, []string{"lib32", "lib64"})
nativeArch := InList(ctx.Arch().ArchType.Multilib, []string{"lib32", "lib64"}) &&
InList(target.Arch.ArchType.Multilib, []string{"lib32", "lib64"})
sameBitness := ctx.Arch().ArchType.Multilib == target.Arch.ArchType.Multilib
if bothInAndroid && nativeArch && !sameBitness {
return

View file

@ -465,3 +465,35 @@ func TestPreventDuplicatedEntries(t *testing.T) {
}
`)
}
func TestTrackPhonyAsRequiredDep(t *testing.T) {
result := fixture.RunTestWithBp(t, `
android_filesystem {
name: "fs",
deps: ["foo"],
}
cc_binary {
name: "foo",
required: ["phony"],
}
phony {
name: "phony",
required: ["libbar"],
}
cc_library {
name: "libbar",
}
`)
fs := result.ModuleForTests("fs", "android_common").Module().(*filesystem)
expected := []string{
"bin/foo",
"lib64/libbar.so",
}
for _, e := range expected {
android.AssertStringListContains(t, "missing entry", fs.entries, e)
}
}