Re: remaining tasks before Autoconf release

Bruno Haible <[email protected]>
Newsgroups gmane.comp.lib.gnulib.bugs,gmane.comp.sysutils.autoconf.general
Message-ID <4452642.8F6SAcFxjW@nimes>
Hi Paul,

> I used the macro name AC_SYS_YEAR2038_RECOMMENDED instead, as I found 
> the "OPT_OUT" name confusing

Sounds good.

> I got rid 
> of AC_SYS_LARGEFILE_RECOMMENDED as it's one less thing to test before a 
> release and nobody appears to need that new macro.

Indeed. If some people create (embedded?) systems where files > 2 GiB are
not supported, it will be the same problem in 10 years and now as it was
10 years ago; so, these people are likely aware of it and don't need a
reminder.

> Attached are proposed patches to do something along those lines, the 
> first for Autoconf and the second to propagate this change into Gnulib. 

On the Gnulib side, I reviewed the documentation changes. They look all fine.

On the Autoconf side, I created dummy projects for testing (attached):
- hello-lf invokes AC_SYS_LARGEFILE
- hello-2038 invokes AC_SYS_YEAR2038
- hello-2038rc invokes AC_SYS_YEAR2038_RECOMMENDED

Here are my test results. I'll describe the TODOs below.


==== hello-lf ====

glibc x86_64
checking for gcc option to enable large file support... none needed

glibc x86 2.35
checking for i686-linux-gnu-gcc-11 option to enable large file support... -D_FILE_OFFSET_BITS=64

glibc x86 2.27
checking for gcc option to enable large file support... -D_FILE_OFFSET_BITS=64

mingw x86
checking for i686-w64-mingw32-gcc option to enable large file support... -D_FILE_OFFSET_BITS=64

msvc x86
checking for /home/bruno/msvc/compile cl -nologo option to enable large file support... support not detected

==== hello-2038 ====

glibc x86_64
checking for gcc option to enable large file support... none needed
checking for gcc option for timestamps after 2038... none needed

glibc x86 2.35
checking for i686-linux-gnu-gcc-11 option to enable large file support... -D_FILE_OFFSET_BITS=64
checking for i686-linux-gnu-gcc-11 option for timestamps after 2038... -D_TIME_BITS=64

glibc x86 2.27
checking for gcc option to enable large file support... -D_FILE_OFFSET_BITS=64
TODO: checking for gcc option for timestamps after 2038... support not detected

mingw x86
checking for i686-w64-mingw32-gcc option to enable large file support... -D_FILE_OFFSET_BITS=64
checking for i686-w64-mingw32-gcc option for timestamps after 2038... -D__MINGW_USE_VC2005_COMPAT

msvc x86
checking for /home/bruno/msvc/compile cl -nologo option to enable large file support... support not detected
checking for /home/bruno/msvc/compile cl -nologo option for timestamps after 2038... none needed

==== hello-2038rc ====

glibc x86_64
checking for gcc option to enable large file support... none needed
checking for gcc option for timestamps after 2038... none needed

glibc x86 2.35
checking for i686-linux-gnu-gcc-11 option to enable large file support... -D_FILE_OFFSET_BITS=64
checking for i686-linux-gnu-gcc-11 option for timestamps after 2038... -D_TIME_BITS=64

glibc x86 2.27
checking for gcc option to enable large file support... -D_FILE_OFFSET_BITS=64
TODO: checking for gcc option for timestamps after 2038... support not detected
TODO: Support for timestamps after 2038 was not detected, please use option --disable-year2038 to continue building this package.

mingw x86
checking for i686-w64-mingw32-gcc option to enable large file support... -D_FILE_OFFSET_BITS=64
checking for i686-w64-mingw32-gcc option for timestamps after 2038... -D__MINGW_USE_VC2005_COMPAT

msvc x86
checking for /home/bruno/msvc/compile cl -nologo option to enable large file support... support not detected
checking for /home/bruno/msvc/compile cl -nologo option for timestamps after 2038... none needed


I see two issues:

1) For AC_SYS_YEAR2038 and AC_SYS_YEAR2038_RECOMMENDED, when run on a 32-bit
platform (x86) with glibc < 2.34, there is no
  checking for <$CC> option for timestamps after 2038...
line in the output. It _looks_like_ the macro was not invoked or did no
checks. This is quite confusing for a developer who wants to understand what
happened.
Suggestion: Print
  checking for gcc option for timestamps after 2038... support not detected

2) AC_SYS_YEAR2038_RECOMMENDED behaves identically to AC_SYS_YEAR2038.
When run on a 32-bit platform (x86) with glibc < 2.34, I think we agreed
(and you documented in the Gnulib patch) that AC_SYS_YEAR2038_RECOMMENDED
should have the effect that
  - configure fails,
  - before failing it prints a message such as:
      Support for timestamps after 2038 was not detected.
      Please use option --disable-year2038 to continue building this package.

Bruno
testdirs.tar.gz (application/x-compressed-tar, 233.6 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.