kernel: Use libc sysroot from host for 6.11+
Linux kernel 6.11 has removed support for old libc versions by commit
[1]. The commit message implies it's done as part of retiring
RHEL/CentOS 7, CentOS 7 includes glibc 2.17, All glibc available from
AOSP are NOT newer than that version.
Before there's a better solution, use libc sysroot from host.
[1]: 3914cdde89
Change-Id: I9210a9b4742304214d90f7d319b06167f0508052
This commit is contained in:
committed by
Jan Altensen
parent
3aed30191a
commit
1241611c87
@@ -30,6 +30,8 @@
|
||||
# TARGET_KERNEL_CLANG_VERSION = Clang prebuilts version, optional, defaults to clang-stable
|
||||
# TARGET_KERNEL_CLANG_PATH = Clang prebuilts path, optional
|
||||
#
|
||||
# TARGET_KERNEL_LIBC_SYSROOT_USE = libc sysroot to use, defaults to "host" for 6.11+
|
||||
#
|
||||
# TARGET_KERNEL_LLVM_BINUTILS = Use LLVM binutils, defaults to true
|
||||
# TARGET_KERNEL_RUST_VERSION = Rust prebuilts version, optional
|
||||
# TARGET_KERNEL_NO_GCC = Fully compile the kernel without GCC.
|
||||
@@ -85,6 +87,19 @@ ifneq ($(KERNEL_VERSION),)
|
||||
endif
|
||||
endif
|
||||
|
||||
# 6.11+ can no longer use aosp glibc sysroot headers (too old)
|
||||
ifneq ($(KERNEL_VERSION),)
|
||||
ifeq ($(shell expr $(KERNEL_VERSION) \< 6), 1)
|
||||
# empty
|
||||
else ifeq ($(KERNEL_VERSION), 6)
|
||||
ifeq ($(shell expr $(KERNEL_PATCHLEVEL) \>= 11), 1)
|
||||
TARGET_KERNEL_LIBC_SYSROOT_USE ?= host
|
||||
endif
|
||||
else
|
||||
TARGET_KERNEL_LIBC_SYSROOT_USE ?= host
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_KERNEL_NO_GCC), true)
|
||||
KERNEL_NO_GCC := true
|
||||
endif
|
||||
@@ -188,8 +203,14 @@ ifneq ($(KERNEL_NO_GCC), true)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
KERNEL_MAKE_FLAGS += HOSTCFLAGS="--sysroot=$(BUILD_TOP)/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot -I$(BUILD_TOP)/prebuilts/kernel-build-tools/linux-x86/include"
|
||||
KERNEL_MAKE_FLAGS += HOSTLDFLAGS="--sysroot=$(BUILD_TOP)/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot -Wl,-rpath,$(BUILD_TOP)/prebuilts/kernel-build-tools/linux-x86/lib64 -L $(BUILD_TOP)/prebuilts/kernel-build-tools/linux-x86/lib64 -fuse-ld=lld --rtlib=compiler-rt"
|
||||
ifeq ($(TARGET_KERNEL_LIBC_SYSROOT_USE), host)
|
||||
KERNEL_HOST_C_LD_FLAGS_SYSROOT :=
|
||||
else
|
||||
KERNEL_HOST_C_LD_FLAGS_SYSROOT := --sysroot=$(BUILD_TOP)/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot
|
||||
endif
|
||||
|
||||
KERNEL_MAKE_FLAGS += HOSTCFLAGS="$(KERNEL_HOST_C_LD_FLAGS_SYSROOT) -I$(BUILD_TOP)/prebuilts/kernel-build-tools/linux-x86/include"
|
||||
KERNEL_MAKE_FLAGS += HOSTLDFLAGS="$(KERNEL_HOST_C_LD_FLAGS_SYSROOT) -Wl,-rpath,$(BUILD_TOP)/prebuilts/kernel-build-tools/linux-x86/lib64 -L $(BUILD_TOP)/prebuilts/kernel-build-tools/linux-x86/lib64 -fuse-ld=lld --rtlib=compiler-rt"
|
||||
|
||||
TOOLS_PATH_OVERRIDE += PATH=$(BUILD_TOP)/prebuilts/tools-lineage/$(HOST_PREBUILT_TAG)/bin:$(TARGET_KERNEL_CLANG_PATH)/bin:$(BUILD_TOP)/prebuilts/rust/$(HOST_PREBUILT_TAG)/$(TARGET_KERNEL_RUST_VERSION)/bin:$(BUILD_TOP)/prebuilts/clang-tools/$(HOST_PREBUILT_TAG)/bin:$$PATH
|
||||
endif
|
||||
|
Reference in New Issue
Block a user