The kernel passes the ArmV6K architecture to the compiler when
using the multi platform selection and enabling ARMv6. Clang
older than version 8.0 emit assembly with an non-existing CPU,
which then makes the GNU assembler fail. Warn users when
compiling ARMv6 using Clang before 8.0.
Suggested-by: Russell King <[email protected]>
Signed-off-by: Stefan Agner <[email protected]>
Link: https://github.com/ClangBuiltLinux/linux/issues/55
---
include/linux/compiler-clang.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h
index b1ce500fe8b3..9df8713bef38 100644
--- a/include/linux/compiler-clang.h
+++ b/include/linux/compiler-clang.h
@@ -3,6 +3,10 @@
#error "Please don't include <linux/compiler-clang.h> directly, include <linux/compiler.h> instead."
#endif
+#if defined(CONFIG_ARCH_MULTI_V6) && CONFIG_CLANG_VERSION < 80000
+#error "Sorry, your compiler is too old - please upgrade it."
+#endif
+
/* Some compiler specific definitions are overwritten here
* for Clang compiler
*/
--
2.19.1