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

Re: another attempt at Y2038



Hi Helmut, all,

On Tue, Oct 18, 2022 at 12:48:25PM +0200, Helmut Grohne wrote:
> Then the libprelude build failed with symbol issues. It happens to build
> a C++ library and its symbols are dependent on time types. Unsurprising.
> This is a case where we do break ABI.

> Then it occured to me that not failing does not imply not being affected
> right? You can break ABI without failing the build. So as a detection
> method this has a significant risk of false negatives.

> For just bootstrapping an incompatible time64 armhf, this method should
> mostly just work. Would someone like to have the resulting .debs? What
> would do with them?

This is good.  One thing that I think has been missing from the discussion
about armhf rebootstrap is the fact that we do have experience in Debian
doing cross-cutting ABI transitions without having to change an
architecture name.  We've done this at least three times in Debian history:
the libc5->libc6 transition ('g' suffix - which still remains today in
libpam0g!), the GCC 4.0 C++ ABI transition ('c2' suffix), and the 'long
double' transition ('ldbl' suffix, and an example of doing this for an ABI
transition that didn't affect all architectures).

The first of these didn't require analysis, we knew all shared libraries
were affected (and Debian was much smaller then).

The second required analysis but it was easy because the C++ ABI is very
visible in ELF symbols.

The third is the best analogue to the time_t situation, because it involved
changing the size of a type that could appear not just in ABIs of C++
libraries, but also C libraries.

And we did manage to survive that intact! 
https://lists.debian.org/debian-devel/2007/05/msg01173.html


Nowadays, I wonder if abi-compliance-checker would be usable for analyzing
the ABIs of C libraries to accurately identify what needs to change for
time64_t.  I think it would be interesting to know from this how many shared
libraries expose time_t size in their ABIs.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: PGP signature


Reply to: