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:
@@ -136,7 +136,7 @@ func (t *toolchainArm64) ClangLdflags() string {
|
||||
return "${arm64Ldflags}"
|
||||
}
|
||||
|
||||
func arm64ToolchainFactory(archVariant string, cpuVariant string) Toolchain {
|
||||
func arm64ToolchainFactory(arch common.Arch) Toolchain {
|
||||
return toolchainArm64Singleton
|
||||
}
|
||||
|
||||
|
@@ -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],
|
||||
}, " "),
|
||||
}
|
||||
}
|
||||
|
2
cc/cc.go
2
cc/cc.go
@@ -412,7 +412,7 @@ func (c *CCBase) findToolchain(ctx common.AndroidModuleContext) Toolchain {
|
||||
ctx.ModuleErrorf("Toolchain not found for %s arch %q", hod.String(), arch.String())
|
||||
return nil
|
||||
}
|
||||
return factory(arch.ArchVariant, arch.CpuVariant)
|
||||
return factory(arch)
|
||||
}
|
||||
|
||||
func (c *CCBase) ModifyProperties(ctx CCModuleContext) {
|
||||
|
@@ -20,7 +20,7 @@ import (
|
||||
"android/soong/common"
|
||||
)
|
||||
|
||||
type toolchainFactory func(archVariant string, cpuVariant string) Toolchain
|
||||
type toolchainFactory func(arch common.Arch) Toolchain
|
||||
|
||||
var toolchainFactories = map[common.HostOrDevice]map[common.ArchType]toolchainFactory{
|
||||
common.Host: make(map[common.ArchType]toolchainFactory),
|
||||
|
@@ -198,11 +198,11 @@ func (t *toolchainDarwinX8664) ClangLdflags() string {
|
||||
var toolchainDarwinX86Singleton Toolchain = &toolchainDarwinX86{}
|
||||
var toolchainDarwinX8664Singleton Toolchain = &toolchainDarwinX8664{}
|
||||
|
||||
func darwinX86ToolchainFactory(archVariant string, cpuVariant string) Toolchain {
|
||||
func darwinX86ToolchainFactory(arch common.Arch) Toolchain {
|
||||
return toolchainDarwinX86Singleton
|
||||
}
|
||||
|
||||
func darwinX8664ToolchainFactory(archVariant string, cpuVariant string) Toolchain {
|
||||
func darwinX8664ToolchainFactory(arch common.Arch) Toolchain {
|
||||
return toolchainDarwinX8664Singleton
|
||||
}
|
||||
|
||||
|
@@ -224,11 +224,11 @@ func (t *toolchainLinuxX8664) ClangLdflags() string {
|
||||
var toolchainLinuxX86Singleton Toolchain = &toolchainLinuxX86{}
|
||||
var toolchainLinuxX8664Singleton Toolchain = &toolchainLinuxX8664{}
|
||||
|
||||
func linuxX86ToolchainFactory(archVariant string, cpuVariant string) Toolchain {
|
||||
func linuxX86ToolchainFactory(arch common.Arch) Toolchain {
|
||||
return toolchainLinuxX86Singleton
|
||||
}
|
||||
|
||||
func linuxX8664ToolchainFactory(archVariant string, cpuVariant string) Toolchain {
|
||||
func linuxX8664ToolchainFactory(arch common.Arch) Toolchain {
|
||||
return toolchainLinuxX8664Singleton
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user