From 54eeba1f78ed891ddc13044ce97503fe33e57c52 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 26 Oct 2022 20:34:27 +0200 Subject: [PATCH] package/glibc: headers >= 5.4 needed on RISC-V 32-bit Since glibc 2.33 (upstream commit 7a55dd3fb6d2c307a002a16776be84310b9c8989), headers >= 5.4.0 are needed to build glibc for RISC-V 32-bit. Indeed sysdeps/unix/sysv/linux/riscv/configure.ac contains: if test $libc_cv_riscv_int_abi = ilp32; then arch_minimum_kernel=5.4.0 fi In order to take into account this dependency, we add the appropriate logic in package/glibc/Config.in and toolchain/toolchain-buildroot/Config.in. This change means that if headers < 5.4.0 are selected, then no C library at all will be available for RISC-V 32-bit, as glibc is the only C library supporting RISC-V 32-bit currently. However, thanks to the recent addition of BR2_TOOLCHAIN_BUILDROOT_NONE, the choice...endchoice for the C library selection will not be empty, allowing the user to see the Config.in comment explaining why glibc can't be selected. Therefore, technically this commit does prevent from creating a configuration with RISC-V 32-bit and headers < 5.4.0, but it will have BR2_TOOLCHAIN_BUILDROOT_NONE=y, which is catched by package/Makefile.in, which aborts the build early on pointing out that the configuration is invalid. Fixes: http://autobuild.buildroot.net/results/5ca49b2732f68eccb5276e7112f7f496dcc514ee/ Signed-off-by: Thomas Petazzoni Reviewed-by: Alistair Francis Signed-off-by: Yann E. MORIN (cherry picked from commit 2b3f0153bb5accd1f543a43088a8cf792cda95fc) Signed-off-by: Peter Korsgaard --- package/glibc/Config.in | 1 + toolchain/toolchain-buildroot/Config.in | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/package/glibc/Config.in b/package/glibc/Config.in index ba9f691d80..8bd529d25d 100644 --- a/package/glibc/Config.in +++ b/package/glibc/Config.in @@ -34,6 +34,7 @@ config BR2_PACKAGE_GLIBC_SUPPORTS depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008 + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 || !BR2_RISCV_32 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_RISCV_64 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 || !BR2_arc depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 || !BR2_or1k diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in index daadeac09c..bf874f1ea7 100644 --- a/toolchain/toolchain-buildroot/Config.in +++ b/toolchain/toolchain-buildroot/Config.in @@ -63,6 +63,10 @@ comment "glibc on RISC-V 64-bit needs a toolchain w/ headers >= 5.0" depends on BR2_RISCV_64 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 +comment "glibc on RISC-V 32-bit needs a toolchain w/ headers >= 5.4" + depends on BR2_RISCV_32 + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 + comment "glibc on ARC needs a toolchain w/ headers >= 5.1" depends on BR2_arc depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1