Update from Gnulib
This incorporates: 2020-09-05 verify: avoid __builtin_assume 2020-08-30 strerrorname_np: New module 2020-08-26 include_next, stdint, time_rz: Change configure message * lib/gnulib.mk.in: Regenerate. * lib/string.in.h, lib/verify.h, m4/include_next.m4, m4/stdint.m4: * m4/string_h.m4, m4/time_rz.m4: Copy from Gnulib.
This commit is contained in:
parent
2c1d839778
commit
2bba9cd409
7 changed files with 110 additions and 102 deletions
|
@ -442,6 +442,7 @@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
|
|||
GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
|
||||
GNULIB_STRDUP = @GNULIB_STRDUP@
|
||||
GNULIB_STRERROR = @GNULIB_STRERROR@
|
||||
GNULIB_STRERRORNAME_NP = @GNULIB_STRERRORNAME_NP@
|
||||
GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
|
||||
GNULIB_STRFTIME = @GNULIB_STRFTIME@
|
||||
GNULIB_STRNCAT = @GNULIB_STRNCAT@
|
||||
|
@ -662,6 +663,7 @@ HAVE_STPCPY = @HAVE_STPCPY@
|
|||
HAVE_STPNCPY = @HAVE_STPNCPY@
|
||||
HAVE_STRCASESTR = @HAVE_STRCASESTR@
|
||||
HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
|
||||
HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@
|
||||
HAVE_STRPBRK = @HAVE_STRPBRK@
|
||||
HAVE_STRPTIME = @HAVE_STRPTIME@
|
||||
HAVE_STRSEP = @HAVE_STRSEP@
|
||||
|
@ -965,6 +967,7 @@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
|
|||
REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
|
||||
REPLACE_STRDUP = @REPLACE_STRDUP@
|
||||
REPLACE_STRERROR = @REPLACE_STRERROR@
|
||||
REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@
|
||||
REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
|
||||
REPLACE_STRFTIME = @REPLACE_STRFTIME@
|
||||
REPLACE_STRNCAT = @REPLACE_STRNCAT@
|
||||
|
@ -2859,6 +2862,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
|
|||
-e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
|
||||
-e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
|
||||
-e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
|
||||
-e 's/@''GNULIB_STRERRORNAME_NP''@/$(GNULIB_STRERRORNAME_NP)/g' \
|
||||
-e 's/@''GNULIB_SIGABBREV_NP''@/$(GNULIB_SIGABBREV_NP)/g' \
|
||||
-e 's/@''GNULIB_SIGDESCR_NP''@/$(GNULIB_SIGDESCR_NP)/g' \
|
||||
-e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
|
||||
|
@ -2883,6 +2887,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
|
|||
-e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
|
||||
-e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
|
||||
-e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
|
||||
-e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \
|
||||
-e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \
|
||||
-e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \
|
||||
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
|
||||
|
@ -2900,6 +2905,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
|
|||
-e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
|
||||
-e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
|
||||
-e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
|
||||
-e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \
|
||||
-e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
|
||||
-e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
|
||||
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
|
||||
|
|
|
@ -1045,6 +1045,30 @@ _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - "
|
|||
# endif
|
||||
#endif
|
||||
|
||||
/* Return the name of the system error code ERRNUM. */
|
||||
#if @GNULIB_STRERRORNAME_NP@
|
||||
# if @REPLACE_STRERRORNAME_NP@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef strerrorname_np
|
||||
# define strerrorname_np rpl_strerrorname_np
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum));
|
||||
_GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum));
|
||||
# else
|
||||
# if !@HAVE_STRERRORNAME_NP@
|
||||
_GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strerrorname_np);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strerrorname_np
|
||||
# if HAVE_RAW_DECL_STRERRORNAME_NP
|
||||
_GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - "
|
||||
"use gnulib module strerrorname_np for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Return an abbreviation string for the signal number SIG. */
|
||||
#if @GNULIB_SIGABBREV_NP@
|
||||
# if ! @HAVE_SIGABBREV_NP@
|
||||
|
|
43
lib/verify.h
43
lib/verify.h
|
@ -246,13 +246,6 @@ template <int w>
|
|||
|
||||
/* @assert.h omit start@ */
|
||||
|
||||
#if defined __has_builtin
|
||||
/* <https://clang.llvm.org/docs/LanguageExtensions.html#builtin-functions> */
|
||||
# define _GL_HAS_BUILTIN_ASSUME __has_builtin (__builtin_assume)
|
||||
#else
|
||||
# define _GL_HAS_BUILTIN_ASSUME 0
|
||||
#endif
|
||||
|
||||
#if 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__))
|
||||
# define _GL_HAS_BUILTIN_TRAP 1
|
||||
#elif defined __has_builtin
|
||||
|
@ -312,36 +305,14 @@ template <int w>
|
|||
|
||||
Although assuming R can help a compiler generate better code or
|
||||
diagnostics, performance can suffer if R uses hard-to-optimize
|
||||
features such as function calls not inlined by the compiler. */
|
||||
features such as function calls not inlined by the compiler.
|
||||
|
||||
/* Use __builtin_assume in preference to __builtin_unreachable, because
|
||||
in clang versions 8.0.x and older, the definition based on
|
||||
__builtin_assume has an effect on optimizations, whereas the definition
|
||||
based on __builtin_unreachable does not. (GCC so far has only
|
||||
__builtin_unreachable.) */
|
||||
#if _GL_HAS_BUILTIN_ASSUME
|
||||
/* Use __builtin_constant_p to help clang's data-flow analysis for the case
|
||||
assume (0).
|
||||
Use a temporary variable, to avoid a clang warning
|
||||
"the argument to '__builtin_assume' has side effects that will be discarded"
|
||||
if R contains invocations of functions not marked as 'const'.
|
||||
The type of the temporary variable can't be __typeof__ (R), because that
|
||||
does not work on bit field expressions. Use '_Bool' or 'bool' as type
|
||||
instead. */
|
||||
# if defined __cplusplus
|
||||
# define assume(R) \
|
||||
(__builtin_constant_p (R) && !(R) \
|
||||
? (void) __builtin_unreachable () \
|
||||
: (void) ({ bool _gl_verify_temp = (R); \
|
||||
__builtin_assume (_gl_verify_temp); }))
|
||||
# else
|
||||
# define assume(R) \
|
||||
(__builtin_constant_p (R) && !(R) \
|
||||
? (void) __builtin_unreachable () \
|
||||
: (void) ({ _Bool _gl_verify_temp = (R); \
|
||||
__builtin_assume (_gl_verify_temp); }))
|
||||
# endif
|
||||
#elif _GL_HAS_BUILTIN_UNREACHABLE
|
||||
Avoid Clang's __builtin_assume, as it breaks GNU Emacs master
|
||||
as of 2020-08-23T21:09:49Z!eggert@cs.ucla.edu; see
|
||||
<https://bugs.gnu.org/43152#71>. It's not known whether this breakage
|
||||
is a Clang bug or an Emacs bug; play it safe for now. */
|
||||
|
||||
#if _GL_HAS_BUILTIN_UNREACHABLE
|
||||
# define assume(R) ((R) ? (void) 0 : __builtin_unreachable ())
|
||||
#elif 1200 <= _MSC_VER
|
||||
# define assume(R) __assume (R)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# include_next.m4 serial 25
|
||||
# include_next.m4 serial 26
|
||||
dnl Copyright (C) 2006-2020 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -106,19 +106,21 @@ dnl We intentionally avoid using AC_LANG_SOURCE here.
|
|||
AC_SUBST([INCLUDE_NEXT])
|
||||
AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
|
||||
AC_SUBST([PRAGMA_SYSTEM_HEADER])
|
||||
AC_CACHE_CHECK([whether system header files limit the line length],
|
||||
[gl_cv_pragma_columns],
|
||||
[dnl HP NonStop systems, which define __TANDEM, have this misfeature.
|
||||
AC_EGREP_CPP([choke me],
|
||||
|
||||
dnl HP NonStop systems, which define __TANDEM, limit the line length
|
||||
dnl after including some system header files.
|
||||
AC_CACHE_CHECK([whether source code line length is unlimited],
|
||||
[gl_cv_source_line_length_unlimited],
|
||||
[AC_EGREP_CPP([choke me],
|
||||
[
|
||||
#ifdef __TANDEM
|
||||
choke me
|
||||
#endif
|
||||
],
|
||||
[gl_cv_pragma_columns=yes],
|
||||
[gl_cv_pragma_columns=no])
|
||||
[gl_cv_source_line_length_unlimited=no],
|
||||
[gl_cv_source_line_length_unlimited=yes])
|
||||
])
|
||||
if test $gl_cv_pragma_columns = yes; then
|
||||
if test $gl_cv_source_line_length_unlimited = no; then
|
||||
PRAGMA_COLUMNS="#pragma COLUMNS 10000"
|
||||
else
|
||||
PRAGMA_COLUMNS=
|
||||
|
|
18
m4/stdint.m4
18
m4/stdint.m4
|
@ -1,4 +1,4 @@
|
|||
# stdint.m4 serial 55
|
||||
# stdint.m4 serial 56
|
||||
dnl Copyright (C) 2001-2020 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
|
@ -302,9 +302,10 @@ static const char *macro_values[] =
|
|||
HAVE_C99_STDINT_H=1
|
||||
dnl Now see whether the system <stdint.h> works without
|
||||
dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined.
|
||||
AC_CACHE_CHECK([whether stdint.h predates C++11],
|
||||
[gl_cv_header_stdint_predates_cxx11_h],
|
||||
[gl_cv_header_stdint_predates_cxx11_h=yes
|
||||
dnl If not, there would be problems when stdint.h is included from C++.
|
||||
AC_CACHE_CHECK([whether stdint.h works without ISO C predefines],
|
||||
[gl_cv_header_stdint_without_STDC_macros],
|
||||
[gl_cv_header_stdint_without_STDC_macros=no
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
|
||||
|
@ -315,13 +316,14 @@ gl_STDINT_INCLUDES
|
|||
intmax_t im = INTMAX_MAX;
|
||||
int32_t i32 = INT32_C (0x7fffffff);
|
||||
]])],
|
||||
[gl_cv_header_stdint_predates_cxx11_h=no])])
|
||||
[gl_cv_header_stdint_without_STDC_macros=yes])
|
||||
])
|
||||
|
||||
if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
|
||||
if test $gl_cv_header_stdint_without_STDC_macros = no; then
|
||||
AC_DEFINE([__STDC_CONSTANT_MACROS], [1],
|
||||
[Define to 1 if the system <stdint.h> predates C++11.])
|
||||
[Define to 1 if the system <stdint.h> predates C++11.])
|
||||
AC_DEFINE([__STDC_LIMIT_MACROS], [1],
|
||||
[Define to 1 if the system <stdint.h> predates C++11.])
|
||||
[Define to 1 if the system <stdint.h> predates C++11.])
|
||||
fi
|
||||
AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.],
|
||||
[gl_cv_header_stdint_width],
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 26
|
||||
# serial 27
|
||||
|
||||
# Written by Paul Eggert.
|
||||
|
||||
|
@ -28,7 +28,7 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY],
|
|||
]],
|
||||
[ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
|
||||
strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
|
||||
strerror_r sigabbrev_np sigdescr_np strsignal strverscmp])
|
||||
strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp])
|
||||
|
||||
AC_REQUIRE([AC_C_RESTRICT])
|
||||
])
|
||||
|
@ -44,47 +44,48 @@ AC_DEFUN([gl_STRING_MODULE_INDICATOR],
|
|||
|
||||
AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
|
||||
[
|
||||
GNULIB_EXPLICIT_BZERO=0; AC_SUBST([GNULIB_EXPLICIT_BZERO])
|
||||
GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL])
|
||||
GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL])
|
||||
GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR])
|
||||
GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM])
|
||||
GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY])
|
||||
GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR])
|
||||
GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR])
|
||||
GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY])
|
||||
GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY])
|
||||
GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL])
|
||||
GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP])
|
||||
GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT])
|
||||
GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP])
|
||||
GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN])
|
||||
GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK])
|
||||
GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP])
|
||||
GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR])
|
||||
GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR])
|
||||
GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R])
|
||||
GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN])
|
||||
GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN])
|
||||
GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR])
|
||||
GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR])
|
||||
GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR])
|
||||
GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP])
|
||||
GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
|
||||
GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
|
||||
GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR])
|
||||
GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN])
|
||||
GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK])
|
||||
GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN])
|
||||
GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP])
|
||||
GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R])
|
||||
GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR])
|
||||
GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R])
|
||||
GNULIB_SIGABBREV_NP=0;AC_SUBST([GNULIB_SIGABBREV_NP])
|
||||
GNULIB_SIGDESCR_NP=0; AC_SUBST([GNULIB_SIGDESCR_NP])
|
||||
GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL])
|
||||
GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP])
|
||||
HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN])
|
||||
GNULIB_EXPLICIT_BZERO=0; AC_SUBST([GNULIB_EXPLICIT_BZERO])
|
||||
GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL])
|
||||
GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL])
|
||||
GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR])
|
||||
GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM])
|
||||
GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY])
|
||||
GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR])
|
||||
GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR])
|
||||
GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY])
|
||||
GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY])
|
||||
GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL])
|
||||
GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP])
|
||||
GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT])
|
||||
GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP])
|
||||
GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN])
|
||||
GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK])
|
||||
GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP])
|
||||
GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR])
|
||||
GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR])
|
||||
GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R])
|
||||
GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN])
|
||||
GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN])
|
||||
GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR])
|
||||
GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR])
|
||||
GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR])
|
||||
GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP])
|
||||
GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
|
||||
GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
|
||||
GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR])
|
||||
GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN])
|
||||
GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK])
|
||||
GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN])
|
||||
GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP])
|
||||
GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R])
|
||||
GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR])
|
||||
GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R])
|
||||
GNULIB_STRERRORNAME_NP=0; AC_SUBST([GNULIB_STRERRORNAME_NP])
|
||||
GNULIB_SIGABBREV_NP=0; AC_SUBST([GNULIB_SIGABBREV_NP])
|
||||
GNULIB_SIGDESCR_NP=0; AC_SUBST([GNULIB_SIGDESCR_NP])
|
||||
GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL])
|
||||
GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP])
|
||||
HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN])
|
||||
dnl Assume proper GNU behavior unless another module says otherwise.
|
||||
HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO])
|
||||
HAVE_FFSL=1; AC_SUBST([HAVE_FFSL])
|
||||
|
@ -104,6 +105,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
|
|||
HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR])
|
||||
HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R])
|
||||
HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R])
|
||||
HAVE_STRERRORNAME_NP=1; AC_SUBST([HAVE_STRERRORNAME_NP])
|
||||
HAVE_SIGABBREV_NP=1; AC_SUBST([HAVE_SIGABBREV_NP])
|
||||
HAVE_SIGDESCR_NP=1; AC_SUBST([HAVE_SIGDESCR_NP])
|
||||
HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL])
|
||||
|
@ -121,6 +123,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
|
|||
REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R])
|
||||
REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR])
|
||||
REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R])
|
||||
REPLACE_STRERRORNAME_NP=0; AC_SUBST([REPLACE_STRERRORNAME_NP])
|
||||
REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL])
|
||||
UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R])
|
||||
])
|
||||
|
|
|
@ -13,12 +13,12 @@ AC_DEFUN([gl_TIME_RZ],
|
|||
AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
|
||||
AC_REQUIRE([AC_STRUCT_TIMEZONE])
|
||||
|
||||
# Mac OS X 10.6 loops forever with some time_t values.
|
||||
# On Mac OS X 10.6, localtime loops forever with some time_t values.
|
||||
# See Bug#27706, Bug#27736, and
|
||||
# https://lists.gnu.org/r/bug-gnulib/2017-07/msg00142.html
|
||||
AC_CACHE_CHECK([whether localtime loops forever near extrema],
|
||||
[gl_cv_func_localtime_infloop_bug],
|
||||
[gl_cv_func_localtime_infloop_bug=no
|
||||
AC_CACHE_CHECK([whether localtime works even near extrema],
|
||||
[gl_cv_func_localtime_works],
|
||||
[gl_cv_func_localtime_works=yes
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <stdlib.h>
|
||||
|
@ -37,10 +37,10 @@ AC_DEFUN([gl_TIME_RZ],
|
|||
return tm && tm->tm_isdst;
|
||||
]])],
|
||||
[(TZ=QQQ0 ./conftest$EXEEXT) >/dev/null 2>&1 ||
|
||||
gl_cv_func_localtime_infloop_bug=yes],
|
||||
gl_cv_func_localtime_works=no],
|
||||
[],
|
||||
[gl_cv_func_localtime_infloop_bug="guessing no"])])
|
||||
if test "$gl_cv_func_localtime_infloop_bug" = yes; then
|
||||
[gl_cv_func_localtime_works="guessing yes"])])
|
||||
if test "$gl_cv_func_localtime_works" = no; then
|
||||
AC_DEFINE([HAVE_LOCALTIME_INFLOOP_BUG], 1,
|
||||
[Define if localtime-like functions can loop forever on
|
||||
extreme arguments.])
|
||||
|
|
Loading…
Add table
Reference in a new issue