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