On 2017-07-15, Matthias Hanft <m...@hanft.de> wrote:
> Grant Edwards wrote:
>> 
>> Well, the return type for time() changed from "int" (or was it long?)
>> to "time_t" many years back.  That said, the actual underlying
>> representation has never changed on 32-bit Linux systems.  Posix
>> requires it to be signed, and on 32-bit Linux systems, it's still
>> going to overflow in 2038 -- same as it ever was.
>
> This is correct:
>
> mh@n ~ $ date -u -d @2147483647
> Tue Jan 19 03:14:07 UTC 2038
> mh@n ~ $ date -u -d @2147483648
> date: invalid date '@2147483648'
>
><crystal ball mode>Will there be any fix until then, or will I have
> to reinstall all my 32bit Gentoo systems with 64bit kernels?</crystal
> ball mode>
>
> Is there actually a "how-to" to replace a 32-bit-Gentoo by a 64-bit-
> Gentoo?

This is the easy way:

 1) Back up user data (e.g. home directories) and system config files
    (e.g. /etc/)
 
 2) Install from scratch
 
 3) restore user data and config files.

> Do I have to format the harddisk (and rebuild everything from
> scratch), oder can I just keep all the (postfix, apache...) configuration
> in /etc, all my personal stuff in /usr/local and all the data in /var
> and just install a 64-bit kernel in /boot? (Of course, with all its
> dependencies like kernel modules and "system-near" binaries and all
> that.)

It's not just the kernel.  If you want to avoid the 32-bit time
problem, then you need to re-install all of the user-space librairies
and binary exectuables that use the time() libc function.

--
Grant



Reply via email to