Several years back I could not find a Linux/BSD system that was ready for the year 2038:
https://en.wikipedia.org/wiki/Year_2038_problem
Here is my simple shell script to test the problem:
Code:
#! /bin/sh
set -x
touch -t 203801181234 y2k38-test
touch -t 203801201234 y2k38-test
ls -al y2k38-test
The code first changes the date on a file to 2038-01-18, something which still works on
32-bit systems.
Then it tries to set the date to 2038-01-20 which only works on Y2K38 compliant systems.
With time I found that some 64-bit system work but some "64-bit" systems fail.
64-bit Linux (Slackware, RedHat) and 64-bit FreeBSD systems seem to work and be Y2K38 compliant:
Code:
$ bin/y2k38.sh
+ touch -t 203801181234 y2k38-test
+ touch -t 203801201234 y2k38-test
+ ls -al y2k38-test
-rw-r--r-- 1 john doe 0 Jan 20 2038 y2k38-test
$ uname -srvm
Linux 3.2.13 #2 SMP Sat Mar 24 03:43:56 CDT 2012 x86_64
64-bit OpenBSD and 64-bit NetBSD systems do not seem to work:
Code:
$ bin/y2k38.sh
+ touch -t 203801181234 y2k38-test
+ touch -t 203801201234 y2k38-test
touch: out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS]
+ ls -altr y2k38-test
-rw-r--r-- 1 john doe 0 Jan 18 12:34 y2k38-test
$ uname -srvm
OpenBSD 5.0 GENERIC.MP#63 amd64
The problem with 64-bit OpenBSD and 64-bit NetBSD is probably that the default file systems are only 32-bits...
Does anyone know if OpenBSD and/or NetBSD are being changed to have a Y2K38 compliant file system for a default install?