bug-gnulib
[Top][All Lists]
Advanced

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

Re: [bug-gnulib] inttypes.m4 minor bug fix


From: Bruno Haible
Subject: Re: [bug-gnulib] inttypes.m4 minor bug fix
Date: Mon, 18 Sep 2006 21:31:14 +0200
User-agent: KMail/1.9.1

Mark D. Baushke wrote:
> It is probably a good idea to just quote the variable
> arguments to test in this case to ensure that the
> '=' operator is used in a binary operator context.

I agree with the first line of your patch, but not with the second one.
Blindly putting double-quotes around variable references has the
tendency of sweeping other bugs under the rug (either bugs in gnulib,
or in autoconf).

Actually when looking where the gl_cv_header_inttypes_h variable comes
from and what its possible values are, I found a major bug that I did
on 2006-06-04 and brought into gnulib on 2006-07-22: Two different
macros, gl_HEADER_INTTYPES_H and gl_AC_HEADER_INTTYPES_H, were using
the same cache variable, with different meanings! Apologies.

I now fixed this by removing one of the two macros.

2006-09-18  Bruno Haible  <address@hidden>

        * m4/inttypes-h.m4 (gl_HEADER_INTTYPES_H): Remove macro.
        * m4/inttypes-pri.m4: Require autoconf >= 2.52.
        (gt_INTTYPES_PRI): Invoke AC_CHECK_HEADERS on inttypes.h. Test
        ac_cv_header_inttypes_h instead of gl_cv_header_inttypes_h.
        * m4/gettext.m4: Require autoconf >= 2.52.
        (gt_INTL_SUBDIR_CORE): Invoke AC_CHECK_HEADERS on inttypes.h.
        * m4/inttypes.m4 (gl_INTTYPES_H): Test ac_cv_header_inttypes_h instead
        of gl_cv_header_inttypes_h.
        * modules/inttypes (Files): Remove m4/inttypes-h.m4.

*** m4/inttypes-h.m4    22 Jul 2006 13:17:22 -0000      1.1
--- m4/inttypes-h.m4    18 Sep 2006 19:20:11 -0000
***************
*** 1,25 ****
! # inttypes-h.m4 serial 1 (gettext-0.15)
! dnl Copyright (C) 1997-2002, 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.
! 
! dnl From Paul Eggert.
! 
! # Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
! # <sys/types.h>.
! 
! AC_DEFUN([gl_HEADER_INTTYPES_H],
! [
!   AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h,
!   [
!     AC_TRY_COMPILE(
!       [#include <sys/types.h>
! #include <inttypes.h>],
!       [], gl_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=no)
!   ])
!   if test $gl_cv_header_inttypes_h = yes; then
!     AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
!       [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
!   fi
! ])
--- 1 ----
! /* This file will go away when gettext-0.15.1 is released.  */
*** m4/inttypes-pri.m4  28 Aug 2006 12:54:47 -0000      1.6
--- m4/inttypes-pri.m4  18 Sep 2006 19:20:11 -0000
***************
*** 1,4 ****
! # inttypes-pri.m4 serial 3 (gettext-0.15.1)
  dnl Copyright (C) 1997-2002, 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 ----
! # inttypes-pri.m4 serial 4 (gettext-0.15.1)
  dnl Copyright (C) 1997-2002, 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,
***************
*** 6,18 ****
  
  dnl From Bruno Haible.
  
  # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
  # macros to non-string values.  This is the case on AIX 4.3.3.
  
  AC_DEFUN([gt_INTTYPES_PRI],
  [
!   AC_REQUIRE([gl_HEADER_INTTYPES_H])
!   if test $gl_cv_header_inttypes_h = yes; then
      AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
        gt_cv_inttypes_pri_broken,
        [
--- 6,20 ----
  
  dnl From Bruno Haible.
  
+ AC_PREREQ(2.52)
+ 
  # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
  # macros to non-string values.  This is the case on AIX 4.3.3.
  
  AC_DEFUN([gt_INTTYPES_PRI],
  [
!   AC_CHECK_HEADERS([inttypes.h])
!   if test $ac_cv_header_inttypes_h = yes; then
      AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
        gt_cv_inttypes_pri_broken,
        [
*** m4/gettext.m4       22 Jul 2006 13:18:28 -0000      1.33
--- m4/gettext.m4       18 Sep 2006 19:20:11 -0000
***************
*** 1,4 ****
! # gettext.m4 serial 53 (gettext-0.15)
  dnl Copyright (C) 1995-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 ----
! # gettext.m4 serial 53.1
  dnl Copyright (C) 1995-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,
***************
*** 17,22 ****
--- 17,24 ----
  dnl   Ulrich Drepper <address@hidden>, 1995-2000.
  dnl   Bruno Haible <address@hidden>, 2000-2005.
  
+ AC_PREREQ(2.52)
+ 
  dnl Macro to add for using GNU gettext.
  
  dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
***************
*** 497,503 ****
    AC_REQUIRE([AC_FUNC_MMAP])dnl
    AC_REQUIRE([gt_INTDIV0])dnl
    AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
-   AC_REQUIRE([gl_HEADER_INTTYPES_H])dnl
    AC_REQUIRE([gt_INTTYPES_PRI])dnl
    AC_REQUIRE([gl_LOCK])dnl
  
--- 499,504 ----
***************
*** 507,513 ****
      [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
         [Define to 1 if the compiler understands __builtin_expect.])])
  
!   AC_CHECK_HEADERS([argz.h limits.h unistd.h sys/param.h])
    AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
      stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \
      argz_next __fsetlocking])
--- 508,514 ----
      [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
         [Define to 1 if the compiler understands __builtin_expect.])])
  
!   AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
    AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
      stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \
      argz_next __fsetlocking])
*** m4/inttypes.m4      18 Sep 2006 17:45:51 -0000      1.14
--- m4/inttypes.m4      18 Sep 2006 19:20:11 -0000
***************
*** 24,30 ****
    dnl   - some additional tests.
    gl_cv_header_working_inttypes_h=no
    if test "$gl_cv_header_working_stdint_h" = yes \
!      && test "$gl_cv_header_inttypes_h" = yes \
       && test "$ac_cv_have_decl_imaxabs" = yes \
       && test "$ac_cv_have_decl_imaxdiv" = yes \
       && test "$ac_cv_have_decl_strtoimax" = yes \
--- 24,30 ----
    dnl   - some additional tests.
    gl_cv_header_working_inttypes_h=no
    if test "$gl_cv_header_working_stdint_h" = yes \
!      && test $ac_cv_header_inttypes_h = yes \
       && test "$ac_cv_have_decl_imaxabs" = yes \
       && test "$ac_cv_have_decl_imaxdiv" = yes \
       && test "$ac_cv_have_decl_strtoimax" = yes \
*** modules/inttypes    8 Sep 2006 12:26:35 -0000       1.11
--- modules/inttypes    18 Sep 2006 19:20:11 -0000
***************
*** 4,10 ****
  Files:
  lib/inttypes_.h
  m4/absolute-header.m4
- m4/inttypes-h.m4
  m4/inttypes-pri.m4
  m4/inttypes.m4
  
--- 4,9 ----




reply via email to

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