kernel: Changes for LLVM binutils
* Remove KERNEL_LD from kernel.mk, we simply set LD in BoardConfigKernel * Add llvm-ar in path allowlist (used by LTO) Change-Id: I76addb6f9d8d413edb1832dba23082ffb6d5ebc3
This commit is contained in:
@@ -50,8 +50,6 @@
|
||||
#
|
||||
# KERNEL_CC = The C Compiler used. This is automatically set based
|
||||
# on whether the clang version is set, optional.
|
||||
# KERNEL_LD = The Linker used. This is automatically set based
|
||||
# on whether the clang/gcc version is set, optional.
|
||||
#
|
||||
# KERNEL_CLANG_TRIPLE = Target triple for clang (e.g. aarch64-linux-gnu-)
|
||||
# defaults to arm-linux-gnu- for arm
|
||||
@@ -246,9 +244,6 @@ ifneq ($(TARGET_KERNEL_CLANG_COMPILE),false)
|
||||
ifeq ($(KERNEL_CC),)
|
||||
KERNEL_CC := CC="$(CCACHE_BIN) clang"
|
||||
endif
|
||||
ifeq ($(KERNEL_LD),)
|
||||
KERNEL_LD :=
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(TARGET_KERNEL_MODULES),)
|
||||
@@ -272,7 +267,7 @@ endif
|
||||
# $(1): output path (The value passed to O=)
|
||||
# $(2): target to build (eg. defconfig, modules, dtbo.img)
|
||||
define internal-make-kernel-target
|
||||
$(PATH_OVERRIDE) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_BUILD_OUT_PREFIX)$(1) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_LD) $(2)
|
||||
$(PATH_OVERRIDE) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_BUILD_OUT_PREFIX)$(1) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(2)
|
||||
endef
|
||||
|
||||
# Make an external module target
|
||||
@@ -280,7 +275,7 @@ endef
|
||||
# $(2): module root path
|
||||
# $(3): target to build (eg. modules_install)
|
||||
define make-external-module-target
|
||||
$(PATH_OVERRIDE) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_EXT_MODULE_ROOT)/$(1) M=$(2)/$(1) KERNEL_SRC=$(BUILD_TOP)/$(KERNEL_SRC) OUT_DIR=$(KERNEL_BUILD_OUT_PREFIX)$(KERNEL_OUT) O=$(KERNEL_BUILD_OUT_PREFIX)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_LD) $(3)
|
||||
$(PATH_OVERRIDE) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_EXT_MODULE_ROOT)/$(1) M=$(2)/$(1) KERNEL_SRC=$(BUILD_TOP)/$(KERNEL_SRC) OUT_DIR=$(KERNEL_BUILD_OUT_PREFIX)$(KERNEL_OUT) O=$(KERNEL_BUILD_OUT_PREFIX)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(3)
|
||||
endef
|
||||
|
||||
# Generate kernel .config from a given defconfig
|
||||
|
||||
@@ -176,6 +176,8 @@ KERNEL_MAKE_FLAGS += HOSTCXX=$(CLANG_PREBUILTS)/bin/clang++
|
||||
ifneq ($(TARGET_KERNEL_CLANG_COMPILE), false)
|
||||
ifneq (,$(filter 5.4 5.10, $(TARGET_KERNEL_VERSION)))
|
||||
KERNEL_MAKE_FLAGS += LLVM=1 LLVM_IAS=1
|
||||
KERNEL_MAKE_FLAGS += LD=$(CLANG_PREBUILTS)/bin/ld.lld
|
||||
KERNEL_MAKE_FLAGS += AR=$(CLANG_PREBUILTS)/bin/llvm-ar
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user