Handle IgnorePrefer32OnDevice() in first_prefer32 path properties
This was causing missing dependency errors because the arch mutator
will replace first_prefer32 with first when IgnorePrefer32OnDevice()
is set.
Bug: 372091092
Test: m nothing with aosp/3315229 on a device that sets IgnorePrefer32OnDevice()
Change-Id: I04e4d7f95500befaf65cde58e9e16f643307b0a8
diff --git a/android/path_properties.go b/android/path_properties.go
index b4fabeb..55a4dc0 100644
--- a/android/path_properties.go
+++ b/android/path_properties.go
@@ -86,13 +86,18 @@
// properties tagged path_device_first_prefer32 get the first 32 bit target if one is available,
// otherwise they use the first 64 bit target
if len(pathDeviceFirstPrefer32Properties) > 0 {
- firstPrefer32Target := FirstTarget(ctx.Config().Targets[Android], "lib32", "lib64")
- if len(firstPrefer32Target) == 0 {
+ var targets []Target
+ if ctx.Config().IgnorePrefer32OnDevice() {
+ targets, _ = decodeMultilibTargets("first", ctx.Config().Targets[Android], false)
+ } else {
+ targets, _ = decodeMultilibTargets("first_prefer32", ctx.Config().Targets[Android], false)
+ }
+ if len(targets) == 0 {
ctx.ModuleErrorf("Could not find a first_prefer32 target")
} else {
for _, s := range pathDeviceFirstPrefer32Properties {
if m, t := SrcIsModuleWithTag(s); m != "" {
- ctx.AddVariationDependencies(firstPrefer32Target[0].Variations(), sourceOrOutputDepTag(m, t), m)
+ ctx.AddVariationDependencies(targets[0].Variations(), sourceOrOutputDepTag(m, t), m)
}
}
}