Latest clang versions fail to compile CONFIG_X86_X32_ABI=y
From: Aleksandr Nogikh
Date: Mon Apr 14 2025 - 10:44:21 EST
Hi,
I've been trying to build a Linux kernel using newer llvm toolchain
versions (18, 19, 20), but it consistently fails with the following
errors:
ld.lld: error: arch/x86/entry/vdso/vgetrandom-x32.o:(.note.gnu.property+0x0):
data is too short
ld.lld: error: arch/x86/entry/vdso/vgetcpu-x32.o:(.note.gnu.property+0x0):
data is too short
ld.lld: error: arch/x86/entry/vdso/vclock_gettime-x32.o:(.note.gnu.property+0x0):
data is too short
The steps to reproduce:
$ git checkout v6.15-rc2
$ make defconfig
$ ./scripts/config -e X86_X32_ABI
$ make CC=clang LD=ld.lld -j48
The versions used:
$ clang --version
Debian clang version 20.1.2
(++20250402124445+58df0ef89dd6-1~exp1~20250402004600.97)
$ ld.lld --version
Debian LLD 20.1.2 (compatible with GNU linkers)
Is this a known clang/Linux issue?
There's a kernel commit that addresses a similar problem:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aaeed6ecc1253ce1463fa1aca0b70a4ccbc9fa75
but the error is slightly different there and the added Kconfig
condition apparently did not kick in.
--
Aleksandr