2021-08-02 21:39:09 +03:00
# Individual arch/{arch}/Makefiles should use -EL/-EB to set intended
# endianness and -m32/-m64 to set word size based on Kconfigs instead of
# relying on the target triple.
CLANG_TARGET_FLAGS_arm := arm-linux-gnueabi
CLANG_TARGET_FLAGS_arm64 := aarch64-linux-gnu
CLANG_TARGET_FLAGS_hexagon := hexagon-linux-musl
CLANG_TARGET_FLAGS_m68k := m68k-linux-gnu
CLANG_TARGET_FLAGS_mips := mipsel-linux-gnu
CLANG_TARGET_FLAGS_powerpc := powerpc64le-linux-gnu
CLANG_TARGET_FLAGS_riscv := riscv64-linux-gnu
CLANG_TARGET_FLAGS_s390 := s390x-linux-gnu
CLANG_TARGET_FLAGS_x86 := x86_64-linux-gnu
CLANG_TARGET_FLAGS := $( CLANG_TARGET_FLAGS_$( SRCARCH) )
i f e q ( $( CROSS_COMPILE ) , )
i f e q ( $( CLANG_TARGET_FLAGS ) , )
$( error Specify CROSS_COMPILE or add '--target =' option to scripts /Makefile .clang )
e l s e
CLANG_FLAGS += --target= $( CLANG_TARGET_FLAGS)
e n d i f # CLANG_TARGET_FLAGS
e l s e
2021-08-02 21:39:08 +03:00
CLANG_FLAGS += --target= $( notdir $( CROSS_COMPILE:%-= %) )
2021-08-02 21:39:09 +03:00
e n d i f # CROSS_COMPILE
2021-08-06 20:27:01 +03:00
i f e q ( $( LLVM_IAS ) , 0 )
2021-08-16 23:52:47 +03:00
CLANG_FLAGS += -fno-integrated-as
2021-08-02 21:39:08 +03:00
GCC_TOOLCHAIN_DIR := $( dir $( shell which $( CROSS_COMPILE) elfedit) )
CLANG_FLAGS += --prefix= $( GCC_TOOLCHAIN_DIR) $( notdir $( CROSS_COMPILE) )
2021-08-06 20:27:01 +03:00
e l s e
2021-08-16 23:52:47 +03:00
CLANG_FLAGS += -fintegrated-as
2021-08-02 21:39:08 +03:00
e n d i f
2021-09-16 21:40:17 +03:00
# By default, clang only warns when it encounters an unknown warning flag or
# certain optimization flags it knows it has not implemented.
# Make it behave more like gcc by erroring when these flags are encountered
# so they can be implemented or wrapped in cc-option.
2021-08-02 21:39:08 +03:00
CLANG_FLAGS += -Werror= unknown-warning-option
2021-09-16 21:40:17 +03:00
CLANG_FLAGS += -Werror= ignored-optimization-argument
2021-08-02 21:39:08 +03:00
KBUILD_CFLAGS += $( CLANG_FLAGS)
KBUILD_AFLAGS += $( CLANG_FLAGS)
export CLANG_FLAGS