[Y2038] Question about porting y2038-tests to glibc

Lukasz Majewski lukma@denx.de
Wed Nov 4 11:37:30 GMT 2020


Hi, 

> Hi Carlos, Joseph,
> 
> > On 10/30/20 1:08 PM, Joseph Myers wrote:  
> > > On Fri, 30 Oct 2020, Carlos O'Donell via Libc-alpha wrote:
> > >     
> > >> My technical opinion is as follows:
> > >>
> > >> * We should be open to expanding what build-many-glibcs.py does,
> > >>   and providing options to select which operations are carried
> > >>   out, including new QEMU tests.
> > >>
> > >> * Using QEMU user is OK in build-many-glibcs.py, but there may be
> > >>   false positives due to QEMU emulation of syscalls because of
> > >> the host kernel.
> > >>
> > >> * Using QEMU system in build-many-glibcs.py is even better, and
> > >>   would be a gold standard IMO.    
> > > 
> > > Options for those would be reasonable (they'd need to do the QEMU
> > > tests only for the subset of architectures and ABIs supported with
> > > QEMU), but getting to a clean baseline for even one of the
> > > supported glibc ABIs (thus, if using QEMU user emulation,
> > > annotating all the tests that might fail in such a configuration,
> > > reliably or randomly, because they use functionality such as
> > > threads and signals that's problematic for userspace QEMU - as
> > > well as the general matter of execution tests that may not
> > > reliably pass for all configurations) would probably be a lot of
> > > work. And a clean baseline is much better than needing to track
> > > known test failures individually.    
> >  
> > I agree.
> > 
> > I would accept QEMU usage in build-many-glibcs.py, and I also agree
> > that such checks must have a clean baseline.
> > 
> > Lukasz, Does this give you enough direction to pursue a solution?
> >   
> 
> Yes. I think that we now have a good foundation to investigate the
> possible solution.
> 
> Now, I do need to check if recent qemu-arm supports emulation of 64
> bit time related syscalls (e.g. clock_settime64) in the "user mode".

It looks like the "user mode" will not help us much. It adjust received
from target syscalls and pass them to host.

This means that clock_settime64 will adjust host time.

It now looks to me that the most feasible solution would be to use
./cross-test-ssh.sh script with QEMU emulated ARM system [1].

I do use there sshfs to mount glibc build directory. In terms of
performance it could be replaced with NFS or I could use ssh to execute
test program (built with e.g. -static) and get result.

Links:
[1] - https://github.com/lmajewski/meta-y2038/

> 
> 
> Best regards,
> 
> Lukasz Majewski
> 
> --
> 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
> lukma@denx.de




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 484 bytes
Desc: OpenPGP digital signature
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20201104/be7d0b71/attachment.sig>


More information about the Libc-alpha mailing list