The <utmp.h> and <utmp.h> headers had a bug that the on-disk structures
defined there could change size on some targets when _TIME_BITS was set
to 64.  This is obviously wrong because the files are not going to
magically change their layout because the application accessing them was
built in a specific way.  We're going to fix this in glibc upstream on
the stable release branches, going all the way back to glibc 3.34 (the
first release with this kind of time64 support).  After the fix, the
_TIME_BITS definition will no longer impact struct layout.  Usually,
that means epoch fields are 32-bits wide, to match co-installable
architectures.

To extend the usable life-time of these interfaces somewhat, glibc 2.40
changes epoch fields to unsigned types in these structures.  This change
is specific to the upcoming glibc 2.40 release, I do not plan to
backport it.

Thanks,
Florian

Reply via email to