Squash vendor sources before linkageMutator runs
linkageMutator removes srcs property of the shared variant of a lib in order to reuse *.o files compiled for the static variant also to the shared variant. However, this causes problem when vendor-specific srcs are specified in target: {vendor: {srcs: ["..."]}}. For example, let's assume cc_library { name: "libfoo", srcs: ["foo.c"], target: { vendor: { srcs: ["bar.c"], }, }, } Then, static_vendor: inputs = foo.o, bar.o shared_vendor: inputs = foo.o (from static_vendor), bar.o (from static_vendor), bar.o So, bar.o is included twice and this causes multiple symbol definition error. In order to handle the problem, vendor mutator is applied before the linkage mutator and the vendor-specific srcs are squashed in the vendor mutator. Bug: 67731122 Test: build Test: cc_test.go Change-Id: I2a5390295dddfc41260e9b6f02746908cdf47228
This commit is contained in:
@@ -193,8 +193,8 @@ func TestArchConfig(buildDir string, env map[string]string) Config {
|
||||
|
||||
config.Targets = map[OsClass][]Target{
|
||||
Device: []Target{
|
||||
{Android, Arch{ArchType: Arm64, Native: true}},
|
||||
{Android, Arch{ArchType: Arm, Native: true}},
|
||||
{Android, Arch{ArchType: Arm64, ArchVariant: "armv8-a", Native: true}},
|
||||
{Android, Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Native: true}},
|
||||
},
|
||||
Host: []Target{
|
||||
{BuildOs, Arch{ArchType: X86_64}},
|
||||
|
Reference in New Issue
Block a user