Fix: recovery module is disabled on 32-bit targets
Fixed a bug that recovery variant of a module is not created on 32-bit
targets. The bug was happening because the creation of the recovery
variant relied on DevicePrefer32BitExecutables() which returns false
for 32-bit only targets.
Now, recovery variant is checked against the primary architecture of the
device that is returned by DevicePrimaryArchType().
Test: m -j adbd.recovery on aosp_arm and aosp_arm64
adbd is built under recovery/root/system/bin and it is ELF32 and ELF64,
respectively for the targets.
Test: m -j libc.recovery on aosp_arm, aosp_arm64, aosp_sailfish
and the x86+arm target in mater. Only one libc.so is installed
under recovery/root/system/lib (or lib64).
Change-Id: I83a248d81f2c71dcfb0e9d887a75b71338f27b4d
diff --git a/android/config.go b/android/config.go
index 3a9b98b..7ba05c1 100644
--- a/android/config.go
+++ b/android/config.go
@@ -576,6 +576,10 @@
return Bool(c.productVariables.DevicePrefer32BitExecutables)
}
+func (c *config) DevicePrimaryArchType() ArchType {
+ return c.Targets[Device][0].Arch.ArchType
+}
+
func (c *config) SkipDeviceInstall() bool {
return c.EmbeddedInMake()
}