Make arm_on_x86 symmetric
We only define arm_on_x86 in the x86 code, but sometimes arm code needs to know that it's working in the emulated mode, too. Test: CtsRsCppTestCases BUG=75971275 Change-Id: I99564fbe9aeb284e2f11ffb593b18536a7755ea5
This commit is contained in:
parent
170ab730ec
commit
5eb8ec1e72
1 changed files with 28 additions and 4 deletions
|
@ -784,14 +784,18 @@ func (a *ModuleBase) setArchProperties(ctx BottomUpMutatorContext) {
|
|||
a.appendProperties(ctx, genProps, targetProp, field, prefix)
|
||||
}
|
||||
|
||||
if arch.ArchType == X86 && (hasArmAbi(arch) ||
|
||||
hasArmAndroidArch(ctx.Config().Targets[Device])) {
|
||||
if (arch.ArchType == X86 && (hasArmAbi(arch) ||
|
||||
hasArmAndroidArch(ctx.Config().Targets[Device]))) ||
|
||||
(arch.ArchType == Arm &&
|
||||
hasX86AndroidArch(ctx.Config().Targets[Device])) {
|
||||
field := "Arm_on_x86"
|
||||
prefix := "target.arm_on_x86"
|
||||
a.appendProperties(ctx, genProps, targetProp, field, prefix)
|
||||
}
|
||||
if arch.ArchType == X86_64 && (hasArmAbi(arch) ||
|
||||
hasArmAndroidArch(ctx.Config().Targets[Device])) {
|
||||
if (arch.ArchType == X86_64 && (hasArmAbi(arch) ||
|
||||
hasArmAndroidArch(ctx.Config().Targets[Device]))) ||
|
||||
(arch.ArchType == Arm &&
|
||||
hasX8664AndroidArch(ctx.Config().Targets[Device])) {
|
||||
field := "Arm_on_x86_64"
|
||||
prefix := "target.arm_on_x86_64"
|
||||
a.appendProperties(ctx, genProps, targetProp, field, prefix)
|
||||
|
@ -914,6 +918,26 @@ func hasArmAndroidArch(targets []Target) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// hasX86Arch returns true if targets has at least x86 Android arch
|
||||
func hasX86AndroidArch(targets []Target) bool {
|
||||
for _, target := range targets {
|
||||
if target.Os == Android && target.Arch.ArchType == X86 {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// hasX8664Arch returns true if targets has at least x86_64 Android arch
|
||||
func hasX8664AndroidArch(targets []Target) bool {
|
||||
for _, target := range targets {
|
||||
if target.Os == Android && target.Arch.ArchType == X86_64 {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type archConfig struct {
|
||||
arch string
|
||||
archVariant string
|
||||
|
|
Loading…
Reference in a new issue