# HG changeset patch # User Paul Eggert # Date 1303778022 25200 # Node ID 3b0090bf54b5bf36ffdc36c635a3f11db34a29a8 # Parent 65c121a5292b8ec2466d89adcdeeb0ef545a31c2 strtoimax, strtoumax: simplify, port to HP-UX 11.00 64-bit This supports apps that need pointers to strtoimax and strtoumax, and ports to HP-UX 11.00 64.bit, which has macros that expand to nonexistent functions. See et seq. * lib/inttypes.in.h (strtoimax, strtoumax): #undef before declaring. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't check whether it's a macro. * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2011-04-25 Paul Eggert + + strtoimax, strtoumax: simplify, port to HP-UX 11.00 64-bit + This supports apps that need pointers to strtoimax and strtoumax, + and ports to HP-UX 11.00 64.bit, which has macros that expand to + nonexistent functions. See + + et seq. + * lib/inttypes.in.h (strtoimax, strtoumax): #undef before declaring. + * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't check whether it's + a macro. + * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. + 2011-04-25 Simon Josefsson * modules/gnumakefile (configure.ac): Replace TAB with SPCs. diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h --- a/lib/inttypes.in.h +++ b/lib/inttypes.in.h @@ -1076,6 +1076,7 @@ #if @GNULIB_STRTOIMAX@ # if !@HAVE_DECL_STRTOIMAX@ +# undef strtoimax extern intmax_t strtoimax (const char *, char **, int) _GL_ARG_NONNULL ((1)); # endif #elif defined GNULIB_POSIXCHECK @@ -1088,6 +1089,7 @@ #if @GNULIB_STRTOUMAX@ # if !@HAVE_DECL_STRTOUMAX@ +# undef strtoumax extern uintmax_t strtoumax (const char *, char **, int) _GL_ARG_NONNULL ((1)); # endif #elif defined GNULIB_POSIXCHECK diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4 --- a/m4/strtoimax.m4 +++ b/m4/strtoimax.m4 @@ -1,4 +1,4 @@ -# strtoimax.m4 serial 8 +# strtoimax.m4 serial 9 dnl Copyright (C) 2002-2004, 2006, 2009-2011 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,16 +6,12 @@ AC_DEFUN([gl_FUNC_STRTOIMAX], [ - AC_CACHE_CHECK([whether defines strtoimax as a macro], - gl_cv_func_strtoimax_macro, - [AC_EGREP_CPP([inttypes_h_defines_strtoimax], [#include -#ifdef strtoimax - inttypes_h_defines_strtoimax -#endif], - gl_cv_func_strtoimax_macro=yes, - gl_cv_func_strtoimax_macro=no)]) + AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) - if test "$gl_cv_func_strtoimax_macro" != yes; then + AC_CHECK_DECLS_ONCE([strtoimax]) + if test "$ac_cv_have_decl_strtoimax" != yes; then + HAVE_DECL_STRTOIMAX=0 + AC_REPLACE_FUNCS([strtoimax]) if test $ac_cv_func_strtoimax = no; then gl_PREREQ_STRTOIMAX diff --git a/m4/strtoumax.m4 b/m4/strtoumax.m4 --- a/m4/strtoumax.m4 +++ b/m4/strtoumax.m4 @@ -1,4 +1,4 @@ -# strtoumax.m4 serial 8 +# strtoumax.m4 serial 9 dnl Copyright (C) 2002-2004, 2006, 2009-2011 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,16 +6,12 @@ AC_DEFUN([gl_FUNC_STRTOUMAX], [ - AC_CACHE_CHECK([whether defines strtoumax as a macro], - gl_cv_func_strtoumax_macro, - [AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include -#ifdef strtoumax - inttypes_h_defines_strtoumax -#endif], - gl_cv_func_strtoumax_macro=yes, - gl_cv_func_strtoumax_macro=no)]) + AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) - if test "$gl_cv_func_strtoumax_macro" != yes; then + AC_CHECK_DECLS_ONCE([strtoumax]) + if test "$ac_cv_have_decl_strtoumax" != yes; then + HAVE_DECL_STRTOUMAX=0 + AC_REPLACE_FUNCS([strtoumax]) if test $ac_cv_func_strtoumax = no; then gl_PREREQ_STRTOUMAX