diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk index 85c145b9..68f039de 100644 --- a/build/tasks/kernel.mk +++ b/build/tasks/kernel.mk @@ -291,7 +291,7 @@ ifneq ($(TARGET_KERNEL_CLANG_COMPILE),false) endif PATH_OVERRIDE += PATH=$(TARGET_KERNEL_CLANG_PATH)/bin:$$PATH ifeq ($(KERNEL_CC),) - KERNEL_CC := CC="$(CCACHE_BIN) clang" + KERNEL_CC := CC="$(CCACHE_BIN) clang" LD=ld.lld endif endif diff --git a/config/BoardConfigKernel.mk b/config/BoardConfigKernel.mk index c8078095..e471d63a 100644 --- a/config/BoardConfigKernel.mk +++ b/config/BoardConfigKernel.mk @@ -145,7 +145,7 @@ ifneq ($(KERNEL_NO_GCC), true) KERNEL_TOOLCHAIN_PREFIX_arm := arm-linux-androidkernel- # x86 toolchain KERNEL_TOOLCHAIN_x86 := $(GCC_PREBUILTS)/x86/x86_64-linux-android-4.9/bin - KERNEL_TOOLCHAIN_PREFIX_x86 := x86_64-linux-android- + KERNEL_TOOLCHAIN_PREFIX_x86 := x86_64-linux-androidkernel- TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)) ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),) @@ -165,6 +165,25 @@ ifneq ($(KERNEL_NO_GCC), true) # for tools like `as` KERNEL_TOOLCHAIN_PATH_gcc := $(KERNEL_TOOLCHAIN_$(KERNEL_ARCH)) + # Every GCC executables has a prefix, not automatically included if not cross compiling + ifeq ($(KERNEL_ARCH),x86) + KERNEL_MAKE_FLAGS += $(strip \ + AR=$(KERNEL_TOOLCHAIN_PREFIX)ar \ + NM=$(KERNEL_TOOLCHAIN_PREFIX)nm \ + OBJCOPY=$(KERNEL_TOOLCHAIN_PREFIX)objcopy \ + OBJDUMP=$(KERNEL_TOOLCHAIN_PREFIX)objdump \ + READELF=$(KERNEL_TOOLCHAIN_PREFIX)readelf \ + OBJSIZE=$(KERNEL_TOOLCHAIN_PREFIX)size \ + STRIP=$(KERNEL_TOOLCHAIN_PREFIX)strip \ + ) + ifeq ($(TARGET_KERNEL_CLANG_COMPILE),false) + KERNEL_MAKE_FLAGS += $(strip \ + CC=$(KERNEL_TOOLCHAIN_PREFIX)gcc \ + LD=$(KERNEL_TOOLCHAIN_PREFIX)ld \ + ) + endif + endif + ifneq ($(TARGET_KERNEL_CLANG_COMPILE),false) KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(KERNEL_TOOLCHAIN_PATH)" else @@ -199,7 +218,9 @@ ifneq ($(KERNEL_NO_GCC), true) endif # Set the full path to the clang command and LLVM binutils + KERNEL_MAKE_FLAGS += HOSTAR=$(TARGET_KERNEL_CLANG_PATH)/bin/llvm-ar KERNEL_MAKE_FLAGS += HOSTCC=$(TARGET_KERNEL_CLANG_PATH)/bin/clang + KERNEL_MAKE_FLAGS += HOSTLD=$(TARGET_KERNEL_CLANG_PATH)/bin/ld.lld KERNEL_MAKE_FLAGS += HOSTCXX=$(TARGET_KERNEL_CLANG_PATH)/bin/clang++ ifneq ($(TARGET_KERNEL_CLANG_COMPILE), false) ifneq ($(TARGET_KERNEL_LLVM_BINUTILS), false)