Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/lib/libc/time
In article <20131226220940.GA24247%snowdrop.l8s.co.uk@localhost>,
David Laight <david%l8s.co.uk@localhost> wrote:
>On Thu, Dec 26, 2013 at 01:34:28PM -0500, Christos Zoulas wrote:
>> Module Name: src
>> Committed By: christos
>> Date: Thu Dec 26 18:34:28 UTC 2013
>...
>> f:
>> The types of the global variables 'timezone' and 'altzone' (if present)
>> have been changed back to 'long'. This is required for 'timezone'
>> by POSIX, and for 'altzone' by common practice, e.g., Solaris 11.
>> These variables were originally 'long' in the tz code, but were
>> mistakenly changed to 'time_t' in 1987; nobody reported the
>> incompatibility until now. The difference matters on x32, where
>> 'long' is 32 bits and 'time_t' is 64. (Thanks to Elliott Hughes.)
>
>Doesn't that completely break binary compatibility for any applications
>that access them as 64bit data items on 32bit systems?
>
>On i386 (and other le systems) this can be fixed be ensuring there
>are 4 zero bytes following the data.
>In sparc (and other be systems) it requires renaming of the symbol itself.
>I presume such a rename was done when time_t was extended to 64bits?
It does not really matter. "timezone" was left as long (we never changed it),
the last time "altzone" was used was BC.
christos
Home |
Main Index |
Thread Index |
Old Index