kernel: Fix building x86 kernel with GCC

Change-Id: Ib1097d604776adc63c31b90cec9a0d13729248be
This commit is contained in:
Yumi Yukimura
2024-09-25 16:52:22 +08:00
committed by Zabuka_zuzu
parent 3c840dfd77
commit 1bcdb3937c
2 changed files with 23 additions and 2 deletions

View File

@@ -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

View File

@@ -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)