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
Attachment:
testdirs.tar.gz
Description: application/compressed-tar