Add arch features

Allow architecture toolchains to register "features" supported by the
current variant, and then apply properties from the selected features.
Equivalent to the ARCH_*_HAS_* variables in the combo makefiles.

Change-Id: Ib6823be1c1a52da677d081db9f24336a072eaf39
This commit is contained in:
Colin Cross
2015-11-20 15:35:00 -08:00
parent eeabb89426
commit c5c24ade63
7 changed files with 55 additions and 17 deletions

View File

@@ -306,9 +306,9 @@ func (t *toolchainArm) ClangInstructionSetFlags(isa string) (string, error) {
}
}
func armToolchainFactory(archVariant string, cpuVariant string) Toolchain {
func armToolchainFactory(arch common.Arch) Toolchain {
var fixCortexA8 string
switch cpuVariant {
switch arch.CpuVariant {
case "cortex-a8", "":
// Generic ARM might be a Cortex A8 -- better safe than sorry
fixCortexA8 = "-Wl,--fix-cortex-a8"
@@ -319,8 +319,8 @@ func armToolchainFactory(archVariant string, cpuVariant string) Toolchain {
return &toolchainArm{
cflags: strings.Join([]string{
"${armCflags}",
armArchVariantCflagsVar[archVariant],
armCpuVariantCflagsVar[cpuVariant],
armArchVariantCflagsVar[arch.ArchVariant],
armCpuVariantCflagsVar[arch.CpuVariant],
}, " "),
ldflags: strings.Join([]string{
"${armLdflags}",
@@ -328,8 +328,8 @@ func armToolchainFactory(archVariant string, cpuVariant string) Toolchain {
}, " "),
clangCflags: strings.Join([]string{
"${armClangCflags}",
armClangArchVariantCflagsVar[archVariant],
armClangCpuVariantCflagsVar[cpuVariant],
armClangArchVariantCflagsVar[arch.ArchVariant],
armClangCpuVariantCflagsVar[arch.CpuVariant],
}, " "),
}
}