[Top][All Lists]
[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])])
+ ])
- using AC_COMPUTE_INT,
Bruno Haible <=