Merge "Fix typos in arch_list and do variant validation"

This commit is contained in:
Treehugger Robot
2022-02-23 17:34:51 +00:00
committed by Gerrit Code Review
3 changed files with 55 additions and 30 deletions

View File

@@ -864,6 +864,10 @@ func createArchPropTypeDesc(props reflect.Type) []archPropTypeDesc {
archVariant := variantReplacer.Replace(archVariant)
variants = append(variants, proptools.FieldNameForProperty(archVariant))
}
for _, cpuVariant := range cpuVariants[arch] {
cpuVariant := variantReplacer.Replace(cpuVariant)
variants = append(variants, proptools.FieldNameForProperty(cpuVariant))
}
for _, feature := range archFeatures[arch] {
feature := variantReplacer.Replace(feature)
variants = append(variants, proptools.FieldNameForProperty(feature))
@@ -1741,6 +1745,18 @@ func decodeArch(os OsType, arch string, archVariant, cpuVariant *string, abi []s
a.CpuVariant = ""
}
if a.ArchVariant != "" {
if validArchVariants := archVariants[archType]; !InList(a.ArchVariant, validArchVariants) {
return Arch{}, fmt.Errorf("[%q] unknown arch variant %q, support variants: %q", archType, a.ArchVariant, validArchVariants)
}
}
if a.CpuVariant != "" {
if validCpuVariants := cpuVariants[archType]; !InList(a.CpuVariant, validCpuVariants) {
return Arch{}, fmt.Errorf("[%q] unknown cpu variant %q, support variants: %q", archType, a.CpuVariant, validCpuVariants)
}
}
// Filter empty ABIs out of the list.
for i := 0; i < len(a.Abi); i++ {
if a.Abi[i] == "" {