bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tests/time01.at failing on i586, ppc and armv7l


From: Bernhard Voelker
Subject: Re: tests/time01.at failing on i586, ppc and armv7l
Date: Fri, 15 Oct 2021 08:36:33 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.2

[+Danilo (=downstream maintainer)]

Hi Paul,

On 10/13/21 23:58, Paul Eggert wrote:
> On 10/13/21 13:57, Bernhard Voelker wrote:
> 
>> Is it possible that newer touch(1) from coreutils-9.0 supports more of the 
>> tricky timestamps
>> which tar-1.34 still fails to grok?
> 
> 
> I guess that coreutils was built with 64-bit time_t, but the compiler or 
> development library for some reason doesn't support 64-bit time_t. 
> Perhaps a coreutils/glibc mismatch? You'll need glibc 2.34 or later on 
> platforms like i586 where time_t is traditionally 32-bit but recent 
> Linux kernels have support for 64-bit time_t (this is true for 32-bit 
> x86 and ARM; I don't know about 32-bit PPC).
> 
> To pass the tests you can build on a 32-bit-only system, with a 
> coreutils that does not support 64-bit time_t, so that the 'tar' tests 
> don't attempt to try file timestamps past the year 2038.
> 
> I suppose we could modify GNU tar's tests so that it doesn't attempt to 
> try these post-2038 timestamps on 32-bit builds. However, it might be 
> better to leave those tests alone, to remind people to be wary of 
> building 32-bit time_t apps with the clock ticking away towards the year 
> 2038 (when these apps will stop working).
> 
> Since GNU tar is a core GNU app, I expect that it should use the same 
> year2038 module that coreutils does, to underscore the importance of 
> being year-2038 safe. So I added the year2038 module to the 
> gnulib.modules files of paxutils and tar on Savannah. If you build from 
> bleeding-edge tar and don't want 64-bit time_t, you can configure with 
> --disable-year2038 (though the tests you mention will still fail if 
> coreutils is 64-bit).

Thanks for the clarification.
We'll exempt that test on those platforms for now.

One remark: it seems surprising that `tar -c` succeeds, and only the
later `tar -d` complains, because both supposedly do a stat().
I didn't look into the code, so I assume that -c is constraining
the values silently into the valid range, doesn't it?

Have a nice day,
Berny



reply via email to

[Prev in Thread] Current Thread [Next in Thread]