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