kbuild: clang: add -no-integrated-as to KBUILD_[AC]FLAGS
authorMichael Davidson <md@google.com>
Tue, 25 Apr 2017 22:47:35 +0000 (15:47 -0700)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 28 Apr 2017 00:34:33 +0000 (09:34 +0900)
The Linux Kernel relies on GCC's acceptance of inline assembly as an
opaque object which will not have any validation performed on the content.
The current behaviour in LLVM is to perform validation of the contents by
means of parsing the input if the MC layer can handle it.

Disable clangs integrated assembler and use the GNU assembler instead.

Wording-mostly-from: Saleem Abdulrasool <compnerd@compnerd.org>
Signed-off-by: Michael Davidson <md@google.com>
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Makefile

index 4394431761616ae8262a424158b0d1682e56f087..10d6cd348abb3ffa284ca769849181e270e1644b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -708,6 +708,8 @@ KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
 # See modpost pattern 2
 KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
 KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
+KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
+KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
 else
 
 # These warnings generated too much noise in a regular build.