Mercurial > hg > octave-shane > gnulib-hg
changeset 17518:d4beb8189862
strtoimax, strtoumax: port to HP-UX 11.11
Problem reported by Daniel Richard G. in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-10/msg00023.html>.
* lib/inttypes.in.h (strtoumax): Replace strtoumax if
REPLACE_STRTOUMAX, thus treating it consistently with strtoimax.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Add default for
REPLACE_STRTOUMAX.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX):
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX):
Replace the function if defined as a macro but not as a function.
* modules/inttypes-incomplete (inttypes.h): Substitute
REPLACE_STRTOUMAX.
* modules/strtoumax (configure.ac): Replace strtoumax if
REPLACE_STRTOUMAX.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Wed, 09 Oct 2013 08:05:24 -0700 |
parents | 983bff2dee91 |
children | 4cfb909c5f0d |
files | ChangeLog lib/inttypes.in.h m4/inttypes.m4 m4/strtoimax.m4 m4/strtoumax.m4 modules/inttypes-incomplete modules/strtoumax |
diffstat | 7 files changed, 46 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2013-10-09 Paul Eggert <eggert@cs.ucla.edu> + + strtoimax, strtoumax: port to HP-UX 11.11 + Problem reported by Daniel Richard G. in + <http://lists.gnu.org/archive/html/bug-gnulib/2013-10/msg00023.html>. + * lib/inttypes.in.h (strtoumax): Replace strtoumax if + REPLACE_STRTOUMAX, thus treating it consistently with strtoimax. + * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Add default for + REPLACE_STRTOUMAX. + * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): + * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): + Replace the function if defined as a macro but not as a function. + * modules/inttypes-incomplete (inttypes.h): Substitute + REPLACE_STRTOUMAX. + * modules/strtoumax (configure.ac): Replace strtoumax if + REPLACE_STRTOUMAX. + 2013-10-08 Paul Eggert <eggert@cs.ucla.edu> strtoimax: port to HP-UX 11.11
--- a/lib/inttypes.in.h +++ b/lib/inttypes.in.h @@ -1105,12 +1105,22 @@ #endif #if @GNULIB_STRTOUMAX@ -# if !@HAVE_DECL_STRTOUMAX@ -# undef strtoumax +# if @REPLACE_STRTOUMAX@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strtoumax +# define strtoumax rpl_strtoumax +# endif +_GL_FUNCDECL_RPL (strtoumax, uintmax_t, + (const char *, char **, int) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *, char **, int)); +# else +# if !@HAVE_DECL_STRTOUMAX@ +# undef strtoumax _GL_FUNCDECL_SYS (strtoumax, uintmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); # endif -_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); _GL_CXXALIASWARN (strtoumax); #elif defined GNULIB_POSIXCHECK # undef strtoumax
--- a/m4/inttypes.m4 +++ b/m4/inttypes.m4 @@ -148,6 +148,7 @@ HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) + REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX]) INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX]) PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN])
--- a/m4/strtoimax.m4 +++ b/m4/strtoimax.m4 @@ -1,4 +1,4 @@ -# strtoimax.m4 serial 13 +# strtoimax.m4 serial 14 dnl Copyright (C) 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,7 @@ HAVE_DECL_STRTOIMAX=0 fi - if test $ac_cv_func_strtoimax = yes; then + if test "$ac_cv_func_strtoimax" = yes; then HAVE_STRTOIMAX=1 dnl On AIX 5.1, strtoimax() fails for values outside the 'int' range. AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles @@ -72,6 +72,10 @@ *no) REPLACE_STRTOIMAX=1 ;; esac else + if test "$ac_cv_have_decl_strtoimax" = yes; then + # HP-UX 11.11 has "#define strtoimax(...) ..." but no function. + REPLACE_STRTOIMAX=1 + fi HAVE_STRTOIMAX=0 fi ])
--- a/m4/strtoumax.m4 +++ b/m4/strtoumax.m4 @@ -1,4 +1,4 @@ -# strtoumax.m4 serial 11 +# strtoumax.m4 serial 12 dnl Copyright (C) 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -11,7 +11,12 @@ dnl On OSF/1 5.1 with cc, this function is declared but not defined. AC_CHECK_FUNCS_ONCE([strtoumax]) AC_CHECK_DECLS_ONCE([strtoumax]) - if test "$ac_cv_have_decl_strtoumax" != yes; then + if test "$ac_cv_have_decl_strtoumax" = yes; then + if test "$ac_cv_func_strtoumax" != yes; then + # HP-UX 11.11 has "#define strtoimax(...) ..." but no function. + REPLACE_STRTOUMAX=1 + fi + else HAVE_DECL_STRTOUMAX=0 fi ])
--- a/modules/inttypes-incomplete +++ b/modules/inttypes-incomplete @@ -43,6 +43,7 @@ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ + -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \