Include VNDK snapshot modules only if the arch matches
If the target_arch for the snapshot module does not match with
the build variable TARGET_ARCH, hide the module from the make file.
Bug: 71787263
Test: Install VNDK snapshot v27
lunch aosp_arm64_ab-userdebug; m vndk_v27_arm64
- vndk libs must be installed
m vndk_v27_arm
- no vndk libs must be installed because target does not match
Change-Id: I32ab5004832a4164e1b2c056ad149ede50828b92
diff --git a/cc/cc.go b/cc/cc.go
index e5a483d..a3af304 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1442,12 +1442,17 @@
mod := mctx.CreateVariations(vendorMode)
vendor := mod[0].(*Module)
vendor.Properties.UseVndk = true
- } else if _, ok := m.linker.(*vndkPrebuiltLibraryDecorator); ok {
+ } else if prebuilt, ok := m.linker.(*vndkPrebuiltLibraryDecorator); ok {
// Make vendor variants only for the versions in BOARD_VNDK_VERSION and
// PRODUCT_EXTRA_VNDK_VERSIONS.
mod := mctx.CreateVariations(vendorMode)
vendor := mod[0].(*Module)
vendor.Properties.UseVndk = true
+ arches := mctx.DeviceConfig().Arches()
+ if len(arches) == 0 || arches[0].ArchType.String() != prebuilt.arch() {
+ vendor.Properties.PreventInstall = true
+ vendor.Properties.HideFromMake = true
+ }
} else if m.hasVendorVariant() {
// This will be available in both /system and /vendor
// or a /system directory that is available to vendor.