1 ## Clang configurations. 2 3 LLVM_READOBJ := $(LLVM_PREBUILTS_BASE)/$(BUILD_OS)-x86/$(LLVM_PREBUILTS_VERSION)/bin/llvm-readobj 4 5 LLVM_RTLIB_PATH := $(LLVM_PREBUILTS_BASE)/linux-x86/$(LLVM_PREBUILTS_VERSION)/lib64/clang/$(LLVM_RELEASE_VERSION)/lib/linux/ 6 7 define convert-to-clang-flags 8 $(strip $(filter-out $(CLANG_CONFIG_UNKNOWN_CFLAGS),$(1))) 9 endef 10 11 CLANG_DEFAULT_UB_CHECKS := \ 12 bool \ 13 integer-divide-by-zero \ 14 return \ 15 returns-nonnull-attribute \ 16 shift-exponent \ 17 unreachable \ 18 vla-bound \ 19 20 # TODO(danalbert): The following checks currently have compiler performance 21 # issues. 22 # CLANG_DEFAULT_UB_CHECKS += alignment 23 # CLANG_DEFAULT_UB_CHECKS += bounds 24 # CLANG_DEFAULT_UB_CHECKS += enum 25 # CLANG_DEFAULT_UB_CHECKS += float-cast-overflow 26 # CLANG_DEFAULT_UB_CHECKS += float-divide-by-zero 27 # CLANG_DEFAULT_UB_CHECKS += nonnull-attribute 28 # CLANG_DEFAULT_UB_CHECKS += null 29 # CLANG_DEFAULT_UB_CHECKS += shift-base 30 # CLANG_DEFAULT_UB_CHECKS += signed-integer-overflow 31 32 # TODO(danalbert): Fix UB in libc++'s __tree so we can turn this on. 33 # https://llvm.org/PR19302 34 # http://reviews.llvm.org/D6974 35 # CLANG_DEFAULT_UB_CHECKS += object-size 36 37 # HOST config 38 clang_2nd_arch_prefix := 39 include $(BUILD_SYSTEM)/clang/HOST_$(HOST_ARCH).mk 40 41 # HOST_2ND_ARCH config 42 ifdef HOST_2ND_ARCH 43 clang_2nd_arch_prefix := $(HOST_2ND_ARCH_VAR_PREFIX) 44 include $(BUILD_SYSTEM)/clang/HOST_$(HOST_2ND_ARCH).mk 45 endif 46 47 # TARGET config 48 clang_2nd_arch_prefix := 49 include $(BUILD_SYSTEM)/clang/TARGET_$(TARGET_ARCH).mk 50 51 # TARGET_2ND_ARCH config 52 ifdef TARGET_2ND_ARCH 53 clang_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX) 54 include $(BUILD_SYSTEM)/clang/TARGET_$(TARGET_2ND_ARCH).mk 55 endif 56 57 include $(BUILD_SYSTEM)/clang/tidy.mk 58