bug-gnulib
[Top][All Lists]
Advanced

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

Re: [PATCH] largefile: port to C++


From: Sam James
Subject: Re: [PATCH] largefile: port to C++
Date: Wed, 24 Apr 2024 23:53:28 +0100
User-agent: mu4e 1.12.4; emacs 30.0.50

Paul Eggert <eggert@cs.ucla.edu> writes:

> This patch is mostly taken from Autoconf master.
> * m4/largefile.m4 (AC_SYS_YEAR2038_RECOMMENDED):
> Undefine if unpatched Autoconf 2.72 or earlier, so that
> later code will redefine it.
> The remaining part of this patch is from Autoconf master.
> (_AC_SYS_YEAR2038_PROBE, _AC_SYS_LARGEFILE_PROBE):
> Put "$CCFLAGS" in diagnostics, not "$CC".
> (_AC_SYS_LARGEFILE_OPTIONS): Omit -n32.
> (AC_SYS_LARGEFILE_PROBE): Fiddle with CPPFLAGS, not CC.
> Do not worry about -n32.
> ---
>  ChangeLog       | 12 ++++++++++++
>  m4/largefile.m4 | 33 ++++++++++++++++++++-------------

Please crank serial.

>  2 files changed, 32 insertions(+), 13 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index 6564e09ac5..676aaef0be 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,5 +1,17 @@
>  2024-04-24  Paul Eggert  <eggert@cs.ucla.edu>
>  
> +     largefile: port to C++
> +     This patch is mostly taken from Autoconf master.
> +     * m4/largefile.m4 (AC_SYS_YEAR2038_RECOMMENDED):
> +     Undefine if unpatched Autoconf 2.72 or earlier, so that
> +     later code will redefine it.
> +     The remaining part of this patch is from Autoconf master.
> +     (_AC_SYS_YEAR2038_PROBE, _AC_SYS_LARGEFILE_PROBE):
> +     Put "$CCFLAGS" in diagnostics, not "$CC".
> +     (_AC_SYS_LARGEFILE_OPTIONS): Omit -n32.
> +     (AC_SYS_LARGEFILE_PROBE): Fiddle with CPPFLAGS, not CC.
> +     Do not worry about -n32.
> +
>       c32srtombs,mbsrtoc32s,mbsrtowcs,wcsrtombs: pacify GCC 14
>       * lib/c32srtombs-state.c (_gl_c32srtombs_state):
>       * lib/mbsrtoc32s-state.c (_gl_mbsrtoc32s_state):
> diff --git a/m4/largefile.m4 b/m4/largefile.m4
> index cf97e986a3..2f824089b0 100644
> --- a/m4/largefile.m4
> +++ b/m4/largefile.m4
> @@ -26,9 +26,20 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
>   ]])
>  )
>  
> +dnl Remove AC_SYS_YEAR2038_RECOMMENDED if unpatched Autoconf 2.72 or earlier.
> +dnl Autoconf 2.72 still uses -n32, which is not a C preprocessor option,
> +dnl and which was useful only on IRIX which is no longer supported.
> +dnl This should be fixed in Autoconf 2.73.
> +m4_ifdef([AC_SYS_YEAR2038_RECOMMENDED],
> +  [m4_bmatch(m4_ifdef([_AC_SYS_LARGEFILE_OPTIONS],
> +               [m4_defn([_AC_SYS_LARGEFILE_OPTIONS])],
> +               ["-n32"]),
> +     ["-n32"],
> +       [m4_undefine([AC_SYS_YEAR2038_RECOMMENDED])])])
> +
>  m4_ifndef([AC_SYS_YEAR2038_RECOMMENDED], [
> -# Support AC_SYS_YEAR2038_RECOMMENDED and related macros, even if
> -# Autoconf 2.71 or earlier.  This code is taken from Autoconf master.
> +# Fix up AC_SYS_YEAR2038_RECOMMENDED and related macros, even if
> +# unpatched Autoconf 2.72 or earlier.  This code is taken from Autoconf 
> master.
>  
>  # _AC_SYS_YEAR2038_TEST_CODE
>  # --------------------------
> @@ -77,7 +88,7 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
>  # If you change this macro you may also need to change
>  # _AC_SYS_YEAR2038_OPTIONS.
>  AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
> -[AC_CACHE_CHECK([for $CC option for timestamps after 2038],
> +[AC_CACHE_CHECK([for $CPPFLAGS option for timestamps after 2038],
>    [ac_cv_sys_year2038_opts],
>    [ac_save_CPPFLAGS="$CPPFLAGS"
>    ac_opt_found=no
> @@ -207,7 +218,6 @@ m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
>      ["none needed"]                   dnl Most current systems
>      ["-D_FILE_OFFSET_BITS=64"]        dnl X/Open LFS spec
>      ["-D_LARGE_FILES=1"]              dnl 32-bit AIX 4.2.1+, 32-bit z/OS
> -    ["-n32"]                          dnl 32-bit IRIX 6, SGI cc (obsolete)
>  ))
>  
>  # _AC_SYS_LARGEFILE_PROBE
> @@ -224,25 +234,25 @@ m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
>  # If you change this macro you may also need to change
>  # _AC_SYS_LARGEFILE_OPTIONS.
>  AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
> -[AC_CACHE_CHECK([for $CC option to enable large file support],
> +[AC_CACHE_CHECK([for $CPPFLAGS option for large files],
>    [ac_cv_sys_largefile_opts],
> -  [ac_save_CC="$CC"
> +  [ac_save_CPPFLAGS=$CPPFLAGS
>    ac_opt_found=no
>    for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
>      AS_IF([test x"$ac_opt" != x"none needed"],
> -      [CC="$ac_save_CC $ac_opt"])
> +      [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
>      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
>       [AS_IF([test x"$ac_opt" = x"none needed"],
>       [# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
> -      CC="$CC -DFTYPE=ino_t"
> +      CPPFLAGS="$CPPFLAGS -DFTYPE=ino_t"
>        AC_COMPILE_IFELSE([], [],
> -        [CC="$CC -D_FILE_OFFSET_BITS=64"
> +        [CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
>           AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])])
>        ac_cv_sys_largefile_opts=$ac_opt
>        ac_opt_found=yes])
>      test $ac_opt_found = no || break
>    done
> -  CC="$ac_save_CC"
> +  CPPFLAGS=$ac_save_CPPFLAGS
>    dnl Gnulib implements large file support for native Windows, based on the
>    dnl variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE.
>    m4_ifdef([gl_LARGEFILE], [
> @@ -272,9 +282,6 @@ AS_CASE([$ac_cv_sys_largefile_opts],
>      [AC_DEFINE([_LARGE_FILES], [1],
>        [Define to 1 on platforms where this makes off_t a 64-bit type.])],
>  
> -  ["-n32"],
> -    [CC="$CC -n32"],
> -
>    [AC_MSG_ERROR(
>      [internal error: bad value for \$ac_cv_sys_largefile_opts])])



reply via email to

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