autoconf
[Top][All Lists]
Advanced

[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

Attachment: testdirs.tar.gz
Description: application/compressed-tar


reply via email to

[Prev in Thread] Current Thread [Next in Thread]