Message ID | 20170421182001.139199-1-mka@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2017-04-22 3:20 GMT+09:00 Matthias Kaehlcke <mka@chromium.org>: > Add cross target to CC if using clang. Also add custom gcc toolchain > path for fallback gcc tools. > > Clang will fallback to using things like ld, as, and libgcc if > (respectively) one of the llvm linkers isn't available, the integrated > assembler is turned off, or an appropriately cross-compiled version of > compiler-rt isn't available. To this end, you can specify the path to > this fallback gcc toolchain with GCC_TOOLCHAIN. > > From: Behan Webster <behanw@converseincode.com> > Signed-off-by: Behan Webster <behanw@converseincode.com> > Reviewed-by: Jan-Simon Möller <dl9pf@gmx.de> > Reviewed-by: Mark Charlebois <charlebm@gmail.com> > Signed-off-by: Greg Hackmann <ghackmann@google.com> > Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Applied to linux-kbuild/kbuild. Thanks!
diff --git a/Makefile b/Makefile index 5039b9148d15..11c00bd3ec0c 100644 --- a/Makefile +++ b/Makefile @@ -698,6 +698,15 @@ endif KBUILD_CFLAGS += $(stackp-flag) ifeq ($(cc-name),clang) +ifneq ($(CROSS_COMPILE),) +CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%)) +GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..) +endif +ifneq ($(GCC_TOOLCHAIN),) +CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN) +endif +KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) +KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,) KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)