Files
binutils-gdb/gnulib/import/m4/stdint.m4
Christian Biesinger c0c3707ff4 Update Gnulib to the latest git version
This patch allows us to remove a workaround in common-defs.h due to
the gnulib fix in:
https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00024.html

All of GDB's local Gnulib patches were already fixed upstream per their
descriptions, so this patch removes them all.

The problem listed here:
https://sourceware.org/ml/gdb-patches/2019-08/msg00553.html
was probably partially fixed by moving gnulib to the toplevel;
for the remainder, I am setting MAKEOVERRIDES to empty in
gnulib/Makefile.am.  See also the comment there (it fixes an issue
with compilers that don't use C99/C11 by default such as GCC 4.8.5,
the default on Centos 7).

gdb/ChangeLog:

2019-12-16  Christian Biesinger  <cbiesinger@google.com>

	* gdbsupport/common-defs.h: Remove workaround for a gnulib bug
	(we no longer need to include time.h before pathmax.h)

gnulib/ChangeLog:

2019-12-16  Christian Biesinger  <cbiesinger@google.com>

	* Makefile.am: Set MAKEOVERRIDES.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* import/Makefile.am: Update.
	* import/Makefile.in: Regenerate.
	* import/_Noreturn.h: New file.
	* import/alloca.c (i00afunc): Update.
	* import/alloca.in.h (if): Update.
	* import/arg-nonnull.h: Rename from import/extra/snippet/arg-nonnull.h.
	* import/arpa_inet.in.h (if): Update.
	* import/assure.h: Update.
	* import/at-func.c: Update.
	* import/basename-lgpl.c: Update.
	* import/canonicalize-lgpl.c (if): Update.
	* import/c++defs.h: Rename from import/extra/snippet/c++defs.h.
	* import/cdefs.h: New file.
	* import/chdir-long.c: Update.
	* import/chdir-long.h: Update.
	* import/cloexec.c: Update.
	* import/cloexec.h: Update.
	* import/close.c: Update.
	* import/closedir.c: Update.
	* import/config.charset: Remove.
	* import/dirent-private.h: Update.
	* import/dirent.in.h: Update.
	* import/dirfd.c: Update.
	* import/dirname-lgpl.c: Update.
	* import/dirname.h (base_name): Update.
	* import/dosname.h (if): Update.
	* import/dup-safer-flag.c: New file.
	* import/dup-safer.c: Update.
	* import/dup.c: Update.
	* import/dup2.c (if): Update.
	(dup2_nothrow): Update.
	(ms_windows_dup2): Update.
	* import/errno.in.h (if): Update.
	(elif): Update.
	* import/error.c (if): Update.
	(strerror_r): Update.
	(program_name): Update.
	(error): Update.
	(error_at_line): Update.
	* import/error.h: Update.
	* import/exitfail.c: Update.
	* import/exitfail.h: Update.
	* import/extra/config.rpath: Update.
	* import/extra/snippet/_Noreturn.h: Remove.
	* import/extra/update-copyright: Update.
	* import/fchdir.c: Update.
	* import/fcntl.c (rpl_fcntl): Update.
	(INCL_DOS): Update.
	(if): Update.
	(rpl_fcntl_DUPFD): Update.
	(rpl_fcntl_DUPFD_CLOEXEC): Update.
	(klibc_fcntl): Update.
	(fcntl): Update.
	(have_dupfd_cloexec): Update.
	* import/fcntl.in.h (if): Update.
	(creat): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(_GL_WARN_ON_USE): Update.
	(O_CLOEXEC): Update.
	(GNULIB_defined_O_CLOEXEC): Update.
	* import/fd-hook.c: Update.
	* import/fd-hook.h: Update.
	* import/fd-safer-flag.c: New file.
	* import/fd-safer.c: Update.
	* import/fdopendir.c: Update.
	* import/filename.h: Update.
	* import/filenamecat-lgpl.c (longest_relative_suffix): Update.
	(mfile_name_concat): Update.
	* import/filenamecat.h: Update.
	* import/flexmember.h: Update.
	* import/float+.h: Update.
	* import/float.c: Update.
	* import/float.in.h (LDBL_MIN): Update.
	* import/fnmatch.c (__builtin_expect): Update.
	(FALLTHROUGH): Update.
	* import/fnmatch.in.h (_FNMATCH_H): Update.
	(_): Update.
	(fnmatch): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(_GL_WARN_ON_USE): Update.
	* import/fnmatch_loop.c (FCT): Update.
	(EXT): Update.
	* import/fpucw.h (GET_FPUCW): Update.
	(SET_FPUCW): Update.
	* import/frexp.c: Update.
	* import/frexpl.c: Update.
	* import/fstat.c (stat): Update.
	(fstat): Update.
	(WINDOWS_NATIVE): Update.
	(fstat_nothrow): Update.
	(WIN32_LEAN_AND_MEAN): Update.
	* import/fstatat.c (normal_fstatat): Update.
	(rpl_fstatat): Update.
	* import/getcwd-lgpl.c (rpl_getcwd): Update.
	* import/getcwd.c (getcwd_nothrow): Update.
	(getcwd_system): Update.
	(__getcwd): Update.
	* import/getdtablesize.c (if): Update.
	(_setmaxstdio): Update.
	(_setmaxstdio_nothrow): Update.
	(getdtablesize): Update.
	* import/getlogin_r.c (if): Update.
	(getlogin_r): Update.
	* import/getprogname.c (getprogname): Update.
	* import/getprogname.h: Update.
	* import/gettext.h (if): Update.
	* import/gettimeofday.c (WINDOWS_NATIVE): Update.
	(localtime): Update.
	(GetProcAddress): Update.
	(gmtime): Update.
	(void): Update.
	(struct tm): Update.
	(rpl_localtime): Update.
	(initialize): Update.
	(rpl_gmtime): Update.
	(tzset): Update.
	(rpl_tzset): Update.
	* import/glob-libc.h (_Restrict_): Update.
	(__size_t): Update.
	(__need_size_t): Update.
	(glob): Update.
	(globfree): Update.
	(__REDIRECT_NTH): Update.
	(glob64): Update.
	(globfree64): Update.
	(glob_pattern_p): Update.
	* import/glob.c (POSIX): Update.
	(if): Update.
	(__set_errno): Update.
	(getpwnam_r): Update.
	(__lstat64): Update.
	(FLEXIBLE_ARRAY_MEMBER): Update.
	(__glob_pattern_p): Update.
	(GETPW_R_SIZE_MAX): Update.
	(GET_LOGIN_NAME_MAX): Update.
	(DT_UNKNOWN): Update.
	(DT_DIR): Update.
	(DT_LNK): Update.
	(D_TYPE_TO_RESULT): Update.
	(readdir_result_might_be_symlink): Update.
	(readdir_result_might_be_dir): Update.
	(readdir_result_type): Update.
	(D_INO_TO_RESULT): Update.
	(READDIR_RESULT_INITIALIZER): Update.
	(attribute_hidden): Update.
	(__attribute_noinline__): Update.
	(__builtin_expect): Update.
	(__glibc_unlikely): Update.
	(__has_builtin): Update.
	(__glob_pattern_type): Update.
	(is_dir): Update.
	(glob): Update.
	(globfree): Update.
	(libc_hidden_def): Update.
	(DIRSEP_CHAR): Update.
	(prefix_array): Update.
	(weak_alias): Update.
	(link_exists2_p): Update.
	(link_exists_p): Update.
	(glob_in_dir): Update.
	(GLOBNAMES_MEMBERS): Update.
	* import/glob.in.h (_GL_GLOB_H): Update.
	(_): Update.
	(__BEGIN_DECLS): Update.
	(__END_DECLS): Update.
	(_Restrict_): Update.
	(__THROW): Update.
	(__THROWNL): Update.
	(__size_t): Update.
	(__USE_GNU): Update.
	(glob): Update.
	(globfree): Update.
	(glob_pattern_p): Update.
	(__glob_pattern_p): Update.
	(__GLOB_GNULIB): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_WARN_ON_USE): Update.
	* import/glob_internal.h: New file.
	* import/glob_pattern_p.c: New file.
	* import/globfree.c: New file.
	* import/glthread/lock.c (glthread_rwlock_init_for_glibc): Update.
	(glthread_rwlock_rdlock_multithreaded): Update.
	(glthread_once_call): Update.
	(glthread_once_multithreaded): Update.
	(glthread_once_singlethreaded): Update.
	(glthread_recursive_lock_init_multithreaded): Update.
	(glthread_recursive_lock_lock_multithreaded): Update.
	(glthread_recursive_lock_unlock_multithreaded): Update.
	(glthread_recursive_lock_destroy_multithreaded): Update.
	(glthread_lock_init_func): Update.
	(glthread_lock_lock_func): Update.
	(glthread_lock_unlock_func): Update.
	(glthread_lock_destroy_func): Update.
	(gl_waitqueue_t): Update.
	(gl_waitqueue_init): Update.
	(gl_waitqueue_add): Update.
	(gl_waitqueue_notify_first): Update.
	(gl_waitqueue_notify_all): Update.
	(glthread_rwlock_init_func): Update.
	(glthread_rwlock_rdlock_func): Update.
	(glthread_rwlock_wrlock_func): Update.
	(glthread_rwlock_unlock_func): Update.
	(glthread_rwlock_destroy_func): Update.
	(glthread_recursive_lock_init_func): Update.
	(glthread_recursive_lock_lock_func): Update.
	(glthread_recursive_lock_unlock_func): Update.
	(glthread_recursive_lock_destroy_func): Update.
	(glthread_once_func): Update.
	* import/glthread/lock.h (c11_threads_in_use): Update.
	(pthread_in_use): Update.
	(gl_rwlock_initializer): Update.
	(glthread_rwlock_init): Update.
	(glthread_rwlock_init_for_glibc): Update.
	(pth_in_use): Update.
	(gl_lock_define): Update.
	(gl_lock_define_initialized): Update.
	(gl_lock_initializer): Update.
	(glthread_lock_init): Update.
	(glthread_lock_lock): Update.
	(glthread_lock_unlock): Update.
	(glthread_lock_destroy): Update.
	(gl_rwlock_define): Update.
	(gl_rwlock_define_initialized): Update.
	(glthread_rwlock_rdlock): Update.
	(glthread_rwlock_wrlock): Update.
	(glthread_rwlock_unlock): Update.
	(glthread_rwlock_destroy): Update.
	(gl_recursive_lock_define): Update.
	(gl_recursive_lock_define_initialized): Update.
	(gl_recursive_lock_initializer): Update.
	(glthread_recursive_lock_init): Update.
	(glthread_recursive_lock_lock): Update.
	(glthread_recursive_lock_unlock): Update.
	(glthread_recursive_lock_destroy): Update.
	(gl_once_define): Update.
	(glthread_once): Update.
	(glthread_once_multithreaded): Update.
	(glthread_once_singlethreaded): Update.
	(thread_in_use): Update.
	(glthread_recursive_lock_init_multithreaded): Update.
	(glthread_recursive_lock_lock_multithreaded): Update.
	(glthread_recursive_lock_unlock_multithreaded): Update.
	(glthread_recursive_lock_destroy_multithreaded): Update.
	(glthread_lock_init_func): Update.
	(glthread_lock_lock_func): Update.
	(glthread_lock_unlock_func): Update.
	(glthread_lock_destroy_func): Update.
	(glthread_rwlock_init_func): Update.
	(glthread_rwlock_rdlock_func): Update.
	(glthread_rwlock_wrlock_func): Update.
	(glthread_rwlock_unlock_func): Update.
	(glthread_rwlock_destroy_func): Update.
	(glthread_recursive_lock_init_func): Update.
	(glthread_recursive_lock_lock_func): Update.
	(glthread_recursive_lock_unlock_func): Update.
	(glthread_recursive_lock_destroy_func): Update.
	(glthread_once_func): Update.
	* import/glthread/threadlib.c: Update.
	* import/hard-locale.c: Update.
	* import/hard-locale.h: Update.
	* import/inet_ntop.c: Update.
	* import/intprops.h (__has_builtin): Update.
	(_GL_INT_CONVERT): Update.
	(_GL_INT_NEGATE_CONVERT): Update.
	(verify): Update.
	(_GL_HAS_BUILTIN_OVERFLOW): Update.
	(_GL_HAS_BUILTIN_ADD_OVERFLOW): Update.
	(_GL_HAS_BUILTIN_OVERFLOW_P): Update.
	(_GL_HAS_BUILTIN_MUL_OVERFLOW): Update.
	(_GL_BINARY_OP_OVERFLOW): Update.
	(INT_ADD_WRAPV): Update.
	(INT_SUBTRACT_WRAPV): Update.
	(INT_MULTIPLY_WRAPV): Update.
	(_GL_INT_OP_WRAPV): Update.
	(_GL_INT_OP_WRAPV_SMALLISH): Update.
	(_GL_INT_OP_WRAPV_LONGISH): Update.
	(_GL_INT_OP_CALC): Update.
	(_GL_INT_OP_CALC1): Update.
	(_GL_INT_OP_WRAPV_VIA_UNSIGNED): Update.
	(_GL_INT_ADD_RANGE_OVERFLOW): Update.
	(_GL_INT_SUBTRACT_RANGE_OVERFLOW): Update.
	(_GL_INT_MULTIPLY_RANGE_OVERFLOW): Update.
	* import/inttypes.in.h (if): Update.
	* import/isnan.c: Update.
	* import/isnand-nolibm.h: Update.
	* import/isnand.c: Update.
	* import/isnanl-nolibm.h: Update.
	* import/isnanl.c: Update.
	* import/itold.c: Update.
	* import/libc-config.h: New file.
	* import/limits.in.h (LLONG_MIN): Update.
	(LLONG_MAX): Update.
	(ULLONG_MAX): Update.
	(WORD_BIT): Update.
	(LONG_BIT): Update.
	* import/localcharset.c (setlocale): Update.
	(relocate): Update.
	(O_NOFOLLOW): Update.
	(ISSLASH): Update.
	(DIRECTORY_SEPARATOR): Update.
	(getc): Update.
	(volatile): Update.
	(get_charset_aliases): Update.
	(struct table_entry): Update.
	(alias_table_defined): Update.
	(locale_table_defined): Update.
	(locale_charset): Update.
	(if): Update.
	* import/localcharset.h: Update.
	* import/localtime-buffer.c: New file.
	* import/localtime-buffer.h: New file.
	* import/lstat.c (rpl_lstat): Update.
	* import/m4/00gnulib.m4: Update.
	* import/m4/__inline.m4: New file.
	* import/m4/absolute-header.m4: Update.
	* import/m4/alloca.m4: Update.
	* import/m4/arpa_inet_h.m4: Update.
	* import/m4/builtin-expect.m4: New file.
	* import/m4/canonicalize.m4: Update.
	* import/m4/chdir-long.m4: Update.
	* import/m4/close.m4: Update.
	* import/m4/closedir.m4: Update.
	* import/m4/codeset.m4: Update.
	* import/m4/configmake.m4: Remove.
	* import/m4/d-ino.m4: Update.
	* import/m4/d-type.m4: Update.
	* import/m4/dirent_h.m4: Update.
	* import/m4/dirfd.m4: Update.
	* import/m4/dirname.m4: Update.
	* import/m4/double-slash-root.m4: Update.
	* import/m4/dup.m4: Update.
	* import/m4/dup2.m4: Update.
	* import/m4/eealloc.m4: Update.
	* import/m4/environ.m4: Update.
	* import/m4/errno_h.m4: Update.
	* import/m4/error.m4: Update.
	* import/m4/exponentd.m4: Update.
	* import/m4/exponentl.m4: Update.
	* import/m4/extensions.m4: Update.
	* import/m4/extern-inline.m4: Update.
	* import/m4/fchdir.m4: Update.
	* import/m4/fcntl-o.m4: Update.
	* import/m4/fcntl.m4: Update.
	* import/m4/fcntl_h.m4: Update.
	* import/m4/fdopendir.m4: Update.
	* import/m4/filenamecat.m4: Update.
	* import/m4/flexmember.m4: Update.
	* import/m4/float_h.m4: Update.
	* import/m4/fnmatch.m4: Update.
	* import/m4/fnmatch_h.m4: New file.
	* import/m4/fpieee.m4: Update.
	* import/m4/frexp.m4: Update.
	* import/m4/frexpl.m4: Update.
	* import/m4/fstat.m4: Update.
	* import/m4/fstatat.m4: Update.
	* import/m4/getcwd-abort-bug.m4: Update.
	* import/m4/getcwd-path-max.m4: Update.
	* import/m4/getcwd.m4: Update.
	* import/m4/getdtablesize.m4: Update.
	* import/m4/getlogin.m4: New file.
	* import/m4/getlogin_r.m4: Update.
	* import/m4/getpagesize.m4: New file.
	* import/m4/getprogname.m4: Update.
	* import/m4/gettimeofday.m4: Update.
	* import/m4/glibc21.m4: Remove.
	* import/m4/glob.m4: Update.
	* import/m4/glob_h.m4: New file.
	* import/m4/gnulib-cache.m4: Update.
	* import/m4/gnulib-common.m4: Update.
	* import/m4/gnulib-comp.m4: Update.
	* import/m4/gnulib-tool.m4: Update.
	* import/m4/hard-locale.m4: Remove.
	* import/m4/host-cpu-c-abi.m4: New file.
	* import/m4/include_next.m4: Update.
	* import/m4/inet_ntop.m4: Update.
	* import/m4/inttypes-pri.m4: Update.
	* import/m4/inttypes.m4: Update.
	* import/m4/isnand.m4: Update.
	* import/m4/isnanl.m4: Update.
	* import/m4/largefile.m4: Update.
	* import/m4/lib-ld.m4: Update.
	* import/m4/lib-link.m4: Update.
	* import/m4/lib-prefix.m4: Update.
	* import/m4/limits-h.m4: Update.
	* import/m4/localcharset.m4: Update.
	* import/m4/locale-fr.m4: Update.
	* import/m4/locale-ja.m4: Update.
	* import/m4/locale-zh.m4: Update.
	* import/m4/localtime-buffer.m4: New file.
	* import/m4/lock.m4: Update.
	* import/m4/longlong.m4: Update.
	* import/m4/lstat.m4: Update.
	* import/m4/malloc.m4: Update.
	* import/m4/malloca.m4: Update.
	* import/m4/math_h.m4: Update.
	* import/m4/mbrtowc.m4: Update.
	* import/m4/mbsinit.m4: Update.
	* import/m4/mbsrtowcs.m4: Update.
	* import/m4/mbstate_t.m4: Update.
	* import/m4/memchr.m4: Update.
	* import/m4/memmem.m4: Update.
	* import/m4/mempcpy.m4: Update.
	* import/m4/memrchr.m4: Update.
	* import/m4/mkdir.m4: Update.
	* import/m4/mkdtemp.m4: Update.
	* import/m4/mkostemp.m4: Update.
	* import/m4/mmap-anon.m4: Update.
	* import/m4/mode_t.m4: Update.
	* import/m4/msvc-inval.m4: Update.
	* import/m4/msvc-nothrow.m4: Update.
	* import/m4/multiarch.m4: Update.
	* import/m4/netinet_in_h.m4: Update.
	* import/m4/nocrash.m4: Update.
	* import/m4/off_t.m4: Update.
	* import/m4/onceonly.m4: Remove.
	* import/m4/open-cloexec.m4: New file.
	* import/m4/open-slash.m4: New file.
	* import/m4/open.m4: Update.
	* import/m4/openat.m4: Update.
	* import/m4/opendir.m4: Update.
	* import/m4/pathmax.m4: Update.
	* import/m4/pthread_rwlock_rdlock.m4: New file.
	* import/m4/rawmemchr.m4: Update.
	* import/m4/readdir.m4: Update.
	* import/m4/readlink.m4: Update.
	* import/m4/realloc.m4: Update.
	* import/m4/rename.m4: Update.
	* import/m4/rewinddir.m4: Update.
	* import/m4/rmdir.m4: Update.
	* import/m4/save-cwd.m4: Update.
	* import/m4/secure_getenv.m4: Remove.
	* import/m4/setenv.m4: Update.
	* import/m4/signal_h.m4: Update.
	* import/m4/socklen.m4: Update.
	* import/m4/sockpfaf.m4: Update.
	* import/m4/ssize_t.m4: Update.
	* import/m4/stat-time.m4: New file.
	* import/m4/stat.m4: Update.
	* import/m4/std-gnu11.m4: New file.
	* import/m4/stdalign.m4: Update.
	* import/m4/stdbool.m4: Update.
	* import/m4/stddef_h.m4: Update.
	* import/m4/stdint.m4: Update.
	* import/m4/stdio_h.m4: Update.
	* import/m4/stdlib_h.m4: Update.
	* import/m4/strchrnul.m4: Update.
	* import/m4/strdup.m4: Update.
	* import/m4/strerror.m4: Update.
	* import/m4/strerror_r.m4: Update.
	* import/m4/string_h.m4: Update.
	* import/m4/strstr.m4: Update.
	* import/m4/strtok_r.m4: Update.
	* import/m4/sys_socket_h.m4: Update.
	* import/m4/sys_stat_h.m4: Update.
	* import/m4/sys_time_h.m4: Update.
	* import/m4/sys_types_h.m4: Update.
	* import/m4/sys_uio_h.m4: Update.
	* import/m4/tempname.m4: Update.
	* import/m4/threadlib.m4: Update.
	* import/m4/time_h.m4: Update.
	* import/m4/time_r.m4: Update.
	* import/m4/unistd-safer.m4: Update.
	* import/m4/unistd_h.m4: Update.
	* import/m4/warn-on-use.m4: Update.
	* import/m4/wchar_h.m4: Update.
	* import/m4/wchar_t.m4: Update.
	* import/m4/wctype_h.m4: Update.
	* import/m4/wint_t.m4: Update.
	* import/malloc.c: Update.
	* import/malloc/scratch_buffer.h: New file.
	* import/malloc/scratch_buffer_grow.c: New file.
	* import/malloc/scratch_buffer_grow_preserve.c: New file.
	* import/malloc/scratch_buffer_set_array_size.c: New file.
	* import/malloca.c (MAGIC_NUMBER): Update.
	(MAGIC_SIZE): Update.
	(struct preliminary_header): Update.
	(HEADER_SIZE): Update.
	(union header): Update.
	(verify): Update.
	(HASH_TABLE_SIZE): Update.
	(freea): Update.
	* import/malloca.h (malloca): Update.
	(nmalloca): Update.
	* import/malloca.valgrind: Remove.
	* import/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_2): Update.
	(func): Update.
	(rpl_func): Update.
	(f): Update.
	(d): Update.
	(l): Update.
	(_GL_WARN_ON_USE): Update.
	(_GL_WARN_ON_USE_ATTRIBUTE): Update.
	(FP_ILOGB0): Update.
	(FP_ILOGBNAN): Update.
	(acosf): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(asinf): Update.
	(atanf): Update.
	(atan2f): Update.
	(cosf): Update.
	(coshf): Update.
	(expf): Update.
	(expl): Update.
	(expm1l): Update.
	(ilogbl): Update.
	(rintl): Update.
	(sinf): Update.
	(sinhf): Update.
	(sqrtf): Update.
	(tanf): Update.
	(tanhf): Update.
	(isfinite): Update.
	(isinf): Update.
	(isnan): Update.
	(GNULIB_defined_signbit): Update.
	(signbit): Update.
	* import/mbrtowc.c (FALLTHROUGH): Update.
	(locale_enc): Update.
	(locale_enc_cached): Update.
	(gl_lock_define_initialized): Update.
	(mbrtowc): Update.
	* import/mbsinit.c (if): Update.
	(mbsinit): Update.
	* import/mbsrtowcs-impl.h: Update.
	* import/mbsrtowcs-state.c: Update.
	* import/mbsrtowcs.c: Update.
	* import/memchr.c: Update.
	* import/memchr.valgrind: Update.
	* import/memmem.c (__builtin_expect): Update.
	* import/mempcpy.c: Update.
	* import/memrchr.c (__memrchr): Update.
	* import/mkdir.c (if): Update.
	* import/mkdtemp.c: Update.
	* import/mkostemp.c: Update.
	* import/msvc-inval.c: Update.
	* import/msvc-inval.h: Update.
	* import/msvc-nothrow.c: Update.
	* import/msvc-nothrow.h (if): Update.
	* import/netinet_in.in.h: Update.
	* import/open.c (open): Update.
	(if): Update.
	* import/openat-die.c: Update.
	* import/openat-priv.h: Update.
	* import/openat-proc.c: Update.
	* import/openat.c (rpl_openat): Update.
	* import/openat.h: Update.
	* import/opendir.c: Update.
	* import/pathmax.h (if): Update.
	* import/pipe-safer.c: Update.
	* import/rawmemchr.c: Update.
	* import/rawmemchr.valgrind: Update.
	* import/readdir.c (readdir): Update.
	* import/readlink.c: Update.
	* import/realloc.c: Update.
	* import/ref-add.sin: Remove.
	* import/ref-del.sin: Remove.
	* import/rename.c (if): Update.
	* import/rewinddir.c: Update.
	* import/rmdir.c: Update.
	* import/same-inode.h (SAME_INODE): Update.
	* import/save-cwd.c (save_cwd): Update.
	* import/save-cwd.h: Update.
	* import/scratch_buffer.h: New file.
	* import/secure_getenv.c: Remove.
	* import/setenv.c: Update.
	* import/signal.in.h: Update.
	* import/stat-time.c: New file.
	* import/stat-time.h: New file.
	* import/stat-w32.c: New file.
	* import/stat-w32.h: New file.
	* import/stat.c (if): Update.
	(stat): Update.
	(REPLACE_FUNC_STAT_DIR): Update.
	(WINDOWS_NATIVE): Update.
	(WIN32_LEAN_AND_MEAN): Update.
	(is_unc_root): Update.
	(rpl_stat): Update.
	* import/stdalign.in.h (elif): Update.
	* import/stdbool.in.h: Update.
	* import/stddef.in.h (_GL_STDDEF_ALIGNAS): Update.
	(max_align_t): Update.
	(GNULIB_defined_max_align_t): Update.
	* import/stdint.in.h (WINT_MIN): Update.
	(WINT_MAX): Update.
	(_STDINT_MIN): Update.
	(_STDINT_UNSIGNED_MIN): Update.
	(_STDINT_SIGNED_MIN): Update.
	(PTRDIFF_MIN): Update.
	(SIG_ATOMIC_MIN): Update.
	(WCHAR_MIN): Update.
	* import/stdio.in.h (if): Update.
	* import/stdlib.in.h (if): Update.
	(_GL_WARN_ON_USE): Update.
	(_GL_FUNCDECL_SYS): Update.
	(random): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(srandom): Update.
	(initstate): Update.
	(setstate): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(GNULIB_defined_strtod_function): Update.
	(strtold): Update.
	(GNULIB_defined_strtold_function): Update.
	* import/str-two-way.h: Update.
	* import/strchrnul.c: Update.
	* import/strchrnul.valgrind: Update.
	* import/strdup.c: Update.
	* import/streq.h: Update.
	* import/strerror-override.c: Update.
	* import/strerror-override.h: Update.
	* import/strerror.c (strerror): Update.
	* import/strerror_r.c (safe_copy): Update.
	* import/string.in.h (_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(_GL_WARN_ON_USE): Update.
	* import/stripslash.c: Update.
	* import/strnlen1.c: Update.
	* import/strnlen1.h: Update.
	* import/strstr.c (__builtin_expect): Update.
	* import/strtok_r.c: Update.
	* import/sys_socket.in.h (CMSG_SPACE): Update.
	(CMSG_LEN): Update.
	(struct sockaddr_storage): Update.
	(SO_REUSEPORT): Update.
	(_GL_WARN_ON_USE): Update.
	* import/sys_stat.in.h (if): Update.
	(stat): Update.
	(struct stat): Update.
	(st_atime): Update.
	(st_mtime): Update.
	(st_ctime): Update.
	(_GL_WINDOWS_STAT_TIMESPEC): Update.
	(GNULIB_defined_struct_stat): Update.
	(_S_IFBLK): Update.
	(_S_IFLNK): Update.
	(_S_IFSOCK): Update.
	(fstat): Update.
	(fstatat): Update.
	(lstat): Update.
	(stat64): Update.
	(_stat64): Update.
	(_stat32i64): Update.
	(_stati64): Update.
	(_stat32): Update.
	(_stat64i32): Update.
	* import/sys_time.in.h: Update.
	* import/sys_types.in.h (dev_t): Update.
	(GNULIB_defined_dev_t): Update.
	(ino_t): Update.
	(GNULIB_defined_ino_t): Update.
	(_GL_WINDOWS_STAT_INODES): Update.
	(if): Update.
	* import/sys_uio.in.h: Update.
	* import/tempname.c (__secure_getenv): Update.
	(try_nocreate): Update.
	* import/tempname.h: Update.
	* import/time.in.h (tzset): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(ctime): Update.
	(strftime): Update.
	* import/time_r.c: Update.
	* import/unistd--.h: Update.
	* import/unistd-safer.h: Update.
	* import/unistd.in.h (if): Update.
	(elif): Update.
	(__need_getopt): Update.
	(access): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(_GL_WARN_ON_USE): Update.
	(_GL_FUNCDECL_SYS): Update.
	(__declspec): Update.
	(_GL_WARN_ON_USE_ATTRIBUTE): Update.
	(faccessat): Update.
	(getpass): Update.
	(truncate): Update.
	* import/unsetenv.c: Update.
	* import/verify.h (if): Update.
	(_GL_HAVE__STATIC_ASSERT): Update.
	(_GL_HAVE_STATIC_ASSERT): Update.
	(_GL_HAVE__STATIC_ASSERT1): Update.
	(_GL_HAVE_STATIC_ASSERT1): Update.
	(_GL_VERIFY): Update.
	(_Static_assert): Update.
	(_GL_HAS_BUILTIN_TRAP): Update.
	(_GL_HAS_BUILTIN_UNREACHABLE): Update.
	(verify_true): Update.
	(verify): Update.
	(__has_builtin): Update.
	(elif): Update.
	(assume): Update.
	* import/warn-on-use.h: Rename from import/extra/snippet/warn-on-use.h.
	* import/wchar.in.h (if): Update.
	(wcsftime): Update.
	(_GL_FUNCDECL_RPL): Update.
	(_GL_CXXALIAS_RPL): Update.
	(_GL_FUNCDECL_SYS): Update.
	(_GL_CXXALIAS_SYS): Update.
	(_GL_CXXALIASWARN): Update.
	(_GL_WARN_ON_USE): Update.
	* import/wctype.in.h (rpl_iswalnum): Update.
	(rpl_iswalpha): Update.
	(rpl_iswblank): Update.
	(rpl_iswcntrl): Update.
	(rpl_iswdigit): Update.
	(rpl_iswgraph): Update.
	(rpl_iswlower): Update.
	(rpl_iswprint): Update.
	(rpl_iswpunct): Update.
	(rpl_iswspace): Update.
	(rpl_iswupper): Update.
	(rpl_iswxdigit): Update.
	(rpl_towlower): Update.
	(rpl_towupper): Update.
	(iswalnum): Update.
	(iswalpha): Update.
	(iswblank): Update.
	(iswcntrl): Update.
	(iswdigit): Update.
	(iswgraph): Update.
	(iswlower): Update.
	(iswprint): Update.
	(iswpunct): Update.
	(iswspace): Update.
	(iswupper): Update.
	(iswxdigit): Update.
	(towlower): Update.
	(towupper): Update.
	* import/windows-initguard.h: New file.
	* import/windows-mutex.c: New file.
	* import/windows-mutex.h: New file.
	* import/windows-once.c: New file.
	* import/windows-once.h: New file.
	* import/windows-recmutex.c: New file.
	* import/windows-recmutex.h: New file.
	* import/windows-rwlock.c: New file.
	* import/windows-rwlock.h: New file.
	* import/xalloc-oversized.h: New file.
	* patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-when-cross-comp.patch: Remove.
	* patches/0002-mkostemp-mkostemps-Fix-compilation-error-in-C-mode-o.patch: Remove.
	* patches/0003-Fix-glob-c-Coverity-issues.patch: Remove.
	* update-gnulib.sh: Update to latest gnulib and don't apply patches
	anymore.  Also updates the patch -p flag to the current directory structure in
	case patches are needed again in the future.

Change-Id: I9c2b07a3046baecfb664e21b2644353ea888dbfa
2019-12-16 12:20:50 -06:00

545 lines
18 KiB
Plaintext

# stdint.m4 serial 53
dnl Copyright (C) 2001-2019 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 and Bruno Haible.
dnl Test whether <stdint.h> is supported or must be substituted.
AC_PREREQ([2.61])
AC_DEFUN_ONCE([gl_STDINT_H],
[
AC_PREREQ([2.59])dnl
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_LIMITS_H])
AC_REQUIRE([gt_TYPE_WINT_T])
dnl Check for long long int and unsigned long long int.
AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
if test $ac_cv_type_long_long_int = yes; then
HAVE_LONG_LONG_INT=1
else
HAVE_LONG_LONG_INT=0
fi
AC_SUBST([HAVE_LONG_LONG_INT])
AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
if test $ac_cv_type_unsigned_long_long_int = yes; then
HAVE_UNSIGNED_LONG_LONG_INT=1
else
HAVE_UNSIGNED_LONG_LONG_INT=0
fi
AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does.
AC_CHECK_HEADERS_ONCE([wchar.h])
if test $ac_cv_header_wchar_h = yes; then
HAVE_WCHAR_H=1
else
HAVE_WCHAR_H=0
fi
AC_SUBST([HAVE_WCHAR_H])
dnl Check for <inttypes.h>.
dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
if test $ac_cv_header_inttypes_h = yes; then
HAVE_INTTYPES_H=1
else
HAVE_INTTYPES_H=0
fi
AC_SUBST([HAVE_INTTYPES_H])
dnl Check for <sys/types.h>.
dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h.
if test $ac_cv_header_sys_types_h = yes; then
HAVE_SYS_TYPES_H=1
else
HAVE_SYS_TYPES_H=0
fi
AC_SUBST([HAVE_SYS_TYPES_H])
gl_CHECK_NEXT_HEADERS([stdint.h])
if test $ac_cv_header_stdint_h = yes; then
HAVE_STDINT_H=1
else
HAVE_STDINT_H=0
fi
AC_SUBST([HAVE_STDINT_H])
dnl Now see whether we need a substitute <stdint.h>.
if test $ac_cv_header_stdint_h = yes; then
AC_CACHE_CHECK([whether stdint.h conforms to C99],
[gl_cv_header_working_stdint_h],
[gl_cv_header_working_stdint_h=no
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
#define __STDC_CONSTANT_MACROS 1
#define __STDC_LIMIT_MACROS 1
#include <stdint.h>
/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */
#if !(defined WCHAR_MIN && defined WCHAR_MAX)
#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
#endif
]
gl_STDINT_INCLUDES
[
#ifdef INT8_MAX
int8_t a1 = INT8_MAX;
int8_t a1min = INT8_MIN;
#endif
#ifdef INT16_MAX
int16_t a2 = INT16_MAX;
int16_t a2min = INT16_MIN;
#endif
#ifdef INT32_MAX
int32_t a3 = INT32_MAX;
int32_t a3min = INT32_MIN;
#endif
#ifdef INT64_MAX
int64_t a4 = INT64_MAX;
int64_t a4min = INT64_MIN;
#endif
#ifdef UINT8_MAX
uint8_t b1 = UINT8_MAX;
#else
typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
#endif
#ifdef UINT16_MAX
uint16_t b2 = UINT16_MAX;
#endif
#ifdef UINT32_MAX
uint32_t b3 = UINT32_MAX;
#endif
#ifdef UINT64_MAX
uint64_t b4 = UINT64_MAX;
#endif
int_least8_t c1 = INT8_C (0x7f);
int_least8_t c1max = INT_LEAST8_MAX;
int_least8_t c1min = INT_LEAST8_MIN;
int_least16_t c2 = INT16_C (0x7fff);
int_least16_t c2max = INT_LEAST16_MAX;
int_least16_t c2min = INT_LEAST16_MIN;
int_least32_t c3 = INT32_C (0x7fffffff);
int_least32_t c3max = INT_LEAST32_MAX;
int_least32_t c3min = INT_LEAST32_MIN;
int_least64_t c4 = INT64_C (0x7fffffffffffffff);
int_least64_t c4max = INT_LEAST64_MAX;
int_least64_t c4min = INT_LEAST64_MIN;
uint_least8_t d1 = UINT8_C (0xff);
uint_least8_t d1max = UINT_LEAST8_MAX;
uint_least16_t d2 = UINT16_C (0xffff);
uint_least16_t d2max = UINT_LEAST16_MAX;
uint_least32_t d3 = UINT32_C (0xffffffff);
uint_least32_t d3max = UINT_LEAST32_MAX;
uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
uint_least64_t d4max = UINT_LEAST64_MAX;
int_fast8_t e1 = INT_FAST8_MAX;
int_fast8_t e1min = INT_FAST8_MIN;
int_fast16_t e2 = INT_FAST16_MAX;
int_fast16_t e2min = INT_FAST16_MIN;
int_fast32_t e3 = INT_FAST32_MAX;
int_fast32_t e3min = INT_FAST32_MIN;
int_fast64_t e4 = INT_FAST64_MAX;
int_fast64_t e4min = INT_FAST64_MIN;
uint_fast8_t f1 = UINT_FAST8_MAX;
uint_fast16_t f2 = UINT_FAST16_MAX;
uint_fast32_t f3 = UINT_FAST32_MAX;
uint_fast64_t f4 = UINT_FAST64_MAX;
#ifdef INTPTR_MAX
intptr_t g = INTPTR_MAX;
intptr_t gmin = INTPTR_MIN;
#endif
#ifdef UINTPTR_MAX
uintptr_t h = UINTPTR_MAX;
#endif
intmax_t i = INTMAX_MAX;
uintmax_t j = UINTMAX_MAX;
/* Check that SIZE_MAX has the correct type, if possible. */
#if 201112 <= __STDC_VERSION__
int k = _Generic (SIZE_MAX, size_t: 0);
#elif (2 <= __GNUC__ || defined __IBM__TYPEOF__ \
|| (0x5110 <= __SUNPRO_C && !__STDC__))
extern size_t k;
extern __typeof__ (SIZE_MAX) k;
#endif
#include <limits.h> /* for CHAR_BIT */
#define TYPE_MINIMUM(t) \
((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
#define TYPE_MAXIMUM(t) \
((t) ((t) 0 < (t) -1 \
? (t) -1 \
: ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
struct s {
int check_PTRDIFF:
PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
&& PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
? 1 : -1;
/* Detect bug in FreeBSD 6.0 / ia64. */
int check_SIG_ATOMIC:
SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
&& SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
? 1 : -1;
int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
int check_WCHAR:
WCHAR_MIN == TYPE_MINIMUM (wchar_t)
&& WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
? 1 : -1;
/* Detect bug in mingw. */
int check_WINT:
WINT_MIN == TYPE_MINIMUM (wint_t)
&& WINT_MAX == TYPE_MAXIMUM (wint_t)
? 1 : -1;
/* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
int check_UINT8_C:
(-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
int check_UINT16_C:
(-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
/* Detect bugs in OpenBSD 3.9 stdint.h. */
#ifdef UINT8_MAX
int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
#endif
#ifdef UINT16_MAX
int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
#endif
#ifdef UINT32_MAX
int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
#endif
#ifdef UINT64_MAX
int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
#endif
int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
};
]])],
[dnl Determine whether the various *_MIN, *_MAX macros are usable
dnl in preprocessor expression. We could do it by compiling a test
dnl program for each of these macros. It is faster to run a program
dnl that inspects the macro expansion.
dnl This detects a bug on HP-UX 11.23/ia64.
AC_RUN_IFELSE([
AC_LANG_PROGRAM([[
#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
#define __STDC_CONSTANT_MACROS 1
#define __STDC_LIMIT_MACROS 1
#include <stdint.h>
]
gl_STDINT_INCLUDES
[
#include <stdio.h>
#include <string.h>
#define MVAL(macro) MVAL1(macro)
#define MVAL1(expression) #expression
static const char *macro_values[] =
{
#ifdef INT8_MAX
MVAL (INT8_MAX),
#endif
#ifdef INT16_MAX
MVAL (INT16_MAX),
#endif
#ifdef INT32_MAX
MVAL (INT32_MAX),
#endif
#ifdef INT64_MAX
MVAL (INT64_MAX),
#endif
#ifdef UINT8_MAX
MVAL (UINT8_MAX),
#endif
#ifdef UINT16_MAX
MVAL (UINT16_MAX),
#endif
#ifdef UINT32_MAX
MVAL (UINT32_MAX),
#endif
#ifdef UINT64_MAX
MVAL (UINT64_MAX),
#endif
NULL
};
]], [[
const char **mv;
for (mv = macro_values; *mv != NULL; mv++)
{
const char *value = *mv;
/* Test whether it looks like a cast expression. */
if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
|| strncmp (value, "((unsigned short)"/*)*/, 17) == 0
|| strncmp (value, "((unsigned char)"/*)*/, 16) == 0
|| strncmp (value, "((int)"/*)*/, 6) == 0
|| strncmp (value, "((signed short)"/*)*/, 15) == 0
|| strncmp (value, "((signed char)"/*)*/, 14) == 0)
return mv - macro_values + 1;
}
return 0;
]])],
[gl_cv_header_working_stdint_h=yes],
[],
[case "$host_os" in
# Guess yes on native Windows.
mingw*) gl_cv_header_working_stdint_h="guessing yes" ;;
# In general, assume it works.
*) gl_cv_header_working_stdint_h="guessing yes" ;;
esac
])
])
])
fi
HAVE_C99_STDINT_H=0
HAVE_SYS_BITYPES_H=0
HAVE_SYS_INTTYPES_H=0
STDINT_H=stdint.h
case "$gl_cv_header_working_stdint_h" in
*yes)
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
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
#include <stdint.h>
]
gl_STDINT_INCLUDES
[
intmax_t im = INTMAX_MAX;
int32_t i32 = INT32_C (0x7fffffff);
]])],
[gl_cv_header_stdint_predates_cxx11_h=no])])
if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
AC_DEFINE([__STDC_CONSTANT_MACROS], [1],
[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.])
fi
AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.],
[gl_cv_header_stdint_width],
[gl_cv_header_stdint_width=no
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[
/* Work if build is not clean. */
#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1
#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
#define __STDC_WANT_IEC_60559_BFP_EXT__ 1
#endif
#include <stdint.h>
]gl_STDINT_INCLUDES[
int iw = UINTMAX_WIDTH;
]])],
[gl_cv_header_stdint_width=yes])])
if test "$gl_cv_header_stdint_width" = yes; then
STDINT_H=
fi
;;
*)
dnl Check for <sys/inttypes.h>, and for
dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
if test $ac_cv_header_sys_inttypes_h = yes; then
HAVE_SYS_INTTYPES_H=1
fi
if test $ac_cv_header_sys_bitypes_h = yes; then
HAVE_SYS_BITYPES_H=1
fi
gl_STDINT_TYPE_PROPERTIES
;;
esac
dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH.
gl_REPLACE_LIMITS_H
AC_SUBST([HAVE_C99_STDINT_H])
AC_SUBST([HAVE_SYS_BITYPES_H])
AC_SUBST([HAVE_SYS_INTTYPES_H])
AC_SUBST([STDINT_H])
AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
])
dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
dnl Determine the size of each of the given types in bits.
AC_DEFUN([gl_STDINT_BITSIZEOF],
[
dnl Use a shell loop, to avoid bloating configure, and
dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
dnl config.h.in,
dnl - extra AC_SUBST calls, so that the right substitutions are made.
m4_foreach_w([gltype], [$1],
[AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
[Define to the number of bits in type ']gltype['.])])
for gltype in $1 ; do
AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
[AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
[$2
#include <limits.h>], [result=unknown])
eval gl_cv_bitsizeof_${gltype}=\$result
])
eval result=\$gl_cv_bitsizeof_${gltype}
if test $result = unknown; then
dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
dnl do a syntax check even on unused #if conditions and give an error
dnl on valid C code like this:
dnl #if 0
dnl # if > 32
dnl # endif
dnl #endif
result=0
fi
GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
eval BITSIZEOF_${GLTYPE}=\$result
done
m4_foreach_w([gltype], [$1],
[AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
])
dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES)
dnl Determine the signedness of each of the given types.
dnl Define HAVE_SIGNED_TYPE if type is signed.
AC_DEFUN([gl_CHECK_TYPES_SIGNED],
[
dnl Use a shell loop, to avoid bloating configure, and
dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
dnl config.h.in,
dnl - extra AC_SUBST calls, so that the right substitutions are made.
m4_foreach_w([gltype], [$1],
[AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
[Define to 1 if ']gltype[' is a signed integer type.])])
for gltype in $1 ; do
AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([$2[
int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])],
result=yes, result=no)
eval gl_cv_type_${gltype}_signed=\$result
])
eval result=\$gl_cv_type_${gltype}_signed
GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
if test "$result" = yes; then
AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1])
eval HAVE_SIGNED_${GLTYPE}=1
else
eval HAVE_SIGNED_${GLTYPE}=0
fi
done
m4_foreach_w([gltype], [$1],
[AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
])
dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES)
dnl Determine the suffix to use for integer constants of the given types.
dnl Define t_SUFFIX for each such type.
AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
[
dnl Use a shell loop, to avoid bloating configure, and
dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
dnl config.h.in,
dnl - extra AC_SUBST calls, so that the right substitutions are made.
m4_foreach_w([gltype], [$1],
[AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
[Define to l, ll, u, ul, ull, etc., as suitable for
constants of type ']gltype['.])])
for gltype in $1 ; do
AC_CACHE_CHECK([for $gltype integer literal suffix],
[gl_cv_type_${gltype}_suffix],
[eval gl_cv_type_${gltype}_suffix=no
eval result=\$gl_cv_type_${gltype}_signed
if test "$result" = yes; then
glsufu=
else
glsufu=u
fi
for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
case $glsuf in
'') gltype1='int';;
l) gltype1='long int';;
ll) gltype1='long long int';;
i64) gltype1='__int64';;
u) gltype1='unsigned int';;
ul) gltype1='unsigned long int';;
ull) gltype1='unsigned long long int';;
ui64)gltype1='unsigned __int64';;
esac
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([$2[
extern $gltype foo;
extern $gltype1 foo;]])],
[eval gl_cv_type_${gltype}_suffix=\$glsuf])
eval result=\$gl_cv_type_${gltype}_suffix
test "$result" != no && break
done])
GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
eval result=\$gl_cv_type_${gltype}_suffix
test "$result" = no && result=
eval ${GLTYPE}_SUFFIX=\$result
AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result])
done
m4_foreach_w([gltype], [$1],
[AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
])
dnl gl_STDINT_INCLUDES
AC_DEFUN([gl_STDINT_INCLUDES],
[[
/* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
included before <wchar.h>. */
#include <stddef.h>
#include <signal.h>
#if HAVE_WCHAR_H
# include <stdio.h>
# include <time.h>
# include <wchar.h>
#endif
]])
dnl gl_STDINT_TYPE_PROPERTIES
dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t
dnl of interest to stdint.in.h.
AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
[
AC_REQUIRE([gl_MULTIARCH])
if test $APPLE_UNIVERSAL_BUILD = 0; then
gl_STDINT_BITSIZEOF([ptrdiff_t size_t],
[gl_STDINT_INCLUDES])
fi
gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t],
[gl_STDINT_INCLUDES])
gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t],
[gl_STDINT_INCLUDES])
gl_cv_type_ptrdiff_t_signed=yes
gl_cv_type_size_t_signed=no
if test $APPLE_UNIVERSAL_BUILD = 0; then
gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t],
[gl_STDINT_INCLUDES])
fi
gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t],
[gl_STDINT_INCLUDES])
dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99
dnl requirement that wint_t is "unchanged by default argument promotions".
dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
dnl Set the variable BITSIZEOF_WINT_T accordingly.
if test $GNULIB_OVERRIDES_WINT_T = 1; then
BITSIZEOF_WINT_T=32
fi
])