6a43f04777
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 |
||
---|---|---|
.. | ||
androidmk.go | ||
api_levels.go | ||
arch.go | ||
config.go | ||
defaults.go | ||
defs.go | ||
env.go | ||
expand.go | ||
expand_test.go | ||
hooks.go | ||
makevars.go | ||
module.go | ||
mutator.go | ||
onceper.go | ||
package_ctx.go | ||
paths.go | ||
paths_test.go | ||
prebuilt.go | ||
prebuilt_test.go | ||
proto.go | ||
register.go | ||
testing.go | ||
util.go | ||
variable.go | ||
variable_test.go |