linux/scripts/Makefile.clang
<<
>>
Prefs
   1# Individual arch/{arch}/Makefiles should use -EL/-EB to set intended
   2# endianness and -m32/-m64 to set word size based on Kconfigs instead of
   3# relying on the target triple.
   4CLANG_TARGET_FLAGS_arm          := arm-linux-gnueabi
   5CLANG_TARGET_FLAGS_arm64        := aarch64-linux-gnu
   6CLANG_TARGET_FLAGS_hexagon      := hexagon-linux-musl
   7CLANG_TARGET_FLAGS_m68k         := m68k-linux-gnu
   8CLANG_TARGET_FLAGS_mips         := mipsel-linux-gnu
   9CLANG_TARGET_FLAGS_powerpc      := powerpc64le-linux-gnu
  10CLANG_TARGET_FLAGS_riscv        := riscv64-linux-gnu
  11CLANG_TARGET_FLAGS_s390         := s390x-linux-gnu
  12CLANG_TARGET_FLAGS_x86          := x86_64-linux-gnu
  13CLANG_TARGET_FLAGS              := $(CLANG_TARGET_FLAGS_$(SRCARCH))
  14
  15ifeq ($(CROSS_COMPILE),)
  16ifeq ($(CLANG_TARGET_FLAGS),)
  17$(error Specify CROSS_COMPILE or add '--target=' option to scripts/Makefile.clang)
  18else
  19CLANG_FLAGS     += --target=$(CLANG_TARGET_FLAGS)
  20endif # CLANG_TARGET_FLAGS
  21else
  22CLANG_FLAGS     += --target=$(notdir $(CROSS_COMPILE:%-=%))
  23endif # CROSS_COMPILE
  24
  25ifeq ($(LLVM_IAS),0)
  26CLANG_FLAGS     += -fno-integrated-as
  27GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
  28CLANG_FLAGS     += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
  29else
  30CLANG_FLAGS     += -fintegrated-as
  31endif
  32# By default, clang only warns when it encounters an unknown warning flag or
  33# certain optimization flags it knows it has not implemented.
  34# Make it behave more like gcc by erroring when these flags are encountered
  35# so they can be implemented or wrapped in cc-option.
  36CLANG_FLAGS     += -Werror=unknown-warning-option
  37CLANG_FLAGS     += -Werror=ignored-optimization-argument
  38KBUILD_CFLAGS   += $(CLANG_FLAGS)
  39KBUILD_AFLAGS   += $(CLANG_FLAGS)
  40export CLANG_FLAGS
  41