cc: Filter out unknown clang cflags from InstructionSetFlags
-funswitch-loops is in the arm instruction set flags, but unsupported by
clang. Make removes clang unknown cflags from the instruction set flags.
This was producing a warning, causing -Werror to fail on libm.
Change-Id: Ibc69c9af04a738aa8adeb5549900e2b53ab754f0
diff --git a/cc/arm_device.go b/cc/arm_device.go
index ce8a1cb..8f3485e 100644
--- a/cc/arm_device.go
+++ b/cc/arm_device.go
@@ -172,6 +172,10 @@
pctx.StaticVariable("armClangLdflags", strings.Join(clangFilterUnknownCflags(armLdflags), " "))
pctx.StaticVariable("armClangCppflags", strings.Join(clangFilterUnknownCflags(armCppflags), " "))
+ // Clang ARM vs. Thumb instruction set cflags
+ pctx.StaticVariable("armClangArmCflags", strings.Join(clangFilterUnknownCflags(armArmCflags), " "))
+ pctx.StaticVariable("armClangThumbCflags", strings.Join(clangFilterUnknownCflags(armThumbCflags), " "))
+
// Clang cpu variant cflags
pctx.StaticVariable("armClangArmv5TECflags",
strings.Join(armClangArchVariantCflags["armv5te"], " "))
@@ -291,6 +295,17 @@
return t.ldflags
}
+func (t *toolchainArm) ClangInstructionSetFlags(isa string) (string, error) {
+ switch isa {
+ case "arm":
+ return "${armClangArmCflags}", nil
+ case "thumb", "":
+ return "${armClangThumbCflags}", nil
+ default:
+ return t.toolchainBase.ClangInstructionSetFlags(isa)
+ }
+}
+
func armToolchainFactory(archVariant string, cpuVariant string) Toolchain {
var fixCortexA8 string
switch cpuVariant {