Re: [PATCH v6 8/8] selftests/nolibc: customize CROSS_COMPILE for 32/64-bit powerpc

From: Willy Tarreau
Date: Sat Aug 05 2023 - 16:49:09 EST


On Sun, Aug 06, 2023 at 02:47:09AM +0800, Zhangjin Wu wrote:
> The little-endian powerpc64le compilers provided by Ubuntu and Fedora
> are able to compile big endian kernel and big endian nolibc-test [1].

FWIW I'm wondering why focusing on these ones which have a different
naming from the other ones, when I think that most users rely on the
ones maintained by Arnd there:

https://mirrors.edge.kernel.org/pub/tools/crosstool/

Yours is called powerpc64le while the one above is "powerpc64", it
requires to make an exception for this one, I find this a bit odd.

If someone wants to use their distro's cross toolchain, that's fine,
but I think that it will depend on distros anyway and some may not
even be provided (like loongarch) so I think it would make more sense
to adopt the canonical naming from Arnd's toolchains above.

It's not critical, but as you showed below, it makes building for ppc
a little bit cumbersome: those "export" lines could be dropped when
using the default names, and that's what we should document as the
recommended way to test:

> For example, it is able to build 64-bit nolibc-test with the big endian
> powerpc64-linux-gcc crosstool from [2]:
>
> $ wget -c https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.1.0/x86_64-gcc-13.1.0-nolibc-powerpc64-linux.tar.xz
> $ tar xvf x86_64-gcc-13.1.0-nolibc-powerpc64-linux.tar.xz
> $ export PATH=$PWD/gcc-13.1.0-nolibc/powerpc64-linux/bin/:$PATH
>
> $ export CROSS_COMPILE_ppc=powerpc64-linux-
> $ export CROSS_COMPILE_ppc64=powerpc64-linux-
> $ export CROSS_COMPILE_ppc64le=powerpc64-linux-
> $ for arch in ppc ppc64 ppc64le; do \
> make run-user XARCH=$arch | grep "status: "; \
> done

Any opinion on this ?

Thanks,
Willy