Next: , Previous: , Up: Native Windows Support   [Contents][Index]


13.5 Avoiding the year 2038 problem

The “year 2038 problem” denotes unpredictable behaviour of programs that will likely occur in the year 2038, for programs that use a 32-bit ‘time_t’ type. See https://en.wikipedia.org/wiki/Year_2038_problem for details.

The Gnulib module ‘year2038’ attempts to avoid this problem, by ensuring that time_t is a 64-bit type and by causing configure to fail otherwise.

The Gnulib module ‘largefile’ also attempts to avoid this problem when possible, because ‘largefile’ enables the widest file-related types supported by the system and time_t is one of those types. However, largefile does not cause configure to fail when the year 2038 problem is not avoidable.

The Gnulib ‘largefile’ and ‘year2038’ modules are recommended for any package that might be used after the year 2038 on 32-bit platforms. However, if you build such a package you can disable its use of 64-bit time_t by giving the --disable-year2038 option to configure. This may be useful if the package links to other libraries whose user-facing ABIs still require time_t to be 32-bit on your platform.