Disable no-vendor-variant VNDK for CFI modules

If CFI is enabled for a module, no-vendor-variant VNDK will fail
because CFI is not used for the vendor variant.

Bug: 148638729
Test: Remove libstagefright_bufferpool@2.0 from the whitelist. Build on
      crosshatch is successful. Build on a ARM32 device with
      TARGET_VNDK_USE_CORE_VARIANT set and check no-vendor-variant VNDK
      is still enabled for libstagefright_bufferpool@2.0.

Change-Id: Ib0a411d7ea769097186afa802751b0796527ec76
This commit is contained in:
Vic Yang 2020-01-31 10:38:40 -08:00
parent 56bcaa6dc1
commit 1a5812a262

View file

@ -1104,7 +1104,21 @@ func (library *libraryDecorator) install(ctx ModuleContext, file android.Path) {
if ctx.isVndkSp() {
library.baseInstaller.subDir = "vndk-sp"
} else if ctx.isVndk() {
if !ctx.mustUseVendorVariant() && !ctx.isVndkExt() {
mayUseCoreVariant := true
if ctx.mustUseVendorVariant() {
mayUseCoreVariant = false
}
if ctx.isVndkExt() {
mayUseCoreVariant = false
}
if ctx.Config().CFIEnabledForPath(ctx.ModuleDir()) && ctx.Arch().ArchType == android.Arm64 {
mayUseCoreVariant = false
}
if mayUseCoreVariant {
library.checkSameCoreVariant = true
if ctx.DeviceConfig().VndkUseCoreVariant() {
library.useCoreVariant = true