summaryrefslogtreecommitdiffstats
path: root/scripts/Makefile.clang
diff options
context:
space:
mode:
authorNick Desaulniers <ndesaulniers@google.com>2021-08-02 20:39:08 +0200
committerMasahiro Yamada <masahiroy@kernel.org>2021-08-10 02:13:25 +0200
commit6f5b41a2f5a6314614e286274eb8e985248aac60 (patch)
treedf4c2d7a9062c50a978016521db89a58df3ab612 /scripts/Makefile.clang
parentkbuild: warn if a different compiler is used for external module builds (diff)
downloadlinux-6f5b41a2f5a6314614e286274eb8e985248aac60.tar.xz
linux-6f5b41a2f5a6314614e286274eb8e985248aac60.zip
Makefile: move initial clang flag handling into scripts/Makefile.clang
With some of the changes we'd like to make to CROSS_COMPILE, the initial block of clang flag handling which controls things like the target triple, whether or not to use the integrated assembler and how to find GAS, and erroring on unknown warnings is becoming unwieldy. Move it into its own file under scripts/. Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to '')
-rw-r--r--scripts/Makefile.clang14
1 files changed, 14 insertions, 0 deletions
diff --git a/scripts/Makefile.clang b/scripts/Makefile.clang
new file mode 100644
index 000000000000..297932e973d4
--- /dev/null
+++ b/scripts/Makefile.clang
@@ -0,0 +1,14 @@
+ifneq ($(CROSS_COMPILE),)
+CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
+endif
+ifeq ($(LLVM_IAS),1)
+CLANG_FLAGS += -integrated-as
+else
+CLANG_FLAGS += -no-integrated-as
+GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
+CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
+endif
+CLANG_FLAGS += -Werror=unknown-warning-option
+KBUILD_CFLAGS += $(CLANG_FLAGS)
+KBUILD_AFLAGS += $(CLANG_FLAGS)
+export CLANG_FLAGS