Re: [PATCH] tools/nolibc: add 64-bit parisc support
From: Thomas Weißschuh
Date: Tue Aug 25 2026 - 12:39:08 EST
On 2026-08-24 09:19:58+0100, David Laight wrote:
> On Thu, 20 Aug 2026 11:32:50 +0200
> Thomas Weißschuh <linux@xxxxxxxxxxxxxx> wrote:
>
> > Extend the existing parisc support to also handle 64-bit mode.
> >
> > Some peculiarities:
> > * The nonstandard ftruncate64 system call requires a workaround.
> > * The linker defaults to main() as entry point, which needs to be
> > switched to _start() explicitly.
> > * The linker defaults to dynamic linking, which needs to be disabled
> > explicitly.
> > * With the default -Os, gcc does not use 64-bit multiplication
> > instructions, requiring libgcc. Use -O2 instead.
> > * There is no qemu-user available.
> > * CONFIG_COMPAT needs to be disabled to avoid build errors due to a
> > missing 32-bit vDSO compiler.
> ...
> > diff --git a/tools/testing/selftests/nolibc/run-tests.sh b/tools/testing/selftests/nolibc/run-tests.sh
> > index 3da806e2b302..a50a47d9df2c 100755
> > --- a/tools/testing/selftests/nolibc/run-tests.sh
> > +++ b/tools/testing/selftests/nolibc/run-tests.sh
> > @@ -29,7 +29,7 @@ all_archs=(
> > sparc32 sparc64
> > m68k
> > sh4
> > - parisc32
> > + parisc32 parisc64
> > alpha
> > hexagon
> > )
> > @@ -122,6 +122,7 @@ crosstool_arch() {
> > sparc*) echo sparc64;;
> > x32*) echo x86_64;;
> > parisc32) echo hppa;;
> > + parisc64) echo hppa64;;
> > *) echo "$1";;
> > esac
> > }
> > @@ -206,11 +207,11 @@ test_arch() {
> > exit 1
> > esac
> > printf '%-15s' "$arch:"
> > - if [ "$arch" = "m68k" -o "$arch" = "sh4" -o "$arch" = "openrisc" -o "$arch" = "parisc32" -o "$arch" = "alpha" ] && [ "$llvm" = "1" ]; then
> > + if [ "$arch" = "m68k" -o "$arch" = "sh4" -o "$arch" = "openrisc" -o "$arch" = "parisc*" -o "$arch" = "alpha" ] && [ "$llvm" = "1" ]; then
>
> Would it be better to put the llvm condition first?
Ack, I'll switch this in a preparatory patch.
>
> > echo "Unsupported configuration"
>
> "Unsupported compiler" ?
Not much difference IMO.
> > return
> > fi
> > - if [ "$arch" = "x32" ] && [ "$test_mode" = "user" ]; then
> > + if [ "$arch" = "x32" -o "$arch" = "parisc64" ] && [ "$test_mode" = "user" ]; then
>
> Ditto.
Ack, as above.
Thanks,
Thomas