bp2build: generate arm toolchain flags into @soong_injection.
Other architectures will come later.
Bug: 187084665
Test: TH
Change-Id: Ifcc6773625e56b1fc20260d840380e7ee4ecee7f
diff --git a/cc/config/arm_device.go b/cc/config/arm_device.go
index a402f8f..439084e 100644
--- a/cc/config/arm_device.go
+++ b/cc/config/arm_device.go
@@ -163,56 +163,49 @@
)
const (
+ name = "arm"
armGccVersion = "4.9"
+ gccTriple = "arm-linux-androideabi"
+ clangTriple = "armv7a-linux-androideabi"
)
func init() {
pctx.StaticVariable("armGccVersion", armGccVersion)
- pctx.SourcePathVariable("ArmGccRoot",
- "prebuilts/gcc/${HostPrebuiltTag}/arm/arm-linux-androideabi-${armGccVersion}")
+ pctx.SourcePathVariable("ArmGccRoot", "prebuilts/gcc/${HostPrebuiltTag}/arm/arm-linux-androideabi-${armGccVersion}")
- pctx.StaticVariable("ArmLdflags", strings.Join(armLdflags, " "))
- pctx.StaticVariable("ArmLldflags", strings.Join(armLldflags, " "))
+ // Just exported. Not created as a Ninja static variable.
+ exportedStringVars.Set("ArmClangTriple", clangTriple)
+
+ exportStringListStaticVariable("ArmLdflags", armLdflags)
+ exportStringListStaticVariable("ArmLldflags", armLldflags)
// Clang cflags
- pctx.StaticVariable("ArmToolchainClangCflags", strings.Join(ClangFilterUnknownCflags(armToolchainCflags), " "))
- pctx.StaticVariable("ArmClangCflags", strings.Join(ClangFilterUnknownCflags(armCflags), " "))
- pctx.StaticVariable("ArmClangLdflags", strings.Join(ClangFilterUnknownCflags(armLdflags), " "))
- pctx.StaticVariable("ArmClangLldflags", strings.Join(ClangFilterUnknownCflags(armLldflags), " "))
- pctx.StaticVariable("ArmClangCppflags", strings.Join(ClangFilterUnknownCflags(armCppflags), " "))
+ exportStringListStaticVariable("ArmToolchainClangCflags", ClangFilterUnknownCflags(armToolchainCflags))
+ exportStringListStaticVariable("ArmClangCflags", ClangFilterUnknownCflags(armCflags))
+ exportStringListStaticVariable("ArmClangLdflags", ClangFilterUnknownCflags(armLdflags))
+ exportStringListStaticVariable("ArmClangLldflags", ClangFilterUnknownCflags(armLldflags))
+ exportStringListStaticVariable("ArmClangCppflags", ClangFilterUnknownCflags(armCppflags))
// Clang ARM vs. Thumb instruction set cflags
- pctx.StaticVariable("ArmClangArmCflags", strings.Join(ClangFilterUnknownCflags(armArmCflags), " "))
- pctx.StaticVariable("ArmClangThumbCflags", strings.Join(ClangFilterUnknownCflags(armThumbCflags), " "))
+ exportStringListStaticVariable("ArmClangArmCflags", ClangFilterUnknownCflags(armArmCflags))
+ exportStringListStaticVariable("ArmClangThumbCflags", ClangFilterUnknownCflags(armThumbCflags))
// Clang arch variant cflags
- pctx.StaticVariable("ArmClangArmv7ACflags",
- strings.Join(armClangArchVariantCflags["armv7-a"], " "))
- pctx.StaticVariable("ArmClangArmv7ANeonCflags",
- strings.Join(armClangArchVariantCflags["armv7-a-neon"], " "))
- pctx.StaticVariable("ArmClangArmv8ACflags",
- strings.Join(armClangArchVariantCflags["armv8-a"], " "))
- pctx.StaticVariable("ArmClangArmv82ACflags",
- strings.Join(armClangArchVariantCflags["armv8-2a"], " "))
+ exportStringListStaticVariable("ArmClangArmv7ACflags", armClangArchVariantCflags["armv7-a"])
+ exportStringListStaticVariable("ArmClangArmv7ANeonCflags", armClangArchVariantCflags["armv7-a-neon"])
+ exportStringListStaticVariable("ArmClangArmv8ACflags", armClangArchVariantCflags["armv8-a"])
+ exportStringListStaticVariable("ArmClangArmv82ACflags", armClangArchVariantCflags["armv8-2a"])
// Clang cpu variant cflags
- pctx.StaticVariable("ArmClangGenericCflags",
- strings.Join(armClangCpuVariantCflags[""], " "))
- pctx.StaticVariable("ArmClangCortexA7Cflags",
- strings.Join(armClangCpuVariantCflags["cortex-a7"], " "))
- pctx.StaticVariable("ArmClangCortexA8Cflags",
- strings.Join(armClangCpuVariantCflags["cortex-a8"], " "))
- pctx.StaticVariable("ArmClangCortexA15Cflags",
- strings.Join(armClangCpuVariantCflags["cortex-a15"], " "))
- pctx.StaticVariable("ArmClangCortexA53Cflags",
- strings.Join(armClangCpuVariantCflags["cortex-a53"], " "))
- pctx.StaticVariable("ArmClangCortexA55Cflags",
- strings.Join(armClangCpuVariantCflags["cortex-a55"], " "))
- pctx.StaticVariable("ArmClangKraitCflags",
- strings.Join(armClangCpuVariantCflags["krait"], " "))
- pctx.StaticVariable("ArmClangKryoCflags",
- strings.Join(armClangCpuVariantCflags["kryo"], " "))
+ exportStringListStaticVariable("ArmClangGenericCflags", armClangCpuVariantCflags[""])
+ exportStringListStaticVariable("ArmClangCortexA7Cflags", armClangCpuVariantCflags["cortex-a7"])
+ exportStringListStaticVariable("ArmClangCortexA8Cflags", armClangCpuVariantCflags["cortex-a8"])
+ exportStringListStaticVariable("ArmClangCortexA15Cflags", armClangCpuVariantCflags["cortex-a15"])
+ exportStringListStaticVariable("ArmClangCortexA53Cflags", armClangCpuVariantCflags["cortex-a53"])
+ exportStringListStaticVariable("ArmClangCortexA55Cflags", armClangCpuVariantCflags["cortex-a55"])
+ exportStringListStaticVariable("ArmClangKraitCflags", armClangCpuVariantCflags["krait"])
+ exportStringListStaticVariable("ArmClangKryoCflags", armClangCpuVariantCflags["kryo"])
}
var (
@@ -251,7 +244,7 @@
}
func (t *toolchainArm) Name() string {
- return "arm"
+ return name
}
func (t *toolchainArm) GccRoot() string {
@@ -259,7 +252,7 @@
}
func (t *toolchainArm) GccTriple() string {
- return "arm-linux-androideabi"
+ return gccTriple
}
func (t *toolchainArm) GccVersion() string {
@@ -272,7 +265,7 @@
func (t *toolchainArm) ClangTriple() string {
// http://b/72619014 work around llvm LTO bug.
- return "armv7a-linux-androideabi"
+ return clangTriple
}
func (t *toolchainArm) ndkTriple() string {
@@ -312,7 +305,7 @@
}
func (toolchainArm) LibclangRuntimeLibraryArch() string {
- return "arm"
+ return name
}
func armToolchainFactory(arch android.Arch) Toolchain {