From 46e5e833d91758f31fbbea3c894cd0c90e78c484 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 12 Oct 2013 13:00:38 -0700 Subject: [PATCH] Merge from gnulib. This incorporates: 2013-10-10 strtoumax: port to Solaris 8 2013-10-09 strtoimax, strtoumax: port to HP-UX 11.11 * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * lib/inttypes.in.h, lib/strtoimax.c, m4/inttypes.m4, m4/strtoimax.m4: * m4/strtoumax.m4: Update from gnulib. --- ChangeLog | 10 ++++++++++ lib/gnulib.mk | 1 + lib/inttypes.in.h | 16 +++++++++++++--- lib/strtoimax.c | 15 +++++++++------ m4/gnulib-comp.m4 | 8 ++++---- m4/inttypes.m4 | 1 + m4/strtoimax.m4 | 8 ++++++-- m4/strtoumax.m4 | 9 +++++++-- 8 files changed, 51 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 66eefd2d44..55e987d4e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2013-10-12 Paul Eggert + + Merge from gnulib, incorporating: + 2013-10-10 strtoumax: port to Solaris 8 + 2013-10-09 strtoimax, strtoumax: port to HP-UX 11.11 + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/inttypes.in.h, lib/strtoimax.c, m4/inttypes.m4, m4/strtoimax.m4: + * m4/strtoumax.m4: + Update from gnulib. + 2013-10-11 Stefan Monnier * configure.ac (LIBGNUTLS): Don't set LIBGNUTLS_* back to the empty diff --git a/lib/gnulib.mk b/lib/gnulib.mk index 69fc06bbe0..44cdc0cdaa 100644 --- a/lib/gnulib.mk +++ b/lib/gnulib.mk @@ -565,6 +565,7 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U -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' \ diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h index 1893f5569d..05a22fff79 100644 --- a/lib/inttypes.in.h +++ b/lib/inttypes.in.h @@ -1105,12 +1105,22 @@ _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " #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 +# endif _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); +# endif _GL_CXXALIASWARN (strtoumax); #elif defined GNULIB_POSIXCHECK # undef strtoumax diff --git a/lib/strtoimax.c b/lib/strtoimax.c index c9bd2ad3b1..b4feaf361f 100644 --- a/lib/strtoimax.c +++ b/lib/strtoimax.c @@ -48,28 +48,31 @@ long long int strtoll (char const *, char **, int); #ifdef UNSIGNED # define Have_long_long HAVE_UNSIGNED_LONG_LONG_INT # define Int uintmax_t +# define Strtoimax strtoumax +# define Strtol strtoul +# define Strtoll strtoull # define Unsigned unsigned -# define strtoimax strtoumax -# define strtol strtoul -# define strtoll strtoull #else # define Have_long_long HAVE_LONG_LONG_INT # define Int intmax_t +# define Strtoimax strtoimax +# define Strtol strtol +# define Strtoll strtoll # define Unsigned #endif Int -strtoimax (char const *ptr, char **endptr, int base) +Strtoimax (char const *ptr, char **endptr, int base) { #if Have_long_long verify (sizeof (Int) == sizeof (Unsigned long int) || sizeof (Int) == sizeof (Unsigned long long int)); if (sizeof (Int) != sizeof (Unsigned long int)) - return strtoll (ptr, endptr, base); + return Strtoll (ptr, endptr, base); #else verify (sizeof (Int) == sizeof (Unsigned long int)); #endif - return strtol (ptr, endptr, base); + return Strtol (ptr, endptr, base); } diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 534d56f5ba..c707e34993 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -348,13 +348,13 @@ AC_DEFUN([gl_INIT], gl_FUNC_GNU_STRFTIME gl_HEADER_STRING_H gl_FUNC_STRTOIMAX - if test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then + if test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then AC_LIBOBJ([strtoimax]) gl_PREREQ_STRTOIMAX fi gl_INTTYPES_MODULE_INDICATOR([strtoimax]) gl_FUNC_STRTOUMAX - if test $ac_cv_func_strtoumax = no; then + if test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; then AC_LIBOBJ([strtoumax]) gl_PREREQ_STRTOUMAX fi @@ -622,10 +622,10 @@ AC_DEFUN([gl_INIT], if test $HAVE_READLINKAT = 0; then func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7 fi - if { test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; } && test $ac_cv_type_long_long_int = yes; then + if { test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; } && test $ac_cv_type_long_long_int = yes; then func_gl_gnulib_m4code_strtoll fi - if test $ac_cv_func_strtoumax = no && test $ac_cv_type_unsigned_long_long_int = yes; then + if { test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; } && test $ac_cv_type_unsigned_long_long_int = yes; then func_gl_gnulib_m4code_strtoull fi m4_pattern_allow([^gl_GNULIB_ENABLED_]) diff --git a/m4/inttypes.m4 b/m4/inttypes.m4 index 3b483d39f5..b06c77753b 100644 --- a/m4/inttypes.m4 +++ b/m4/inttypes.m4 @@ -148,6 +148,7 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS], 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]) diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4 index bee93b21e8..20454dc029 100644 --- 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 @@ AC_DEFUN([gl_FUNC_STRTOIMAX], 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 @@ int main () *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 ]) diff --git a/m4/strtoumax.m4 b/m4/strtoumax.m4 index 6a6aeb5dae..9c8ff175d3 100644 --- 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 @@ AC_DEFUN([gl_FUNC_STRTOUMAX], 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 ]) -- 2.20.1