Re: [GIT PULL] nolibc for 6.12-rc1

From: Shuah Khan
Date: Mon Sep 09 2024 - 13:50:22 EST


On 9/8/24 04:22, Willy Tarreau wrote:
On Thu, Sep 05, 2024 at 05:57:52PM -0600, Shuah Khan wrote:
On 9/5/24 10:35, Willy Tarreau wrote:
On Thu, Sep 05, 2024 at 05:57:22PM +0200, Thomas Weißschuh wrote:
On 2024-09-05 08:32:14+0000, Willy Tarreau wrote:
On Thu, Sep 05, 2024 at 08:22:18AM +0200, Willy Tarreau wrote:

./run-tests.sh -p -m user

These toolchains can then also be used for direct "make" invocations
through CROSS_COMPILE.

I really suspect an empty CC variable somewhere that could explain why
only CROSS_COMPILE is used. I'll try to find time today to give it a
try here as well, just in case I can reproduce the same issue.

In fact I'm getting it without any options:

$ ./run-tests.sh
realpath: /home/willy/.cache/crosstools/gcc-13.2.0-nolibc/i386-linux/bin/i386-linux-: No such file or directory

It comes from here in test_arch():

cross_compile=$(realpath "${download_location}gcc-${crosstool_version}-nolibc/${ct_arch}-${ct_abi}/bin/${ct_arch}-${ct_abi}-")

Thus it's indeed related to the absence of the toolchain there. It's
just that the way the error is reported (due to set -e) is a bit harsh.

Ack. It should not occur with "-p" though.

Agreed, I was focusing on first experience for users essentially.

What about this ?

$ ./run-tests.sh
No toolchain found in /home/willy/.cache/crosstools/gcc-13.2.0-nolibc/i386-linux.
Did you install the toolchains or set the correct arch ? Rerun with -h for help.
Aborting...

or anything similar, achieved by this patch (warning copy-paste, mangled
indents):

diff --git a/tools/testing/selftests/nolibc/run-tests.sh b/tools/testing/selftests/nolibc/run-tests.sh
index e7ecda4ae796..0f67e80051dc 100755
--- a/tools/testing/selftests/nolibc/run-tests.sh
+++ b/tools/testing/selftests/nolibc/run-tests.sh
@@ -143,6 +143,13 @@ test_arch() {
arch=$1
ct_arch=$(crosstool_arch "$arch")
ct_abi=$(crosstool_abi "$1")
+
+ if [ ! -d "${download_location}gcc-${crosstool_version}-nolibc/${ct_arch}-${ct_abi}/bin/." ]; then
+ echo "No toolchain found in ${download_location}gcc-${crosstool_version}-nolibc/${ct_arch}-${ct_abi}."
+ echo "Did you install the toolchains or set the correct arch ? Rerun with -h for help."
+ return 1
+ fi
+
cross_compile=$(realpath "${download_location}gcc-${crosstool_version}-nolibc/${ct_arch}-${ct_abi}/bin/${ct_arch}-${ct_abi}-")
build_dir="${build_location}/${arch}"
if [ "$werror" -ne 0 ]; then

Looks good.

OK thanks, I'll try to handle it this week-end if I'm not beaten to
it. If you or Shuah want to merge it before, feel free to, no offense
on my side!


Sounds good. My system is back to a good state with the tests after running
./run-tests.sh -p -m user

My guess is my setup was lost when I upgraded my system.

Makes sense.

FWIW I've just pushed the patch above to nolibc-next. Since it's not a
result of a change of the last PR, there's no need to udpate it I think,
it can easily wait for the next one (it's just a help message after all).


Sounds good. We can add this later too during the release cycle for one
of the rcs.

During the tests I've also got caught with -d which needs a trailing slash
otherwise doesn't concatenate directories correctly. I don't know if that's
intentional or not so I didn't change it (and it's not important either).


It is good to fix this and give more information to users.

thanks,
-- Shuah