[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: remaining tasks before Autoconf release
From: |
Bruno Haible |
Subject: |
Re: remaining tasks before Autoconf release |
Date: |
Thu, 20 Apr 2023 18:02:31 +0200 |
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
Description: application/compressed-tar
- Re: AC_SYS_LARGEFILE_REQUIRED vs. AC_SYS_YEAR2038_REQUIRED on MSVC, (continued)