[PATCH v5 00/17] glibc port for 32-bit RISC-V (RV32)

Alistair Francis alistair23@gmail.com
Tue Aug 25 18:15:06 GMT 2020


On Mon, Aug 24, 2020 at 11:17 AM Maciej W. Rozycki <macro@wdc.com> wrote:
>
> On Mon, 24 Aug 2020, Alistair Francis wrote:
>
> > >  Would you be able to see if there is any interesting information in the
> > > respective .out files and/or the overall test log?
> >
> > Yep, see below for the RV32 failure logs:
> >
> > elf/tst-libc_dlvsym.out
> > error: tst-libc_dlvsym.h:103: symbol _sys_errlist not found at any version
> > error: 1 test failures
> >
> > elf/tst-libc_dlvsym-static.out
> > error: tst-libc_dlvsym.h:103: symbol _sys_errlist not found at any version
>
>  Well, we have this in NEWS:
>
> * The deprecated symbols sys_errlist, _sys_errlist, sys_nerr, and _sys_nerr
>   are no longer available to newly linked binaries, and their declarations
>   have been removed from from <stdio.h>.  They are exported solely as
>   compatibility symbols to support old binaries.  All programs should use
>   strerror or strerror_r instead.
>
> so it looks like a test case bug to me; the symbol is expected not to be
> there given that we have no compatibility with previous library versions
> to take care of.  Not a showstopper for RV32 inclusion IMO.

Yep, it looks like this is a test failure. I'll send a patch out now with a fix.

>
> > io/tst-lockf.out
> > error: subprocess failed: lockf
> > error:   unexpected output from subprocess
> > tst-lockf.c:49: numeric comparison failure
> >    left: 0 (0x0); from: lockf (temp_fd, F_TEST, 1024)
> >   right: -1 (0xffffffff); from: -1
> > error: 2 test failures
>
>  This might be more interesting to look into further; as `len' is of the
> `off_t' type it would be good to double-check it is correctly handled.

I have fixed this as well, the test is incorrectly calling the lockf()
function (not 64-bit version). I'll send a patch.

With these three fixed we now have the same two failures as RV64 :)

Alistair

>
> > stdlib/tst-strfrom.out
> > Testing in locale: C
> > strfromf: got NAN (3), expected -NAN (4)
> > strfromf32: got NAN (3), expected -NAN (4)
> > Testing in locale: en_US.ISO-8859-1
> > strfromf: got NAN (3), expected -NAN (4)
> > strfromf32: got NAN (3), expected -NAN (4)
> > Testing in locale: en_US.UTF-8
> > strfromf: got NAN (3), expected -NAN (4)
> > strfromf32: got NAN (3), expected -NAN (4)
> >
> > stdlib/tst-strfrom-locale.out
> > Testing in locale: de_DE.UTF-8
> > strfromf: got NAN (3), expected -NAN (4)
> > strfromf32: got NAN (3), expected -NAN (4)
> > Testing in locale: tr_TR.ISO-8859-9
> > strfromf: got NAN (3), expected -NAN (4)
> > strfromf32: got NAN (3), expected -NAN (4)
> > Testing in locale: tr_TR.UTF-8
> > strfromf: got NAN (3), expected -NAN (4)
> > strfromf32: got NAN (3), expected -NAN (4)
> >
> > I'm assuming that stdlib/tst-strfrom and stdlib/tst-strfrom-locale are
> > just related to QEMU FP bugs, as they fail for both RV32 and RV64.
>
>  Agreed, and in any case RV32 does not perform any worse than RV64.  Of
> course it would be good to look into it anyway, but it shouldn't be a
> showstopper for RV32 inclusion IMO.
>
> > > > NOTE: This doesn't include the failing maths tests (that is an issue
> > > > only when running on QEMU) or the PLT issue for RISC-V 32-bit.
> > >
> > >  Ack.  Can you check if the PLT issue has been fixed with
> > > <https://sourceware.org/pipermail/binutils/2020-August/112750.html>?
> >
> > Yes, using the latest binutils with those patches applied seems to fix
> > the PLT failures.
>
>  Good to know, thanks for confirming.  So I guess we can ignore the PLT
> check failure and expect anyone caring about clean results to use most up
> to date binutils once the fix has been included (and until then use the
> patch applied locally).
>
>  I've cc-ed Nelson to give him some incentive to upstream his fix quickly.

Thanks.

Alistair

>
>   Maciej


More information about the Libc-alpha mailing list