autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AC_SYS_LARGEFILE_REQUIRED vs. AC_SYS_YEAR2038_REQUIRED on MSVC


From: Bruno Haible
Subject: AC_SYS_LARGEFILE_REQUIRED vs. AC_SYS_YEAR2038_REQUIRED on MSVC
Date: Fri, 14 Apr 2023 18:02:53 +0200

When I create a gnulib testdir with the an AC_SYS_LARGEFILE_REQUIRED
invocation:
  ./gnulib-tool --create-testdir --dir=... --single-configure 
largefile-required stat
it configures and builds fine on MSVC (both 64-bit and 32-bit).

That is OK because the AC_SYS_LARGEFILE[_REQUIRED] macro sets the
variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE, which are then
AC_SUBSTed by the 'stat' module, and the Gnulib code of the 'stat'
module uses the value of WINDOWS_64_BIT_ST_SIZE to do the right thing.

Also, don't be confused by the 'configure' output that contains:
  checking for /home/bruno/msvc/compile cl -nologo option to enable large file 
support... support not detected
  ...
  checking for 64-bit off_t... no
  checking for 64-bit st_size... no
This output means that at the Autoconf level, the Unix way of just adding
a -D option did not work out. But with Gnulib, large file support *is* enabled.


On the other hand, when I create a gnulib testdir with an
AC_SYS_YEAR2038_REQUIRED invocation:
  ./gnulib-tool --create-testdir --dir=... --single-configure year2038-required 
stat
it fails during the configure stage on MSVC (both 64-bit and 32-bit):

  checking for /home/bruno/msvc/compile cl -nologo option to enable large file 
support... support not detected
  configure: error: in `/home/bruno/testdir7/build-msvc32':
  configure: error: support for large files is required
  See `config.log' for more details

This is wrong, because it is not consistent with the way
AC_SYS_LARGEFILE_REQUIRED works.

Like AC_SYS_LARGEFILE_REQUIRED, it should allow Gnulib to do the right thing
by obeying the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE.


Also, maybe it is necessary to distinguish the use of these two Autoconf
macros without and with Gnulib?
  - Without Gnulib, they could both fail on MSVC.
  - But with Gnulib, they should both succeed on MSVC.

Bruno






reply via email to

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