bug-gnulib
[Top][All Lists]
Advanced

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

using AC_COMPUTE_INT


From: Bruno Haible
Subject: using AC_COMPUTE_INT
Date: Mon, 27 Nov 2006 15:18:02 +0100
User-agent: KMail/1.9.1

Now that autoconf-2.61 provides AC_COMPUTE_INT, I think the macros should
use it. As long as people are still heavily using 2.59 or 2.60, we need to
provide a fallback.

Users of autoconf-2.60a or -2.60b, please upgrade to 2.61! The signature
of AC_COMPUTE_INT has changed between 2.60a and 2.61.

Opinions?


2006-11-21  Bruno Haible  <address@hidden>

        * m4/eoverflow.m4 (gl_EOVERFLOW): Use AC_COMPUTE_INT instead of
        _AC_COMPUTE_INT.
        (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.
        * m4/ptrdiff_max.m4 (gl_PTRDIFF_MAX): Use AC_COMPUTE_INT instead of
        _AC_COMPUTE_INT.
        (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.
        * m4/size_max.m4 (gl_SIZE_MAX): Use AC_COMPUTE_INT instead of
        _AC_COMPUTE_INT.
        (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.
        * m4/stdint.m4 (gl_STDINT_BITSIZEOF): Use AC_COMPUTE_INT instead of
        _AC_COMPUTE_INT.
        (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.

*** eoverflow.m4.bak    2005-01-18 14:07:56.000000000 +0100
--- eoverflow.m4        2006-11-22 03:58:33.000000000 +0100
***************
*** 1,5 ****
! # eoverflow.m4 serial 1
! dnl Copyright (C) 2004 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
  dnl with or without modifications, as long as this notice is preserved.
--- 1,5 ----
! # eoverflow.m4 serial 2
! dnl Copyright (C) 2004, 2006 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
  dnl with or without modifications, as long as this notice is preserved.
***************
*** 40,46 ****
        if test -n "$have_eoverflow"; then
          dnl EOVERFLOW exists but is hidden.
          dnl Define it to the same value.
!         _AC_COMPUTE_INT([EOVERFLOW], ac_cv_decl_EOVERFLOW, [
  #define _XOPEN_SOURCE_EXTENDED 1
  #include <errno.h>
  /* The following two lines are a workaround against an autoconf-2.52 bug.  */
--- 40,46 ----
        if test -n "$have_eoverflow"; then
          dnl EOVERFLOW exists but is hidden.
          dnl Define it to the same value.
!         AC_COMPUTE_INT([ac_cv_decl_EOVERFLOW], [EOVERFLOW], [
  #define _XOPEN_SOURCE_EXTENDED 1
  #include <errno.h>
  /* The following two lines are a workaround against an autoconf-2.52 bug.  */
***************
*** 62,64 ****
--- 62,70 ----
      AC_SUBST(EOVERFLOW)
    fi
  ])
+ 
+ dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+ dnl Remove this when we can assume autoconf >= 2.61.
+ m4_ifdef([AC_COMPUTE_INT], [], [
+   AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+ ])
*** ptrdiff_max.m4.bak  2003-11-11 12:57:04.000000000 +0100
--- ptrdiff_max.m4      2006-11-22 03:58:34.000000000 +0100
***************
*** 1,5 ****
! # ptrdiff_max.m4 serial 1
! dnl Copyright (C) 2003 Free Software Foundation, Inc.
  dnl This file is free software, distributed under the terms of the GNU
  dnl General Public License.  As a special exception to the GNU General
  dnl Public License, this file may be distributed as part of a program
--- 1,5 ----
! # ptrdiff_max.m4 serial 2
! dnl Copyright (C) 2003, 2006 Free Software Foundation, Inc.
  dnl This file is free software, distributed under the terms of the GNU
  dnl General Public License.  As a special exception to the GNU General
  dnl Public License, this file may be distributed as part of a program
***************
*** 30,44 ****
    if test -z "$result"; then
      dnl Define it ourselves. Here we assume that the type 'ptrdiff_t' is not
      dnl wider than the type 'long'.
!     dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
      dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
!     _AC_COMPUTE_INT([STYPE_MAXIMUM (ptrdiff_t)], res, [
  #include <stddef.h>
  #include <limits.h>
  #define STYPE_MINIMUM(t) (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))
  #define STYPE_MAXIMUM(t) ((t) (~ (t) 0 - STYPE_MINIMUM (t)))
  ], result=?)
!     _AC_COMPUTE_INT([sizeof (ptrdiff_t) <= sizeof (int)], fits_in_int,
        [#include <stddef.h>], result=?)
      if test "$fits_in_int" = 1; then
        dnl Even though PTRDIFF_MAX fits in an int, it must be of type
--- 30,44 ----
    if test -z "$result"; then
      dnl Define it ourselves. Here we assume that the type 'ptrdiff_t' is not
      dnl wider than the type 'long'.
!     dnl The AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
      dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
!     AC_COMPUTE_INT([res], [STYPE_MAXIMUM (ptrdiff_t)], [
  #include <stddef.h>
  #include <limits.h>
  #define STYPE_MINIMUM(t) (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))
  #define STYPE_MAXIMUM(t) ((t) (~ (t) 0 - STYPE_MINIMUM (t)))
  ], result=?)
!     AC_COMPUTE_INT([fits_in_int], [sizeof (ptrdiff_t) <= sizeof (int)],
        [#include <stddef.h>], result=?)
      if test "$fits_in_int" = 1; then
        dnl Even though PTRDIFF_MAX fits in an int, it must be of type
***************
*** 65,67 ****
--- 65,73 ----
        [Define as the maximum value of type 'ptrdiff_t', if the system doesn't 
define it.])
    fi
  ])
+ 
+ dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+ dnl Remove this when we can assume autoconf >= 2.61.
+ m4_ifdef([AC_COMPUTE_INT], [], [
+   AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+ ])
*** size_max.m4.bak     2006-10-21 00:24:19.000000000 +0200
--- size_max.m4 2006-11-22 03:58:34.000000000 +0100
***************
*** 1,4 ****
! # size_max.m4 serial 5
  dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
--- 1,4 ----
! # size_max.m4 serial 6
  dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
***************
*** 26,35 ****
        dnl Define it ourselves. Here we assume that the type 'size_t' is not 
wider
        dnl than the type 'unsigned long'. Try hard to find a definition that 
can
        dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
!       _AC_COMPUTE_INT([sizeof (size_t) * CHAR_BIT - 1], size_t_bits_minus_1,
          [#include <stddef.h>
  #include <limits.h>], size_t_bits_minus_1=)
!       _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], 
fits_in_uint,
          [#include <stddef.h>], fits_in_uint=)
        if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
          if test $fits_in_uint = 1; then
--- 26,35 ----
        dnl Define it ourselves. Here we assume that the type 'size_t' is not 
wider
        dnl than the type 'unsigned long'. Try hard to find a definition that 
can
        dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
!       AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
          [#include <stddef.h>
  #include <limits.h>], size_t_bits_minus_1=)
!       AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned 
int)],
          [#include <stddef.h>], fits_in_uint=)
        if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
          if test $fits_in_uint = 1; then
***************
*** 60,62 ****
--- 60,68 ----
        [Define as the maximum value of type 'size_t', if the system doesn't 
define it.])
    fi
  ])
+ 
+ dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+ dnl Remove this when we can assume autoconf >= 2.61.
+ m4_ifdef([AC_COMPUTE_INT], [], [
+   AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+ ])
*** stdint.m4.bak       2006-10-13 00:10:35.000000000 +0200
--- stdint.m4   2006-11-22 03:58:35.000000000 +0100
***************
*** 1,4 ****
! # stdint.m4 serial 19
  dnl Copyright (C) 2001-2002, 2004-2006 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
--- 1,4 ----
! # stdint.m4 serial 20
  dnl Copyright (C) 2001-2002, 2004-2006 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
***************
*** 229,235 ****
         [Define to the number of bits in type ']gltype['.])])
    for gltype in $1 ; do
      AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
!       [_AC_COMPUTE_INT([sizeof ($gltype) * CHAR_BIT], result,
         [$2
  #include <limits.h>], [result=unknown])
         eval gl_cv_bitsizeof_${gltype}=\$result
--- 229,235 ----
         [Define to the number of bits in type ']gltype['.])])
    for gltype in $1 ; do
      AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
!       [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
         [$2
  #include <limits.h>], [result=unknown])
         eval gl_cv_bitsizeof_${gltype}=\$result
***************
*** 366,368 ****
--- 366,374 ----
    gl_INTEGER_TYPE_SUFFIX([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
      [gl_STDINT_INCLUDES])
  ])
+ 
+ dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+ dnl Remove this when we can assume autoconf >= 2.61.
+ m4_ifdef([AC_COMPUTE_INT], [], [
+   AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+ ])




reply via email to

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