diff --git a/ACKNOWLEDGEMENTS b/ACKNOWLEDGEMENTS index af29c15..d73be54 100644 --- a/ACKNOWLEDGEMENTS +++ b/ACKNOWLEDGEMENTS @@ -20,7 +20,7 @@ Using the DLPI support on SysV systems to get the host MAC address in check_dhcp Stenberg, Daniel Copyright (c) 1996 - 2004, Daniel Stenberg, http://curl.haxx.se/ -Use of duplication of macros in m4/np_curl.m4 (slightly adapted for m4/uriparser.m4 too) +Use of duplication of macros in m4/np_curl.m4 (slighly adapted for m4/uriparser.m4 too) Coreutils team Copyright (C) 91, 1995-2004 Free Software Foundation, Inc. diff --git a/Makefile.am b/Makefile.am index 5d9b075..fe9c564 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS = gl tap lib plugins plugins-scripts plugins-root @PERLMODS_DIR@ +SUBDIRS = gl tap lib plugins plugins-scripts plugins-root po @PERLMODS_DIR@ EXTRA_DIST = config.rpath \ ABOUT-NLS ACKNOWLEDGEMENTS AUTHORS CODING ChangeLog FAQ NEWS \ diff --git a/Makefile.in b/Makefile.in index 14fab66..2def9da 100644 --- a/Makefile.in +++ b/Makefile.in @@ -72,7 +72,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -92,58 +91,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -151,57 +142,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -326,6 +310,7 @@ distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -334,7 +319,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -345,11 +329,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -385,476 +367,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -863,7 +722,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -871,11 +729,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -885,17 +741,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -905,22 +757,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -940,7 +787,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -950,37 +796,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -991,24 +830,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1016,21 +849,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1044,23 +873,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1071,29 +893,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1105,9 +922,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1123,16 +937,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1142,7 +952,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1153,17 +962,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1177,7 +982,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1202,10 +1006,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1217,8 +1021,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1237,24 +1039,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1263,6 +1056,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1270,23 +1064,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1298,7 +1087,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1306,12 +1094,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1323,7 +1108,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1381,63 +1165,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1448,61 +1204,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1520,9 +1260,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1532,11 +1270,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1544,30 +1277,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1575,24 +1299,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1600,42 +1318,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -1643,10 +1346,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -1665,21 +1366,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -1692,9 +1386,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -1726,10 +1417,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -1744,9 +1433,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = $(datadir)/locale -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -1766,7 +1454,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ with_trusted_path = @with_trusted_path@ -SUBDIRS = gl tap lib plugins plugins-scripts plugins-root @PERLMODS_DIR@ +SUBDIRS = gl tap lib plugins plugins-scripts plugins-root po @PERLMODS_DIR@ EXTRA_DIST = config.rpath \ ABOUT-NLS ACKNOWLEDGEMENTS AUTHORS CODING ChangeLog FAQ NEWS \ NP-VERSION-GEN REQUIREMENTS SUPPORT THANKS \ diff --git a/NEWS b/NEWS index 2b257aa..83d522e 100644 --- a/NEWS +++ b/NEWS @@ -1,102 +1,5 @@ This file documents the major additions and syntax changes between releases. -2.4.0 25th Jul 2024 - FIXES - * check_dbi: Compiler warning for uninitialized variable - * check_curl: Initialize pointer before usage - * check_ntp: Initialize intermediate results in any case - * Fixes for -Wsign-compare - * check_tcp: Fixes an error with using the wrong type for a variable - * check_mailq: exit on empty strings and exit early - * check_users: Change option for sanity checking arguments to avoid segfault - * check_users: Update help to properly show that thresholds are ranges - * check_users: fix segfault - * check_dbi: Fix compiler warning for uninitialized variable - * check_curl: Initialize pointer before usage - * check_ntp: Initialize intermediate results in any case - * Fix logic in is_uint64_t to fix type-limit warning - * check_ntp_peer: Fixes for Wmaybe-unitialized and some restructuring - * check_dns: Remove unused variable - * check_ntp_peer: Fixes for Wmaybe-unitialized and some restructuring - * check_dns: Remove unused variable - * check_disk: fix ignore-missing in combination with includes - * check_procs: ignore our own children - * Prevent -lcrypto from showing up in Makefile dependencies - * Change irritating NULL assignment - * check_http: Remove self assignment of a variable and add some comments - * check_snmp: Remove unused variable - * check_dhcp: Make implicit conversion explicit to dismiss warning - * check_http: Remove self assignment of a variable and add some comments - * check_dhcp: Make implicit conversion explicit to dismiss warning - * Ini Parser: Avoid freeing symbols from text section - * check_icmp: keep performance data order in case of none-reachable hosts - * check_swap: Change another fake boolean to a real one - * check_swap: Rename type since *_t is reserved for C standard types - * check_ssh: Fix a typo in "remote-protocol parameter - * check_ssh: Handle non-alpha software versions - * check_ssh: properly parse a delayed version control string - * check_disk: Fail on missing arguments for --warning and --critical and fix a test case - * check_disk: Use new test function for percentage expressions - * check_load: remove unused code - * check_curl/check_http: clarified format of POST data - - ENHANCEMENTS - * Use C99 booleans - * check_mailq: remove trailing whitespaces - * check_mailq: unify tabs/spaces - * check_oracle: Shellcheck fixes - * check_ups: output ups.realpower if supported - * check_disk: add -n short option for --ignore-missing - * check_procs: Improve help text, mentioning excluded processes - * check_procs: Generalise wording, remove mentioning of nrpe - * check_curl: add haproxy protocol option - * Improve negate plugin helptext - * check_disk: increase alert precision - * check_ircd: IPv6 support - * check_nwstat: adds percentage used space - * Add new test function for percentage expressions - * check_swap: Possibility to run check_swap without thresholds - * check_ups: additional alarm conditions - * check_http/check_curl: added a --regex-state option to change the state of a regex check - -2.3.5 18th Oct 2023 - FIXES - * Include maxfd.h in lib Makefile - -2.3.4 18th Oct 2023 - ENHANCEMENTS - * check_curl: added --cookie-jar and doing proper cleanup of libcurl - * check_curl: Include all IPs from getaddrinfo() in curl DNS cache - * check_dhcp: Add dhcp rogue detection - * check_disk: add ignore-missing option to return OK for missing fs - * check_disk_smb: allow checking 0-sized resource (ex. IPC$) - * check_disk: The options to include or exclude specific file systems now allow the usage of regex(7) - * check_icmp: Add support to Jitter, MOS and Score - * check_mysql: Detect running mysqldump and handle it more gracefully - * check_procs: Implement --exclude-process to exclude specific processes - * check_smtp: add new longoption --tls - * check_smtp: Add option to prefix PROXY header - * check_smtp: Add support for SMTP over TLS - * check_smtp: Add support for SNI - * check_snmp: Implement option to ignore mib file parsing errors - * check_users: prefer systemd-logind over utmp - - FIXES - * check_disk: Display SI units correctly - * check_ircd: use pack_sockaddr_in rather than hand-rolled - * check_log/check_oracle/check_sensors: fixed the outputs of the help functionality - * check_mysql: Add mysql_close to avoid spamming the server logs - * check_smtp: add missing -r option in usage - * check_snmp: disable multiplier when unused - * check_wave: Use compile time determined path to snmpget - - GENERAL - * Sync with the Gnulib code 668c0b8ffa - * Set autoconf prerequisite version to 2.64 - * Remove sha1 and use sha256 in some parts of the plugin structure - * A lot of compiler warnings were fixed - * Some code was refactored a little bit - 2.3.3 2nd Feb 2023 ENHANCEMENTS using PRId64 and PRIu64 instead of %ld directly @@ -106,12 +9,12 @@ This file documents the major additions and syntax changes between releases. check_http/check_curl: add chunked encoding test check_log: Added --exclude to exclude patterns check_log: Add tests - check_disk: Clarify usage possibilities + check_disk: Clarify usage possibilites FIXES fixed two PRId64 to PRIu64 in perfdata_uint64 - check_pgsql: Removing is_pg_dbname altogether,using postgres API. - check_http: Remove superfluous CRLF in HTTP-Requests + check_pgsql: Removing is_pg_dbname alltogether,using postgres API. + check_http: Remove superflous CRLF in HTTP-Requests check_curl: detect ipv6 check_icmp: fix parsing help/version long options check_http: fix test plan @@ -137,7 +40,7 @@ This file documents the major additions and syntax changes between releases. 2.3.2 20th Oct 2022 GENERAL - Use netcat-openbsd for debian explicitly (by @RincewindsHat #1704) + Use netcat-openbsd for debian explicitely (by @RincewindsHat #1704) Replace egrep with grep -E (by @RincewindsHat #1791) Use silent automake by default (by @RincewindsHat #1747) @@ -220,7 +123,7 @@ This file documents the major additions and syntax changes between releases. check_log: Modernize check log (by @RincewindsHat #1692) check_mailq: remove duplicate W=i/C=i args in check_mailq.pl (by @ichdasich #1755) check_ntp: Check ntp remove unused variables (by @RincewindsHat #1781) - check_pgsql: Using snprintf which honors the buffers size and guarantees null termination. (Closes: #1601) (by @waja #1663) + check_pgsql: Using snprintf which honors the buffers size and guarantees null temination. (Closes: #1601) (by @waja #1663) check_procs: Fix double percentage sign in usage (by @RincewindsHat #1743) check_sensors.sh: Make shellcheck happier (by @RincewindsHat #1679) check_snmp: Fixed option description authpassword -> authpasswd + whitespaces (by @RincewindsHat #1676) @@ -262,7 +165,7 @@ This file documents the major additions and syntax changes between releases. check_apt: adding packages-warning option check_load: Adding top consuming processes option check_http: Adding Proxy-Authorization and extra headers - check_snmp: make calculation of timeout value in help output more clear + check_snmp: make calcualtion of timeout value in help output more clear check_uptime: new plugin for checking uptime to see how long the system is running check_curl: check_http replacement based on libcurl check_http: Allow user to specify HTTP method after proxy CONNECT @@ -292,7 +195,7 @@ This file documents the major additions and syntax changes between releases. check_procs: improve command examples for 'at least' processes check_swap: repaired "-n" behaviour check_disk: include -P switch in help - check_mailq: restore accidentally removed options + check_mailq: restore accidentially removed options 2.2 29th November 2016 ENHANCEMENTS @@ -333,7 +236,7 @@ This file documents the major additions and syntax changes between releases. check_ssh now returns CRITICAL for protocol/version errors If a plugin is invoked with -h/--help or -V/--version, the exit status is now UNKNOWN - The superseded check_ntp.pl was removed, please use check_ntp_peer or + The superseeded check_ntp.pl was removed, please use check_ntp_peer or check_ntp_time instead 2.1.2 16th October 2015 @@ -360,7 +263,7 @@ This file documents the major additions and syntax changes between releases. New check_mysql -n option to ignore authentication failures Added IP and port or socket name to error messages New check_ntp_time -o option to add expected offset - check_disk shows now troubled partitions in verbose mode + check_disk shows now troubled partions in verbose mode check_dig has now support for drill and dig check_dig has now support for -6 option Add performance data to check_file_age @@ -454,10 +357,10 @@ This file documents the major additions and syntax changes between releases. New check_procs -k option to ignore kernel threads (on Linux) Let check_procs use /proc//exe (if available) instead of getpid(2), unless -T is specified Let check_mysql support SSL - Let check_mysql add performance metrics for all checks + Let check_mysql add perfromance metrics for all checks New check_mysql -f option to specify a client options file New check_mysql -g option to specify a client options group - New check_snmp --offset option to allow for adding/subtracting an offset value to sensor data + New check_snmp --offset option to allow for adding/substracting an offset value to sensor data Let check_snmp support an arbitrary number of OIDs Let check_ide_smart support NetBSD @@ -472,7 +375,7 @@ This file documents the major additions and syntax changes between releases. Fix deprecated imports of check_nmap.py WARNINGS - check_http behaviour of -k/--header changed since it does not separate multiple headers by semicolons anymore. Use multiple -k switches instead. + check_http behaviour of -k/--header changed since it does not seperate multiple headers by semicolons anymore. Use multiple -k switches instead. check_http's --proxy_authorization option is now called --proxy-authorization (it was always documented this way) The contrib directory has been removed from this distribution @@ -623,7 +526,7 @@ This file documents the major additions and syntax changes between releases. check_ntp and check_ntp_peer now show proper jitter/stratum thresholds longopts in --help check_dns now allow to repeat -a to match multiple possibly returned address (common with load balancers) check_mysql and check_radius now try clearing password in processlist just like check_mysql_query - check_mysql and check_mysql_query now support sockets explicitly (-s, --socket) + check_mysql and check_mysql_query now support sockets explicitely (-s, --socket) negate now has the ability to replace the status text as well (-s, --substitute) Added performance data to check_ping Added support for --extra-opts in all C plugins (disabled by default, see configure --help) @@ -663,7 +566,7 @@ This file documents the major additions and syntax changes between releases. New check_disk option -L: Only check local filesystems, but call stat() on remote ones, too. Thus accessibility of remote filesystems can be checked without any threshold comparison. Check_disk's --help now prints some examples for the new features introduced in 1.4.8 - New check_disk -i/-I option to ignore paths/partitions based on regular expressions + New check_disk -i/-I option to ignore pathes/partitions based on regular expressions New check_disk -A option to select all filesystems explicitly WARNING: check_disk's -E option must now be passed before -p or -r/-R arguments Passing -E after -p or -r results in UNKNOWN state, now @@ -712,7 +615,7 @@ This file documents the major additions and syntax changes between releases. Fixed MKINSTALLDIRS problem in po/ ./configure now detects if possible to compile check_mysql Fixed broken HELO in check_smtp - check_icmp now allows to set a minimum number of hosts required for success (-m) + check_icmp now allows to set a minimum number of hosts required for successs (-m) check_icmp fix for *BSD when running for long time check_ping times out 1 second quicker if host is unreachable Root plugins installed with world executable diff --git a/NP-VERSION-GEN b/NP-VERSION-GEN index 9bcbb73..b4c8d24 100755 --- a/NP-VERSION-GEN +++ b/NP-VERSION-GEN @@ -6,7 +6,7 @@ SRC_ROOT=`dirname $0` NPVF=NP-VERSION-FILE -DEF_VER=2.4.0 +DEF_VER=2.3.3 LF=' ' diff --git a/NPTest.pm b/NPTest.pm index 9b25ac3..4b2de39 100644 --- a/NPTest.pm +++ b/NPTest.pm @@ -151,14 +151,14 @@ of testing against a set of desired exit status values. =item * Firstly, if C<$desiredExitStatus> is a reference to an array of exit -statuses, if the actual exit status of the command is present in the +stati, if the actual exit status of the command is present in the array, it is used in the call to C when testing the exit status. =item * Alternatively, if C<$desiredExitStatus> is a reference to a hash of -exit statuses(mapped to the strings "continue" or "skip"), similar +exit stati (mapped to the strings "continue" or "skip"), similar processing to the above occurs with the side affect of determining if any generated output testing should proceed. Note: only the string "skip" will result in generated output testing being skipped. @@ -207,7 +207,7 @@ under the same terms as the Monitoring Plugins release. my( %CACHE ) = (); -# I'm not really sure whether to house a site-specific cache inside +# I'm not really sure wether to house a site-specific cache inside # or outside of the extracted source / build tree - lets default to outside my( $CACHEFILENAME ) = ( exists( $ENV{'NPTEST_CACHE'} ) && $ENV{'NPTEST_CACHE'} ) ? $ENV{'NPTEST_CACHE'} : "/var/tmp/NPTest.cache"; # "../Cache.pdd"; diff --git a/THANKS b/THANKS index c82bdd6..51514a7 100644 --- a/THANKS +++ b/THANKS @@ -2,31 +2,28 @@ This software is brought to you by the Monitoring Plugins Development Team. Howe there have been many contributors to this project. Everyone below has helped in raising bug reports, creating patches or contributing new plugins. -Matthias Hähnel +Elan Ruusamäe +Randy O'Meara +Wolfgang Karall-Ahlborn +Nicolai Søborg dag rob?le Diego Elio Pettenò -Elan Ruusamäe -Thoralf Rickert-Wendt +Matthias Hähnel +Marc Sánchez Aksel Sjögren fabiodds -Nicolai Søborg -Arkadiusz MiÅ›kiewicz -Wolfgang Karall-Ahlborn -Matthias Döhler -Marc Sánchez -Randy O'Meara Oskar Ahner Lance Albertson David Alden Patrick Allen -Paul Allen Rodger Allen +Paul Allen Felipe Gustavo de Almeida Michael Almond Michael Anthon Bernd Apfel -Paula Arnold Bernd Arnold +Paula Arnold Kondoros Attila Daniel Austin Karol Babioch @@ -47,7 +44,6 @@ Hilko Bengen Jason Benguerel Allan Bennett Booker C. Bense -Björn Berg Guy Van Den Bergh Andrew Berglund Jimmy Bergman @@ -79,7 +75,6 @@ Jethro Carr Jim Carroll Ian Cass Arnold Cavazos -Patrick Cervicek Alex Chaffee Yannick Charton Stephane Chazelas @@ -89,8 +84,8 @@ Lee Clemens Ben Clewett Jean-Claude Computing Lionel Cons -Charlie Cook Garry Cook +Charlie Cook Ollie Cook Luca Corti Greg Cox @@ -135,8 +130,8 @@ Paulo Fessel James Fidell Tobias Fiebig Roman Fiedler -Bernhard Fischer Johan Fischer +Bernhard Fischer Matthias Flacke Martin Foster Felix Frank @@ -154,7 +149,6 @@ Flo Gleixner Evgeni Golov Joseph Gooch Aravind Gottipati -Ralph Gottschalkson Kev Green Steve Greenland Roberto Greiner @@ -167,14 +161,12 @@ Sebastien Guay Linda Guo Jon Hallett Steve Hanselman -Jacob Hansen Ask Bjoern Hansen +Jacob Hansen Sebastian Harl Michael Haro -Sven Hartge Olli Hauer Gunnar Hellekson -Stuart Henderson Geert Hendrickx Sebastian Herbszt Johannes Herlitz @@ -206,7 +198,6 @@ Konstantin Khomoutov Serhan Kiymaz Alexander A. Klimov Denis Knauf -Eric Knibbe Harald Koch Tilman Koschnick John Koyle @@ -218,7 +209,6 @@ Frederic Krueger Claudio Kuenzler Marcel Kuiper Christian Kujau -Thorsten Kukuk Alexander Kulak Bill Kunkel Thomas Kurschel @@ -246,7 +236,6 @@ Jason Lunn Davide Madrisan Guenther Mair Pawel Malachowski -Gerardo Malazdrewicz Ricardo Maraschini Michael Markstaller John Marquart @@ -272,7 +261,6 @@ Jonathan Milby Russell Miller Eric J. Mislivec Janos Mohacsi -John Morrissey Andreas Motl Tomas Mozes Gerd Mueller @@ -296,7 +284,6 @@ Remi Paulmier Tom Payerle Nick Peelman Fabian Pehla -Alvar Penning Chris Pepper Matt Perry Matthew Peters @@ -310,7 +297,6 @@ Matt Pounsett Peter Pramberger Joe Presbrey Will Preston -Platon Pronko Arnaud Quette Darian Rackham Peter Radcliffe @@ -322,7 +308,6 @@ Abid Rasheed Patrick Rauscher Jeremy Reed Spenser Reinhardt -Eunice Remoquillo Marc Remy Alessandro Ren Joe Rhett @@ -330,7 +315,6 @@ Cliff Rice Alain Richard Didi Rieder Steve Rigler -Emmanuel Riviere Josip Rodin Kenny Root Wolfgang Rosenauer @@ -341,7 +325,6 @@ Sascha Runschke Dietmar Ruzicka Ralph Rye Alen Salamun -Louis Sautier Sven Schaffranneck Christoph Schell Thomas Schimpke @@ -354,8 +337,6 @@ Cove Schneider Enrico Scholz Sebastian Schubert Christopher Schultz -Kristian Schuster -Franz Schwartau Russell Scibetti Noel Sebastien Andreas Seemueller @@ -378,7 +359,6 @@ David Sullivan Kjell Sundtjonn Ziya Suzen Christian Tacke -Stefan Taferner Danijel Tasov Michael Tiernan Ben Timby @@ -389,7 +369,6 @@ Gabriele Tozzi Kyle Tucker Jerome Tytgat Daniel Uhlmann -Patrick Uiterwijk Stéphane Urbanovski Matthias Urlichs Matteo HCE Valsasna diff --git a/aclocal.m4 b/aclocal.m4 index 9afcbeb..3a093fa 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -20,3281 +20,6 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# build-to-host.m4 serial 3 -dnl Copyright (C) 2023-2024 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 Written by Bruno Haible. - -dnl When the build environment ($build_os) is different from the target runtime -dnl environment ($host_os), file names may need to be converted from the build -dnl environment syntax to the target runtime environment syntax. This is -dnl because the Makefiles are executed (mostly) by build environment tools and -dnl therefore expect file names in build environment syntax, whereas the runtime -dnl expects file names in target runtime environment syntax. -dnl -dnl For example, if $build_os = cygwin and $host_os = mingw32, filenames need -dnl be converted from Cygwin syntax to native Windows syntax: -dnl /cygdrive/c/foo/bar -> C:\foo\bar -dnl /usr/local/share -> C:\cygwin64\usr\local\share -dnl -dnl gl_BUILD_TO_HOST([somedir]) -dnl This macro takes as input an AC_SUBSTed variable 'somedir', which must -dnl already have its final value assigned, and produces two additional -dnl AC_SUBSTed variables 'somedir_c' and 'somedir_c_make', that designate the -dnl same file name value, just in different syntax: -dnl - somedir_c is the file name in target runtime environment syntax, -dnl as a C string (starting and ending with a double-quote, -dnl and with escaped backslashes and double-quotes in -dnl between). -dnl - somedir_c_make is the same thing, escaped for use in a Makefile. - -AC_DEFUN([gl_BUILD_TO_HOST], -[ - AC_REQUIRE([AC_CANONICAL_BUILD]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_BUILD_TO_HOST_INIT]) - - dnl Define somedir_c. - gl_final_[$1]="$[$1]" - dnl Translate it from build syntax to host syntax. - case "$build_os" in - cygwin*) - case "$host_os" in - mingw* | windows*) - gl_final_[$1]=`cygpath -w "$gl_final_[$1]"` ;; - esac - ;; - esac - dnl Convert it to C string syntax. - [$1]_c=`printf '%s\n' "$gl_final_[$1]" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes" | tr -d "$gl_tr_cr"` - [$1]_c='"'"$[$1]_c"'"' - AC_SUBST([$1_c]) - - dnl Define somedir_c_make. - [$1]_c_make=`printf '%s\n' "$[$1]_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2" | tr -d "$gl_tr_cr"` - dnl Use the substituted somedir variable, when possible, so that the user - dnl may adjust somedir a posteriori when there are no special characters. - if test "$[$1]_c_make" = '\"'"${gl_final_[$1]}"'\"'; then - [$1]_c_make='\"$([$1])\"' - fi - AC_SUBST([$1_c_make]) -]) - -dnl Some initializations for gl_BUILD_TO_HOST. -AC_DEFUN([gl_BUILD_TO_HOST_INIT], -[ - gl_sed_double_backslashes='s/\\/\\\\/g' - gl_sed_escape_doublequotes='s/"/\\"/g' -changequote(,)dnl - gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" -changequote([,])dnl - gl_sed_escape_for_make_2='s,\$,\\$$,g' - dnl Find out how to remove carriage returns from output. Solaris /usr/ucb/tr - dnl does not understand '\r'. - case `echo r | tr -d '\r'` in - '') gl_tr_cr='\015' ;; - *) gl_tr_cr='\r' ;; - esac -]) - -# gettext.m4 serial 78 (gettext-0.22.4) -dnl Copyright (C) 1995-2014, 2016, 2018-2023 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 -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2006, 2008-2010. - -dnl Macro to add for using GNU gettext. - -dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -dnl INTLSYMBOL must be one of 'external', 'use-libtool', 'here'. -dnl INTLSYMBOL should be 'external' for packages other than GNU gettext. -dnl It should be 'use-libtool' for the packages 'gettext-runtime' and -dnl 'gettext-tools'. -dnl It should be 'here' for the package 'gettext-runtime/intl'. -dnl If INTLSYMBOL is 'here', then a libtool library -dnl $(top_builddir)/libintl.la will be created (shared and/or static, -dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). -dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext -dnl implementations (in libc or libintl) without the ngettext() function -dnl will be ignored. If NEEDSYMBOL is specified and is -dnl 'need-formatstring-macros', then GNU gettext implementations that don't -dnl support the ISO C 99 formatstring macros will be ignored. -dnl INTLDIR is used to find the intl libraries. If empty, -dnl the value '$(top_builddir)/intl/' is used. -dnl -dnl The result of the configuration is one of three cases: -dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -dnl and used. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 2) GNU gettext has been found in the system's C library. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 3) No internationalization, always use English msgid. -dnl Catalog format: none -dnl Catalog extension: none -dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. -dnl The use of .gmo is historical (it was needed to avoid overwriting the -dnl GNU format catalogs when building on a platform with an X/Open gettext), -dnl but we keep it in order not to force irrelevant filename changes on the -dnl maintainers. -dnl -AC_DEFUN([AM_GNU_GETTEXT], -[ - dnl Argument checking. - m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], , [m4_if([$1], [here], , - [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -])])])])]) - m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old], - [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. -])]) - m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], , - [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT -])])])]) - define([gt_building_libintl_in_same_build_tree], - m4_if([$1], [use-libtool], [yes], [m4_if([$1], [here], [yes], [no])])) - gt_NEEDS_INIT - AM_GNU_GETTEXT_NEED([$2]) - - AC_REQUIRE([AM_PO_SUBDIRS])dnl - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Sometimes libintl requires libiconv, so first search for libiconv. - dnl Ideally we would do this search only after the - dnl if test "$USE_NLS" = "yes"; then - dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl tests. But if configure.ac invokes AM_ICONV after AM_GNU_GETTEXT - dnl the configure script would need to contain the same shell code - dnl again, outside any 'if'. There are two solutions: - dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. - dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. - dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. - m4_if(gt_building_libintl_in_same_build_tree, yes, , [ - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - ]) - - dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. - gt_INTL_MACOSX - - dnl Set USE_NLS. - AC_REQUIRE([AM_NLS]) - - m4_if(gt_building_libintl_in_same_build_tree, yes, [ - USE_INCLUDED_LIBINTL=no - ]) - LIBINTL= - LTLIBINTL= - POSUB= - - dnl Add a version number to the cache macros. - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - m4_if(gt_building_libintl_in_same_build_tree, yes, [ - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH([included-gettext], - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - ]) - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -changequote(,)dnl -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -changequote([,])dnl -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - ]])], - [eval "$gt_func_gnugettext_libc=yes"], - [eval "$gt_func_gnugettext_libc=no"])]) - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl Sometimes libintl requires libiconv, so first search for libiconv. - m4_if(gt_building_libintl_in_same_build_tree, yes, , [ - AM_ICONV_LINK - ]) - dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL - dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) - dnl because that would add "-liconv" to LIBINTL and LTLIBINTL - dnl even if libiconv doesn't exist. - AC_LIB_LINKFLAGS_BODY([intl]) - AC_CACHE_CHECK([for GNU gettext in libintl], - [$gt_func_gnugettext_libintl], - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - dnl Now see whether libintl exists and does not depend on libiconv. - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - ]])], - [eval "$gt_func_gnugettext_libintl=yes"], - [eval "$gt_func_gnugettext_libintl=no"]) - dnl Now see whether libintl exists and depends on libiconv or other - dnl OS dependent libraries, specifically on macOS and AIX. - gt_LIBINTL_EXTRA="$INTL_MACOSX_LIBS" - AC_REQUIRE([AC_CANONICAL_HOST]) - case "$host_os" in - aix*) gt_LIBINTL_EXTRA="-lpthread" ;; - esac - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } \ - && { test -n "$LIBICONV" || test -n "$gt_LIBINTL_EXTRA"; }; then - LIBS="$LIBS $LIBICONV $gt_LIBINTL_EXTRA" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - ]])], - [LIBINTL="$LIBINTL $LIBICONV $gt_LIBINTL_EXTRA" - LTLIBINTL="$LTLIBINTL $LTLIBICONV $gt_LIBINTL_EXTRA" - eval "$gt_func_gnugettext_libintl=yes" - ]) - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools \ - && test "$PACKAGE" != libintl; }; then - gt_use_preinstalled_gnugettext=yes - else - dnl Reset the values set by searching for libintl. - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - m4_if(gt_building_libintl_in_same_build_tree, yes, [ - if test "$gt_use_preinstalled_gnugettext" != "yes"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on included GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - USE_INCLUDED_LIBINTL=yes - LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" - LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - CATOBJEXT= - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions to use GNU gettext tools. - CATOBJEXT=.gmo - fi - ]) - - if test -n "$INTL_MACOSX_LIBS"; then - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Some extra flags are needed during linking. - LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" - LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" - fi - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - AC_DEFINE([ENABLE_NLS], [1], - [Define to 1 if translation of program messages to the user's native language - is requested.]) - else - USE_NLS=no - fi - fi - - AC_MSG_CHECKING([whether to use NLS]) - AC_MSG_RESULT([$USE_NLS]) - if test "$USE_NLS" = "yes"; then - AC_MSG_CHECKING([where the gettext function comes from]) - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - AC_MSG_RESULT([$gt_source]) - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - AC_MSG_CHECKING([how to link with libintl]) - AC_MSG_RESULT([$LIBINTL]) - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) - fi - - dnl For backward compatibility. Some packages may be using this. - AC_DEFINE([HAVE_GETTEXT], [1], - [Define if the GNU gettext() function is already present or preinstalled.]) - AC_DEFINE([HAVE_DCGETTEXT], [1], - [Define if the GNU dcgettext() function is already present or preinstalled.]) - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - - m4_if(gt_building_libintl_in_same_build_tree, yes, [ - dnl Make all variables we use known to autoconf. - AC_SUBST([USE_INCLUDED_LIBINTL]) - AC_SUBST([CATOBJEXT]) - ]) - - m4_if(gt_building_libintl_in_same_build_tree, yes, [], [ - dnl For backward compatibility. Some Makefiles may be using this. - INTLLIBS="$LIBINTL" - AC_SUBST([INTLLIBS]) - ]) - - dnl Make all documented variables known to autoconf. - AC_SUBST([LIBINTL]) - AC_SUBST([LTLIBINTL]) - AC_SUBST([POSUB]) - - dnl Define localedir_c and localedir_c_make. - dnl Find the final value of localedir. - gt_save_prefix="${prefix}" - gt_save_datarootdir="${datarootdir}" - gt_save_localedir="${localedir}" - dnl Unfortunately, prefix gets only finally determined at the end of - dnl configure. - if test "X$prefix" = "XNONE"; then - prefix="$ac_default_prefix" - fi - eval datarootdir="$datarootdir" - eval localedir="$localedir" - gl_BUILD_TO_HOST([localedir]) - localedir="${gt_save_localedir}" - datarootdir="${gt_save_datarootdir}" - prefix="${gt_save_prefix}" -]) - - -dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. -m4_define([gt_NEEDS_INIT], -[ - m4_divert_text([DEFAULTS], [gt_needs=]) - m4_define([gt_NEEDS_INIT], []) -]) - - -dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) -AC_DEFUN([AM_GNU_GETTEXT_NEED], -[ - m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) -]) - - -dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) -AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) - - -dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) -AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) - -# host-cpu-c-abi.m4 serial 17 -dnl Copyright (C) 2002-2024 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 Bruno Haible and Sam Steingold. - -dnl Sets the HOST_CPU variable to the canonical name of the CPU. -dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its -dnl C language ABI (application binary interface). -dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in -dnl config.h. -dnl -dnl This canonical name can be used to select a particular assembly language -dnl source file that will interoperate with C code on the given host. -dnl -dnl For example: -dnl * 'i386' and 'sparc' are different canonical names, because code for i386 -dnl will not run on SPARC CPUs and vice versa. They have different -dnl instruction sets. -dnl * 'sparc' and 'sparc64' are different canonical names, because code for -dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code -dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit -dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit -dnl mode, but not both. -dnl * 'mips' and 'mipsn32' are different canonical names, because they use -dnl different argument passing and return conventions for C functions, and -dnl although the instruction set of 'mips' is a large subset of the -dnl instruction set of 'mipsn32'. -dnl * 'mipsn32' and 'mips64' are different canonical names, because they use -dnl different sizes for the C types like 'int' and 'void *', and although -dnl the instruction sets of 'mipsn32' and 'mips64' are the same. -dnl * The same canonical name is used for different endiannesses. You can -dnl determine the endianness through preprocessor symbols: -dnl - 'arm': test __ARMEL__. -dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. -dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. -dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 -dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because -dnl - Instructions that do not exist on all of these CPUs (cmpxchg, -dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your -dnl assembly language source files use such instructions, you will -dnl need to make the distinction. -dnl - Speed of execution of the common instruction set is reasonable across -dnl the entire family of CPUs. If you have assembly language source files -dnl that are optimized for particular CPU types (like GNU gmp has), you -dnl will need to make the distinction. -dnl See . -AC_DEFUN([gl_HOST_CPU_C_ABI], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_C_ASM]) - AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], - [case "$host_cpu" in - -changequote(,)dnl - i[34567]86 ) -changequote([,])dnl - gl_cv_host_cpu_c_abi=i386 - ;; - - x86_64 ) - # On x86_64 systems, the C compiler may be generating code in one of - # these ABIs: - # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. - # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 - # with native Windows (mingw, MSVC). - # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if (defined __x86_64__ || defined __amd64__ \ - || defined _M_X64 || defined _M_AMD64) - int ok; - #else - error fail - #endif - ]])], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __ILP32__ || defined _ILP32 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=x86_64-x32], - [gl_cv_host_cpu_c_abi=x86_64])], - [gl_cv_host_cpu_c_abi=i386]) - ;; - -changequote(,)dnl - alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) -changequote([,])dnl - gl_cv_host_cpu_c_abi=alpha - ;; - - arm* | aarch64 ) - # Assume arm with EABI. - # On arm64 systems, the C compiler may be generating code in one of - # these ABIs: - # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. - # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifdef __aarch64__ - int ok; - #else - error fail - #endif - ]])], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __ILP32__ || defined _ILP32 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=arm64-ilp32], - [gl_cv_host_cpu_c_abi=arm64])], - [# Don't distinguish little-endian and big-endian arm, since they - # don't require different machine code for simple operations and - # since the user can distinguish them through the preprocessor - # defines __ARMEL__ vs. __ARMEB__. - # But distinguish arm which passes floating-point arguments and - # return values in integer registers (r0, r1, ...) - this is - # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which - # passes them in float registers (s0, s1, ...) and double registers - # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer - # sets the preprocessor defines __ARM_PCS (for the first case) and - # __ARM_PCS_VFP (for the second case), but older GCC does not. - echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c - # Look for a reference to the register d0 in the .s file. - AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 - if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then - gl_cv_host_cpu_c_abi=armhf - else - gl_cv_host_cpu_c_abi=arm - fi - rm -f conftest* - ]) - ;; - - hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) - # On hppa, the C compiler may be generating 32-bit code or 64-bit - # code. In the latter case, it defines _LP64 and __LP64__. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifdef __LP64__ - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=hppa64], - [gl_cv_host_cpu_c_abi=hppa]) - ;; - - ia64* ) - # On ia64 on HP-UX, the C compiler may be generating 64-bit code or - # 32-bit code. In the latter case, it defines _ILP32. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifdef _ILP32 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=ia64-ilp32], - [gl_cv_host_cpu_c_abi=ia64]) - ;; - - mips* ) - # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this - # at 32. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=mips64], - [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but - # may later get defined by ), and _MIPS_SIM == _ABIN32. - # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but - # may later get defined by ), and _MIPS_SIM == _ABIO32. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if (_MIPS_SIM == _ABIN32) - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=mipsn32], - [gl_cv_host_cpu_c_abi=mips])]) - ;; - - powerpc* ) - # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. - # No need to distinguish them here; the caller may distinguish - # them based on the OS. - # On powerpc64 systems, the C compiler may still be generating - # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may - # be generating 64-bit code. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined __LP64__ - int ok; - #else - error fail - #endif - ]])], - [# On powerpc64, there are two ABIs on Linux: The AIX compatible - # one and the ELFv2 one. The latter defines _CALL_ELF=2. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined _CALL_ELF && _CALL_ELF == 2 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=powerpc64-elfv2], - [gl_cv_host_cpu_c_abi=powerpc64]) - ], - [gl_cv_host_cpu_c_abi=powerpc]) - ;; - - rs6000 ) - gl_cv_host_cpu_c_abi=powerpc - ;; - - riscv32 | riscv64 ) - # There are 2 architectures (with variants): rv32* and rv64*. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if __riscv_xlen == 64 - int ok; - #else - error fail - #endif - ]])], - [cpu=riscv64], - [cpu=riscv32]) - # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. - # Size of 'long' and 'void *': - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __LP64__ - int ok; - #else - error fail - #endif - ]])], - [main_abi=lp64], - [main_abi=ilp32]) - # Float ABIs: - # __riscv_float_abi_double: - # 'float' and 'double' are passed in floating-point registers. - # __riscv_float_abi_single: - # 'float' are passed in floating-point registers. - # __riscv_float_abi_soft: - # No values are passed in floating-point registers. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __riscv_float_abi_double - int ok; - #else - error fail - #endif - ]])], - [float_abi=d], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __riscv_float_abi_single - int ok; - #else - error fail - #endif - ]])], - [float_abi=f], - [float_abi='']) - ]) - gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" - ;; - - s390* ) - # On s390x, the C compiler may be generating 64-bit (= s390x) code - # or 31-bit (= s390) code. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __LP64__ || defined __s390x__ - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=s390x], - [gl_cv_host_cpu_c_abi=s390]) - ;; - - sparc | sparc64 ) - # UltraSPARCs running Linux have `uname -m` = "sparc64", but the - # C compiler still generates 32-bit code. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __sparcv9 || defined __arch64__ - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=sparc64], - [gl_cv_host_cpu_c_abi=sparc]) - ;; - - *) - gl_cv_host_cpu_c_abi="$host_cpu" - ;; - esac - ]) - - dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. - HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` - HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" - AC_SUBST([HOST_CPU]) - AC_SUBST([HOST_CPU_C_ABI]) - - # This was - # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) - # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) - # earlier, but KAI C++ 3.2d doesn't like this. - sed -e 's/-/_/g' >> confdefs.h <. -dnl Don't make changes that are incompatible with that documentation! - -AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], -[ - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([iconv]) -]) - -AC_DEFUN([AM_ICONV_LINK], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - - dnl Add $INCICONV to CPPFLAGS before performing the following checks, - dnl because if the user has installed libiconv and not disabled its use - dnl via --without-libiconv-prefix, he wants to use it. The first - dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. - gl_saved_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - - AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include - ]], - [[iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);]])], - [am_cv_func_iconv=yes]) - if test "$am_cv_func_iconv" != yes; then - gl_saved_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include - ]], - [[iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);]])], - [am_cv_lib_iconv=yes] - [am_cv_func_iconv=yes]) - LIBS="$gl_saved_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ - dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, - dnl Solaris 10. - gl_saved_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - am_cv_func_iconv_works=no - for ac_iconv_const in '' 'const'; do - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include - -#ifndef ICONV_CONST -# define ICONV_CONST $ac_iconv_const -#endif - ]], - [[int result = 0; - /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from - successful returns. This is even documented in - */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 1; - iconv_close (cd_utf8_to_88591); - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\263"; - char buf[10]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 2; - iconv_close (cd_ascii_to_88591); - } - } - /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\304"; - static char buf[2] = { (char)0xDE, (char)0xAD }; - ICONV_CONST char *inptr = input; - size_t inbytesleft = 1; - char *outptr = buf; - size_t outbytesleft = 1; - size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) - result |= 4; - iconv_close (cd_88591_to_utf8); - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - result |= 8; - iconv_close (cd_88591_to_utf8); - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - { - /* Try standardized names. */ - iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); - /* Try IRIX, OSF/1 names. */ - iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); - /* Try AIX names. */ - iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); - /* Try HP-UX names. */ - iconv_t cd4 = iconv_open ("utf8", "eucJP"); - if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) - && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) - result |= 16; - if (cd1 != (iconv_t)(-1)) - iconv_close (cd1); - if (cd2 != (iconv_t)(-1)) - iconv_close (cd2); - if (cd3 != (iconv_t)(-1)) - iconv_close (cd3); - if (cd4 != (iconv_t)(-1)) - iconv_close (cd4); - } - return result; -]])], - [am_cv_func_iconv_works=yes], , - [case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac]) - test "$am_cv_func_iconv_works" = no || break - done - LIBS="$gl_saved_LIBS" - ]) - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - AC_DEFINE([HAVE_ICONV], [1], - [Define if you have the iconv() function and it works.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$gl_saved_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST([LIBICONV]) - AC_SUBST([LTLIBICONV]) -]) - -dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like -dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". -AC_DEFUN_ONCE([AM_ICONV], -[ - AM_ICONV_LINK - if test "$am_cv_func_iconv" = yes; then - AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], - [gl_cv_iconv_nonconst], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); - ]], - [[]])], - [gl_cv_iconv_nonconst=yes], - [gl_cv_iconv_nonconst=no]) - ]) - else - dnl When compiling GNU libiconv on a system that does not have iconv yet, - dnl pick the POSIX compliant declaration without 'const'. - gl_cv_iconv_nonconst=yes - fi - if test $gl_cv_iconv_nonconst = yes; then - iconv_arg1="" - else - iconv_arg1="const" - fi - AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1], - [Define as const if the declaration of iconv() needs const.]) - dnl Also substitute ICONV_CONST in the gnulib generated . - m4_ifdef([gl_ICONV_H_DEFAULTS], - [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) - if test $gl_cv_iconv_nonconst != yes; then - ICONV_CONST="const" - fi - ]) - - dnl A summary result, for those packages which want to print a summary at the - dnl end of the configuration. - if test "$am_func_iconv" = yes; then - if test -n "$LIBICONV"; then - am_cv_func_iconv_summary='yes, in libiconv' - else - am_cv_func_iconv_summary='yes, in libc' - fi - else - if test "$am_cv_func_iconv" = yes; then - am_cv_func_iconv_summary='not working, consider installing GNU libiconv' - else - am_cv_func_iconv_summary='no, consider installing GNU libiconv' - fi - fi -]) - -# intlmacosx.m4 serial 10 (gettext-0.23) -dnl Copyright (C) 2004-2014, 2016, 2019-2024 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 -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Checks for special options needed on Mac OS X. -dnl Defines INTL_MACOSX_LIBS. -AC_DEFUN([gt_INTL_MACOSX], -[ - dnl Check for API introduced in Mac OS X 10.4. - AC_CACHE_CHECK([for CFPreferencesCopyAppValue], - [gt_cv_func_CFPreferencesCopyAppValue], - [gt_saved_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[CFPreferencesCopyAppValue(NULL, NULL)]])], - [gt_cv_func_CFPreferencesCopyAppValue=yes], - [gt_cv_func_CFPreferencesCopyAppValue=no]) - LIBS="$gt_saved_LIBS"]) - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], - [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) - fi - dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, - dnl because in macOS 10.13.4 it has the following behaviour: - dnl When two or more languages are specified in the - dnl "System Preferences > Language & Region > Preferred Languages" panel, - dnl it returns en_CC where CC is the territory (even when English is not among - dnl the preferred languages!). What we want instead is what - dnl CFLocaleCopyCurrent returned in earlier macOS releases and what - dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the - dnl first among the preferred languages and CC is the territory. - AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], - [gt_saved_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[CFLocaleCopyPreferredLanguages();]])], - [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], - [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) - LIBS="$gt_saved_LIBS"]) - if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then - AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], - [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) - fi - INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ - || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then - dnl Starting with macOS version 14, CoreFoundation relies on CoreServices, - dnl and we have to link it in explicitly, otherwise an exception - dnl NSInvalidArgumentException "unrecognized selector sent to instance" - dnl occurs. - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" - fi - AC_SUBST([INTL_MACOSX_LIBS]) -]) - -# lib-ld.m4 serial 13 -dnl Copyright (C) 1996-2003, 2009-2024 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 Subroutines of libtool.m4, -dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid -dnl collision with libtool.m4. - -dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], -[# I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 /dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -if test -n "$LD"; then - AC_MSG_CHECKING([for ld]) -elif test "$GCC" = yes; then - AC_MSG_CHECKING([for ld used by $CC]) -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -if test -n "$LD"; then - # Let the user override the test with a path. - : -else - AC_CACHE_VAL([acl_cv_path_LD], - [ - acl_cv_path_LD= # Final result of this test - ac_prog=ld # Program to search in $PATH - if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - case $host in - *-*-mingw* | windows*) - # gcc leaves a trailing carriage return which upsets mingw - acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - acl_output=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $acl_output in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` - while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do - acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` - done - # Got the pathname. No search in PATH is needed. - acl_cv_path_LD="$acl_output" - ac_prog= - ;; - "") - # If it fails, then pretend we aren't using GCC. - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac - fi - if test -n "$ac_prog"; then - # Search for $ac_prog in $PATH. - acl_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_saved_IFS" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - dnl Determine whether the user wants rpath handling at all. - AC_ARG_ENABLE([rpath], - [ --disable-rpath do not hardcode runtime library paths], - :, enable_rpath=yes) -]) - -dnl AC_LIB_FROMPACKAGE(name, package) -dnl declares that libname comes from the given package. The configure file -dnl will then not have a --with-libname-prefix option but a -dnl --with-package-prefix option. Several libraries can come from the same -dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar -dnl macro call that searches for libname. -AC_DEFUN([AC_LIB_FROMPACKAGE], -[ - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_frompackage_]NAME, [$2]) - popdef([NAME]) - pushdef([PACK],[$2]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_libsinpackage_]PACKUP, - m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) - popdef([PACKUP]) - popdef([PACK]) -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found -dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - ]) - AC_ARG_WITH(PACK[-prefix], -[[ --with-]]PACK[[-prefix[=DIR] search for ]]PACKLIBS[[ in DIR/include and DIR/lib - --without-]]PACK[[-prefix don't search for ]]PACKLIBS[[ in includedir and libdir]], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - additional_libdir2="$withval/$acl_libdirstem2" - additional_libdir3="$withval/$acl_libdirstem3" - fi - fi -]) - if test "X$additional_libdir2" = "X$additional_libdir"; then - additional_libdir2= - fi - if test "X$additional_libdir3" = "X$additional_libdir"; then - additional_libdir3= - fi - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Use breadth-first search. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - LIB[]NAME[]_PREFIX= - dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been - dnl computed. So it has to be reset here. - HAVE_LIB[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do - if test "X$found_dir" = "X"; then - eval dir=\$$additional_libdir_variable - if test -n "$dir"; then - dnl The same code as in the loop below: - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - fi - done - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$acl_hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem3 | */$acl_libdirstem3/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - saved_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$saved_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then - haveit= - if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - dnl Really add $dependency_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - dnl Really add $dependency_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - dnl Handle this in the next round. - dnl But on GNU systems, ignore -lc options, because - dnl - linking with libc is the default anyway, - dnl - linking with libc.a may produce an error - dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" - dnl or may produce an executable that always crashes, see - dnl . - dep=`echo "X$dep" | sed -e 's/^X-l//'` - if test "X$dep" != Xc \ - || case $host_os in - linux* | gnu* | k*bsd*-gnu) false ;; - *) true ;; - esac; then - names_next_round="$names_next_round $dep" - fi - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. - acl_saved_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_saved_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi - popdef([PACKLIBS]) - popdef([PACKUP]) - popdef([PACK]) - popdef([NAME]) -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) - -dnl For those cases where a variable contains several -L and -l options -dnl referring to unknown libraries and directories, this macro determines the -dnl necessary additional linker options for the runtime path. -dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) -dnl sets LDADDVAR to linker options needed together with LIBSVALUE. -dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, -dnl otherwise linking without libtool is assumed. -AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -[ - AC_REQUIRE([AC_LIB_RPATH]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - $1= - if test "$enable_rpath" != no; then - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode directories into the resulting - dnl binary. - rpathdirs= - next= - for opt in $2; do - if test -n "$next"; then - dir="$next" - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2" \ - && test "X$dir" != "X/usr/$acl_libdirstem3"; then - rpathdirs="$rpathdirs $dir" - fi - next= - else - case $opt in - -L) next=yes ;; - -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2" \ - && test "X$dir" != "X/usr/$acl_libdirstem3"; then - rpathdirs="$rpathdirs $dir" - fi - next= ;; - *) next= ;; - esac - fi - done - if test "X$rpathdirs" != "X"; then - if test -n ""$3""; then - dnl libtool is used for linking. Use -R options. - for dir in $rpathdirs; do - $1="${$1}${$1:+ }-R$dir" - done - else - dnl The linker is used for linking directly. - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user - dnl must pass all path elements in one option. - alldirs= - for dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" - done - acl_saved_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" - $1="$flag" - else - dnl The -rpath options are cumulative. - for dir in $rpathdirs; do - acl_saved_libdir="$libdir" - libdir="$dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" - $1="${$1}${$1:+ }$flag" - done - fi - fi - fi - fi - fi - AC_SUBST([$1]) -]) - -# lib-prefix.m4 serial 22 -dnl Copyright (C) 2001-2005, 2008-2024 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 Bruno Haible. - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH([lib-prefix], -[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir]], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_saved_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_saved_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_saved_prefix="$prefix" - prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" -]) - -dnl AC_LIB_PREPARE_MULTILIB creates -dnl - a function acl_is_expected_elfclass, that tests whether standard input -dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, -dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing -dnl the basename of the libdir to try in turn, either "lib" or "lib64" or -dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. -AC_DEFUN([AC_LIB_PREPARE_MULTILIB], -[ - dnl There is no formal standard regarding lib, lib32, and lib64. - dnl On most glibc systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on - dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go - dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. - dnl We determine the compiler's default mode by looking at the compiler's - dnl library search path. If at least one of its elements ends in /lib64 or - dnl points to a directory whose absolute pathname ends in /lib64, we use that - dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, - dnl namely "lib". - dnl On Solaris systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or - dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) - - AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], - [AC_EGREP_CPP([Extensible Linking Format], - [#if defined __ELF__ || (defined __linux__ && defined __EDG__) - Extensible Linking Format - #endif - ], - [gl_cv_elf=yes], - [gl_cv_elf=no]) - ]) - if test $gl_cv_elf = yes; then - # Extract the ELF class of a file (5th byte) in decimal. - # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header - if od -A x < /dev/null >/dev/null 2>/dev/null; then - # Use POSIX od. - func_elfclass () - { - od -A n -t d1 -j 4 -N 1 - } - else - # Use BSD hexdump. - func_elfclass () - { - dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' - echo - } - fi - # Use 'expr', not 'test', to compare the values of func_elfclass, because on - # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, - # not 1 or 2. -changequote(,)dnl - case $HOST_CPU_C_ABI_32BIT in - yes) - # 32-bit ABI. - acl_is_expected_elfclass () - { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null - } - ;; - no) - # 64-bit ABI. - acl_is_expected_elfclass () - { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null - } - ;; - *) - # Unknown. - acl_is_expected_elfclass () - { - : - } - ;; - esac -changequote([,])dnl - else - acl_is_expected_elfclass () - { - : - } - fi - - dnl Allow the user to override the result by setting acl_cv_libdirstems. - AC_CACHE_CHECK([for the common suffixes of directories in the library search path], - [acl_cv_libdirstems], - [dnl Try 'lib' first, because that's the default for libdir in GNU, see - dnl . - acl_libdirstem=lib - acl_libdirstem2= - acl_libdirstem3= - case "$host_os" in - solaris*) - dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl . - dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." - dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the - dnl symlink is missing, so we set acl_libdirstem2 too. - if test $HOST_CPU_C_ABI_32BIT = no; then - acl_libdirstem2=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem3=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; - esac - fi - ;; - netbsd*) - dnl On NetBSD/sparc64, there is a 'sparc' subdirectory that contains - dnl 32-bit libraries. - if test $HOST_CPU_C_ABI_32BIT != no; then - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparc ;; - esac - fi - ;; - *) - dnl If $CC generates code for a 32-bit ABI, the libraries are - dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. - dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries - dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. - dnl Find the compiler's search path. However, non-system compilers - dnl sometimes have odd library search paths. But we can't simply invoke - dnl '/usr/bin/gcc -print-search-dirs' because that would not take into - dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. - searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test $HOST_CPU_C_ABI_32BIT != no; then - # 32-bit or unknown ABI. - if test -d /usr/lib32; then - acl_libdirstem2=lib32 - fi - fi - if test $HOST_CPU_C_ABI_32BIT != yes; then - # 64-bit or unknown ABI. - if test -d /usr/lib64; then - acl_libdirstem3=lib64 - fi - fi - if test -n "$searchpath"; then - acl_saved_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; - */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib32 ) acl_libdirstem2=lib32 ;; - */lib64 ) acl_libdirstem3=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_saved_IFS" - if test $HOST_CPU_C_ABI_32BIT = yes; then - # 32-bit ABI. - acl_libdirstem3= - fi - if test $HOST_CPU_C_ABI_32BIT = no; then - # 64-bit ABI. - acl_libdirstem2= - fi - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" - test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" - acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" - ]) - dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and - dnl acl_libdirstem3. -changequote(,)dnl - acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` - acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` - acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` -changequote([,])dnl -]) - -# nls.m4 serial 6 (gettext-0.20.2) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2024 Free -dnl 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 -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.50]) - -AC_DEFUN([AM_NLS], -[ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE([nls], - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT([$USE_NLS]) - AC_SUBST([USE_NLS]) -]) - -# po.m4 serial 32 (gettext-0.21.1) -dnl Copyright (C) 1995-2014, 2016, 2018-2022, 2024 Free Software Foundation, -dnl 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 -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.60]) - -dnl Checks for all prerequisites of the po subdirectory. -AC_DEFUN([AM_PO_SUBDIRS], -[ - AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AC_PROG_MKDIR_P])dnl - AC_REQUIRE([AC_PROG_SED])dnl - AC_REQUIRE([AM_NLS])dnl - - dnl Release version of the gettext macros. This is used to ensure that - dnl the gettext macros and po/Makefile.in.in are in sync. - AC_SUBST([GETTEXT_MACRO_VERSION], [0.20]) - - dnl Perform the following tests also if --disable-nls has been given, - dnl because they are needed for "make dist" to work. - - dnl Search for GNU msgfmt in the PATH. - dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. - dnl The second test excludes FreeBSD msgfmt. - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) - - dnl Test whether it is GNU msgfmt >= 0.15. -changequote(,)dnl - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([GMSGFMT_015]) - - dnl Search for GNU xgettext 0.12 or newer in the PATH. - dnl The first test excludes Solaris xgettext and early GNU xgettext versions. - dnl The second test excludes FreeBSD xgettext. - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - - dnl Test whether it is GNU xgettext >= 0.15. -changequote(,)dnl - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac -changequote([,])dnl - AC_SUBST([XGETTEXT_015]) - - dnl Search for GNU msgmerge 0.11 or newer in the PATH. - AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, - [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) - - dnl Test whether it is GNU msgmerge >= 0.20. - if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' - else - dnl Test whether it is GNU msgmerge >= 0.12. - if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' - else - dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is - dnl slow. But this is not a big problem, as such old gettext versions are - dnl hardly in use any more. - MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' - fi - fi - AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION]) - - dnl Support for AM_XGETTEXT_OPTION. - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) - - AC_CONFIG_COMMANDS([po-directories], [[ - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - # Treat a directory as a PO directory if and only if it has a - # POTFILES.in file. This allows packages to have multiple PO - # directories under different names or in different locations. - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - gt_tab=`printf '\t'` - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS - fi - # Compute POFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) - # Compute UPDATEPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) - # Compute DUMMYPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) - # Compute GMOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - UPDATEPOFILES= - DUMMYPOFILES= - GMOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*) - useit=yes - ;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done]], - [# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. - OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - ]) -]) - -dnl Postprocesses a Makefile in a directory containing PO files. -AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], -[ - # When this code is run, in config.status, two variables have already been - # set: - # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, - # - LINGUAS is the value of the environment variable LINGUAS at configure - # time. - -changequote(,)dnl - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - # Find a way to echo strings without interpreting backslash. - if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='echo' - else - if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='printf %s\n' - else - echo_func () { - cat < "$ac_file.tmp" - tab=`printf '\t'` - if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` - cat >> "$ac_file.tmp" < /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` - cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. - -AC_PREREQ([2.53]) - -# Search path for a program which passes the given test. - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[ -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL([ac_cv_path_$1], -[case "[$]$1" in - [[\\/]]* | ?:[[\\/]]*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - gt_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in m4_if([$5], , $PATH, [$5]); do - IFS="$gt_saved_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$gt_saved_IFS" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -m4_if([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$][$1]) -else - AC_MSG_RESULT([no]) -fi -AC_SUBST([$1])dnl -]) - # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation @@ -3383,43 +108,6 @@ AC_DEFUN([AM_AUX_DIR_EXPAND], am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) -# AM_COND_IF -*- Autoconf -*- - -# Copyright (C) 2008-2021 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_COND_IF -# _AM_COND_ELSE -# _AM_COND_ENDIF -# -------------- -# These macros are only used for tracing. -m4_define([_AM_COND_IF]) -m4_define([_AM_COND_ELSE]) -m4_define([_AM_COND_ENDIF]) - -# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) -# --------------------------------------- -# If the shell condition COND is true, execute IF-TRUE, otherwise execute -# IF-FALSE. Allow automake to learn about conditional instantiating macros -# (the AC_CONFIG_FOOS). -AC_DEFUN([AM_COND_IF], -[m4_ifndef([_AM_COND_VALUE_$1], - [m4_fatal([$0: no such condition "$1"])])dnl -_AM_COND_IF([$1])dnl -if test -z "$$1_TRUE"; then : - m4_n([$2])[]dnl -m4_ifval([$3], -[_AM_COND_ELSE([$1])dnl -else - $3 -])dnl -_AM_COND_ENDIF([$1])dnl -fi[]dnl -]) - # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2021 Free Software Foundation, Inc. @@ -4500,22 +1188,14 @@ m4_include([m4/libcurl.m4]) m4_include([m4/np_mysqlclient.m4]) m4_include([m4/uriparser.m4]) m4_include([gl/m4/00gnulib.m4]) -m4_include([gl/m4/__inline.m4]) -m4_include([gl/m4/absolute-header.m4]) -m4_include([gl/m4/af_alg.m4]) m4_include([gl/m4/alloca.m4]) m4_include([gl/m4/arpa_inet_h.m4]) -m4_include([gl/m4/assert_h.m4]) m4_include([gl/m4/base64.m4]) m4_include([gl/m4/btowc.m4]) -m4_include([gl/m4/builtin-expect.m4]) -m4_include([gl/m4/byteswap.m4]) -m4_include([gl/m4/c-bool.m4]) -m4_include([gl/m4/calloc.m4]) -m4_include([gl/m4/close.m4]) m4_include([gl/m4/codeset.m4]) +m4_include([gl/m4/configmake.m4]) +m4_include([gl/m4/dirname.m4]) m4_include([gl/m4/double-slash-root.m4]) -m4_include([gl/m4/dup2.m4]) m4_include([gl/m4/eealloc.m4]) m4_include([gl/m4/environ.m4]) m4_include([gl/m4/errno_h.m4]) @@ -4524,44 +1204,32 @@ m4_include([gl/m4/exponentd.m4]) m4_include([gl/m4/extensions.m4]) m4_include([gl/m4/extern-inline.m4]) m4_include([gl/m4/fcntl-o.m4]) -m4_include([gl/m4/fcntl.m4]) -m4_include([gl/m4/fcntl_h.m4]) -m4_include([gl/m4/fflush.m4]) m4_include([gl/m4/float_h.m4]) m4_include([gl/m4/floorf.m4]) -m4_include([gl/m4/fopen.m4]) -m4_include([gl/m4/fpurge.m4]) -m4_include([gl/m4/freading.m4]) -m4_include([gl/m4/free.m4]) -m4_include([gl/m4/fseek.m4]) -m4_include([gl/m4/fseeko.m4]) -m4_include([gl/m4/fstat.m4]) m4_include([gl/m4/fstypename.m4]) m4_include([gl/m4/fsusage.m4]) -m4_include([gl/m4/ftell.m4]) -m4_include([gl/m4/ftello.m4]) m4_include([gl/m4/getaddrinfo.m4]) -m4_include([gl/m4/getdelim.m4]) -m4_include([gl/m4/getdtablesize.m4]) m4_include([gl/m4/gethostname.m4]) -m4_include([gl/m4/getline.m4]) m4_include([gl/m4/getloadavg.m4]) m4_include([gl/m4/getopt.m4]) -m4_include([gl/m4/getprogname.m4]) -m4_include([gl/m4/gl-openssl.m4]) +m4_include([gl/m4/gettext.m4]) +m4_include([gl/m4/glibc21.m4]) m4_include([gl/m4/gnulib-common.m4]) m4_include([gl/m4/gnulib-comp.m4]) m4_include([gl/m4/hostent.m4]) +m4_include([gl/m4/iconv.m4]) m4_include([gl/m4/idpriv.m4]) m4_include([gl/m4/include_next.m4]) m4_include([gl/m4/inet_ntop.m4]) +m4_include([gl/m4/intlmacosx.m4]) m4_include([gl/m4/intmax_t.m4]) -m4_include([gl/m4/inttypes.m4]) m4_include([gl/m4/inttypes_h.m4]) m4_include([gl/m4/langinfo_h.m4]) m4_include([gl/m4/largefile.m4]) +m4_include([gl/m4/lib-ld.m4]) +m4_include([gl/m4/lib-link.m4]) +m4_include([gl/m4/lib-prefix.m4]) m4_include([gl/m4/libtool.m4]) -m4_include([gl/m4/limits-h.m4]) m4_include([gl/m4/localcharset.m4]) m4_include([gl/m4/locale-fr.m4]) m4_include([gl/m4/locale-ja.m4]) @@ -4569,7 +1237,8 @@ m4_include([gl/m4/locale-zh.m4]) m4_include([gl/m4/locale_h.m4]) m4_include([gl/m4/localeconv.m4]) m4_include([gl/m4/lock.m4]) -m4_include([gl/m4/lseek.m4]) +m4_include([gl/m4/longlong.m4]) +m4_include([gl/m4/ls-mntd-fs.m4]) m4_include([gl/m4/ltoptions.m4]) m4_include([gl/m4/ltsugar.m4]) m4_include([gl/m4/ltversion.m4]) @@ -4582,10 +1251,8 @@ m4_include([gl/m4/mbsinit.m4]) m4_include([gl/m4/mbstate_t.m4]) m4_include([gl/m4/mbtowc.m4]) m4_include([gl/m4/memchr.m4]) -m4_include([gl/m4/minmax.m4]) m4_include([gl/m4/mktime.m4]) m4_include([gl/m4/mmap-anon.m4]) -m4_include([gl/m4/mode_t.m4]) m4_include([gl/m4/mountlist.m4]) m4_include([gl/m4/msvc-inval.m4]) m4_include([gl/m4/msvc-nothrow.m4]) @@ -4593,21 +1260,19 @@ m4_include([gl/m4/multiarch.m4]) m4_include([gl/m4/netdb_h.m4]) m4_include([gl/m4/netinet_in_h.m4]) m4_include([gl/m4/nl_langinfo.m4]) +m4_include([gl/m4/nls.m4]) m4_include([gl/m4/nocrash.m4]) m4_include([gl/m4/off_t.m4]) -m4_include([gl/m4/open-cloexec.m4]) -m4_include([gl/m4/open-slash.m4]) -m4_include([gl/m4/open.m4]) -m4_include([gl/m4/pathmax.m4]) +m4_include([gl/m4/onceonly.m4]) +m4_include([gl/m4/po.m4]) m4_include([gl/m4/printf.m4]) -m4_include([gl/m4/pthread_rwlock_rdlock.m4]) -m4_include([gl/m4/realloc.m4]) -m4_include([gl/m4/reallocarray.m4]) +m4_include([gl/m4/progtest.m4]) +m4_include([gl/m4/read.m4]) m4_include([gl/m4/regex.m4]) +m4_include([gl/m4/safe-read.m4]) m4_include([gl/m4/servent.m4]) m4_include([gl/m4/setenv.m4]) -m4_include([gl/m4/setlocale_null.m4]) -m4_include([gl/m4/sha256.m4]) +m4_include([gl/m4/sha1.m4]) m4_include([gl/m4/size_max.m4]) m4_include([gl/m4/snprintf.m4]) m4_include([gl/m4/socketlib.m4]) @@ -4615,9 +1280,8 @@ m4_include([gl/m4/sockets.m4]) m4_include([gl/m4/socklen.m4]) m4_include([gl/m4/sockpfaf.m4]) m4_include([gl/m4/ssize_t.m4]) -m4_include([gl/m4/stat-time.m4]) -m4_include([gl/m4/stat.m4]) m4_include([gl/m4/stdalign.m4]) +m4_include([gl/m4/stdbool.m4]) m4_include([gl/m4/stddef_h.m4]) m4_include([gl/m4/stdint.m4]) m4_include([gl/m4/stdint_h.m4]) @@ -4628,22 +1292,20 @@ m4_include([gl/m4/strcasestr.m4]) m4_include([gl/m4/strerror.m4]) m4_include([gl/m4/string_h.m4]) m4_include([gl/m4/strings_h.m4]) +m4_include([gl/m4/strndup.m4]) +m4_include([gl/m4/strnlen.m4]) m4_include([gl/m4/strsep.m4]) m4_include([gl/m4/strstr.m4]) m4_include([gl/m4/sys_socket_h.m4]) -m4_include([gl/m4/sys_stat_h.m4]) m4_include([gl/m4/sys_types_h.m4]) m4_include([gl/m4/sys_uio_h.m4]) m4_include([gl/m4/threadlib.m4]) m4_include([gl/m4/time_h.m4]) m4_include([gl/m4/time_r.m4]) m4_include([gl/m4/timegm.m4]) -m4_include([gl/m4/ungetc.m4]) m4_include([gl/m4/unistd_h.m4]) -m4_include([gl/m4/unlocked-io.m4]) m4_include([gl/m4/vasnprintf.m4]) m4_include([gl/m4/vasprintf.m4]) -m4_include([gl/m4/visibility.m4]) m4_include([gl/m4/vsnprintf.m4]) m4_include([gl/m4/warn-on-use.m4]) m4_include([gl/m4/wchar_h.m4]) @@ -4653,5 +1315,5 @@ m4_include([gl/m4/wctype_h.m4]) m4_include([gl/m4/wint_t.m4]) m4_include([gl/m4/xalloc.m4]) m4_include([gl/m4/xsize.m4]) -m4_include([gl/m4/zzgnulib.m4]) +m4_include([gl/m4/xstrndup.m4]) m4_include([acinclude.m4]) diff --git a/build-aux/config.rpath b/build-aux/config.rpath index 1e2595f..c38b914 100755 --- a/build-aux/config.rpath +++ b/build-aux/config.rpath @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2023 Free Software Foundation, Inc. +# Copyright 1996-2013 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # @@ -367,11 +367,15 @@ else dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; - freebsd2.[01]*) + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; - freebsd* | dragonfly* | midnightbsd*) + freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; @@ -544,11 +548,13 @@ case "$host_os" in dgux*) library_names_spec='$libname$shrext' ;; - freebsd[23].*) - library_names_spec='$libname$shrext$versuffix' - ;; - freebsd* | dragonfly* | midnightbsd*) - library_names_spec='$libname$shrext' + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac ;; gnu*) library_names_spec='$libname$shrext' diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh index 2e8548d..33f642a 100644 --- a/build-aux/ltmain.sh +++ b/build-aux/ltmain.sh @@ -189,7 +189,7 @@ func_basename () # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. -# value returned in "$func_basename_result" +# value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. @@ -522,7 +522,7 @@ func_mkdir_p () # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited - # list in case some portion of path contains whitespace. + # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done @@ -4394,7 +4394,7 @@ EOF { /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX namespace, but it is not one of the ones we know about and - have already dealt with, above (including dump-script), then + have already dealt with, above (inluding dump-script), then report an error. Otherwise, targets might begin to believe they are allowed to use options in the LTWRAPPER_OPTION_PREFIX namespace. The first time any user complains about this, we'll diff --git a/build-aux/snippet/_Noreturn.h b/build-aux/snippet/_Noreturn.h new file mode 100644 index 0000000..c44ad89 --- /dev/null +++ b/build-aux/snippet/_Noreturn.h @@ -0,0 +1,10 @@ +#if !defined _Noreturn && __STDC_VERSION__ < 201112 +# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ + || 0x5110 <= __SUNPRO_C) +# define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif diff --git a/gl/arg-nonnull.h b/build-aux/snippet/arg-nonnull.h similarity index 61% rename from gl/arg-nonnull.h rename to build-aux/snippet/arg-nonnull.h index 9498ae1..8ea2a47 100644 --- a/gl/arg-nonnull.h +++ b/build-aux/snippet/arg-nonnull.h @@ -1,24 +1,24 @@ /* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2 of the License, or + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ +# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) diff --git a/gl/c++defs.h b/build-aux/snippet/c++defs.h similarity index 64% rename from gl/c++defs.h rename to build-aux/snippet/c++defs.h index 8ad4695..b35b933 100644 --- a/gl/c++defs.h +++ b/build-aux/snippet/c++defs.h @@ -1,31 +1,22 @@ /* C++ compatible function declaration macros. - Copyright (C) 2010-2023 Free Software Foundation, Inc. + Copyright (C) 2010-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2 of the License, or + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some @@ -120,25 +111,14 @@ that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ + */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ + rettype (*const func) parameters = ::rpl_func; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else @@ -146,16 +126,6 @@ _GL_EXTERN_C int _gl_cxxalias_dummy #endif -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different @@ -165,15 +135,8 @@ # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ + rettype (*const func) parameters = \ + reinterpret_cast(::rpl_func); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else @@ -181,38 +144,25 @@ _GL_EXTERN_C int _gl_cxxalias_dummy #endif -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ + */ #if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ + /* If we were to write + rettype (*const func) parameters = ::func; + like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls + better (remove an indirection through a 'static' pointer variable), + but then the _GL_CXXALIASWARN macro below would cause a warning not only + for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */ +# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + static rettype (*func) parameters = ::func; \ + } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ @@ -228,15 +178,8 @@ # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ + static rettype (*func) parameters = \ + reinterpret_cast(::func); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else @@ -259,15 +202,9 @@ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ + static rettype (*func) parameters = \ + reinterpret_cast( \ + (rettype2(*)parameters2)(::func)); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else @@ -284,9 +221,9 @@ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , +/* To work around GCC bug , we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) +# if !__OPTIMIZE__ # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ @@ -312,13 +249,16 @@ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , +/* To work around GCC bug , we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) +# if !__OPTIMIZE__ # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ + _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") +# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING +# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ + extern __typeof__ (func) func # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy diff --git a/build-aux/snippet/warn-on-use.h b/build-aux/snippet/warn-on-use.h new file mode 100644 index 0000000..1736a1b --- /dev/null +++ b/build-aux/snippet/warn-on-use.h @@ -0,0 +1,109 @@ +/* A C macro for emitting warnings if a function is used. + Copyright (C) 2010-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* _GL_WARN_ON_USE (function, "literal string") issues a declaration + for FUNCTION which will then trigger a compiler warning containing + the text of "literal string" anywhere that function is called, if + supported by the compiler. If the compiler does not support this + feature, the macro expands to an unused extern declaration. + + This macro is useful for marking a function as a potential + portability trap, with the intent that "literal string" include + instructions on the replacement function that should be used + instead. However, one of the reasons that a function is a + portability trap is if it has the wrong signature. Declaring + FUNCTION with a different signature in C is a compilation error, so + this macro must use the same type as any existing declaration so + that programs that avoid the problematic FUNCTION do not fail to + compile merely because they included a header that poisoned the + function. But this implies that _GL_WARN_ON_USE is only safe to + use if FUNCTION is known to already have a declaration. Use of + this macro implies that there must not be any other macro hiding + the declaration of FUNCTION; but undefining FUNCTION first is part + of the poisoning process anyway (although for symbols that are + provided only via a macro, the result is a compilation error rather + than a warning containing "literal string"). Also note that in + C++, it is only safe to use if FUNCTION has no overloads. + + For an example, it is possible to poison 'getline' by: + - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], + [getline]) in configure.ac, which potentially defines + HAVE_RAW_DECL_GETLINE + - adding this code to a header that wraps the system : + #undef getline + #if HAVE_RAW_DECL_GETLINE + _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" + "not universally present; use the gnulib module getline"); + #endif + + It is not possible to directly poison global variables. But it is + possible to write a wrapper accessor function, and poison that + (less common usage, like &environ, will cause a compilation error + rather than issue the nice warning, but the end result of informing + the developer about their portability problem is still achieved): + #if HAVE_RAW_DECL_ENVIRON + static char ***rpl_environ (void) { return &environ; } + _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); + # undef environ + # define environ (*rpl_environ ()) + #endif + */ +#ifndef _GL_WARN_ON_USE + +# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) +/* A compiler attribute is available in gcc versions 4.3.0 and later. */ +# define _GL_WARN_ON_USE(function, message) \ +extern __typeof__ (function) function __attribute__ ((__warning__ (message))) +# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING +/* Verify the existence of the function. */ +# define _GL_WARN_ON_USE(function, message) \ +extern __typeof__ (function) function +# else /* Unsupported. */ +# define _GL_WARN_ON_USE(function, message) \ +_GL_WARN_EXTERN_C int _gl_warn_on_use +# endif +#endif + +/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") + is like _GL_WARN_ON_USE (function, "string"), except that the function is + declared with the given prototype, consisting of return type, parameters, + and attributes. + This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does + not work in this case. */ +#ifndef _GL_WARN_ON_USE_CXX +# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) +# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ +extern rettype function parameters_and_attributes \ + __attribute__ ((__warning__ (msg))) +# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING +/* Verify the existence of the function. */ +# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ +extern rettype function parameters_and_attributes +# else /* Unsupported. */ +# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ +_GL_WARN_EXTERN_C int _gl_warn_on_use +# endif +#endif + +/* _GL_WARN_EXTERN_C declaration; + performs the declaration with C linkage. */ +#ifndef _GL_WARN_EXTERN_C +# if defined __cplusplus +# define _GL_WARN_EXTERN_C extern "C" +# else +# define _GL_WARN_EXTERN_C extern +# endif +#endif diff --git a/config.h.in b/config.h.in index 9c5c948..3b0521e 100644 --- a/config.h.in +++ b/config.h.in @@ -47,40 +47,13 @@ language is requested. */ #undef ENABLE_NLS -/* Define this to 1 if F_DUPFD behavior does not match POSIX */ -#undef FCNTL_DUPFD_BUGGY - -/* Define to 1 if fopen() fails to recognize a trailing slash. */ -#undef FOPEN_TRAILING_SLASH_BUG - -/* Define to 1 if the system's ftello function has the Solaris bug. */ -#undef FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE - -/* Define to 1 if the system's ftello function has the macOS bug. */ -#undef FTELLO_BROKEN_AFTER_UNGETC - -/* Define to 1 if fflush is known to work on stdin as per POSIX.1-2008, 0 if - fflush is known to not work, -1 if unknown. */ -#undef FUNC_FFLUSH_STDIN - /* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */ #undef FUNC_NL_LANGINFO_YESEXPR_WORKS -/* Define to 1 if ungetc is broken when used on arbitrary bytes. */ -#undef FUNC_UNGETC_BROKEN - /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module dirname shall be considered present. */ #undef GNULIB_DIRNAME -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fflush shall be considered present. */ -#undef GNULIB_FFLUSH - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fopen-gnu shall be considered present. */ -#undef GNULIB_FOPEN_GNU - /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF @@ -90,16 +63,8 @@ #undef GNULIB_LOCK /* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module msvc-nothrow shall be considered present. */ -#undef GNULIB_MSVC_NOTHROW - -/* Define to 1 if printf and friends should be labeled with attribute - "__gnu_printf__" instead of "__printf__" */ -#undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module reallocarray shall be considered present. */ -#undef GNULIB_REALLOCARRAY + whether the gnulib module malloc-gnu shall be considered present. */ +#undef GNULIB_MALLOC_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module scanf shall be considered present. */ @@ -116,120 +81,27 @@ /* Define to 1 when the gnulib module btowc should be tested. */ #undef GNULIB_TEST_BTOWC -/* Define to 1 when the gnulib module calloc-gnu should be tested. */ -#undef GNULIB_TEST_CALLOC_GNU - -/* Define to 1 when the gnulib module calloc-posix should be tested. */ -#undef GNULIB_TEST_CALLOC_POSIX - -/* Define to 1 when the gnulib module cloexec should be tested. */ -#undef GNULIB_TEST_CLOEXEC - -/* Define to 1 when the gnulib module close should be tested. */ -#undef GNULIB_TEST_CLOSE - -/* Define to 1 when the gnulib module dup2 should be tested. */ -#undef GNULIB_TEST_DUP2 - /* Define to 1 when the gnulib module environ should be tested. */ #undef GNULIB_TEST_ENVIRON -/* Define to 1 when the gnulib module fcntl should be tested. */ -#undef GNULIB_TEST_FCNTL - -/* Define to 1 when the gnulib module fflush should be tested. */ -#undef GNULIB_TEST_FFLUSH - -/* Define to 1 when the gnulib module fgetc should be tested. */ -#undef GNULIB_TEST_FGETC - -/* Define to 1 when the gnulib module fgets should be tested. */ -#undef GNULIB_TEST_FGETS - /* Define to 1 when the gnulib module floorf should be tested. */ #undef GNULIB_TEST_FLOORF -/* Define to 1 when the gnulib module fopen should be tested. */ -#undef GNULIB_TEST_FOPEN - -/* Define to 1 when the gnulib module fopen-gnu should be tested. */ -#undef GNULIB_TEST_FOPEN_GNU - -/* Define to 1 when the gnulib module fprintf should be tested. */ -#undef GNULIB_TEST_FPRINTF - -/* Define to 1 when the gnulib module fpurge should be tested. */ -#undef GNULIB_TEST_FPURGE - -/* Define to 1 when the gnulib module fputc should be tested. */ -#undef GNULIB_TEST_FPUTC - -/* Define to 1 when the gnulib module fputs should be tested. */ -#undef GNULIB_TEST_FPUTS - -/* Define to 1 when the gnulib module fread should be tested. */ -#undef GNULIB_TEST_FREAD - -/* Define to 1 when the gnulib module free-posix should be tested. */ -#undef GNULIB_TEST_FREE_POSIX - -/* Define to 1 when the gnulib module fscanf should be tested. */ -#undef GNULIB_TEST_FSCANF - -/* Define to 1 when the gnulib module fseek should be tested. */ -#undef GNULIB_TEST_FSEEK - -/* Define to 1 when the gnulib module fseeko should be tested. */ -#undef GNULIB_TEST_FSEEKO - -/* Define to 1 when the gnulib module fstat should be tested. */ -#undef GNULIB_TEST_FSTAT - -/* Define to 1 when the gnulib module ftell should be tested. */ -#undef GNULIB_TEST_FTELL - -/* Define to 1 when the gnulib module ftello should be tested. */ -#undef GNULIB_TEST_FTELLO - -/* Define to 1 when the gnulib module fwrite should be tested. */ -#undef GNULIB_TEST_FWRITE - /* Define to 1 when the gnulib module getaddrinfo should be tested. */ #undef GNULIB_TEST_GETADDRINFO -/* Define to 1 when the gnulib module getc should be tested. */ -#undef GNULIB_TEST_GETC - -/* Define to 1 when the gnulib module getchar should be tested. */ -#undef GNULIB_TEST_GETCHAR - -/* Define to 1 when the gnulib module getdelim should be tested. */ -#undef GNULIB_TEST_GETDELIM - -/* Define to 1 when the gnulib module getdtablesize should be tested. */ -#undef GNULIB_TEST_GETDTABLESIZE - /* Define to 1 when the gnulib module gethostname should be tested. */ #undef GNULIB_TEST_GETHOSTNAME -/* Define to 1 when the gnulib module getline should be tested. */ -#undef GNULIB_TEST_GETLINE - /* Define to 1 when the gnulib module getloadavg should be tested. */ #undef GNULIB_TEST_GETLOADAVG -/* Define to 1 when the gnulib module getopt-posix should be tested. */ -#undef GNULIB_TEST_GETOPT_POSIX +/* Define to 1 when the gnulib module getopt-gnu should be tested. */ +#undef GNULIB_TEST_GETOPT_GNU /* Define to 1 when the gnulib module localeconv should be tested. */ #undef GNULIB_TEST_LOCALECONV -/* Define to 1 when the gnulib module lseek should be tested. */ -#undef GNULIB_TEST_LSEEK - -/* Define to 1 when the gnulib module malloc-gnu should be tested. */ -#undef GNULIB_TEST_MALLOC_GNU - /* Define to 1 when the gnulib module malloc-posix should be tested. */ #undef GNULIB_TEST_MALLOC_POSIX @@ -251,51 +123,27 @@ /* Define to 1 when the gnulib module nl_langinfo should be tested. */ #undef GNULIB_TEST_NL_LANGINFO -/* Define to 1 when the gnulib module open should be tested. */ -#undef GNULIB_TEST_OPEN - -/* Define to 1 when the gnulib module printf should be tested. */ -#undef GNULIB_TEST_PRINTF - -/* Define to 1 when the gnulib module putc should be tested. */ -#undef GNULIB_TEST_PUTC - -/* Define to 1 when the gnulib module putchar should be tested. */ -#undef GNULIB_TEST_PUTCHAR - -/* Define to 1 when the gnulib module puts should be tested. */ -#undef GNULIB_TEST_PUTS - -/* Define to 1 when the gnulib module reallocarray should be tested. */ -#undef GNULIB_TEST_REALLOCARRAY - -/* Define to 1 when the gnulib module realloc-gnu should be tested. */ -#undef GNULIB_TEST_REALLOC_GNU - -/* Define to 1 when the gnulib module realloc-posix should be tested. */ -#undef GNULIB_TEST_REALLOC_POSIX - -/* Define to 1 when the gnulib module scanf should be tested. */ -#undef GNULIB_TEST_SCANF +/* Define to 1 when the gnulib module read should be tested. */ +#undef GNULIB_TEST_READ /* Define to 1 when the gnulib module setenv should be tested. */ #undef GNULIB_TEST_SETENV -/* Define to 1 when the gnulib module setlocale_null should be tested. */ -#undef GNULIB_TEST_SETLOCALE_NULL - /* Define to 1 when the gnulib module snprintf should be tested. */ #undef GNULIB_TEST_SNPRINTF -/* Define to 1 when the gnulib module stat should be tested. */ -#undef GNULIB_TEST_STAT - /* Define to 1 when the gnulib module strcasestr should be tested. */ #undef GNULIB_TEST_STRCASESTR /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR +/* Define to 1 when the gnulib module strndup should be tested. */ +#undef GNULIB_TEST_STRNDUP + +/* Define to 1 when the gnulib module strnlen should be tested. */ +#undef GNULIB_TEST_STRNLEN + /* Define to 1 when the gnulib module strsep should be tested. */ #undef GNULIB_TEST_STRSEP @@ -314,26 +162,12 @@ /* Define to 1 when the gnulib module vasprintf should be tested. */ #undef GNULIB_TEST_VASPRINTF -/* Define to 1 when the gnulib module vfprintf should be tested. */ -#undef GNULIB_TEST_VFPRINTF - -/* Define to 1 when the gnulib module vprintf should be tested. */ -#undef GNULIB_TEST_VPRINTF - /* Define to 1 when the gnulib module vsnprintf should be tested. */ #undef GNULIB_TEST_VSNPRINTF /* Define to 1 when the gnulib module wcrtomb should be tested. */ #undef GNULIB_TEST_WCRTOMB -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module xalloc shall be considered present. */ -#undef GNULIB_XALLOC - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module xalloc-die shall be considered present. */ -#undef GNULIB_XALLOC_DIE - /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA @@ -347,41 +181,23 @@ /* Define to 1 if you have the header file. */ #undef HAVE_BP_SYM_H -/* Define to 1 if you have the `btowc' function. */ +/* Define to 1 if you have the 'btowc' function. */ #undef HAVE_BTOWC -/* Define to 1 if you have the header file. */ -#undef HAVE_BYTESWAP_H - -/* Define to 1 if you have the Mac OS X function - CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ -#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE -/* Define to 1 if you have the header file. */ -#undef HAVE_CRTDEFS_H - /* Define to 1 if you have the header file. */ #undef HAVE_CRYPTO_H /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H -/* Define to 1 if the alignas and alignof keywords work. */ -#undef HAVE_C_ALIGNASOF - -/* Define to 1 if bool, true and false work as per C2023. */ -#undef HAVE_C_BOOL - -/* Define to 1 if the static_assert keyword works. */ -#undef HAVE_C_STATIC_ASSERT - -/* Define to 1 if C supports variable-length arrays. */ -#undef HAVE_C_VARARRAYS - /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT @@ -390,78 +206,14 @@ */ #undef HAVE_DECL_ALARM -/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_CLEARERR_UNLOCKED - -/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't. - */ -#undef HAVE_DECL_ECVT - -/* Define to 1 if you have the declaration of `execvpe', and to 0 if you - don't. */ -#undef HAVE_DECL_EXECVPE - -/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you - don't. */ -#undef HAVE_DECL_FCLOSEALL - -/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't. - */ -#undef HAVE_DECL_FCVT - -/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_FEOF_UNLOCKED - -/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FERROR_UNLOCKED - -/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FFLUSH_UNLOCKED - -/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FGETS_UNLOCKED - /* Define to 1 if you have the declaration of `floorf', and to 0 if you don't. */ #undef HAVE_DECL_FLOORF -/* Define to 1 if you have the declaration of `fpurge', and to 0 if you don't. - */ -#undef HAVE_DECL_FPURGE - -/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FPUTC_UNLOCKED - -/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FPUTS_UNLOCKED - -/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FREAD_UNLOCKED - /* Define to 1 if you have the declaration of `freeaddrinfo', and to 0 if you don't. */ #undef HAVE_DECL_FREEADDRINFO -/* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't. - */ -#undef HAVE_DECL_FSEEKO - -/* Define to 1 if you have the declaration of `ftello', and to 0 if you don't. - */ -#undef HAVE_DECL_FTELLO - -/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FWRITE_UNLOCKED - /* Define to 1 if you have the declaration of `gai_strerror', and to 0 if you don't. */ #undef HAVE_DECL_GAI_STRERROR @@ -470,33 +222,17 @@ don't. */ #undef HAVE_DECL_GAI_STRERRORA -/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't. - */ -#undef HAVE_DECL_GCVT - /* Define to 1 if you have the declaration of `getaddrinfo', and to 0 if you don't. */ #undef HAVE_DECL_GETADDRINFO -/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_GETCHAR_UNLOCKED - /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_GETC_UNLOCKED -/* Define to 1 if you have the declaration of `getdelim', and to 0 if you - don't. */ -#undef HAVE_DECL_GETDELIM - -/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you - don't. */ -#undef HAVE_DECL_GETDTABLESIZE - -/* Define to 1 if you have the declaration of `getline', and to 0 if you - don't. */ -#undef HAVE_DECL_GETLINE +/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. + */ +#undef HAVE_DECL_GETENV /* Define to 1 if you have the declaration of `getnameinfo', and to 0 if you don't. */ @@ -522,22 +258,6 @@ don't. */ #undef HAVE_DECL_MBSINIT -/* Define to 1 if you have the declaration of `program_invocation_name', and - to 0 if you don't. */ -#undef HAVE_DECL_PROGRAM_INVOCATION_NAME - -/* Define to 1 if you have the declaration of `program_invocation_short_name', - and to 0 if you don't. */ -#undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME - -/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_PUTCHAR_UNLOCKED - -/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_PUTC_UNLOCKED - /* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. */ #undef HAVE_DECL_SETENV @@ -554,6 +274,14 @@ don't. */ #undef HAVE_DECL_STRNCASECMP +/* Define to 1 if you have the declaration of `strndup', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNDUP + +/* Define to 1 if you have the declaration of `strnlen', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNLEN + /* Define to 1 if you have the declaration of `swapctl', and to 0 if you don't. */ #undef HAVE_DECL_SWAPCTL @@ -578,27 +306,15 @@ don't. */ #undef HAVE_DECL_WCRTOMB -/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't. - */ -#undef HAVE_DECL_WCSDUP - -/* Define to 1 if you have the declaration of `_fseeki64', and to 0 if you - don't. */ -#undef HAVE_DECL__FSEEKI64 - /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNPRINTF -/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. - */ -#undef HAVE_DECL___ARGV - /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you have the `endmntent' function. */ -#undef HAVE_ENDMNTENT +/* Define to 1 if you have the header file. */ +#undef HAVE_DUSTAT_H /* Define if you have the declaration of environ. */ #undef HAVE_ENVIRON_DECL @@ -609,55 +325,25 @@ /* Define to 1 if you have the header file. */ #undef HAVE_ERR_H -/* Define to 1 if you have the `fcntl' function. */ -#undef HAVE_FCNTL - /* Define to 1 if you have the header file. */ #undef HAVE_FEATURES_H -/* Define to 1 if you have the `flockfile' function. */ -#undef HAVE_FLOCKFILE - /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR -/* Define to 1 if you have the `fpurge' function. */ -#undef HAVE_FPURGE - -/* Define if the 'free' function is guaranteed to preserve errno. */ -#undef HAVE_FREE_POSIX - -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ -#undef HAVE_FSEEKO - /* Define to 1 if you have the header file. */ #undef HAVE_FS_INFO_H /* Define to 1 if you have the `fs_stat_dev' function. */ #undef HAVE_FS_STAT_DEV -/* Define to 1 if you have the `funlockfile' function. */ -#undef HAVE_FUNLOCKFILE - -/* Define to 1 if getaddrinfo exists, or to 0 otherwise. */ -#undef HAVE_GETADDRINFO - -/* Define to 1 if you have the `getdelim' function. */ -#undef HAVE_GETDELIM - -/* Define to 1 if you have the `getdtablesize' function. */ -#undef HAVE_GETDTABLESIZE - -/* Define to 1 if you have the `getegid' function. */ +/* Define to 1 if you have the 'getegid' function. */ #undef HAVE_GETEGID -/* Define to 1 if you have the `geteuid' function. */ +/* Define to 1 if you have the 'geteuid' function. */ #undef HAVE_GETEUID -/* Define to 1 if you have the `getexecname' function. */ -#undef HAVE_GETEXECNAME - -/* Define to 1 if you have the `getgid' function. */ +/* Define to 1 if you have the 'getgid' function. */ #undef HAVE_GETGID /* Define to 1 if you have the `gethostbyname' function. */ @@ -669,19 +355,19 @@ /* Define to 1 if you have the `getmntent' function. */ #undef HAVE_GETMNTENT +/* Define to 1 if you have the `getmntinfo' function. */ +#undef HAVE_GETMNTINFO + /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `getopt_long_only' function. */ #undef HAVE_GETOPT_LONG_ONLY -/* Define to 1 if you have the `getprogname' function. */ -#undef HAVE_GETPROGNAME - -/* Define to 1 if you have the `getresgid' function. */ +/* Define to 1 if you have the 'getresgid' function. */ #undef HAVE_GETRESGID -/* Define to 1 if you have the `getresuid' function. */ +/* Define to 1 if you have the 'getresuid' function. */ #undef HAVE_GETRESUID /* Define to 1 if you have the `getservbyname' function. */ @@ -693,7 +379,7 @@ /* Define if gettimeofday is found */ #undef HAVE_GETTIMEOFDAY -/* Define to 1 if you have the `getuid' function. */ +/* Define to 1 if you have the 'getuid' function. */ #undef HAVE_GETUID /* Define to 1 if you have the header file. */ @@ -724,13 +410,13 @@ /* Define to 1 if defines AF_INET6. */ #undef HAVE_IPV6 -/* Define to 1 if you have the `isblank' function. */ +/* Define to 1 if you have the 'isblank' function. */ #undef HAVE_ISBLANK -/* Define to 1 if you have the `iswcntrl' function. */ +/* Define to 1 if you have the 'iswcntrl' function. */ #undef HAVE_ISWCNTRL -/* Define to 1 if you have the `iswctype' function. */ +/* Define to 1 if you have the 'iswctype' function. */ #undef HAVE_ISWCTYPE /* Define to 1 if you have the header file. */ @@ -807,34 +493,23 @@ */ #undef HAVE_LIBRADIUSCLIENT_NG -/* Define to 1 if you have the `systemd' library (-lsystemd). */ -#undef HAVE_LIBSYSTEMD - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - -/* Define to 1 if you have 'struct sockaddr_alg' defined. */ -#undef HAVE_LINUX_IF_ALG_H - /* Define to 1 if you have the `listmntent' function. */ #undef HAVE_LISTMNTENT -/* Define to 1 if you have the `localtime_r' function. */ +/* Define to 1 if you have the 'localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT -/* Define to 1 if you have the `lstat' function. */ -#undef HAVE_LSTAT - /* Define to 1 if you have the header file. */ #undef HAVE_MACH_MACH_H -/* Define to 1 if you have the header file. */ -#undef HAVE_MALLOC_H +/* Define to 1 if your system has a GNU libc compatible 'malloc' function, and + to 0 otherwise. */ +#undef HAVE_MALLOC_GNU -/* Define if malloc, realloc, and calloc set errno on allocation failure. */ +/* Define if the 'malloc' function is POSIX compliant. */ #undef HAVE_MALLOC_POSIX /* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including @@ -847,31 +522,19 @@ /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC -/* Define to 1 if you have the `mbsinit' function. */ +/* Define to 1 if you have the 'mbsinit' function. */ #undef HAVE_MBSINIT /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T -/* Define to 1 if you have the `mbtowc' function. */ -#undef HAVE_MBTOWC - /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE -/* Define to 1 if you have the header file. */ -#undef HAVE_MINIX_CONFIG_H - -/* Define to 1 if defines the MIN and MAX macros. */ -#undef HAVE_MINMAX_IN_LIMITS_H - -/* Define to 1 if defines the MIN and MAX macros. */ -#undef HAVE_MINMAX_IN_SYS_PARAM_H - /* Define to 1 if you have the header file. */ #undef HAVE_MNTENT_H -/* Define to 1 if you have the `mprotect' function. */ +/* Define to 1 if you have the 'mprotect' function. */ #undef HAVE_MPROTECT /* Define to 1 if you have the header file. */ @@ -896,7 +559,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_NLIST_H -/* Define to 1 if you have the `nl_langinfo' function. */ +/* Define to 1 if you have the 'nl_langinfo' function. */ #undef HAVE_NL_LANGINFO /* Define to 1 if you have the header file. */ @@ -911,12 +574,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_RSA_H -/* Define to 1 if libcrypto is used for SHA256. */ -#undef HAVE_OPENSSL_SHA256 - -/* Define to 1 if you have the header file. */ -#undef HAVE_OPENSSL_SHA_H - /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_SSL_H @@ -941,21 +598,801 @@ /* Define to 1 if you have the `pstat_getdynamic' function. */ #undef HAVE_PSTAT_GETDYNAMIC -/* Define if you have the header and the POSIX threads API. */ -#undef HAVE_PTHREAD_API - /* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ #undef HAVE_PTHREAD_MUTEX_RECURSIVE /* Define if the POSIX multithreading library has read/write locks. */ #undef HAVE_PTHREAD_RWLOCK -/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a - reader. */ -#undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER +/* Define to 1 if accept is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ACCEPT -/* Define to 1 if you have the `reallocarray' function. */ -#undef HAVE_REALLOCARRAY +/* Define to 1 if accept4 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ACCEPT4 + +/* Define to 1 if acosf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ACOSF + +/* Define to 1 if acosl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ACOSL + +/* Define to 1 if asinf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ASINF + +/* Define to 1 if asinl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ASINL + +/* Define to 1 if atanf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ATANF + +/* Define to 1 if atanl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ATANL + +/* Define to 1 if atoll is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ATOLL + +/* Define to 1 if bind is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_BIND + +/* Define to 1 if btowc is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_BTOWC + +/* Define to 1 if canonicalize_file_name is declared even after undefining + macros. */ +#undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME + +/* Define to 1 if cbrt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CBRT + +/* Define to 1 if cbrtf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CBRTF + +/* Define to 1 if cbrtl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CBRTL + +/* Define to 1 if ceilf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CEILF + +/* Define to 1 if ceill is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CEILL + +/* Define to 1 if chdir is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CHDIR + +/* Define to 1 if chown is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CHOWN + +/* Define to 1 if connect is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CONNECT + +/* Define to 1 if copysign is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_COPYSIGN + +/* Define to 1 if copysignf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_COPYSIGNF + +/* Define to 1 if copysignl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_COPYSIGNL + +/* Define to 1 if cosf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_COSF + +/* Define to 1 if coshf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_COSHF + +/* Define to 1 if cosl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_COSL + +/* Define to 1 if dprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DPRINTF + +/* Define to 1 if dup is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DUP + +/* Define to 1 if dup2 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DUP2 + +/* Define to 1 if dup3 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DUP3 + +/* Define to 1 if duplocale is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DUPLOCALE + +/* Define to 1 if endusershell is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ENDUSERSHELL + +/* Define to 1 if environ is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ENVIRON + +/* Define to 1 if euidaccess is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EUIDACCESS + +/* Define to 1 if exp2 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXP2 + +/* Define to 1 if exp2f is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXP2F + +/* Define to 1 if exp2l is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXP2L + +/* Define to 1 if expf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXPF + +/* Define to 1 if expl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXPL + +/* Define to 1 if expm1 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXPM1 + +/* Define to 1 if expm1f is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXPM1F + +/* Define to 1 if expm1l is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EXPM1L + +/* Define to 1 if fabsf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FABSF + +/* Define to 1 if fabsl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FABSL + +/* Define to 1 if faccessat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FACCESSAT + +/* Define to 1 if fchdir is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FCHDIR + +/* Define to 1 if fchownat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FCHOWNAT + +/* Define to 1 if fdatasync is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FDATASYNC + +/* Define to 1 if ffs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FFS + +/* Define to 1 if ffsl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FFSL + +/* Define to 1 if ffsll is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FFSLL + +/* Define to 1 if floorf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FLOORF + +/* Define to 1 if floorl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FLOORL + +/* Define to 1 if fma is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FMA + +/* Define to 1 if fmaf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FMAF + +/* Define to 1 if fmal is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FMAL + +/* Define to 1 if fmod is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FMOD + +/* Define to 1 if fmodf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FMODF + +/* Define to 1 if fmodl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FMODL + +/* Define to 1 if fpurge is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FPURGE + +/* Define to 1 if freeaddrinfo is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FREEADDRINFO + +/* Define to 1 if frexpf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FREXPF + +/* Define to 1 if frexpl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FREXPL + +/* Define to 1 if fseeko is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FSEEKO + +/* Define to 1 if fsync is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FSYNC + +/* Define to 1 if ftello is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FTELLO + +/* Define to 1 if ftruncate is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FTRUNCATE + +/* Define to 1 if gai_strerror is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GAI_STRERROR + +/* Define to 1 if getaddrinfo is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETADDRINFO + +/* Define to 1 if getcwd is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETCWD + +/* Define to 1 if getdelim is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETDELIM + +/* Define to 1 if getdomainname is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETDOMAINNAME + +/* Define to 1 if getdtablesize is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETDTABLESIZE + +/* Define to 1 if getgroups is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETGROUPS + +/* Define to 1 if gethostname is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETHOSTNAME + +/* Define to 1 if getline is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLINE + +/* Define to 1 if getloadavg is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLOADAVG + +/* Define to 1 if getlogin is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLOGIN + +/* Define to 1 if getlogin_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLOGIN_R + +/* Define to 1 if getnameinfo is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETNAMEINFO + +/* Define to 1 if getpagesize is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETPAGESIZE + +/* Define to 1 if getpeername is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETPEERNAME + +/* Define to 1 if gets is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETS + +/* Define to 1 if getsockname is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETSOCKNAME + +/* Define to 1 if getsockopt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETSOCKOPT + +/* Define to 1 if getsubopt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETSUBOPT + +/* Define to 1 if getusershell is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETUSERSHELL + +/* Define to 1 if grantpt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GRANTPT + +/* Define to 1 if group_member is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GROUP_MEMBER + +/* Define to 1 if hypotf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_HYPOTF + +/* Define to 1 if hypotl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_HYPOTL + +/* Define to 1 if ilogb is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ILOGB + +/* Define to 1 if ilogbf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ILOGBF + +/* Define to 1 if ilogbl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ILOGBL + +/* Define to 1 if inet_ntop is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_INET_NTOP + +/* Define to 1 if inet_pton is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_INET_PTON + +/* Define to 1 if initstate is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_INITSTATE + +/* Define to 1 if initstate_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_INITSTATE_R + +/* Define to 1 if isatty is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ISATTY + +/* Define to 1 if iswctype is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ISWCTYPE + +/* Define to 1 if lchown is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LCHOWN + +/* Define to 1 if ldexpf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LDEXPF + +/* Define to 1 if ldexpl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LDEXPL + +/* Define to 1 if link is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LINK + +/* Define to 1 if linkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LINKAT + +/* Define to 1 if listen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LISTEN + +/* Define to 1 if log is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG + +/* Define to 1 if log10 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG10 + +/* Define to 1 if log10f is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG10F + +/* Define to 1 if log10l is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG10L + +/* Define to 1 if log1p is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG1P + +/* Define to 1 if log1pf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG1PF + +/* Define to 1 if log1pl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG1PL + +/* Define to 1 if log2 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG2 + +/* Define to 1 if log2f is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG2F + +/* Define to 1 if log2l is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOG2L + +/* Define to 1 if logb is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOGB + +/* Define to 1 if logbf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOGBF + +/* Define to 1 if logbl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOGBL + +/* Define to 1 if logf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOGF + +/* Define to 1 if logl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LOGL + +/* Define to 1 if lseek is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LSEEK + +/* Define to 1 if mbrlen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBRLEN + +/* Define to 1 if mbrtowc is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBRTOWC + +/* Define to 1 if mbsinit is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBSINIT + +/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBSNRTOWCS + +/* Define to 1 if mbsrtowcs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBSRTOWCS + +/* Define to 1 if memmem is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MEMMEM + +/* Define to 1 if mempcpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MEMPCPY + +/* Define to 1 if memrchr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MEMRCHR + +/* Define to 1 if mkdtemp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKDTEMP + +/* Define to 1 if mkostemp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKOSTEMP + +/* Define to 1 if mkostemps is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKOSTEMPS + +/* Define to 1 if mkstemp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKSTEMP + +/* Define to 1 if mkstemps is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKSTEMPS + +/* Define to 1 if modf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MODF + +/* Define to 1 if modff is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MODFF + +/* Define to 1 if modfl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MODFL + +/* Define to 1 if nl_langinfo is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_NL_LANGINFO + +/* Define to 1 if pclose is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PCLOSE + +/* Define to 1 if pipe is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PIPE + +/* Define to 1 if pipe2 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PIPE2 + +/* Define to 1 if popen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_POPEN + +/* Define to 1 if posix_openpt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_POSIX_OPENPT + +/* Define to 1 if powf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_POWF + +/* Define to 1 if pread is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PREAD + +/* Define to 1 if ptsname is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PTSNAME + +/* Define to 1 if ptsname_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PTSNAME_R + +/* Define to 1 if pwrite is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PWRITE + +/* Define to 1 if random is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RANDOM + +/* Define to 1 if random_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RANDOM_R + +/* Define to 1 if rawmemchr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RAWMEMCHR + +/* Define to 1 if readlink is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_READLINK + +/* Define to 1 if readlinkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_READLINKAT + +/* Define to 1 if realpath is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_REALPATH + +/* Define to 1 if recv is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RECV + +/* Define to 1 if recvfrom is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RECVFROM + +/* Define to 1 if remainder is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_REMAINDER + +/* Define to 1 if remainderf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_REMAINDERF + +/* Define to 1 if remainderl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_REMAINDERL + +/* Define to 1 if renameat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RENAMEAT + +/* Define to 1 if rint is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RINT + +/* Define to 1 if rintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RINTF + +/* Define to 1 if rintl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RINTL + +/* Define to 1 if rmdir is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RMDIR + +/* Define to 1 if round is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ROUND + +/* Define to 1 if roundf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ROUNDF + +/* Define to 1 if roundl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ROUNDL + +/* Define to 1 if rpmatch is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RPMATCH + +/* Define to 1 if secure_getenv is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SECURE_GETENV + +/* Define to 1 if send is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SEND + +/* Define to 1 if sendto is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SENDTO + +/* Define to 1 if setenv is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETENV + +/* Define to 1 if sethostname is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETHOSTNAME + +/* Define to 1 if setlocale is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETLOCALE + +/* Define to 1 if setsockopt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETSOCKOPT + +/* Define to 1 if setstate is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETSTATE + +/* Define to 1 if setstate_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETSTATE_R + +/* Define to 1 if setusershell is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETUSERSHELL + +/* Define to 1 if shutdown is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SHUTDOWN + +/* Define to 1 if sinf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SINF + +/* Define to 1 if sinhf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SINHF + +/* Define to 1 if sinl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SINL + +/* Define to 1 if sleep is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SLEEP + +/* Define to 1 if snprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SNPRINTF + +/* Define to 1 if socket is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SOCKET + +/* Define to 1 if sqrtf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SQRTF + +/* Define to 1 if sqrtl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SQRTL + +/* Define to 1 if srandom is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SRANDOM + +/* Define to 1 if srandom_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SRANDOM_R + +/* Define to 1 if stpcpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STPCPY + +/* Define to 1 if stpncpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STPNCPY + +/* Define to 1 if strcasecmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRCASECMP + +/* Define to 1 if strcasestr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRCASESTR + +/* Define to 1 if strchrnul is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRCHRNUL + +/* Define to 1 if strdup is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRDUP + +/* Define to 1 if strerror_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRERROR_R + +/* Define to 1 if strncasecmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRNCASECMP + +/* Define to 1 if strncat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRNCAT + +/* Define to 1 if strndup is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRNDUP + +/* Define to 1 if strnlen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRNLEN + +/* Define to 1 if strpbrk is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRPBRK + +/* Define to 1 if strsep is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRSEP + +/* Define to 1 if strsignal is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRSIGNAL + +/* Define to 1 if strtod is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOD + +/* Define to 1 if strtok_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOK_R + +/* Define to 1 if strtoll is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOLL + +/* Define to 1 if strtoull is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOULL + +/* Define to 1 if strverscmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRVERSCMP + +/* Define to 1 if symlink is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SYMLINK + +/* Define to 1 if symlinkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SYMLINKAT + +/* Define to 1 if tanf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TANF + +/* Define to 1 if tanhf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TANHF + +/* Define to 1 if tanl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TANL + +/* Define to 1 if tmpfile is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TMPFILE + +/* Define to 1 if towctrans is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TOWCTRANS + +/* Define to 1 if trunc is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TRUNC + +/* Define to 1 if truncf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TRUNCF + +/* Define to 1 if truncl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TRUNCL + +/* Define to 1 if ttyname_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_TTYNAME_R + +/* Define to 1 if unlink is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UNLINK + +/* Define to 1 if unlinkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UNLINKAT + +/* Define to 1 if unlockpt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UNLOCKPT + +/* Define to 1 if unsetenv is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UNSETENV + +/* Define to 1 if usleep is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_USLEEP + +/* Define to 1 if vdprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_VDPRINTF + +/* Define to 1 if vsnprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_VSNPRINTF + +/* Define to 1 if wcpcpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCPCPY + +/* Define to 1 if wcpncpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCPNCPY + +/* Define to 1 if wcrtomb is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCRTOMB + +/* Define to 1 if wcscasecmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSCASECMP + +/* Define to 1 if wcscat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSCAT + +/* Define to 1 if wcschr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSCHR + +/* Define to 1 if wcscmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSCMP + +/* Define to 1 if wcscoll is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSCOLL + +/* Define to 1 if wcscpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSCPY + +/* Define to 1 if wcscspn is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSCSPN + +/* Define to 1 if wcsdup is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSDUP + +/* Define to 1 if wcslen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSLEN + +/* Define to 1 if wcsncasecmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSNCASECMP + +/* Define to 1 if wcsncat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSNCAT + +/* Define to 1 if wcsncmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSNCMP + +/* Define to 1 if wcsncpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSNCPY + +/* Define to 1 if wcsnlen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSNLEN + +/* Define to 1 if wcsnrtombs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSNRTOMBS + +/* Define to 1 if wcspbrk is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSPBRK + +/* Define to 1 if wcsrchr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSRCHR + +/* Define to 1 if wcsrtombs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSRTOMBS + +/* Define to 1 if wcsspn is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSSPN + +/* Define to 1 if wcsstr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSSTR + +/* Define to 1 if wcstok is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSTOK + +/* Define to 1 if wcswidth is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSWIDTH + +/* Define to 1 if wcsxfrm is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSXFRM + +/* Define to 1 if wctob is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCTOB + +/* Define to 1 if wctrans is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCTRANS + +/* Define to 1 if wctype is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCTYPE + +/* Define to 1 if wcwidth is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCWIDTH + +/* Define to 1 if wmemchr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WMEMCHR + +/* Define to 1 if wmemcmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WMEMCMP + +/* Define to 1 if wmemcpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WMEMCPY + +/* Define to 1 if wmemmove is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WMEMMOVE + +/* Define to 1 if wmemset is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WMEMSET + +/* Define to 1 if _Exit is declared even after undefining macros. */ +#undef HAVE_RAW_DECL__EXIT /* Define to 1 if you have the header file. */ #undef HAVE_RSA_H @@ -963,40 +1400,31 @@ /* Define to 1 if the system has the type `sa_family_t'. */ #undef HAVE_SA_FAMILY_T -/* Define to 1 if you have the header file. */ -#undef HAVE_SDKDDKVER_H - /* Define to 1 if you have the header file. */ #undef HAVE_SEARCH_H /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT -/* Define to 1 if you have the `setdtablesize' function. */ -#undef HAVE_SETDTABLESIZE - -/* Define to 1 if you have the `setegid' function. */ +/* Define to 1 if you have the 'setegid' function. */ #undef HAVE_SETEGID -/* Define to 1 if you have the `setenv' function. */ +/* Define to 1 if you have the 'setenv' function. */ #undef HAVE_SETENV -/* Define to 1 if you have the `seteuid' function. */ +/* Define to 1 if you have the 'seteuid' function. */ #undef HAVE_SETEUID -/* Define to 1 if you have the `setmntent' function. */ -#undef HAVE_SETMNTENT - -/* Define to 1 if you have the `setregid' function. */ +/* Define to 1 if you have the 'setregid' function. */ #undef HAVE_SETREGID -/* Define to 1 if you have the `setresgid' function. */ +/* Define to 1 if you have the 'setresgid' function. */ #undef HAVE_SETRESGID -/* Define to 1 if you have the `setresuid' function. */ +/* Define to 1 if you have the 'setresuid' function. */ #undef HAVE_SETRESUID -/* Define to 1 if you have the `setreuid' function. */ +/* Define to 1 if you have the 'setreuid' function. */ #undef HAVE_SETREUID /* Define to 1 if you have the `shutdown' function. */ @@ -1022,10 +1450,6 @@ buffer had been large enough. */ #undef HAVE_SNPRINTF_RETVAL_C99 -/* Define if the string produced by the snprintf function is always NUL - terminated. */ -#undef HAVE_SNPRINTF_TRUNCATION_C99 - /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET @@ -1038,18 +1462,9 @@ /* Define to 1 if you have the `statvfs' function. */ #undef HAVE_STATVFS -/* Define to 1 if you have the header file. */ -#undef HAVE_STDALIGN_H - /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H -/* Define to 1 if you have the header file. */ -#undef HAVE_STDBOOL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDCKDINT_H - /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H @@ -1057,9 +1472,6 @@ uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX -/* Define to 1 if you have the header file. */ -#undef HAVE_STDIO_EXT_H - /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H @@ -1087,6 +1499,9 @@ /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP +/* Define to 1 if you have the 'strndup' function. */ +#undef HAVE_STRNDUP + /* Define to 1 if you have the `strnlen' function. */ #undef HAVE_STRNLEN @@ -1126,27 +1541,6 @@ /* Define to 1 if `f_fstypename' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FSTYPENAME -/* Define to 1 if `st_atimensec' is a member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_ATIMENSEC - -/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC - -/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC - -/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC - -/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC - -/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC - -/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC - /* Define to 1 if `se_nblks' is a member of `struct swapent'. */ #undef HAVE_STRUCT_SWAPENT_SE_NBLKS @@ -1162,7 +1556,7 @@ /* Define to 1 if the system has the type `swaptbl_t'. */ #undef HAVE_SWAPTBL_T -/* Define to 1 if you have the `symlink' function. */ +/* Define to 1 if you have the 'symlink' function. */ #undef HAVE_SYMLINK /* Define if sysconf returns number of available cpus */ @@ -1177,8 +1571,8 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_CDEFS_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_FILSYS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_FS_S5PARAM_H @@ -1249,13 +1643,7 @@ /* Define to 1 if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H -/* Define to 1 if you have the `thrd_create' function. */ -#undef HAVE_THRD_CREATE - -/* Define to 1 if you have the header file. */ -#undef HAVE_THREADS_H - -/* Define to 1 if you have the `timegm' function. */ +/* Define to 1 if you have the 'timegm' function. */ #undef HAVE_TIMEGM /* Define to 1 if you have the `towlower' function. */ @@ -1285,10 +1673,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UTMPX_H -/* Define if you have a global __progname variable */ -#undef HAVE_VAR___PROGNAME - -/* Define to 1 if you have the `vasnprintf' function. */ +/* Define to 1 if you have the 'vasnprintf' function. */ #undef HAVE_VASNPRINTF /* Define to 1 if you have the `vasprintf' function. */ @@ -1297,10 +1682,6 @@ /* Whether va_copy() is available */ #undef HAVE_VA_COPY -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#undef HAVE_VISIBILITY - /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF @@ -1310,9 +1691,12 @@ /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T -/* Define to 1 if you have the `wcrtomb' function. */ +/* Define to 1 if you have the 'wcrtomb' function. */ #undef HAVE_WCRTOMB +/* Define to 1 if you have the 'wcscoll' function. */ +#undef HAVE_WCSCOLL + /* Define to 1 if you have the `wcslen' function. */ #undef HAVE_WCSLEN @@ -1322,10 +1706,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_WCTYPE_H -/* Define to 1 if the compiler and linker support weak declarations of - symbols. */ -#undef HAVE_WEAK_SYMBOLS - /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H @@ -1350,142 +1730,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H -/* Define to 1 if you have the `_fseeki64' function. */ -#undef HAVE__FSEEKI64 +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL -/* Define to 1 if you have the `_ftelli64' function. */ -#undef HAVE__FTELLI64 - -/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ +/* Define to 1 if you have the '_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER -/* Define to 1 if the compiler supports __builtin_expect, - and to 2 if does. */ -#undef HAVE___BUILTIN_EXPECT -#ifndef HAVE___BUILTIN_EXPECT -# define __builtin_expect(e, c) (e) -#elif HAVE___BUILTIN_EXPECT == 2 -# include -#endif - - -/* Define to 1 if you have the `__fpurge' function. */ -#undef HAVE___FPURGE - -/* Define to 1 if you have the `__freading' function. */ -#undef HAVE___FREADING - -/* Define to 1 if ctype.h defines __header_inline. */ -#undef HAVE___HEADER_INLINE - -/* Please see the Gnulib manual for how to use these macros. - - Suppress extern inline with HP-UX cc, as it appears to be broken; see - . - - Suppress extern inline with Sun C in standards-conformance mode, as it - mishandles inline functions that call each other. E.g., for 'inline void f - (void) { } inline void g (void) { f (); }', c99 incorrectly complains - 'reference to static identifier "f" in extern inline function'. - This bug was observed with Oracle Developer Studio 12.6 - (Sun C 5.15 SunOS_sparc 2017/05/30). - - Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) - on configurations that mistakenly use 'static inline' to implement - functions or macros in standard C headers like . For example, - if isdigit is mistakenly implemented via a static inline function, - a program containing an extern inline function that calls isdigit - may not work since the C standard prohibits extern inline functions - from calling static functions (ISO C 99 section 6.7.4.(3). - This bug is known to occur on: - - OS X 10.8 and earlier; see: - https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html - - DragonFly; see - http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log - - FreeBSD; see: - https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html - - OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. - - GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. It defines a macro - __GNUC_STDC_INLINE__ to indicate this situation or a macro - __GNUC_GNU_INLINE__ to indicate the opposite situation. - GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline - semantics but warns, unless -fgnu89-inline is used: - warning: C99 inline functions are not supported; using GNU89 - warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute - It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. - */ -#if (((defined __APPLE__ && defined __MACH__) \ - || defined __DragonFly__ || defined __FreeBSD__) \ - && (defined HAVE___HEADER_INLINE \ - ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ - && ! defined __clang__) \ - : ((! defined _DONT_USE_CTYPE_INLINE_ \ - && (defined __GNUC__ || defined __cplusplus)) \ - || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ - && defined __GNUC__ && ! defined __cplusplus)))) -# define _GL_EXTERN_INLINE_STDHEADER_BUG -#endif -#if ((__GNUC__ \ - ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - : (199901L <= __STDC_VERSION__ \ - && !defined __HP_cc \ - && !defined __PGI \ - && !(defined __SUNPRO_C && __STDC__))) \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# define _GL_INLINE inline -# define _GL_EXTERN_INLINE extern inline -# define _GL_EXTERN_INLINE_IN_USE -#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ - /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ -# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) -# else -# define _GL_INLINE extern inline -# endif -# define _GL_EXTERN_INLINE extern -# define _GL_EXTERN_INLINE_IN_USE -#else -# define _GL_INLINE _GL_UNUSED static -# define _GL_EXTERN_INLINE _GL_UNUSED static -#endif - -/* In GCC 4.6 (inclusive) to 5.1 (exclusive), - suppress bogus "no previous prototype for 'FOO'" - and "no previous declaration for 'FOO'" diagnostics, - when FOO is an inline function in the header; see - and - . */ -#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ -# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ -# define _GL_INLINE_HEADER_CONST_PRAGMA -# else -# define _GL_INLINE_HEADER_CONST_PRAGMA \ - _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") -# endif -# define _GL_INLINE_HEADER_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ - _GL_INLINE_HEADER_CONST_PRAGMA -# define _GL_INLINE_HEADER_END \ - _Pragma ("GCC diagnostic pop") -#else -# define _GL_INLINE_HEADER_BEGIN -# define _GL_INLINE_HEADER_END -#endif - -/* Define to 1 if the compiler supports the keyword '__inline'. */ -#undef HAVE___INLINE - /* Whether __va_copy() is available */ #undef HAVE___VA_COPY @@ -1555,35 +1805,16 @@ /* Defined if libcurl supports TFTP */ #undef LIBCURL_PROTOCOL_TFTP -/* Define to 1 if lseek does not detect pipes. */ -#undef LSEEK_PIPE_BROKEN - /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR -/* Define to 1 if `major', `minor', and `makedev' are declared in . - */ -#undef MAJOR_IN_MKDEV - -/* Define to 1 if `major', `minor', and `makedev' are declared in - . */ -#undef MAJOR_IN_SYSMACROS - /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ #undef MAP_ANONYMOUS -/* Define if the mbrtowc function does not return (size_t) -2 for empty input. - */ -#undef MBRTOWC_EMPTY_INPUT_BUG - -/* Define if the mbrtowc function may signal encoding errors in the C locale. - */ -#undef MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ - /* Define if the mbrtowc function has the NULL pwc argument bug. */ #undef MBRTOWC_NULL_ARG1_BUG @@ -1596,15 +1827,9 @@ /* Define if the mbrtowc function returns a wrong return value. */ #undef MBRTOWC_RETVAL_BUG -/* Define if the mbrtowc function stores a wide character when reporting - incomplete input. */ -#undef MBRTOWC_STORES_INCOMPLETE_BUG - -/* Use GNU style printf and scanf. */ -#ifndef __USE_MINGW_ANSI_STDIO -# undef __USE_MINGW_ANSI_STDIO -#endif - +/* Define if there is no specific function for reading the list of mounted + file systems. fread will be used to read /etc/mnttab. (SVR2) */ +#undef MOUNTED_FREAD /* Define if (like SVR2) there is no specific function for reading the list of mounted file systems, and your system has these header files: @@ -1615,17 +1840,17 @@ the list of mounted file systems. (BeOS) */ #undef MOUNTED_FS_STAT_DEV -/* Define if there is a function named getextmntent for reading the list of - mounted file systems. (Solaris) */ -#undef MOUNTED_GETEXTMNTENT - /* Define if there is a function named getfsstat for reading the list of mounted file systems. (DEC Alpha running OSF/1) */ #undef MOUNTED_GETFSSTAT +/* Define if there is a function named getmnt for reading the list of mounted + file systems. (Ultrix) */ +#undef MOUNTED_GETMNT + /* Define if there is a function named getmntent for reading the list of mounted file systems, and that function takes a single argument. (4.3BSD, - SunOS, HP-UX, Irix) */ + SunOS, HP-UX, Dynix, Irix) */ #undef MOUNTED_GETMNTENT1 /* Define if there is a function named getmntent for reading the list of @@ -1646,6 +1871,10 @@ knowledge on where mounted file systems can be found. (Interix) */ #undef MOUNTED_INTERIX_STATVFS +/* Define if there is a function named listmntent that can be used to list all + mounted file systems. (UNICOS) */ +#undef MOUNTED_LISTMNTENT + /* Define if there is a function named mntctl that can be used to read the list of mounted file systems, and there is a system header file that declares 'struct vmount'. (AIX) */ @@ -1654,20 +1883,6 @@ /* Define if gettimeofday is needed */ #undef NEED_GETTIMEOFDAY -/* Define if the compilation of mktime.c should define 'mktime_internal'. */ -#undef NEED_MKTIME_INTERNAL - -/* Define if the compilation of mktime.c should define 'mktime' with the - native Windows TZ workaround. */ -#undef NEED_MKTIME_WINDOWS - -/* Define if the compilation of mktime.c should define 'mktime' with the - algorithmic workarounds. */ -#undef NEED_MKTIME_WORKING - -/* Define to 1 if nl_langinfo is multithread-safe. */ -#undef NL_LANGINFO_MTSAFE - /* Enable INI file parsing. */ #undef NP_EXTRA_OPTS @@ -1677,9 +1892,6 @@ /* Define to 1 if the nlist n_name member is a pointer */ #undef N_NAME_POINTER -/* Define to 1 if open() fails to recognize a trailing slash. */ -#undef OPEN_TRAILING_SLASH_BUG - /* Name of package */ #undef PACKAGE @@ -1761,10 +1973,6 @@ /* path to /proc/meminfo if name changes */ #undef PROC_MEMINFO -/* Define to the type that is the result of default argument promotions of - type mode_t. */ -#undef PROMOTED_MODE_T - /* Number of columns in ps command */ #undef PS_COLS @@ -1793,10 +2001,6 @@ /* Forced workaround on redhat in spopen */ #undef REDHAT_SPOPEN_ERROR -/* Define to 1 if stat needs help when passed a file name with a trailing - slash */ -#undef REPLACE_FUNC_STAT_FILE - /* Define if nl_langinfo exists but is overridden by gnulib. */ #undef REPLACE_NL_LANGINFO @@ -1806,11 +2010,8 @@ /* Define if vasnprintf exists but is overridden by gnulib. */ #undef REPLACE_VASNPRINTF -/* Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe. */ -#undef SETLOCALE_NULL_ALL_MTSAFE - -/* Define to 1 if setlocale (category, NULL) is multithread-safe. */ -#undef SETLOCALE_NULL_ONE_MTSAFE +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'sig_atomic_t'. */ @@ -1846,11 +2047,12 @@ affected.) */ #undef STATFS_TRUNCATES_BLOCK_COUNTS -/* Define to 1 if the `S_IS*' macros in do not work properly. */ -#undef STAT_MACROS_BROKEN +/* Define if there is no specific function for reading file systems usage + information and you have the header file. (SVR2) */ +#undef STAT_READ_FILSYS /* Define if statfs takes 2 args and struct statfs has a field named f_bsize. - (4.3BSD, SunOS 4, HP-UX) */ + (4.3BSD, SunOS 4, HP-UX, AIX PS/2) */ #undef STAT_STATFS2_BSIZE /* Define if statfs takes 2 args and struct statfs has a field named f_frsize. @@ -1861,10 +2063,14 @@ (4.4BSD, NetBSD) */ #undef STAT_STATFS2_FSIZE +/* Define if statfs takes 2 args and the second argument has type struct + fs_data. (Ultrix) */ +#undef STAT_STATFS2_FS_DATA + /* Define if statfs takes 3 args. (DEC Alpha running OSF/1) */ #undef STAT_STATFS3_OSF1 -/* Define if statfs takes 4 args. (SVR3, old Irix) */ +/* Define if statfs takes 4 args. (SVR3, Dynix, old Irix, old AIX, Dolphin) */ #undef STAT_STATFS4 /* Define if there is a function named statvfs. (SVR4) */ @@ -1893,9 +2099,6 @@ /* Format string for parsing swap output */ #undef SWAP_FORMAT -/* Define to 1 if time_t is signed. */ -#undef TIME_T_IS_SIGNED - /* Define to 1 if you can safely include both and . This macro is obsolete. */ #undef TIME_WITH_SYS_TIME @@ -1903,10 +2106,6 @@ /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME -/* Define to 1 if the type of the st_atim member of a struct stat is struct - timespec. */ -#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC - /* Define to 1 for Encore UMAX. */ #undef UMAX @@ -1920,120 +2119,60 @@ /* Enable IPv6 support */ #undef USE_IPV6 -/* Define if the combination of the ISO C and POSIX multithreading APIs can be - used. */ -#undef USE_ISOC_AND_POSIX_THREADS - -/* Define if the ISO C multithreading library can be used. */ -#undef USE_ISOC_THREADS - -/* Define to 1 if you want to use the Linux kernel cryptographic API. */ -#undef USE_LINUX_CRYPTO_API - /* Define if using OpenSSL libraries */ #undef USE_OPENSSL /* Define if the POSIX multithreading library can be used. */ #undef USE_POSIX_THREADS -/* Define if references to the POSIX multithreading library are satisfied by - libc. */ -#undef USE_POSIX_THREADS_FROM_LIBC - /* Define if references to the POSIX multithreading library should be made weak. */ #undef USE_POSIX_THREADS_WEAK +/* Define if the GNU Pth multithreading library can be used. */ +#undef USE_PTH_THREADS + +/* Define if references to the GNU Pth multithreading library should be made + weak. */ +#undef USE_PTH_THREADS_WEAK + +/* Define if the old Solaris multithreading library can be used. */ +#undef USE_SOLARIS_THREADS + +/* Define if references to the old Solaris multithreading library should be + made weak. */ +#undef USE_SOLARIS_THREADS_WEAK + /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif -/* Enable general extensions on macOS. */ +/* Enable general extensions on OS X. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif -/* Enable X/Open compliant socket functions that do not require linking - with -lxnet on HP-UX 11.11. */ -#ifndef _HPUX_ALT_XOPEN_SOCKET_API -# undef _HPUX_ALT_XOPEN_SOCKET_API -#endif -/* Identify the host operating system as Minix. - This macro does not affect the system headers' behavior. - A future release of Autoconf may stop defining this macro. */ -#ifndef _MINIX -# undef _MINIX -#endif -/* Enable general extensions on NetBSD. - Enable NetBSD compatibility extensions on Minix. */ -#ifndef _NETBSD_SOURCE -# undef _NETBSD_SOURCE -#endif -/* Enable OpenBSD compatibility extensions on NetBSD. - Oddly enough, this does nothing on OpenBSD. */ -#ifndef _OPENBSD_SOURCE -# undef _OPENBSD_SOURCE -#endif -/* Define to 1 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_SOURCE -# undef _POSIX_SOURCE -#endif -/* Define to 2 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_1_SOURCE -# undef _POSIX_1_SOURCE -#endif -/* Enable POSIX-compatible threading on Solaris. */ +/* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif -/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ -#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ -# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ -#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ -# undef __STDC_WANT_IEC_60559_BFP_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ -#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ -# undef __STDC_WANT_IEC_60559_DFP_EXT__ -#endif -/* Enable extensions specified by C23 Annex F. */ -#ifndef __STDC_WANT_IEC_60559_EXT__ -# undef __STDC_WANT_IEC_60559_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ -#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ -# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ -#endif -/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ -#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ -# undef __STDC_WANT_IEC_60559_TYPES_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ -#ifndef __STDC_WANT_LIB_EXT2__ -# undef __STDC_WANT_LIB_EXT2__ -#endif -/* Enable extensions specified by ISO/IEC 24747:2009. */ -#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ -# undef __STDC_WANT_MATH_SPEC_FUNCS__ -#endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif -/* Enable X/Open extensions. Define to 500 only if necessary - to make mbstate_t available. */ +/* Enable X/Open extensions if necessary. HP-UX 11.11 defines + mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of + whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif /* Define if the native Windows multithreading API can be used. */ @@ -2049,12 +2188,6 @@ 'wchar_t'. */ #undef WCHAR_T_SUFFIX -/* Define if the wcrtomb function does not work in the C locale. */ -#undef WCRTOMB_C_LOCALE_BUG - -/* Define if the wcrtomb function has an incorrect return value. */ -#undef WCRTOMB_RETVAL_BUG - /* path and arguments for invoking 'who' */ #undef WHO_COMMAND @@ -2080,56 +2213,25 @@ /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS -/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ -#if defined __GNUC__ && defined __GNUC_MINOR__ -# define _GL_GNUC_PREREQ(major, minor) \ - ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) -#else -# define _GL_GNUC_PREREQ(major, minor) 0 -#endif - - -/* Define to enable the declarations of ISO C 11 types and functions. */ -#undef _ISOC11_SOURCE - -/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ -#undef _LARGEFILE_SOURCE - -/* Define to 1 on platforms where this makes off_t a 64-bit type. */ +/* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 on Solaris. */ #undef _LCONV_C99 +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ +#undef _NETBSD_SOURCE + /* The _Noreturn keyword of C11. */ -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif (defined __clang__ && __clang_major__ < 16 \ - && defined _GL_WORK_AROUND_LLVM_BUG_59792) - /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around - that rare LLVM bug, though you may get many false-alarm warnings. */ -# define _Noreturn -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (_GL_GNUC_PREREQ (4, 7) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C +#if ! (defined _Noreturn \ + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) +# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ + || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) +# elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn @@ -2137,10 +2239,17 @@ #endif +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + /* Define to 1 in order to get the POSIX compatible declarations of socket functions. */ #undef _POSIX_PII_SOCKET +/* Define to 1 if you need to in order for 'stat' and other things to work. */ +#undef _POSIX_SOURCE + /* Define if you want to include , so that it consistently overrides 's RE_DUP_MAX. */ #undef _REGEX_INCLUDE_LIMITS_H @@ -2148,29 +2257,10 @@ /* Define if you want regoff_t to be at least as wide POSIX requires. */ #undef _REGEX_LARGE_OFFSETS -/* Number of bits in time_t, on hosts where this is settable. */ -#undef _TIME_BITS - -/* For standard stat data types on VMS. */ -#undef _USE_STD_STAT - /* Define to rpl_ if the getopt replacement functions and variables should be used. */ #undef __GETOPT_PREFIX -/* Define to 1 on platforms where this makes time_t a 64-bit type. */ -#undef __MINGW_USE_VC2005_COMPAT - -/* Define to 1 if the system predates C++11. */ -#undef __STDC_CONSTANT_MACROS - -/* Define to 1 if the system predates C++11. */ -#undef __STDC_LIMIT_MACROS - -/* Define to 1 if C does not support variable-length arrays, and if the - compiler does not already define this. */ -#undef __STDC_NO_VLA__ - /* bsd specific code in check_dhcp.c */ #undef __bsd__ @@ -2183,480 +2273,72 @@ /* sun specific code in check_dhcp.c */ #undef __sun__ -/* The _GL_ASYNC_SAFE marker should be attached to functions that are - signal handlers (for signals other than SIGABRT, SIGPIPE) or can be - invoked from such signal handlers. Such functions have some restrictions: - * All functions that it calls should be marked _GL_ASYNC_SAFE as well, - or should be listed as async-signal-safe in POSIX - - section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in - particular, are NOT async-signal-safe. - * All memory locations (variables and struct fields) that these functions - access must be marked 'volatile'. This holds for both read and write - accesses. Otherwise the compiler might optimize away stores to and - reads from such locations that occur in the program, depending on its - data flow analysis. For example, when the program contains a loop - that is intended to inspect a variable set from within a signal handler - while (!signal_occurred) - ; - the compiler is allowed to transform this into an endless loop if the - variable 'signal_occurred' is not declared 'volatile'. - Additionally, recall that: - * A signal handler should not modify errno (except if it is a handler - for a fatal signal and ends by raising the same signal again, thus - provoking the termination of the process). If it invokes a function - that may clobber errno, it needs to save and restore the value of - errno. */ -#define _GL_ASYNC_SAFE - - -/* Attributes. */ -#if (defined __has_attribute \ - && (!defined __clang_minor__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))) -# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) -#else -# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr -# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) -# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) -# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_diagnose_if 0 -# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) -# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) -# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) -# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) -# ifdef _ICC -# define _GL_ATTR_may_alias 0 -# else -# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) -# endif -# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) -# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) -# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) -# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) -# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) -#endif - -/* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+. */ -#if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710) -# pragma GCC diagnostic ignored "-Wpedantic" -#endif - - -/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function - is the size of the returned memory block. - _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied - by the Nth argument of the function is the size of the returned memory block. - */ -/* Applies to: function, pointer to function, function types. */ -#ifndef _GL_ATTRIBUTE_ALLOC_SIZE -# if _GL_HAS_ATTRIBUTE (alloc_size) -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) -# else -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) -# endif -#endif - -/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the - function and report an error if it cannot do so. */ -/* Applies to: function. */ -#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE -# if _GL_HAS_ATTRIBUTE (always_inline) -# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) -# else -# define _GL_ATTRIBUTE_ALWAYS_INLINE -# endif -#endif - -/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show - in stack traces when debugging. The compiler should omit the function from - stack traces. */ -/* Applies to: function. */ -#ifndef _GL_ATTRIBUTE_ARTIFICIAL -# if _GL_HAS_ATTRIBUTE (artificial) -# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) -# else -# define _GL_ATTRIBUTE_ARTIFICIAL -# endif -#endif - -/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ -/* Applies to: functions. */ -/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at - . - Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ -#ifndef _GL_ATTRIBUTE_COLD -# if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ -# ifndef __SUNPRO_C -# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) -# else -# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) -# endif -# else -# define _GL_ATTRIBUTE_COLD -# endif -#endif - -/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate - calls to the function with the same arguments. - This attribute is safe for a function that neither depends on nor affects - observable state, and always returns exactly once - e.g., does not loop - forever, and does not call longjmp. - (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_CONST -# if _GL_HAS_ATTRIBUTE (const) -# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -# else -# define _GL_ATTRIBUTE_CONST -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. - _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if _GL_GNUC_PREREQ (11, 0) -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif -/* If gnulib's or has already defined this macro, continue - to use this earlier definition, since may not have been included - yet. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug */ -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) -# else -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC (free, 1) -# endif -#endif - -/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. - The compiler may warn if the entity is used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: namespace, class, template specialization. */ -#ifndef _GL_ATTRIBUTE_DEPRECATED -# ifdef __has_c_attribute -# if __has_c_attribute (__deprecated__) -# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] -# endif -# endif -# if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated) -# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) -# endif -# ifndef _GL_ATTRIBUTE_DEPRECATED -# define _GL_ATTRIBUTE_DEPRECATED -# endif -#endif - -/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and - the function call is not optimized away. - _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and - the function call is not optimized away. */ -/* Applies to: functions. */ -#if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING) -# if _GL_HAS_ATTRIBUTE (error) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) -# elif _GL_HAS_ATTRIBUTE (diagnose_if) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# else -# define _GL_ATTRIBUTE_ERROR(msg) -# define _GL_ATTRIBUTE_WARNING(msg) -# endif -#endif - -/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain - visible to debuggers etc., even with '-fwhole-program'. */ -/* Applies to: functions, variables. */ -#ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE -# if _GL_HAS_ATTRIBUTE (externally_visible) -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) -# else -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE -# endif -#endif - -/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if - the control flow falls through to the immediately following 'case' or - 'default' label. The compiler should not warn in this case. */ -/* Applies to: Empty statement (;), inside a 'switch' statement. */ -/* Always expands to something. */ -#ifndef _GL_ATTRIBUTE_FALLTHROUGH -# ifdef __has_c_attribute -# if __has_c_attribute (__fallthrough__) -# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] -# endif -# endif -# if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough) -# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) -# endif -# ifndef _GL_ATTRIBUTE_FALLTHROUGH -# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) -# endif -#endif - -/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - declares that the STRING-INDEXth function argument is a format string of - style ARCHETYPE, which is one of: - printf, gnu_printf - scanf, gnu_scanf, - strftime, gnu_strftime, - strfmon, - or the same thing prefixed and suffixed with '__'. - If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK - are suitable for the format string. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_FORMAT -# if _GL_HAS_ATTRIBUTE (format) -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -# else -# define _GL_ATTRIBUTE_FORMAT(spec) -# endif -#endif - -/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other - compilation unit, it executes code from that unit only by return or by - exception handling. This declaration lets the compiler optimize that unit - more aggressively. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_LEAF -# if _GL_HAS_ATTRIBUTE (leaf) -# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) -# else -# define _GL_ATTRIBUTE_LEAF -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if _GL_HAS_ATTRIBUTE (malloc) -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the - same storage as pointers to other types. Thus this declaration disables - strict aliasing optimization. */ -/* Applies to: types. */ -/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ -#ifndef _GL_ATTRIBUTE_MAY_ALIAS -# if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C -# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) -# else -# define _GL_ATTRIBUTE_MAY_ALIAS -# endif -#endif - -/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if - the entity is not used. The compiler should not warn if the entity is not - used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: class. */ -/* In C++ and C23, this is spelled [[__maybe_unused__]]. - GCC's syntax is __attribute__ ((__unused__)). - clang supports both syntaxes. */ -#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED -# ifdef __has_c_attribute -# if __has_c_attribute (__maybe_unused__) -# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] -# endif -# endif -# ifndef _GL_ATTRIBUTE_MAYBE_UNUSED -# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED -# endif -#endif -/* Alternative spelling of this macro, for convenience and for - compatibility with glibc/include/libc-symbols.h. */ -#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED -/* Earlier spellings of this macro. */ -#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED - -/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not - discard the return value. The compiler may warn if the caller does not use - the return value, unless the caller uses something like ignore_value. */ -/* Applies to: function, enumeration, class. */ -#ifndef _GL_ATTRIBUTE_NODISCARD -# ifdef __has_c_attribute -# if __has_c_attribute (__nodiscard__) -# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] -# endif -# endif -# if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result) -# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) -# endif -# ifndef _GL_ATTRIBUTE_NODISCARD -# define _GL_ATTRIBUTE_NODISCARD -# endif -#endif - -/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the - function. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NOINLINE -# if _GL_HAS_ATTRIBUTE (noinline) -# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) -# else -# define _GL_ATTRIBUTE_NOINLINE -# endif -#endif - -/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... - must not be NULL. - _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be - null. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NONNULL -# if _GL_HAS_ATTRIBUTE (nonnull) -# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) -# else -# define _GL_ATTRIBUTE_NONNULL(args) -# endif -#endif - -/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is - not meant to be NUL-terminated. */ -/* Applies to: struct/union members and variables that are arrays of element - type '[[un]signed] char'. */ -#ifndef _GL_ATTRIBUTE_NONSTRING -# if _GL_HAS_ATTRIBUTE (nonstring) -# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) -# else -# define _GL_ATTRIBUTE_NONSTRING -# endif -#endif - -/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -#endif - -/* _GL_ATTRIBUTE_PACKED declares: - For struct members: The member has the smallest possible alignment. - For struct, union, class: All members have the smallest possible alignment, - minimizing the memory required. */ -/* Applies to: struct members, struct, union, - in C++ also: class. */ -#ifndef _GL_ATTRIBUTE_PACKED -# if _GL_HAS_ATTRIBUTE (packed) -# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) -# else -# define _GL_ATTRIBUTE_PACKED -# endif -#endif - -/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate - calls to the function with the same arguments if observable state is not - changed between calls. - This attribute is safe for a function that does not affect - observable state, and always returns exactly once. - (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_PURE -# if _GL_HAS_ATTRIBUTE (pure) -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE -# endif -#endif - -/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is - a non-NULL pointer. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_RETURNS_NONNULL -# if _GL_HAS_ATTRIBUTE (returns_nonnull) -# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) -# else -# define _GL_ATTRIBUTE_RETURNS_NONNULL -# endif -#endif - -/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a - trailing NULL argument. - _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). - _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_SENTINEL -# if _GL_HAS_ATTRIBUTE (sentinel) -# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) -# else -# define _GL_ATTRIBUTE_SENTINEL(pos) -# endif -#endif - -/* A helper macro. Don't use it directly. */ -#ifndef _GL_ATTRIBUTE_UNUSED -# if _GL_HAS_ATTRIBUTE (unused) -# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define _GL_ATTRIBUTE_UNUSED -# endif -#endif - - -/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the - immediately preceding label is not used. The compiler should not warn - if the label is not used. */ -/* Applies to: label (both in C and C++). */ -/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' - syntax. But clang does. */ -#ifndef _GL_UNUSED_LABEL -# if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ -# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED -# else -# define _GL_UNUSED_LABEL -# endif -#endif - - /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define curl_free() as free() if our version of curl lacks curl_free. */ #undef curl_free +/* Please see the Gnulib manual for how to use these macros. + + Suppress extern inline with HP-UX cc, as it appears to be broken; see + . + + Suppress extern inline with Sun C in standards-conformance mode, as it + mishandles inline functions that call each other. E.g., for 'inline void f + (void) { } inline void g (void) { f (); }', c99 incorrectly complains + 'reference to static identifier "f" in extern inline function'. + This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. + + Suppress the use of extern inline on Apple's platforms, as Libc at least + through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g., + . + Perhaps Apple will fix this some day. */ +#if ((__GNUC__ \ + ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ + : (199901L <= __STDC_VERSION__ \ + && !defined __HP_cc \ + && !(defined __SUNPRO_C && __STDC__))) \ + && !defined __APPLE__) +# define _GL_INLINE inline +# define _GL_EXTERN_INLINE extern inline +#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ + && !defined __APPLE__) +# if __GNUC_GNU_INLINE__ + /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ +# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) +# else +# define _GL_INLINE extern inline +# endif +# define _GL_EXTERN_INLINE extern +#else +# define _GL_INLINE static _GL_UNUSED +# define _GL_EXTERN_INLINE static _GL_UNUSED +#endif + +#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) +# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ +# define _GL_INLINE_HEADER_CONST_PRAGMA +# else +# define _GL_INLINE_HEADER_CONST_PRAGMA \ + _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") +# endif + /* Suppress GCC's bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + . */ +# define _GL_INLINE_HEADER_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ + _GL_INLINE_HEADER_CONST_PRAGMA +# define _GL_INLINE_HEADER_END \ + _Pragma ("GCC diagnostic pop") +#else +# define _GL_INLINE_HEADER_BEGIN +# define _GL_INLINE_HEADER_END +#endif + /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus @@ -2679,31 +2361,12 @@ /* Define to a type if does not define. */ #undef mbstate_t -/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where - n1 and n2 are expressions without side effects, that evaluate to real - numbers (excluding NaN). - It returns - 1 if n1 > n2 - 0 if n1 == n2 - -1 if n1 < n2 - The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional - jump with nearly all GCC versions up to GCC 10. - This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many - GCC versions up to GCC 9. - The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 - avoids conditional jumps in all GCC versions >= 3.4. */ -#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) - - /* Define to the real name of the mktime_internal function. */ #undef mktime_internal /* Define to `int' if does not define. */ #undef mode_t -/* Define to the type of st_nlink in struct stat, or a supertype. */ -#undef nlink_t - /* Define as a signed integer type capable of holding a process identifier. */ #undef pid_t @@ -2780,98 +2443,29 @@ /* Define as a signed type of the same size as size_t. */ #undef ssize_t -#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof -# if HAVE_STDALIGN_H -# include -# else - /* Substitute. Keep consistent with gnulib/lib/stdalign.in.h. */ -# ifndef _GL_STDALIGN_H -# define _GL_STDALIGN_H -# undef _Alignas -# undef _Alignof -# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ - || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ - && !defined __clang__) \ - || (defined __clang__ && __clang_major__ < 8)) -# ifdef __cplusplus -# if (201103 <= __cplusplus || defined _MSC_VER) -# define _Alignof(type) alignof (type) -# else - template struct __alignof_helper { char __a; __t __b; }; -# define _Alignof(type) offsetof (__alignof_helper, __b) -# define _GL_STDALIGN_NEEDS_STDDEF 1 -# endif -# else -# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ -# define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) -# else -# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) -# define _GL_STDALIGN_NEEDS_STDDEF 1 -# endif -# endif -# endif -# if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) -# define alignof _Alignof -# endif -# define __alignof_is_defined 1 -# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 -# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) -# define _Alignas(a) alignas (a) -# elif (!defined __attribute__ \ - && ((defined __APPLE__ && defined __MACH__ \ - ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - : __GNUC__ && !defined __ibmxl__) \ - || (4 <= __clang_major__) \ - || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ - || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) -# define _Alignas(a) __attribute__ ((__aligned__ (a))) -# elif 1300 <= _MSC_VER -# define _Alignas(a) __declspec (align (a)) -# endif -# endif -# if ((defined _Alignas \ - && !(defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) \ - || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) -# define alignas _Alignas -# endif -# if (defined alignas \ - || (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) -# define __alignas_is_defined 1 -# endif -# if _GL_STDALIGN_NEEDS_STDDEF -# include -# endif -# endif /* _GL_STDALIGN_H */ -# endif +/* Define as a marker that can be attached to declarations that might not + be used. This helps to reduce warnings, such as from + GCC -Wunused-parameter. */ +#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_UNUSED __attribute__ ((__unused__)) +#else +# define _GL_UNUSED +#endif +/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name + is a misnomer outside of parameter lists. */ +#define _UNUSED_PARAMETER_ _GL_UNUSED + +/* The __pure__ attribute was added in gcc 2.96. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ #endif -#ifndef HAVE_C_BOOL -# if !defined __cplusplus && !defined __bool_true_false_are_defined -# if HAVE_STDBOOL_H -# include -# else -# if defined __SUNPRO_C -# error " is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC." -# else -# error " does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'." -# endif -# endif -# endif -# if !true -# define true (!false) -# endif +/* The __const__ attribute was added in gcc 2.95. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) +#else +# define _GL_ATTRIBUTE_CONST /* empty */ #endif -#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ - && (!defined __cplusplus \ - || (__cpp_static_assert < 201411 \ - && __GNUG__ < 6 && __clang_major__ < 6))) - #include - #undef/**/assert - /* Solaris 11.4 defines static_assert as a macro with 2 arguments. - We need it also to be invocable with a single argument. */ - #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus - #undef/**/static_assert - #define static_assert _Static_assert - #endif -#endif diff --git a/config_test/child_test.c b/config_test/child_test.c index 2add3bc..4bf8504 100644 --- a/config_test/child_test.c +++ b/config_test/child_test.c @@ -30,7 +30,7 @@ int main(){ /* pipefd[1] is for writing to the pipe. We want the output * that used to go to the standard output (file descriptor 1) * to be written to the pipe. The following command does this, - * creating a new file descriptor 1 (the lowest available) + * creating a new file descripter 1 (the lowest available) * that writes where pipefd[1] goes. */ dup (pipefd[1]); /* points pipefd at file descriptor */ /* the child isn't going to read from the pipe, so diff --git a/configure b/configure index 468bcec..8642e4a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for monitoring-plugins 2.4.0. +# Generated by GNU Autoconf 2.71 for monitoring-plugins 2.3.3. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -618,8 +618,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='monitoring-plugins' PACKAGE_TARNAME='monitoring-plugins' -PACKAGE_VERSION='2.4.0' -PACKAGE_STRING='monitoring-plugins 2.4.0' +PACKAGE_VERSION='2.3.3' +PACKAGE_STRING='monitoring-plugins 2.3.3' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -657,19 +657,14 @@ ac_includes_default="\ ac_header_c_list= gl_use_threads_default= -gl_use_winpthreads_default= +gl_header_list= gt_needs= -ac_func_c_list= -with_openssl_default='no' -LIB_CRYPTO= +gl_func_list= gl_floorf_required=plain gl_getopt_required=POSIX -enable_year2038=no -enable_largefile=yes -ac_subst_vars='gltests_LIBOBJDEPS -gltests_LTLIBOBJS +gl_getopt_required=POSIX +ac_subst_vars='gltests_LTLIBOBJS gltests_LIBOBJS -gl_LIBOBJDEPS gl_LTLIBOBJS gl_LIBOBJS am__EXEEXT_FALSE @@ -677,53 +672,28 @@ am__EXEEXT_TRUE LTLIBOBJS LIBGNU_LTLIBDEPS LIBGNU_LIBDEPS -GL_CFLAG_GNULIB_WARNINGS -GL_CFLAG_ALLOW_WARNINGS gltests_WITNESS -GL_COND_OBJ_WINDOWS_RWLOCK_FALSE -GL_COND_OBJ_WINDOWS_RWLOCK_TRUE -GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE -GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE -GL_COND_OBJ_WINDOWS_ONCE_FALSE -GL_COND_OBJ_WINDOWS_ONCE_TRUE -GL_COND_OBJ_WINDOWS_MUTEX_FALSE -GL_COND_OBJ_WINDOWS_MUTEX_TRUE -GL_GNULIB_TOWCTRANS -GL_GNULIB_WCTRANS -GL_GNULIB_ISWCTYPE -GL_GNULIB_WCTYPE -GL_GNULIB_ISWXDIGIT -GL_GNULIB_ISWDIGIT -GL_GNULIB_ISWBLANK REPLACE_TOWLOWER REPLACE_ISWCNTRL HAVE_WCTYPE_H NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H NEXT_WCTYPE_H HAVE_ISWCNTRL -REPLACE_ISWXDIGIT -REPLACE_ISWDIGIT REPLACE_ISWBLANK HAVE_WCTRANS_T HAVE_WCTYPE_T HAVE_ISWBLANK -GL_COND_OBJ_WCRTOMB_FALSE -GL_COND_OBJ_WCRTOMB_TRUE -HAVE_CRTDEFS_H +GNULIB_TOWCTRANS +GNULIB_WCTRANS +GNULIB_ISWCTYPE +GNULIB_WCTYPE +GNULIB_ISWBLANK HAVE_WINT_T NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H -GL_COND_OBJ_UNSETENV_FALSE -GL_COND_OBJ_UNSETENV_TRUE HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H -GL_COND_OBJ_TIMEGM_FALSE -GL_COND_OBJ_TIMEGM_TRUE -GL_COND_OBJ_TIME_R_FALSE -GL_COND_OBJ_TIME_R_TRUE -TIME_H_DEFINES_TIME_UTC -UNISTD_H_DEFINES_STRUCT_TIMESPEC PTHREAD_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC TIME_H_DEFINES_STRUCT_TIMESPEC @@ -732,290 +702,25 @@ NEXT_TIME_H HAVE_SYS_UIO_H NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H NEXT_SYS_UIO_H -GL_GNULIB_ACCEPT4 -GL_GNULIB_SHUTDOWN -GL_GNULIB_SETSOCKOPT -GL_GNULIB_SENDTO -GL_GNULIB_RECVFROM -GL_GNULIB_SEND -GL_GNULIB_RECV -GL_GNULIB_LISTEN -GL_GNULIB_GETSOCKOPT -GL_GNULIB_GETSOCKNAME -GL_GNULIB_GETPEERNAME -GL_GNULIB_BIND -GL_GNULIB_ACCEPT -GL_GNULIB_CONNECT -GL_GNULIB_SOCKET -GL_COND_OBJ_STRSEP_FALSE -GL_COND_OBJ_STRSEP_TRUE -GL_GNULIB_FFS +WINDOWS_64_BIT_OFF_T +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H +NEXT_SYS_TYPES_H HAVE_STRINGS_H NEXT_AS_FIRST_DIRECTIVE_STRINGS_H NEXT_STRINGS_H NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H -GL_COND_OBJ_STRERROR_OVERRIDE_FALSE -GL_COND_OBJ_STRERROR_OVERRIDE_TRUE -GL_COND_OBJ_STRERROR_FALSE -GL_COND_OBJ_STRERROR_TRUE -GL_COND_OBJ_STRNCASECMP_FALSE -GL_COND_OBJ_STRNCASECMP_TRUE -GL_COND_OBJ_STRCASECMP_FALSE -GL_COND_OBJ_STRCASECMP_TRUE HAVE_DECL_STRNCASECMP HAVE_STRCASECMP HAVE_FFS +GNULIB_FFS NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H -GL_COND_OBJ_STDIO_WRITE_FALSE -GL_COND_OBJ_STDIO_WRITE_TRUE -GL_COND_OBJ_STDIO_READ_FALSE -GL_COND_OBJ_STDIO_READ_TRUE NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H GL_GENERATE_STDINT_H_FALSE GL_GENERATE_STDINT_H_TRUE STDINT_H -GL_GENERATE_STDDEF_H_FALSE -GL_GENERATE_STDDEF_H_TRUE -STDDEF_H -GL_GENERATE_STDCKDINT_H_FALSE -GL_GENERATE_STDCKDINT_H_TRUE -STDCKDINT_H -GL_GENERATE_STDALIGN_H_FALSE -GL_GENERATE_STDALIGN_H_TRUE -STDALIGN_H -GL_COND_OBJ_STAT_FALSE -GL_COND_OBJ_STAT_TRUE -LIBSOCKET -GL_COND_OBJ_SETLOCALE_LOCK_FALSE -GL_COND_OBJ_SETLOCALE_LOCK_TRUE -GL_COND_OBJ_SETENV_FALSE -GL_COND_OBJ_SETENV_TRUE -GL_COND_OBJ_REGEX_FALSE -GL_COND_OBJ_REGEX_TRUE -GL_COND_OBJ_REALLOCARRAY_FALSE -GL_COND_OBJ_REALLOCARRAY_TRUE -GL_COND_OBJ_OPEN_FALSE -GL_COND_OBJ_OPEN_TRUE -GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE -GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE -GL_COND_OBJ_NL_LANGINFO_FALSE -GL_COND_OBJ_NL_LANGINFO_TRUE -LIB_NL_LANGINFO -GL_GENERATE_NETINET_IN_H_FALSE -GL_GENERATE_NETINET_IN_H_TRUE -NETINET_IN_H -HAVE_NETINET_IN_H -NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H -NEXT_NETINET_IN_H -GL_COND_OBJ_MSVC_NOTHROW_FALSE -GL_COND_OBJ_MSVC_NOTHROW_TRUE -GL_COND_OBJ_MSVC_INVAL_FALSE -GL_COND_OBJ_MSVC_INVAL_TRUE -GL_COND_OBJ_MOUNTLIST_FALSE -GL_COND_OBJ_MOUNTLIST_TRUE -GL_GNULIB_MDA_TZSET -GL_GNULIB_TZSET -GL_GNULIB_TIME_RZ -GL_GNULIB_TIME_R -GL_GNULIB_TIMESPEC_GETRES -GL_GNULIB_TIMESPEC_GET -GL_GNULIB_TIMEGM -GL_GNULIB_STRPTIME -GL_GNULIB_STRFTIME -GL_GNULIB_NANOSLEEP -GL_GNULIB_LOCALTIME -GL_GNULIB_MKTIME -GL_GNULIB_CTIME -REPLACE_LOCALTIME -REPLACE_GMTIME -GNULIB_GETTIMEOFDAY -REPLACE_TZSET -REPLACE_TIMEGM -REPLACE_STRFTIME -REPLACE_NANOSLEEP -REPLACE_MKTIME -REPLACE_LOCALTIME_R -REPLACE_CTIME -HAVE_TIMEZONE_T -HAVE_TIMESPEC_GETRES -HAVE_TIMESPEC_GET -HAVE_TIMEGM -HAVE_STRPTIME -HAVE_NANOSLEEP -HAVE_DECL_LOCALTIME_R -GL_GNULIB_MDA_STRDUP -GL_GNULIB_MDA_MEMCCPY -GL_GNULIB_STRVERSCMP -GL_GNULIB_STRSIGNAL -GL_GNULIB_SIGDESCR_NP -GL_GNULIB_SIGABBREV_NP -GL_GNULIB_STRERRORNAME_NP -GL_GNULIB_STRERROR_R -GL_GNULIB_STRERROR -GL_GNULIB_MBSTOK_R -GL_GNULIB_MBSSEP -GL_GNULIB_MBSSPN -GL_GNULIB_MBSPBRK -GL_GNULIB_MBSCSPN -GL_GNULIB_MBSCASESTR -GL_GNULIB_MBSPCASECMP -GL_GNULIB_MBSNCASECMP -GL_GNULIB_MBSCASECMP -GL_GNULIB_MBSSTR -GL_GNULIB_MBSRCHR -GL_GNULIB_MBSCHR -GL_GNULIB_MBSNLEN -GL_GNULIB_MBSLEN -GL_GNULIB_STRTOK_R -GL_GNULIB_STRCASESTR -GL_GNULIB_STRSTR -GL_GNULIB_STRSEP -GL_GNULIB_STRPBRK -GL_GNULIB_STRNLEN -GL_GNULIB_STRNDUP -GL_GNULIB_STRNCAT -GL_GNULIB_STRDUP -GL_GNULIB_STRCHRNUL -GL_GNULIB_STPNCPY -GL_GNULIB_STPCPY -GL_GNULIB_RAWMEMCHR -GL_GNULIB_MEMSET_EXPLICIT -GL_GNULIB_MEMRCHR -GL_GNULIB_MEMPCPY -GL_GNULIB_MEMMEM -GL_GNULIB_MEMCHR -GL_GNULIB_FFSLL -GL_GNULIB_FFSL -GL_GNULIB_EXPLICIT_BZERO -GL_COND_OBJ_MEMCHR_FALSE -GL_COND_OBJ_MEMCHR_TRUE -UNDEFINE_STRTOK_R -REPLACE_STRSIGNAL -REPLACE_STRERRORNAME_NP -REPLACE_STRERROR_R -REPLACE_STRERROR -REPLACE_STRTOK_R -REPLACE_STRCASESTR -REPLACE_STRSTR -REPLACE_STRNLEN -REPLACE_STRNDUP -REPLACE_STRNCAT -REPLACE_STRDUP -REPLACE_STRCHRNUL -REPLACE_STPNCPY -REPLACE_MEMMEM -REPLACE_MEMCHR -REPLACE_FFSLL -HAVE_STRVERSCMP -HAVE_DECL_STRSIGNAL -HAVE_SIGDESCR_NP -HAVE_SIGABBREV_NP -HAVE_STRERRORNAME_NP -HAVE_DECL_STRERROR_R -HAVE_DECL_STRTOK_R -HAVE_STRCASESTR -HAVE_STRSEP -HAVE_STRPBRK -HAVE_DECL_STRNLEN -HAVE_DECL_STRNDUP -HAVE_DECL_STRDUP -HAVE_STRCHRNUL -HAVE_STPNCPY -HAVE_STPCPY -HAVE_RAWMEMCHR -HAVE_DECL_MEMRCHR -HAVE_MEMSET_EXPLICIT -HAVE_MEMPCPY -HAVE_DECL_MEMMEM -HAVE_FFSLL -HAVE_FFSL -HAVE_EXPLICIT_BZERO -HAVE_MBSLEN -GL_COND_OBJ_MBTOWC_FALSE -GL_COND_OBJ_MBTOWC_TRUE -GL_COND_OBJ_MBSINIT_FALSE -GL_COND_OBJ_MBSINIT_TRUE -HAVE_VISIBILITY -CFLAG_VISIBILITY -GL_COND_OBJ_MBRTOWC_FALSE -GL_COND_OBJ_MBRTOWC_TRUE -LIB_MBRTOWC -LOCALE_ZH_CN -LOCALE_FR_UTF8 -LOCALE_JA -NEXT_AS_FIRST_DIRECTIVE_MATH_H -NEXT_MATH_H -GL_COND_OBJ_LSEEK_FALSE -GL_COND_OBJ_LSEEK_TRUE -LTLIBMULTITHREAD -LIBMULTITHREAD -LTLIBTHREAD -LIBTHREAD -LIBSTDTHREAD -GL_COND_OBJ_LOCALECONV_FALSE -GL_COND_OBJ_LOCALECONV_TRUE -GL_GNULIB_LOCALENAME -GL_GNULIB_DUPLOCALE -GL_GNULIB_SETLOCALE_NULL -GL_GNULIB_SETLOCALE -GL_GNULIB_LOCALECONV -NEXT_AS_FIRST_DIRECTIVE_LOCALE_H -NEXT_LOCALE_H -HAVE_XLOCALE_H -NEXT_AS_FIRST_DIRECTIVE_STDDEF_H -NEXT_STDDEF_H -HAVE_WCHAR_T -HAVE_MAX_ALIGN_T -REPLACE_NULL -LOCALENAME_ENHANCE_LOCALE_FUNCS -REPLACE_STRUCT_LCONV -REPLACE_FREELOCALE -REPLACE_DUPLOCALE -REPLACE_NEWLOCALE -REPLACE_SETLOCALE -REPLACE_LOCALECONV -HAVE_FREELOCALE -HAVE_DUPLOCALE -HAVE_NEWLOCALE -LOCALCHARSET_TESTS_ENVIRONMENT -GL_GENERATE_LIMITS_H_FALSE -GL_GENERATE_LIMITS_H_TRUE -LIMITS_H -GL_GNULIB_NL_LANGINFO -HAVE_LANGINFO_YESEXPR -HAVE_LANGINFO_ERA -HAVE_LANGINFO_ALTMON -HAVE_LANGINFO_T_FMT_AMPM -HAVE_LANGINFO_CODESET -HAVE_LANGINFO_H -NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H -NEXT_LANGINFO_H -REPLACE_NL_LANGINFO -HAVE_NL_LANGINFO -GL_GNULIB_STRTOUMAX -GL_GNULIB_STRTOIMAX -GL_GNULIB_IMAXDIV -GL_GNULIB_IMAXABS -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H -NEXT_INTTYPES_H -UINT64_MAX_EQ_ULONG_MAX -UINT32_MAX_LT_UINTMAX_MAX -PRIPTR_PREFIX -INT64_MAX_EQ_LONG_MAX -INT32_MAX_LT_INTMAX_MAX -REPLACE_STRTOUMAX -REPLACE_STRTOIMAX -HAVE_IMAXDIV_T -HAVE_DECL_STRTOUMAX -HAVE_DECL_STRTOIMAX -HAVE_DECL_IMAXDIV -HAVE_DECL_IMAXABS -HAVE_SYS_INTTYPES_H -HAVE_SYS_BITYPES_H -HAVE_C99_STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX SIG_ATOMIC_T_SUFFIX @@ -1029,52 +734,344 @@ BITSIZEOF_WCHAR_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_PTRDIFF_T -APPLE_UNIVERSAL_BUILD +HAVE_SYS_BITYPES_H +HAVE_SYS_INTTYPES_H HAVE_STDINT_H NEXT_AS_FIRST_DIRECTIVE_STDINT_H NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H HAVE_WCHAR_H -GNULIBHEADERS_OVERRIDE_WINT_T -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H -NEXT_LIMITS_H -GL_COND_OBJ_INET_NTOP_FALSE -GL_COND_OBJ_INET_NTOP_TRUE -LIB_HARD_LOCALE -LIB_SETLOCALE_NULL -LIB_SCHED_YIELD -LIBPMULTITHREAD -LIBPTHREAD -GL_COND_OBJ_GETOPT_FALSE -GL_COND_OBJ_GETOPT_TRUE -GL_GENERATE_GETOPT_CDEFS_H_FALSE -GL_GENERATE_GETOPT_CDEFS_H_TRUE -GETOPT_CDEFS_H -GL_GENERATE_GETOPT_H_FALSE -GL_GENERATE_GETOPT_H_TRUE +HAVE_UNSIGNED_LONG_LONG_INT +HAVE_LONG_LONG_INT +HAVE__BOOL +GL_GENERATE_STDBOOL_H_FALSE +GL_GENERATE_STDBOOL_H_TRUE +STDBOOL_H +GL_GENERATE_STDALIGN_H_FALSE +GL_GENERATE_STDALIGN_H_TRUE +STDALIGN_H +LIBSOCKET +REPLACE_VSPRINTF +REPLACE_VSNPRINTF +REPLACE_VPRINTF +REPLACE_VFPRINTF +REPLACE_VDPRINTF +REPLACE_VASPRINTF +REPLACE_TMPFILE +REPLACE_STDIO_WRITE_FUNCS +REPLACE_STDIO_READ_FUNCS +REPLACE_SPRINTF +REPLACE_SNPRINTF +REPLACE_RENAMEAT +REPLACE_RENAME +REPLACE_REMOVE +REPLACE_PRINTF +REPLACE_POPEN +REPLACE_PERROR +REPLACE_OBSTACK_PRINTF +REPLACE_GETLINE +REPLACE_GETDELIM +REPLACE_FTELLO +REPLACE_FTELL +REPLACE_FSEEKO +REPLACE_FSEEK +REPLACE_FREOPEN +REPLACE_FPURGE +REPLACE_FPRINTF +REPLACE_FOPEN +REPLACE_FFLUSH +REPLACE_FDOPEN +REPLACE_FCLOSE +REPLACE_DPRINTF +HAVE_VDPRINTF +HAVE_VASPRINTF +HAVE_RENAMEAT +HAVE_POPEN +HAVE_PCLOSE +HAVE_FTELLO +HAVE_FSEEKO +HAVE_DPRINTF +HAVE_DECL_VSNPRINTF +HAVE_DECL_SNPRINTF +HAVE_DECL_OBSTACK_PRINTF +HAVE_DECL_GETLINE +HAVE_DECL_GETDELIM +HAVE_DECL_FTELLO +HAVE_DECL_FSEEKO +HAVE_DECL_FPURGE +GNULIB_VSPRINTF_POSIX +GNULIB_VSNPRINTF +GNULIB_VPRINTF_POSIX +GNULIB_VPRINTF +GNULIB_VFPRINTF_POSIX +GNULIB_VFPRINTF +GNULIB_VDPRINTF +GNULIB_VSCANF +GNULIB_VFSCANF +GNULIB_VASPRINTF +GNULIB_TMPFILE +GNULIB_STDIO_H_SIGPIPE +GNULIB_STDIO_H_NONBLOCKING +GNULIB_SPRINTF_POSIX +GNULIB_SNPRINTF +GNULIB_SCANF +GNULIB_RENAMEAT +GNULIB_RENAME +GNULIB_REMOVE +GNULIB_PUTS +GNULIB_PUTCHAR +GNULIB_PUTC +GNULIB_PRINTF_POSIX +GNULIB_PRINTF +GNULIB_POPEN +GNULIB_PERROR +GNULIB_PCLOSE +GNULIB_OBSTACK_PRINTF_POSIX +GNULIB_OBSTACK_PRINTF +GNULIB_GETLINE +GNULIB_GETDELIM +GNULIB_GETCHAR +GNULIB_GETC +GNULIB_FWRITE +GNULIB_FTELLO +GNULIB_FTELL +GNULIB_FSEEKO +GNULIB_FSEEK +GNULIB_FSCANF +GNULIB_FREOPEN +GNULIB_FREAD +GNULIB_FPUTS +GNULIB_FPUTC +GNULIB_FPURGE +GNULIB_FPRINTF_POSIX +GNULIB_FPRINTF +GNULIB_FOPEN +GNULIB_FGETS +GNULIB_FGETC +GNULIB_FFLUSH +GNULIB_FDOPEN +GNULIB_FCLOSE +GNULIB_DPRINTF +GL_GENERATE_NETINET_IN_H_FALSE +GL_GENERATE_NETINET_IN_H_TRUE +NETINET_IN_H +HAVE_NETINET_IN_H +NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H +NEXT_NETINET_IN_H +HAVE_MSVC_INVALID_PARAMETER_HANDLER +APPLE_UNIVERSAL_BUILD +REPLACE_TIMEGM +REPLACE_NANOSLEEP +REPLACE_MKTIME +REPLACE_LOCALTIME_R +HAVE_TIMEGM +HAVE_STRPTIME +HAVE_NANOSLEEP +HAVE_DECL_LOCALTIME_R +GNULIB_TIME_R +GNULIB_TIMEGM +GNULIB_STRPTIME +GNULIB_NANOSLEEP +GNULIB_MKTIME +UNDEFINE_STRTOK_R +REPLACE_STRTOK_R +REPLACE_STRSIGNAL +REPLACE_STRNLEN +REPLACE_STRNDUP +REPLACE_STRNCAT +REPLACE_STRERROR_R +REPLACE_STRERROR +REPLACE_STRCHRNUL +REPLACE_STRCASESTR +REPLACE_STRSTR +REPLACE_STRDUP +REPLACE_STPNCPY +REPLACE_MEMMEM +REPLACE_MEMCHR +HAVE_STRVERSCMP +HAVE_DECL_STRSIGNAL +HAVE_DECL_STRERROR_R +HAVE_DECL_STRTOK_R +HAVE_STRCASESTR +HAVE_STRSEP +HAVE_STRPBRK +HAVE_DECL_STRNLEN +HAVE_DECL_STRNDUP +HAVE_DECL_STRDUP +HAVE_STRCHRNUL +HAVE_STPNCPY +HAVE_STPCPY +HAVE_RAWMEMCHR +HAVE_DECL_MEMRCHR +HAVE_MEMPCPY +HAVE_DECL_MEMMEM +HAVE_MEMCHR +HAVE_FFSLL +HAVE_FFSL +HAVE_MBSLEN +GNULIB_STRVERSCMP +GNULIB_STRSIGNAL +GNULIB_STRERROR_R +GNULIB_STRERROR +GNULIB_MBSTOK_R +GNULIB_MBSSEP +GNULIB_MBSSPN +GNULIB_MBSPBRK +GNULIB_MBSCSPN +GNULIB_MBSCASESTR +GNULIB_MBSPCASECMP +GNULIB_MBSNCASECMP +GNULIB_MBSCASECMP +GNULIB_MBSSTR +GNULIB_MBSRCHR +GNULIB_MBSCHR +GNULIB_MBSNLEN +GNULIB_MBSLEN +GNULIB_STRTOK_R +GNULIB_STRCASESTR +GNULIB_STRSTR +GNULIB_STRSEP +GNULIB_STRPBRK +GNULIB_STRNLEN +GNULIB_STRNDUP +GNULIB_STRNCAT +GNULIB_STRDUP +GNULIB_STRCHRNUL +GNULIB_STPNCPY +GNULIB_STPCPY +GNULIB_RAWMEMCHR +GNULIB_MEMRCHR +GNULIB_MEMPCPY +GNULIB_MEMMEM +GNULIB_MEMCHR +GNULIB_FFSLL +GNULIB_FFSL +LOCALE_FR_UTF8 +LOCALE_ZH_CN +LOCALE_JA +NEXT_AS_FIRST_DIRECTIVE_MATH_H +NEXT_MATH_H +LTLIBMULTITHREAD +LIBMULTITHREAD +LTLIBTHREAD +LIBTHREAD +LIBPTH_PREFIX +LTLIBPTH +LIBPTH +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H +NEXT_LOCALE_H +HAVE_XLOCALE_H +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H +NEXT_STDDEF_H +GL_GENERATE_STDDEF_H_FALSE +GL_GENERATE_STDDEF_H_TRUE +STDDEF_H +HAVE_WCHAR_T +REPLACE_NULL +REPLACE_STRUCT_LCONV +REPLACE_DUPLOCALE +REPLACE_SETLOCALE +REPLACE_LOCALECONV +HAVE_DUPLOCALE +GNULIB_DUPLOCALE +GNULIB_SETLOCALE +GNULIB_LOCALECONV +LOCALCHARSET_TESTS_ENVIRONMENT +GLIBC21 +HAVE_LANGINFO_YESEXPR +HAVE_LANGINFO_ERA +HAVE_LANGINFO_T_FMT_AMPM +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_H +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H +NEXT_LANGINFO_H +REPLACE_NL_LANGINFO +HAVE_NL_LANGINFO +GNULIB_NL_LANGINFO +GNULIB_GL_UNISTD_H_GETOPT GETOPT_H -HAVE_SYS_CDEFS_H HAVE_GETOPT_H NEXT_AS_FIRST_DIRECTIVE_GETOPT_H NEXT_GETOPT_H -GL_COND_OBJ_GETLOADAVG_FALSE -GL_COND_OBJ_GETLOADAVG_TRUE GETLOADAVG_LIBS -GL_COND_OBJ_GETLINE_FALSE -GL_COND_OBJ_GETLINE_TRUE -GL_COND_OBJ_GETHOSTNAME_FALSE -GL_COND_OBJ_GETHOSTNAME_TRUE +REPLACE_WCTOMB +REPLACE_UNSETENV +REPLACE_STRTOD +REPLACE_SETENV +REPLACE_REALPATH +REPLACE_REALLOC +REPLACE_RANDOM_R +REPLACE_PUTENV +REPLACE_PTSNAME_R +REPLACE_PTSNAME +REPLACE_MKSTEMP +REPLACE_MBTOWC +REPLACE_MALLOC +REPLACE_CANONICALIZE_FILE_NAME +REPLACE_CALLOC +HAVE_DECL_UNSETENV +HAVE_UNLOCKPT +HAVE_SYS_LOADAVG_H +HAVE_STRUCT_RANDOM_DATA +HAVE_STRTOULL +HAVE_STRTOLL +HAVE_STRTOD +HAVE_DECL_SETENV +HAVE_SETENV +HAVE_SECURE_GETENV +HAVE_RPMATCH +HAVE_REALPATH +HAVE_RANDOM_R +HAVE_RANDOM_H +HAVE_RANDOM +HAVE_PTSNAME_R +HAVE_PTSNAME +HAVE_POSIX_OPENPT +HAVE_MKSTEMPS +HAVE_MKSTEMP +HAVE_MKOSTEMPS +HAVE_MKOSTEMP +HAVE_MKDTEMP +HAVE_GRANTPT +HAVE_GETSUBOPT +HAVE_DECL_GETLOADAVG +HAVE_CANONICALIZE_FILE_NAME +HAVE_ATOLL +HAVE__EXIT +GNULIB_WCTOMB +GNULIB_UNSETENV +GNULIB_UNLOCKPT +GNULIB_SYSTEM_POSIX +GNULIB_STRTOULL +GNULIB_STRTOLL +GNULIB_STRTOD +GNULIB_SETENV +GNULIB_SECURE_GETENV +GNULIB_RPMATCH +GNULIB_REALPATH +GNULIB_REALLOC_POSIX +GNULIB_RANDOM_R +GNULIB_RANDOM +GNULIB_PUTENV +GNULIB_PTSNAME_R +GNULIB_PTSNAME +GNULIB_POSIX_OPENPT +GNULIB_MKSTEMPS +GNULIB_MKSTEMP +GNULIB_MKOSTEMPS +GNULIB_MKOSTEMP +GNULIB_MKDTEMP +GNULIB_MBTOWC +GNULIB_MALLOC_POSIX +GNULIB_GRANTPT +GNULIB_GETSUBOPT +GNULIB_GETLOADAVG +GNULIB_CANONICALIZE_FILE_NAME +GNULIB_CALLOC_POSIX +GNULIB_ATOLL +GNULIB__EXIT GETHOSTNAME_LIB -GL_COND_OBJ_GETDTABLESIZE_FALSE -GL_COND_OBJ_GETDTABLESIZE_TRUE -GL_COND_OBJ_GETDELIM_FALSE -GL_COND_OBJ_GETDELIM_TRUE -GL_GNULIB_GETADDRINFO -GL_COND_OBJ_GAI_STRERROR_FALSE -GL_COND_OBJ_GAI_STRERROR_TRUE -GL_COND_OBJ_GETADDRINFO_FALSE -GL_COND_OBJ_GETADDRINFO_TRUE GETADDRINFO_LIB INET_NTOP_LIB SERVENT_LIB @@ -1082,201 +1079,47 @@ HOSTENT_LIB HAVE_NETDB_H NEXT_AS_FIRST_DIRECTIVE_NETDB_H NEXT_NETDB_H -REPLACE_GETADDRINFO REPLACE_GAI_STRERROR HAVE_DECL_GETNAMEINFO HAVE_DECL_GETADDRINFO HAVE_DECL_GAI_STRERROR HAVE_DECL_FREEADDRINFO HAVE_STRUCT_ADDRINFO -GL_COND_OBJ_FTELLO_FALSE -GL_COND_OBJ_FTELLO_TRUE -GL_COND_OBJ_FTELL_FALSE -GL_COND_OBJ_FTELL_TRUE -GL_COND_OBJ_FSUSAGE_FALSE -GL_COND_OBJ_FSUSAGE_TRUE -GL_GNULIB_MDA_UMASK -GL_GNULIB_MDA_MKDIR -GL_GNULIB_MDA_CHMOD -GL_GNULIB_OVERRIDES_STRUCT_STAT -GL_GNULIB_UTIMENSAT -GL_GNULIB_STAT -GL_GNULIB_MKNODAT -GL_GNULIB_MKNOD -GL_GNULIB_MKFIFOAT -GL_GNULIB_MKFIFO -GL_GNULIB_MKDIRAT -GL_GNULIB_MKDIR -GL_GNULIB_LSTAT -GL_GNULIB_LCHMOD -GL_GNULIB_GETUMASK -GL_GNULIB_FUTIMENS -GL_GNULIB_FSTATAT -GL_GNULIB_FSTAT -GL_GNULIB_FCHMODAT -GL_GNULIB_CHMOD -WINDOWS_64_BIT_ST_SIZE -WINDOWS_STAT_TIMESPEC -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H -NEXT_SYS_STAT_H -GL_COND_OBJ_FSTAT_FALSE -GL_COND_OBJ_FSTAT_TRUE -REPLACE_UTIMENSAT -REPLACE_STAT -REPLACE_MKNODAT -REPLACE_MKNOD -REPLACE_MKFIFOAT -REPLACE_MKFIFO -REPLACE_MKDIR -REPLACE_LSTAT -REPLACE_FUTIMENS -REPLACE_FSTATAT -REPLACE_FSTAT -REPLACE_FCHMODAT -REPLACE_CHMOD -HAVE_UTIMENSAT -HAVE_MKNODAT -HAVE_MKNOD -HAVE_MKFIFOAT -HAVE_MKFIFO -HAVE_MKDIRAT -HAVE_LSTAT -HAVE_LCHMOD -HAVE_GETUMASK -HAVE_FUTIMENS -HAVE_FSTATAT -HAVE_FCHMODAT -GL_COND_OBJ_FSEEKO_FALSE -GL_COND_OBJ_FSEEKO_TRUE -GL_COND_OBJ_FSEEK_FALSE -GL_COND_OBJ_FSEEK_TRUE -WINDOWS_STAT_INODES -WINDOWS_64_BIT_OFF_T -NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H -NEXT_SYS_TYPES_H -GL_COND_OBJ_FREE_FALSE -GL_COND_OBJ_FREE_TRUE -GL_COND_OBJ_FPURGE_FALSE -GL_COND_OBJ_FPURGE_TRUE -GL_GNULIB_MDA_YN -GL_GNULIB_MDA_Y1 -GL_GNULIB_MDA_Y0 -GL_GNULIB_MDA_JN -GL_GNULIB_MDA_J1 -GL_GNULIB_MDA_J0 -GL_GNULIB_TRUNCL -GL_GNULIB_TRUNCF -GL_GNULIB_TRUNC -GL_GNULIB_TANHF -GL_GNULIB_TANL -GL_GNULIB_TANF -GL_GNULIB_SQRTL -GL_GNULIB_SQRTF -GL_GNULIB_SINHF -GL_GNULIB_SINL -GL_GNULIB_SINF -GL_GNULIB_SIGNBIT -GL_GNULIB_ROUNDL -GL_GNULIB_ROUNDF -GL_GNULIB_ROUND -GL_GNULIB_RINTL -GL_GNULIB_RINTF -GL_GNULIB_RINT -GL_GNULIB_REMAINDERL -GL_GNULIB_REMAINDERF -GL_GNULIB_REMAINDER -GL_GNULIB_POWF -GL_GNULIB_MODFL -GL_GNULIB_MODFF -GL_GNULIB_MODF -GL_GNULIB_LOGBL -GL_GNULIB_LOGBF -GL_GNULIB_LOGB -GL_GNULIB_LOG2L -GL_GNULIB_LOG2F -GL_GNULIB_LOG2 -GL_GNULIB_LOG1PL -GL_GNULIB_LOG1PF -GL_GNULIB_LOG1P -GL_GNULIB_LOG10L -GL_GNULIB_LOG10F -GL_GNULIB_LOG10 -GL_GNULIB_LOGL -GL_GNULIB_LOGF -GL_GNULIB_LOG -GL_GNULIB_LDEXPL -GL_GNULIB_LDEXPF -GL_GNULIB_ISNANL -GL_GNULIB_ISNAND -GL_GNULIB_ISNANF -GL_GNULIB_ISNAN -GL_GNULIB_ISINF -GL_GNULIB_ISFINITE -GL_GNULIB_ILOGBL -GL_GNULIB_ILOGBF -GL_GNULIB_ILOGB -GL_GNULIB_HYPOTL -GL_GNULIB_HYPOTF -GL_GNULIB_HYPOT -GL_GNULIB_FREXPL -GL_GNULIB_FREXP -GL_GNULIB_FREXPF -GL_GNULIB_FMODL -GL_GNULIB_FMODF -GL_GNULIB_FMOD -GL_GNULIB_FMAL -GL_GNULIB_FMAF -GL_GNULIB_FMA -GL_GNULIB_FLOORL -GL_GNULIB_FLOORF -GL_GNULIB_FLOOR -GL_GNULIB_FABSL -GL_GNULIB_FABSF -GL_GNULIB_EXPM1L -GL_GNULIB_EXPM1F -GL_GNULIB_EXPM1 -GL_GNULIB_EXP2L -GL_GNULIB_EXP2F -GL_GNULIB_EXP2 -GL_GNULIB_EXPL -GL_GNULIB_EXPF -GL_GNULIB_COSHF -GL_GNULIB_COSL -GL_GNULIB_COSF -GL_GNULIB_COPYSIGNL -GL_GNULIB_COPYSIGNF -GL_GNULIB_COPYSIGN -GL_GNULIB_CEILL -GL_GNULIB_CEILF -GL_GNULIB_CEIL -GL_GNULIB_CBRTL -GL_GNULIB_CBRTF -GL_GNULIB_CBRT -GL_GNULIB_ATAN2F -GL_GNULIB_ATANL -GL_GNULIB_ATANF -GL_GNULIB_ASINL -GL_GNULIB_ASINF -GL_GNULIB_ACOSL -GL_GNULIB_ACOSF -GL_COND_OBJ_FLOORF_FALSE -GL_COND_OBJ_FLOORF_TRUE +GNULIB_GETADDRINFO +HAVE_WINSOCK2_H +HAVE_WS2TCPIP_H +HAVE_SYS_SOCKET_H +NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H +NEXT_SYS_SOCKET_H +HAVE_ACCEPT4 +HAVE_SA_FAMILY_T +HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY +HAVE_STRUCT_SOCKADDR_STORAGE +GNULIB_ACCEPT4 +GNULIB_SHUTDOWN +GNULIB_SETSOCKOPT +GNULIB_SENDTO +GNULIB_RECVFROM +GNULIB_SEND +GNULIB_RECV +GNULIB_LISTEN +GNULIB_GETSOCKOPT +GNULIB_GETSOCKNAME +GNULIB_GETPEERNAME +GNULIB_BIND +GNULIB_ACCEPT +GNULIB_CONNECT +GNULIB_SOCKET FLOORF_LIBM REPLACE_TRUNCL REPLACE_TRUNCF REPLACE_TRUNC -REPLACE_TANHF -REPLACE_TANF REPLACE_SQRTL -REPLACE_SQRTF -REPLACE_SINHF -REPLACE_SINF -REPLACE_SIGNBIT_USING_BUILTINS +REPLACE_SIGNBIT_USING_GCC REPLACE_SIGNBIT REPLACE_ROUNDL REPLACE_ROUNDF REPLACE_ROUND -REPLACE_RINTL REPLACE_REMAINDERL REPLACE_REMAINDERF REPLACE_REMAINDER @@ -1303,7 +1146,6 @@ REPLACE_LDEXPL REPLACE_ISNAN REPLACE_ISINF REPLACE_ISFINITE -REPLACE_ILOGBL REPLACE_ILOGBF REPLACE_ILOGB REPLACE_HYPOTL @@ -1325,22 +1167,13 @@ REPLACE_FLOOR REPLACE_FABSL REPLACE_EXP2L REPLACE_EXP2 -REPLACE_EXPM1L REPLACE_EXPM1F REPLACE_EXPM1 -REPLACE_EXPL -REPLACE_EXPF -REPLACE_COSHF -REPLACE_COSF REPLACE_CEILL REPLACE_CEILF REPLACE_CEIL REPLACE_CBRTL REPLACE_CBRTF -REPLACE_ATAN2F -REPLACE_ATANF -REPLACE_ASINF -REPLACE_ACOSF HAVE_DECL_TRUNCL HAVE_DECL_TRUNCF HAVE_DECL_TRUNC @@ -1437,270 +1270,128 @@ HAVE_ASINL HAVE_ASINF HAVE_ACOSL HAVE_ACOSF -GL_COND_OBJ_ITOLD_FALSE -GL_COND_OBJ_ITOLD_TRUE -GL_COND_OBJ_FLOAT_FALSE -GL_COND_OBJ_FLOAT_TRUE +GNULIB_TRUNCL +GNULIB_TRUNCF +GNULIB_TRUNC +GNULIB_TANHF +GNULIB_TANL +GNULIB_TANF +GNULIB_SQRTL +GNULIB_SQRTF +GNULIB_SINHF +GNULIB_SINL +GNULIB_SINF +GNULIB_SIGNBIT +GNULIB_ROUNDL +GNULIB_ROUNDF +GNULIB_ROUND +GNULIB_RINTL +GNULIB_RINTF +GNULIB_RINT +GNULIB_REMAINDERL +GNULIB_REMAINDERF +GNULIB_REMAINDER +GNULIB_POWF +GNULIB_MODFL +GNULIB_MODFF +GNULIB_MODF +GNULIB_LOGBL +GNULIB_LOGBF +GNULIB_LOGB +GNULIB_LOG2L +GNULIB_LOG2F +GNULIB_LOG2 +GNULIB_LOG1PL +GNULIB_LOG1PF +GNULIB_LOG1P +GNULIB_LOG10L +GNULIB_LOG10F +GNULIB_LOG10 +GNULIB_LOGL +GNULIB_LOGF +GNULIB_LOG +GNULIB_LDEXPL +GNULIB_LDEXPF +GNULIB_ISNANL +GNULIB_ISNAND +GNULIB_ISNANF +GNULIB_ISNAN +GNULIB_ISINF +GNULIB_ISFINITE +GNULIB_ILOGBL +GNULIB_ILOGBF +GNULIB_ILOGB +GNULIB_HYPOTL +GNULIB_HYPOTF +GNULIB_HYPOT +GNULIB_FREXPL +GNULIB_FREXP +GNULIB_FREXPF +GNULIB_FMODL +GNULIB_FMODF +GNULIB_FMOD +GNULIB_FMAL +GNULIB_FMAF +GNULIB_FMA +GNULIB_FLOORL +GNULIB_FLOORF +GNULIB_FLOOR +GNULIB_FABSL +GNULIB_FABSF +GNULIB_EXPM1L +GNULIB_EXPM1F +GNULIB_EXPM1 +GNULIB_EXP2L +GNULIB_EXP2F +GNULIB_EXP2 +GNULIB_EXPL +GNULIB_EXPF +GNULIB_COSHF +GNULIB_COSL +GNULIB_COSF +GNULIB_COPYSIGNL +GNULIB_COPYSIGNF +GNULIB_COPYSIGN +GNULIB_CEILL +GNULIB_CEILF +GNULIB_CEIL +GNULIB_CBRTL +GNULIB_CBRTF +GNULIB_CBRT +GNULIB_ATAN2F +GNULIB_ATANL +GNULIB_ATANF +GNULIB_ASINL +GNULIB_ASINF +GNULIB_ACOSL +GNULIB_ACOSF +REPLACE_ITOLD GL_GENERATE_FLOAT_H_FALSE GL_GENERATE_FLOAT_H_TRUE FLOAT_H -REPLACE_ITOLD NEXT_AS_FIRST_DIRECTIVE_FLOAT_H NEXT_FLOAT_H -GL_GNULIB_MDA_TEMPNAM -GL_GNULIB_MDA_PUTW -GL_GNULIB_MDA_GETW -GL_GNULIB_MDA_FILENO -GL_GNULIB_MDA_FDOPEN -GL_GNULIB_MDA_FCLOSEALL -GL_GNULIB_VSPRINTF_POSIX -GL_GNULIB_VSNPRINTF -GL_GNULIB_VPRINTF_POSIX -GL_GNULIB_VPRINTF -GL_GNULIB_VFPRINTF_POSIX -GL_GNULIB_VFPRINTF -GL_GNULIB_VDPRINTF -GL_GNULIB_VSCANF -GL_GNULIB_VFSCANF -GL_GNULIB_VASPRINTF -GL_GNULIB_TMPFILE -GL_GNULIB_STDIO_H_SIGPIPE -GL_GNULIB_STDIO_H_NONBLOCKING -GL_GNULIB_SPRINTF_POSIX -GL_GNULIB_SNPRINTF -GL_GNULIB_SCANF -GL_GNULIB_RENAMEAT -GL_GNULIB_RENAME -GL_GNULIB_REMOVE -GL_GNULIB_PUTS -GL_GNULIB_PUTCHAR -GL_GNULIB_PUTC -GL_GNULIB_PRINTF_POSIX -GL_GNULIB_PRINTF -GL_GNULIB_POPEN -GL_GNULIB_PERROR -GL_GNULIB_PCLOSE -GL_GNULIB_OBSTACK_PRINTF_POSIX -GL_GNULIB_OBSTACK_PRINTF -GL_GNULIB_GETLINE -GL_GNULIB_GETDELIM -GL_GNULIB_GETCHAR -GL_GNULIB_GETC -GL_GNULIB_FWRITE -GL_GNULIB_FTELLO -GL_GNULIB_FTELL -GL_GNULIB_FSEEKO -GL_GNULIB_FSEEK -GL_GNULIB_FSCANF -GL_GNULIB_FREOPEN -GL_GNULIB_FREAD -GL_GNULIB_FPUTS -GL_GNULIB_FPUTC -GL_GNULIB_FPURGE -GL_GNULIB_FPRINTF_POSIX -GL_GNULIB_FPRINTF -GL_GNULIB_FOPEN_GNU -GL_GNULIB_FOPEN -GL_GNULIB_FGETS -GL_GNULIB_FGETC -GL_GNULIB_FFLUSH -GL_GNULIB_FDOPEN -GL_GNULIB_FCLOSE -GL_GNULIB_DPRINTF -GL_COND_OBJ_FFLUSH_FALSE -GL_COND_OBJ_FFLUSH_TRUE -REPLACE_VSPRINTF -REPLACE_VSNPRINTF -REPLACE_VPRINTF -REPLACE_VFPRINTF -REPLACE_VDPRINTF -REPLACE_VASPRINTF -REPLACE_TMPFILE -REPLACE_STDIO_WRITE_FUNCS -REPLACE_STDIO_READ_FUNCS -REPLACE_SPRINTF -REPLACE_SNPRINTF -REPLACE_RENAMEAT -REPLACE_RENAME -REPLACE_REMOVE -REPLACE_PRINTF -REPLACE_POPEN -REPLACE_PERROR -REPLACE_OBSTACK_PRINTF -REPLACE_GETLINE -REPLACE_GETDELIM -REPLACE_FTELLO -REPLACE_FTELL -REPLACE_FSEEKO -REPLACE_FSEEK -REPLACE_FREOPEN -REPLACE_FPURGE -REPLACE_FPRINTF -REPLACE_FOPEN_FOR_FOPEN_GNU -REPLACE_FOPEN -REPLACE_FFLUSH -REPLACE_FDOPEN -REPLACE_FCLOSE -REPLACE_DPRINTF -HAVE_VDPRINTF -HAVE_VASPRINTF -HAVE_RENAMEAT -HAVE_POPEN -HAVE_PCLOSE -HAVE_FTELLO -HAVE_FSEEKO -HAVE_DPRINTF -HAVE_DECL_VSNPRINTF -HAVE_DECL_SNPRINTF -HAVE_DECL_OBSTACK_PRINTF -HAVE_DECL_GETLINE -HAVE_DECL_GETDELIM -HAVE_DECL_FTELLO -HAVE_DECL_FSEEKO -HAVE_DECL_FPURGE -HAVE_DECL_FCLOSEALL -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H -NEXT_FCNTL_H -GL_GNULIB_MDA_OPEN -GL_GNULIB_MDA_CREAT -GL_GNULIB_OPENAT -GL_GNULIB_OPEN -GL_GNULIB_NONBLOCKING -GL_GNULIB_FCNTL -GL_GNULIB_CREAT -GL_COND_OBJ_FCNTL_FALSE -GL_COND_OBJ_FCNTL_TRUE -REPLACE_OPENAT -REPLACE_OPEN -REPLACE_FCNTL -REPLACE_CREAT -HAVE_OPENAT -HAVE_FCNTL -GL_COND_OBJ_ERROR_FALSE -GL_COND_OBJ_ERROR_TRUE -GL_GENERATE_ERRNO_H_FALSE -GL_GENERATE_ERRNO_H_TRUE -ERRNO_H EOVERFLOW_VALUE EOVERFLOW_HIDDEN ENOLINK_VALUE ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN +GL_GENERATE_ERRNO_H_FALSE +GL_GENERATE_ERRNO_H_TRUE +ERRNO_H NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H -GL_COND_OBJ_DUP2_FALSE -GL_COND_OBJ_DUP2_TRUE -LIB_CRYPTO -HAVE_SYS_SOCKET_H -NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H -NEXT_SYS_SOCKET_H -HAVE_ACCEPT4 -HAVE_SA_FAMILY_T -HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY -HAVE_STRUCT_SOCKADDR_STORAGE -GL_GNULIB_MDA_WRITE -GL_GNULIB_MDA_UNLINK -GL_GNULIB_MDA_SWAB -GL_GNULIB_MDA_RMDIR -GL_GNULIB_MDA_READ -GL_GNULIB_MDA_LSEEK -GL_GNULIB_MDA_ISATTY -GL_GNULIB_MDA_GETPID -GL_GNULIB_MDA_GETCWD -GL_GNULIB_MDA_EXECVPE -GL_GNULIB_MDA_EXECVP -GL_GNULIB_MDA_EXECVE -GL_GNULIB_MDA_EXECV -GL_GNULIB_MDA_EXECLP -GL_GNULIB_MDA_EXECLE -GL_GNULIB_MDA_EXECL -GL_GNULIB_MDA_DUP2 -GL_GNULIB_MDA_DUP -GL_GNULIB_MDA_CLOSE -GL_GNULIB_MDA_CHDIR -GL_GNULIB_MDA_ACCESS -GL_GNULIB_WRITE -GL_GNULIB_USLEEP -GL_GNULIB_UNLINKAT -GL_GNULIB_UNLINK -GL_GNULIB_UNISTD_H_SIGPIPE -GL_GNULIB_UNISTD_H_NONBLOCKING -GL_GNULIB_UNISTD_H_GETOPT -GL_GNULIB_TTYNAME_R -GL_GNULIB_TRUNCATE -GL_GNULIB_SYMLINKAT -GL_GNULIB_SYMLINK -GL_GNULIB_SLEEP -GL_GNULIB_SETHOSTNAME -GL_GNULIB_RMDIR -GL_GNULIB_READLINKAT -GL_GNULIB_READLINK -GL_GNULIB_READ -GL_GNULIB_PWRITE -GL_GNULIB_PREAD -GL_GNULIB_PIPE2 -GL_GNULIB_PIPE -GL_GNULIB_LSEEK -GL_GNULIB_LINKAT -GL_GNULIB_LINK -GL_GNULIB_LCHOWN -GL_GNULIB_ISATTY -GL_GNULIB_GROUP_MEMBER -GL_GNULIB_GETUSERSHELL -GL_GNULIB_GETPASS_GNU -GL_GNULIB_GETPASS -GL_GNULIB_GETPAGESIZE -GL_GNULIB_GETOPT_POSIX -GL_GNULIB_GETLOGIN_R -GL_GNULIB_GETLOGIN -GL_GNULIB_GETHOSTNAME -GL_GNULIB_GETGROUPS -GL_GNULIB_GETENTROPY -GL_GNULIB_GETDTABLESIZE -GL_GNULIB_GETDOMAINNAME -GL_GNULIB_GETCWD -GL_GNULIB_FTRUNCATE -GL_GNULIB_FSYNC -GL_GNULIB_FDATASYNC -GL_GNULIB_FCHOWNAT -GL_GNULIB_FCHDIR -GL_GNULIB_FACCESSAT -GL_GNULIB_EXECVPE -GL_GNULIB_EXECVP -GL_GNULIB_EXECVE -GL_GNULIB_EXECV -GL_GNULIB_EXECLP -GL_GNULIB_EXECLE -GL_GNULIB_EXECL -GL_GNULIB_EUIDACCESS -GL_GNULIB_ENVIRON -GL_GNULIB_DUP3 -GL_GNULIB_DUP2 -GL_GNULIB_DUP -GL_GNULIB_COPY_FILE_RANGE -GL_GNULIB_CLOSE -GL_GNULIB_CHOWN -GL_GNULIB_CHDIR -GL_GNULIB_ACCESS -GL_COND_OBJ_CLOSE_FALSE -GL_COND_OBJ_CLOSE_TRUE -HAVE_WINSOCK2_H -HAVE_MSVC_INVALID_PARAMETER_HANDLER UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H -UNISTD_H_HAVE_SYS_RANDOM_H REPLACE_WRITE REPLACE_USLEEP REPLACE_UNLINKAT REPLACE_UNLINK REPLACE_TTYNAME_R -REPLACE_TRUNCATE -REPLACE_SYMLINKAT REPLACE_SYMLINK REPLACE_SLEEP REPLACE_RMDIR -REPLACE_READLINKAT REPLACE_READLINK REPLACE_READ REPLACE_PWRITE @@ -1710,43 +1401,27 @@ REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY -REPLACE_GETPASS_FOR_GETPASS_GNU -REPLACE_GETPASS REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R -REPLACE_GETDTABLESIZE REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FCHOWNAT -REPLACE_FACCESSAT -REPLACE_EXECVPE -REPLACE_EXECVP -REPLACE_EXECVE -REPLACE_EXECV -REPLACE_EXECLP -REPLACE_EXECLE -REPLACE_EXECL REPLACE_DUP2 REPLACE_DUP -REPLACE_COPY_FILE_RANGE REPLACE_CLOSE REPLACE_CHOWN -REPLACE_ACCESS HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R -HAVE_DECL_TRUNCATE HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE HAVE_DECL_GETLOGIN_R -HAVE_DECL_GETLOGIN HAVE_DECL_GETDOMAINNAME HAVE_DECL_FDATASYNC HAVE_DECL_FCHDIR -HAVE_DECL_EXECVPE HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT @@ -1764,12 +1439,10 @@ HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER -HAVE_GETPASS HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME HAVE_GETGROUPS -HAVE_GETENTROPY HAVE_GETDTABLESIZE HAVE_FTRUNCATE HAVE_FSYNC @@ -1777,184 +1450,61 @@ HAVE_FDATASYNC HAVE_FCHOWNAT HAVE_FCHDIR HAVE_FACCESSAT -HAVE_EXECVPE HAVE_EUIDACCESS HAVE_DUP3 -HAVE_COPY_FILE_RANGE +HAVE_DUP2 HAVE_CHOWN -GL_GENERATE_BYTESWAP_H_FALSE -GL_GENERATE_BYTESWAP_H_TRUE -BYTESWAP_H -REPLACE_WCTOMB -REPLACE_UNSETENV -REPLACE_STRTOULL -REPLACE_STRTOUL -REPLACE_STRTOLL -REPLACE_STRTOLD -REPLACE_STRTOL -REPLACE_STRTOD -REPLACE_SETSTATE -REPLACE_SETENV -REPLACE_REALPATH -REPLACE_REALLOCARRAY -REPLACE_REALLOC_FOR_REALLOC_POSIX -REPLACE_REALLOC_FOR_REALLOC_GNU -REPLACE_RANDOM_R -REPLACE_RANDOM -REPLACE_QSORT_R -REPLACE_PUTENV -REPLACE_PTSNAME_R -REPLACE_PTSNAME -REPLACE_POSIX_MEMALIGN -REPLACE_MKSTEMP -REPLACE_MBTOWC -REPLACE_MALLOC_FOR_MALLOC_POSIX -REPLACE_MALLOC_FOR_MALLOC_GNU -REPLACE_INITSTATE -REPLACE_FREE -REPLACE_CANONICALIZE_FILE_NAME -REPLACE_CALLOC_FOR_CALLOC_POSIX -REPLACE_CALLOC_FOR_CALLOC_GNU -REPLACE_ALIGNED_ALLOC -HAVE_DECL_UNSETENV -HAVE_UNLOCKPT -HAVE_SYS_LOADAVG_H -HAVE_STRUCT_RANDOM_DATA -HAVE_STRTOULL -HAVE_STRTOUL -HAVE_STRTOLL -HAVE_STRTOLD -HAVE_STRTOL -HAVE_STRTOD -HAVE_DECL_SETSTATE -HAVE_SETSTATE -HAVE_DECL_SETENV -HAVE_SETENV -HAVE_SECURE_GETENV -HAVE_RPMATCH -HAVE_REALPATH -HAVE_REALLOCARRAY -HAVE_RANDOM_R -HAVE_RANDOM_H -HAVE_RANDOM -HAVE_QSORT_R -HAVE_PTSNAME_R -HAVE_PTSNAME -HAVE_POSIX_OPENPT -HAVE_POSIX_MEMALIGN -HAVE_MKSTEMPS -HAVE_MKSTEMP -HAVE_MKOSTEMPS -HAVE_MKOSTEMP -HAVE_MKDTEMP -HAVE_MBTOWC -HAVE_DECL_INITSTATE -HAVE_INITSTATE -HAVE_GRANTPT -HAVE_GETSUBOPT -HAVE_DECL_GETLOADAVG -HAVE_DECL_GCVT -HAVE_DECL_FCVT -HAVE_DECL_ECVT -HAVE_CANONICALIZE_FILE_NAME -HAVE_ATOLL -HAVE_ALIGNED_ALLOC -HAVE__EXIT -GL_GNULIB_MDA_PUTENV -GL_GNULIB_MDA_MKTEMP -GL_GNULIB_MDA_GCVT -GL_GNULIB_MDA_FCVT -GL_GNULIB_MDA_ECVT -GL_GNULIB_WCTOMB -GL_GNULIB_UNSETENV -GL_GNULIB_UNLOCKPT -GL_GNULIB_SYSTEM_POSIX -GL_GNULIB_STRTOULL -GL_GNULIB_STRTOUL -GL_GNULIB_STRTOLL -GL_GNULIB_STRTOLD -GL_GNULIB_STRTOL -GL_GNULIB_STRTOD -GL_GNULIB_SETENV -GL_GNULIB_SECURE_GETENV -GL_GNULIB_RPMATCH -GL_GNULIB_REALPATH -GL_GNULIB_REALLOC_POSIX -GL_GNULIB_REALLOC_GNU -GL_GNULIB_REALLOCARRAY -GL_GNULIB_RANDOM_R -GL_GNULIB_RANDOM -GL_GNULIB_QSORT_R -GL_GNULIB_PUTENV -GL_GNULIB_PTSNAME_R -GL_GNULIB_PTSNAME -GL_GNULIB_POSIX_OPENPT -GL_GNULIB_POSIX_MEMALIGN -GL_GNULIB_MKSTEMPS -GL_GNULIB_MKSTEMP -GL_GNULIB_MKOSTEMPS -GL_GNULIB_MKOSTEMP -GL_GNULIB_MKDTEMP -GL_GNULIB_MBTOWC -GL_GNULIB_MALLOC_POSIX -GL_GNULIB_MALLOC_GNU -GL_GNULIB_GRANTPT -GL_GNULIB_GETSUBOPT -GL_GNULIB_GETLOADAVG -GL_GNULIB_FREE_POSIX -GL_GNULIB_CANONICALIZE_FILE_NAME -GL_GNULIB_CALLOC_POSIX -GL_GNULIB_CALLOC_GNU -GL_GNULIB_ATOLL -GL_GNULIB_ALIGNED_ALLOC -GL_GNULIB__EXIT -GL_GNULIB_MDA_WCSDUP -GL_GNULIB_WCSFTIME -GL_GNULIB_WCSWIDTH -GL_GNULIB_WCSTOK -GL_GNULIB_WCSSTR -GL_GNULIB_WCSPBRK -GL_GNULIB_WCSSPN -GL_GNULIB_WCSCSPN -GL_GNULIB_WCSRCHR -GL_GNULIB_WCSCHR -GL_GNULIB_WCSDUP -GL_GNULIB_WCSXFRM -GL_GNULIB_WCSCOLL -GL_GNULIB_WCSNCASECMP -GL_GNULIB_WCSCASECMP -GL_GNULIB_WCSNCMP -GL_GNULIB_WCSCMP -GL_GNULIB_WCSNCAT -GL_GNULIB_WCSCAT -GL_GNULIB_WCPNCPY -GL_GNULIB_WCSNCPY -GL_GNULIB_WCPCPY -GL_GNULIB_WCSCPY -GL_GNULIB_WCSNLEN -GL_GNULIB_WCSLEN -GL_GNULIB_WMEMSET -GL_GNULIB_WMEMPCPY -GL_GNULIB_WMEMMOVE -GL_GNULIB_WMEMCPY -GL_GNULIB_WMEMCMP -GL_GNULIB_WMEMCHR -GL_GNULIB_WCWIDTH -GL_GNULIB_WCSNRTOMBS -GL_GNULIB_WCSRTOMBS -GL_GNULIB_WCRTOMB -GL_GNULIB_MBSNRTOWCS -GL_GNULIB_MBSRTOWCS -GL_GNULIB_MBRLEN -GL_GNULIB_MBRTOWC -GL_GNULIB_MBSINIT -GL_GNULIB_WCTOB -GL_GNULIB_BTOWC -GL_COND_OBJ_BTOWC_FALSE -GL_COND_OBJ_BTOWC_TRUE +GNULIB_WRITE +GNULIB_USLEEP +GNULIB_UNLINKAT +GNULIB_UNLINK +GNULIB_UNISTD_H_SIGPIPE +GNULIB_UNISTD_H_NONBLOCKING +GNULIB_TTYNAME_R +GNULIB_SYMLINKAT +GNULIB_SYMLINK +GNULIB_SLEEP +GNULIB_SETHOSTNAME +GNULIB_RMDIR +GNULIB_READLINKAT +GNULIB_READLINK +GNULIB_READ +GNULIB_PWRITE +GNULIB_PREAD +GNULIB_PIPE2 +GNULIB_PIPE +GNULIB_LSEEK +GNULIB_LINKAT +GNULIB_LINK +GNULIB_LCHOWN +GNULIB_ISATTY +GNULIB_GROUP_MEMBER +GNULIB_GETUSERSHELL +GNULIB_GETPAGESIZE +GNULIB_GETLOGIN_R +GNULIB_GETLOGIN +GNULIB_GETHOSTNAME +GNULIB_GETGROUPS +GNULIB_GETDTABLESIZE +GNULIB_GETDOMAINNAME +GNULIB_GETCWD +GNULIB_FTRUNCATE +GNULIB_FSYNC +GNULIB_FDATASYNC +GNULIB_FCHOWNAT +GNULIB_FCHDIR +GNULIB_FACCESSAT +GNULIB_EUIDACCESS +GNULIB_ENVIRON +GNULIB_DUP3 +GNULIB_DUP2 +GNULIB_DUP +GNULIB_CLOSE +GNULIB_CHOWN +GNULIB_CHDIR +pkglibexecdir +lispdir LOCALE_FR -REPLACE_WCSTOK -REPLACE_WCSFTIME REPLACE_WCSWIDTH REPLACE_WCWIDTH REPLACE_WCSNRTOMBS @@ -1969,9 +1519,7 @@ REPLACE_WCTOB REPLACE_BTOWC REPLACE_MBSTATE_T HAVE_DECL_WCWIDTH -HAVE_DECL_WCSDUP HAVE_DECL_WCTOB -HAVE_WCSFTIME HAVE_WCSWIDTH HAVE_WCSTOK HAVE_WCSSTR @@ -1996,7 +1544,6 @@ HAVE_WCSCPY HAVE_WCSNLEN HAVE_WCSLEN HAVE_WMEMSET -HAVE_WMEMPCPY HAVE_WMEMMOVE HAVE_WMEMCPY HAVE_WMEMCMP @@ -2010,14 +1557,45 @@ HAVE_MBRLEN HAVE_MBRTOWC HAVE_MBSINIT HAVE_BTOWC -GL_GENERATE_ASSERT_H_FALSE -GL_GENERATE_ASSERT_H_TRUE -ASSERT_H -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H -NEXT_ASSERT_H -GL_GNULIB_INET_PTON -GL_GNULIB_INET_NTOP -HAVE_WS2TCPIP_H +GNULIB_WCSWIDTH +GNULIB_WCSTOK +GNULIB_WCSSTR +GNULIB_WCSPBRK +GNULIB_WCSSPN +GNULIB_WCSCSPN +GNULIB_WCSRCHR +GNULIB_WCSCHR +GNULIB_WCSDUP +GNULIB_WCSXFRM +GNULIB_WCSCOLL +GNULIB_WCSNCASECMP +GNULIB_WCSCASECMP +GNULIB_WCSNCMP +GNULIB_WCSCMP +GNULIB_WCSNCAT +GNULIB_WCSCAT +GNULIB_WCPNCPY +GNULIB_WCSNCPY +GNULIB_WCPCPY +GNULIB_WCSCPY +GNULIB_WCSNLEN +GNULIB_WCSLEN +GNULIB_WMEMSET +GNULIB_WMEMMOVE +GNULIB_WMEMCPY +GNULIB_WMEMCMP +GNULIB_WMEMCHR +GNULIB_WCWIDTH +GNULIB_WCSNRTOMBS +GNULIB_WCSRTOMBS +GNULIB_WCRTOMB +GNULIB_MBSNRTOWCS +GNULIB_MBSRTOWCS +GNULIB_MBRLEN +GNULIB_MBRTOWC +GNULIB_MBSINIT +GNULIB_WCTOB +GNULIB_BTOWC HAVE_FEATURES_H NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H NEXT_ARPA_INET_H @@ -2030,16 +1608,15 @@ REPLACE_INET_PTON REPLACE_INET_NTOP HAVE_DECL_INET_PTON HAVE_DECL_INET_NTOP +GNULIB_INET_PTON +GNULIB_INET_NTOP GL_GENERATE_ALLOCA_H_FALSE GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H -HAVE_ALLOCA_H ALLOCA GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE PERLMODS_DIR -localedir_c_make -localedir_c POSUB LTLIBINTL LIBINTL @@ -2048,11 +1625,11 @@ LTLIBICONV LIBICONV INTL_MACOSX_LIBS XGETTEXT_EXTRA_OPTIONS -MSGMERGE_FOR_MSGFMT_OPTION MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 +MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION @@ -2112,8 +1689,6 @@ MYSQLCFLAGS MYSQLLIBS MYSQLINCLUDE np_mysql_config -SYSTEMDINCLUDE -SYSTEMDLIBS LDAPINCLUDE LDAPLIBS RADIUSLIBS @@ -2274,6 +1849,7 @@ with_nagios_user with_nagios_group with_world_permissions enable_dependency_tracking +enable_largefile enable_threads enable_shared enable_static @@ -2293,7 +1869,6 @@ with_pgsql with_dbi with_radius with_ldap -with_systemd with_mysql with_libcurl with_uriparser @@ -2326,11 +1901,8 @@ with_libiconv_prefix with_libintl_prefix enable_redhat_pthread_workaround enable_perl_modules -enable_cross_guesses -with_linux_crypto +with_libpth_prefix with_included_regex -enable_year2038 -enable_largefile ' ac_precious_vars='build_alias host_alias @@ -2889,7 +2461,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures monitoring-plugins 2.4.0 to adapt to many kinds of systems. +\`configure' configures monitoring-plugins 2.3.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2961,7 +2533,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of monitoring-plugins 2.4.0:";; + short | recursive ) echo "Configuration of monitoring-plugins 2.3.3:";; esac cat <<\_ACEOF @@ -2978,7 +2550,8 @@ Optional Features: do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build - --enable-threads={isoc|posix|isoc+posix|windows} + --disable-largefile omit support for large files + --enable-threads={posix|solaris|pth|windows} specify multithreading API --disable-threads build without multithread safety --enable-shared[=PKGS] build shared libraries [default=yes] @@ -2997,10 +2570,6 @@ Optional Features: system) --enable-perl-modules Enables installation of Monitoring::Plugin and its dependencies (default: no) - --enable-cross-guesses={conservative|risky} - specify policy for cross-compilation guesses - --enable-year2038 support timestamps after 2038 - --disable-largefile omit support for large files Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -3022,7 +2591,6 @@ Optional Packages: --without-dbi Skips the dbi plugin --without-radius Skips the radius plugin --without-ldap Skips the LDAP plugin - --without-systemd Skips systemd support --with-mysql=DIR Locates mysql libraries. Expects DIR/bin/mysql_config. Default to search for mysql_config in PATH @@ -3058,23 +2626,8 @@ Optional Packages: --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir - --with-linux-crypto use Linux kernel cryptographic API (if available) - for the hash functions MD5, SHA-1, SHA-224, SHA-256, - SHA-384, SHA-512 on files - --with-openssl[=ARG] use libcrypto hash routines for the hash functions - MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512. - Valid ARGs are: - 'yes', - 'no', - 'auto' => use if any version available, - 'auto-gpl-compat' => use if GPL compatible version - available, - 'optional' => use if available - and warn if not available; - Default is 'no'. - Note also --with-linux-crypto, which will enable the - use of Linux kernel crypto routines (if available), - which has precedence for files. + --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib + --without-libpth-prefix don't search for libpth in includedir and libdir --without-included-regex don't compile regex; this is the default on systems with recent-enough versions of the GNU C Library @@ -3157,7 +2710,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -monitoring-plugins configure 2.4.0 +monitoring-plugins configure 2.3.3 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -3210,39 +2763,6 @@ fi } # ac_fn_c_try_compile -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. @@ -3281,6 +2801,39 @@ fi } # ac_fn_c_try_cpp +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -3496,10 +3049,6 @@ printf "%s\n" "$ac_res" >&6; } # accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. ac_fn_check_decl () { - ac_save_ac_compile="$ac_compile" - if test -n "$ac_compile_for_check_decl"; then - ac_compile="$ac_compile_for_check_decl" - fi as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 @@ -3543,7 +3092,6 @@ eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - ac_compile="$ac_save_ac_compile" } # ac_fn_check_decl @@ -3819,7 +3367,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by monitoring-plugins $as_me 2.4.0, which was +It was created by monitoring-plugins $as_me 2.3.3, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4407,73 +3955,59 @@ as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" -as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H" -as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H" -as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H" +gl_header_list="$gl_header_list sys/time.h" gt_needs="$gt_needs need-ngettext" -as_fn_append ac_header_c_list " arpa/inet.h arpa_inet_h HAVE_ARPA_INET_H" -as_fn_append ac_header_c_list " features.h features_h HAVE_FEATURES_H" -as_fn_append ac_header_c_list " sys/socket.h sys_socket_h HAVE_SYS_SOCKET_H" -as_fn_append ac_func_c_list " btowc HAVE_BTOWC" -as_fn_append ac_func_c_list " _set_invalid_parameter_handler HAVE__SET_INVALID_PARAMETER_HANDLER" -as_fn_append ac_func_c_list " fcntl HAVE_FCNTL" -as_fn_append ac_func_c_list " symlink HAVE_SYMLINK" -as_fn_append ac_header_c_list " stdio_ext.h stdio_ext_h HAVE_STDIO_EXT_H" -as_fn_append ac_func_c_list " fpurge HAVE_FPURGE" -as_fn_append ac_func_c_list " __fpurge HAVE___FPURGE" -as_fn_append ac_func_c_list " __freading HAVE___FREADING" -as_fn_append ac_header_c_list " sys/param.h sys_param_h HAVE_SYS_PARAM_H" -as_fn_append ac_header_c_list " sys/vfs.h sys_vfs_h HAVE_SYS_VFS_H" -as_fn_append ac_header_c_list " sys/fs_types.h sys_fs_types_h HAVE_SYS_FS_TYPES_H" -as_fn_append ac_header_c_list " netdb.h netdb_h HAVE_NETDB_H" -as_fn_append ac_header_c_list " netinet/in.h netinet_in_h HAVE_NETINET_IN_H" -as_fn_append ac_func_c_list " getdelim HAVE_GETDELIM" -as_fn_append ac_func_c_list " getdtablesize HAVE_GETDTABLESIZE" +gl_header_list="$gl_header_list arpa/inet.h" +gl_header_list="$gl_header_list features.h" +gl_func_list="$gl_func_list btowc" +gl_header_list="$gl_header_list unistd.h" +gl_header_list="$gl_header_list sys/param.h" +gl_header_list="$gl_header_list sys/vfs.h" +gl_header_list="$gl_header_list sys/fs_types.h" +gl_header_list="$gl_header_list sys/socket.h" +gl_header_list="$gl_header_list netdb.h" +gl_header_list="$gl_header_list netinet/in.h" gl_getopt_required=GNU -as_fn_append ac_header_c_list " getopt.h getopt_h HAVE_GETOPT_H" -as_fn_append ac_header_c_list " sys/cdefs.h sys_cdefs_h HAVE_SYS_CDEFS_H" -as_fn_append ac_func_c_list " getprogname HAVE_GETPROGNAME" -as_fn_append ac_func_c_list " getexecname HAVE_GETEXECNAME" -as_fn_append ac_header_c_list " threads.h threads_h HAVE_THREADS_H" -as_fn_append ac_func_c_list " getuid HAVE_GETUID" -as_fn_append ac_func_c_list " geteuid HAVE_GETEUID" -as_fn_append ac_func_c_list " getresuid HAVE_GETRESUID" -as_fn_append ac_func_c_list " getgid HAVE_GETGID" -as_fn_append ac_func_c_list " getegid HAVE_GETEGID" -as_fn_append ac_func_c_list " getresgid HAVE_GETRESGID" -as_fn_append ac_func_c_list " setresuid HAVE_SETRESUID" -as_fn_append ac_func_c_list " setreuid HAVE_SETREUID" -as_fn_append ac_func_c_list " seteuid HAVE_SETEUID" -as_fn_append ac_func_c_list " setresgid HAVE_SETRESGID" -as_fn_append ac_func_c_list " setregid HAVE_SETREGID" -as_fn_append ac_func_c_list " setegid HAVE_SETEGID" -as_fn_append ac_header_c_list " limits.h limits_h HAVE_LIMITS_H" -as_fn_append ac_header_c_list " langinfo.h langinfo_h HAVE_LANGINFO_H" -as_fn_append ac_header_c_list " xlocale.h xlocale_h HAVE_XLOCALE_H" -as_fn_append ac_header_c_list " math.h math_h HAVE_MATH_H" -as_fn_append ac_func_c_list " mbsinit HAVE_MBSINIT" -as_fn_append ac_func_c_list " mbrtowc HAVE_MBRTOWC" -as_fn_append ac_header_c_list " sys/mman.h sys_mman_h HAVE_SYS_MMAN_H" -as_fn_append ac_func_c_list " mprotect HAVE_MPROTECT" -as_fn_append ac_header_c_list " sys/statvfs.h sys_statvfs_h HAVE_SYS_STATVFS_H" -as_fn_append ac_func_c_list " nl_langinfo HAVE_NL_LANGINFO" -as_fn_append ac_func_c_list " lstat HAVE_LSTAT" -as_fn_append ac_header_c_list " malloc.h malloc_h HAVE_MALLOC_H" -as_fn_append ac_func_c_list " isblank HAVE_ISBLANK" -as_fn_append ac_func_c_list " iswctype HAVE_ISWCTYPE" -as_fn_append ac_func_c_list " setenv HAVE_SETENV" -as_fn_append ac_func_c_list " snprintf HAVE_SNPRINTF" -as_fn_append ac_header_c_list " stdalign.h stdalign_h HAVE_STDALIGN_H" -as_fn_append ac_header_c_list " stdbool.h stdbool_h HAVE_STDBOOL_H" -as_fn_append ac_header_c_list " stdckdint.h stdckdint_h HAVE_STDCKDINT_H" -as_fn_append ac_header_c_list " sys/uio.h sys_uio_h HAVE_SYS_UIO_H" -as_fn_append ac_func_c_list " localtime_r HAVE_LOCALTIME_R" -as_fn_append ac_func_c_list " timegm HAVE_TIMEGM" -as_fn_append ac_func_c_list " vasnprintf HAVE_VASNPRINTF" -as_fn_append ac_header_c_list " crtdefs.h crtdefs_h HAVE_CRTDEFS_H" -as_fn_append ac_func_c_list " wcrtomb HAVE_WCRTOMB" -as_fn_append ac_func_c_list " iswcntrl HAVE_ISWCNTRL" -as_fn_append ac_header_c_list " wctype.h wctype_h HAVE_WCTYPE_H" +gl_header_list="$gl_header_list getopt.h" +gl_func_list="$gl_func_list getuid" +gl_func_list="$gl_func_list geteuid" +gl_func_list="$gl_func_list getresuid" +gl_func_list="$gl_func_list getgid" +gl_func_list="$gl_func_list getegid" +gl_func_list="$gl_func_list getresgid" +gl_func_list="$gl_func_list setresuid" +gl_func_list="$gl_func_list setreuid" +gl_func_list="$gl_func_list seteuid" +gl_func_list="$gl_func_list setresgid" +gl_func_list="$gl_func_list setregid" +gl_func_list="$gl_func_list setegid" +gl_header_list="$gl_header_list langinfo.h" +gl_func_list="$gl_func_list symlink" +gl_header_list="$gl_header_list xlocale.h" +gl_header_list="$gl_header_list math.h" +gl_func_list="$gl_func_list mbsinit" +gl_func_list="$gl_func_list mbrtowc" +gl_header_list="$gl_header_list sys/mman.h" +gl_func_list="$gl_func_list mprotect" +gl_header_list="$gl_header_list sys/statvfs.h" +gl_func_list="$gl_func_list _set_invalid_parameter_handler" +gl_func_list="$gl_func_list nl_langinfo" +gl_func_list="$gl_func_list isblank" +gl_func_list="$gl_func_list iswctype" +gl_func_list="$gl_func_list wcscoll" +gl_func_list="$gl_func_list setenv" +gl_func_list="$gl_func_list snprintf" +gl_header_list="$gl_header_list wchar.h" +gl_header_list="$gl_header_list stdint.h" +gl_header_list="$gl_header_list strings.h" +gl_func_list="$gl_func_list strndup" +gl_header_list="$gl_header_list sys/uio.h" +gl_func_list="$gl_func_list localtime_r" +gl_func_list="$gl_func_list timegm" +gl_func_list="$gl_func_list vasnprintf" +gl_func_list="$gl_func_list wcrtomb" +gl_func_list="$gl_func_list iswcntrl" +gl_header_list="$gl_header_list wctype.h" # Auxiliary files required by this configure script. ac_aux_files="config.rpath ltmain.sh compile config.guess config.sub missing install-sh" @@ -5159,7 +4693,7 @@ fi # Define the identity of the package. PACKAGE='monitoring-plugins' - VERSION='2.4.0' + VERSION='2.3.3' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -6497,84 +6031,6 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler is clang" >&5 -printf %s "checking whether the compiler is clang... " >&6; } -if test ${gl_cv_compiler_clang+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #ifdef __clang__ - barfbarf - #endif - -int -main (void) -{ - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_compiler_clang=no -else $as_nop - gl_cv_compiler_clang=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_clang" >&5 -printf "%s\n" "$gl_cv_compiler_clang" >&6; } - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option needed when checking for declarations" >&5 -printf %s "checking for compiler option needed when checking for declarations... " >&6; } -if test ${gl_cv_compiler_check_decl_option+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test $gl_cv_compiler_clang = yes; then - save_ac_compile="$ac_compile" - ac_compile="$ac_compile -Werror=implicit-function-declaration" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration' -else $as_nop - gl_cv_compiler_check_decl_option=none -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_compile="$save_ac_compile" - else - gl_cv_compiler_check_decl_option=none - fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_check_decl_option" >&5 -printf "%s\n" "$gl_cv_compiler_check_decl_option" >&6; } - if test "x$gl_cv_compiler_check_decl_option" != xnone; then - ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" - else - ac_compile_for_check_decl="$ac_compile" - fi - DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -6770,190 +6226,6 @@ fi -ac_header= ac_cache= -for ac_item in $ac_header_c_list -do - if test $ac_cache; then - ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" - if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then - printf "%s\n" "#define $ac_item 1" >> confdefs.h - fi - ac_header= ac_cache= - elif test $ac_header; then - ac_cache=$ac_item - else - ac_header=$ac_item - fi -done - - - - - - - - -if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes -then : - -printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h - -fi - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if test ${ac_cv_safe_to_define___extensions__+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_safe_to_define___extensions__=yes -else $as_nop - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 -printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } -if test ${ac_cv_should_define__xopen_source+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_should_define__xopen_source=no - if test $ac_cv_header_wchar_h = yes -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - mbstate_t x; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #define _XOPEN_SOURCE 500 - #include - mbstate_t x; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_should_define__xopen_source=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 -printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } - - printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h - - printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h - - printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h - - printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h - - printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h - - printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h - - printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h - - printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h - - printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h - - if test $ac_cv_header_minix_config_h = yes -then : - MINIX=yes - printf "%s\n" "#define _MINIX 1" >>confdefs.h - - printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h - - printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h - -else $as_nop - MINIX= -fi - if test $ac_cv_safe_to_define___extensions__ = yes -then : - printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h - -fi - if test $ac_cv_should_define__xopen_source = yes -then : - printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h - -fi - - - - - - case "$host_os" in - openbsd*) - -printf "%s\n" "#define _ISOC11_SOURCE 1" >>confdefs.h - - ;; - esac - ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -7231,7 +6503,6 @@ printf "%s\n" "$ac_cv_path_EGREP" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 printf %s "checking for Minix Amsterdam compiler... " >&6; } if test ${gl_cv_c_amsterdam_compiler+y} @@ -7260,19 +6531,14 @@ rm -rf conftest* fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 printf "%s\n" "$gl_cv_c_amsterdam_compiler" >&6; } - - if test $gl_cv_c_amsterdam_compiler = yes; then - if test -z "$AR"; then + if test -z "$AR"; then + if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' - fi - if test -z "$ARFLAGS"; then - ARFLAGS='-o' - fi - else - : - fi - - if test -n "$ac_tool_prefix"; then + if test -z "$ARFLAGS"; then + ARFLAGS='-o' + fi + else + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -7374,12 +6640,17 @@ else AR="$ac_cv_prog_AR" fi - if test -z "$ARFLAGS"; then - ARFLAGS='cr' + if test -z "$ARFLAGS"; then + ARFLAGS='cru' + fi + fi + else + if test -z "$ARFLAGS"; then + ARFLAGS='cru' + fi fi - if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' @@ -7491,102 +6762,231 @@ fi +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } -if test ${ac_cv_sys_largefile_source+y} + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi + + ac_fn_c_check_header_compile "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes +then : + MINIX=yes +else $as_nop + MINIX= +fi + + if test "$MINIX" = yes; then + +printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h + + +printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h + + +printf "%s\n" "#define _MINIX 1" >>confdefs.h + + +printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h + + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test ${ac_cv_safe_to_define___extensions__+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_safe_to_define___extensions__=yes +else $as_nop + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h + + printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if test ${ac_cv_should_define__xopen_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_should_define__xopen_source=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_should_define__xopen_source=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } + test $ac_cv_should_define__xopen_source = yes && + printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h + + + + + + + + +# Check whether --enable-largefile was given. +if test ${enable_largefile+y} +then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +printf %s "checking for special C compiler options needed for large files... " >&6; } +if test ${ac_cv_sys_largefile_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if test ${ac_cv_sys_file_offset_bits+y} then : printf %s "(cached) " >&6 else $as_nop while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include /* for off_t */ - #include -int -main (void) -{ -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_sys_largefile_source=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGEFILE_SOURCE 1 -#include /* for off_t */ - #include -int -main (void) -{ -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_sys_largefile_source=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - ac_cv_sys_largefile_source=unknown - break -done -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 -printf "%s\n" "$ac_cv_sys_largefile_source" >&6; } -case $ac_cv_sys_largefile_source in #( - no | unknown) ;; - *) -printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h -;; -esac -rm -rf conftest* - -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -if test $ac_cv_sys_largefile_source != unknown; then - -printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h - -fi - - case "$host_os" in - hpux*) - -printf "%s\n" "#define _LARGEFILE_SOURCE 1" >>confdefs.h - - ;; - esac - - - if test "$enable_largefile" != no -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5 -printf %s "checking for $CC option to enable large file support... " >&6; } -if test ${ac_cv_sys_largefile_opts+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_CC="$CC" - ac_opt_found=no - for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do - if test x"$ac_opt" != x"none needed" -then : - CC="$ac_save_CC $ac_opt" -fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, @@ -7606,64 +7006,21 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_largefile_opts="$ac_opt" - ac_opt_found=yes + ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - test $ac_opt_found = no || break - done - CC="$ac_save_CC" - test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5 -printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; } - -ac_have_largefile=yes -case $ac_cv_sys_largefile_opts in #( - "none needed") : - ;; #( - "support not detected") : - ac_have_largefile=no ;; #( - "-D_FILE_OFFSET_BITS=64") : - -printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h - ;; #( - "-D_LARGE_FILES=1") : - -printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h - ;; #( - "-n32") : - CC="$CC -n32" ;; #( - *) : - as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;; -esac - - if test "$enable_year2038" != no -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable timestamps after Jan 2038" >&5 -printf %s "checking for $CC option to enable timestamps after Jan 2038... " >&6; } -if test ${ac_cv_sys_year2038_opts+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_CPPFLAGS="$CPPFLAGS" - ac_opt_found=no - for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do - if test x"$ac_opt" != x"none needed" -then : - CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" -fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - - #include - /* Check that time_t can represent 2**32 - 1 correctly. */ - #define LARGE_TIME_T \\ - ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) - int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 - && LARGE_TIME_T % 65537 == 0) - ? 1 : -1]; - +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; int main (void) { @@ -7674,85 +7031,97 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_year2038_opts="$ac_opt" - ac_opt_found=yes + ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - test $ac_opt_found = no || break - done - CPPFLAGS="$ac_save_CPPFLAGS" - test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" + ac_cv_sys_file_offset_bits=unknown + break +done fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5 -printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; } - -ac_have_year2038=yes -case $ac_cv_sys_year2038_opts in #( - "none needed") : - ;; #( - "support not detected") : - ac_have_year2038=no - case $enable_year2038 in #( - yes) : - # If we're not cross compiling and 'touch' works with a large - # timestamp, then we can presume the system supports wider time_t - # *somehow* and we just weren't able to detect it. One common - # case that we deliberately *don't* probe for is a system that - # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers - # wide time_t. (It would be inappropriate for us to override an - # intentional use of -m32.) Error out, demanding use of - # --disable-year2038 if this is intentional. - if test $cross_compiling = no -then : - if TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null -then : - case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in #( - *'Feb 7 2106'* | *'Feb 7 17:10'*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "this system appears to support timestamps after -January 2038, but no mechanism for enabling wide -'time_t' was detected. Did you mean to build a 64-bit -binary? (e.g. 'CC=\"${CC} -m64\"'.) To proceed with -32-bit time_t, configure with '--disable-year2038'. -See \`config.log' for more details" "$LINENO" 5; } ;; #( - *) : - ;; +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h +;; esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } +if test ${ac_cv_sys_large_files+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=no; break fi -fi ;; #( - *) : - ;; -esac ;; #( - "-D_TIME_BITS=64") : +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ -printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h - ;; #( - "-D__MINGW_USE_VC2005_COMPAT=1") : - -printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h - ;; #( - "-U_USE_32_BIT_TIME_T"*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It -will stop working after January 2038. Remove -_USE_32BIT_TIME_T from the compiler flags. -See \`config.log' for more details" "$LINENO" 5; } ;; #( - *) : - as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +printf "%s\n" "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h +;; esac - +rm -rf conftest* + fi fi -fi - - - - - @@ -7765,34 +7134,21 @@ else $as_nop gl_use_threads="$gl_use_threads_default" else case "$host_os" in - osf*) gl_use_threads=no ;; - cygwin*) + osf*) gl_use_threads=no ;; + cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; - mingw*) - case "$gl_use_winpthreads_default" in - yes) gl_use_threads=posix ;; - no) gl_use_threads=windows ;; - *) gl_use_threads=yes ;; - esac - ;; *) gl_use_threads=yes ;; esac fi fi - if test "$gl_use_threads" = yes \ - || test "$gl_use_threads" = isoc \ - || test "$gl_use_threads" = posix \ - || test "$gl_use_threads" = isoc+posix; then - # For using or : - - - if test -z "$gl_anythreadlib_early_done"; then + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it @@ -7811,97 +7167,53 @@ fi aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac - gl_anythreadlib_early_done=done - fi - fi - # Pre-early section. - - - # Code from module absolute-header: # Code from module alloca-opt: # Code from module arpa_inet: - # Code from module assert-h: - # Code from module attribute: # Code from module base64: - # Code from module basename-lgpl: # Code from module btowc: - # Code from module builtin-expect: - # Code from module byteswap: - # Code from module c99: - # Code from module calloc-gnu: - # Code from module calloc-posix: - # Code from module cloexec: - # Code from module close: - # Code from module crypto/af_alg: - # Code from module crypto/sha256: - # Code from module crypto/sha256-buffer: + # Code from module configmake: + # Code from module crypto/sha1: # Code from module dirname: # Code from module dirname-lgpl: + # Code from module dosname: # Code from module double-slash-root: - # Code from module dup2: # Code from module environ: # Code from module errno: # Code from module error: # Code from module exitfail: # Code from module extensions: - # Code from module extern-inline: - # Code from module fcntl: - # Code from module fcntl-h: - # Code from module fd-hook: - # Code from module fflush: - # Code from module filename: + # Code from module extern-inline: + # Code from module fd-hook: # Code from module float: # Code from module floorf: - # Code from module fopen: - # Code from module fopen-gnu: - # Code from module fpurge: - # Code from module freading: - # Code from module free-posix: - # Code from module fseek: - # Code from module fseeko: - - # Code from module fstat: # Code from module fsusage: - # Code from module ftell: - # Code from module ftello: - - # Code from module gen-header: + # Code from module full-read: # Code from module getaddrinfo: - # Code from module getdelim: - # Code from module getdtablesize: # Code from module gethostname: - # Code from module getline: # Code from module getloadavg: # Code from module getopt-gnu: # Code from module getopt-posix: - # Code from module getprogname: + # Code from module gettext: # Code from module gettext-h: - # Code from module glibc-internal/dynarray: - # Code from module hard-locale: + # Code from module havelib: # Code from module hostent: - # Code from module ialloc: # Code from module idpriv-droptemp: - # Code from module idx: # Code from module include_next: # Code from module inet_ntop: # Code from module intprops: - # Code from module inttypes-incomplete: # Code from module langinfo: # Code from module largefile: - # Code from module libc-config: - # Code from module limits-h: # Code from module localcharset: # Code from module locale: # Code from module localeconv: # Code from module lock: - # Code from module lseek: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: @@ -7910,7 +7222,6 @@ fi # Code from module mbsinit: # Code from module mbtowc: # Code from module memchr: - # Code from module minmax: # Code from module mktime: # Code from module mktime-internal: # Code from module mountlist: @@ -7921,15 +7232,11 @@ fi # Code from module netinet_in: # Code from module nl_langinfo: # Code from module nocrash: - # Code from module open: - # Code from module pathmax: - # Code from module realloc-gnu: - # Code from module realloc-posix: - # Code from module reallocarray: + # Code from module read: # Code from module regex: + # Code from module safe-read: # Code from module servent: # Code from module setenv: - # Code from module setlocale-null: # Code from module size_max: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: @@ -7940,12 +7247,8 @@ fi # Code from module sockets: # Code from module socklen: # Code from module ssize_t: - # Code from module stat: - # Code from module stat-time: - # Code from module std-gnu11: # Code from module stdalign: # Code from module stdbool: - # Code from module stdckdint: # Code from module stddef: # Code from module stdint: # Code from module stdio: @@ -7958,10 +7261,11 @@ fi # Code from module strerror-override: # Code from module string: # Code from module strings: + # Code from module strndup: + # Code from module strnlen: # Code from module strsep: # Code from module strstr-simple: # Code from module sys_socket: - # Code from module sys_stat: # Code from module sys_types: # Code from module sys_uio: # Code from module threadlib: @@ -7972,9 +7276,7 @@ fi # Code from module time_r: # Code from module timegm: # Code from module unistd: - # Code from module unlocked-io-internal: # Code from module unsetenv: - # Code from module vararrays: # Code from module vasnprintf: # Code from module vasprintf: # Code from module verify: @@ -7982,14 +7284,11 @@ fi # Code from module wchar: # Code from module wcrtomb: # Code from module wctype-h: - # Code from module windows-mutex: - # Code from module windows-once: - # Code from module windows-recmutex: - # Code from module windows-rwlock: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: # Code from module xsize: + # Code from module xstrndup: if test $ac_cv_c_compiler_gnu = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 @@ -15367,6 +14666,209 @@ esac fi +# Check whether --enable-largefile was given. +if test ${enable_largefile+y} +then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +printf %s "checking for special C compiler options needed for large files... " >&6; } +if test ${ac_cv_sys_largefile_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if test ${ac_cv_sys_file_offset_bits+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } +if test ${ac_cv_sys_large_files+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +printf "%s\n" "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h +;; +esac +rm -rf conftest* + fi +fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strtod" >&5 @@ -16620,76 +16122,6 @@ printf "%s\n" "$as_me: WARNING: install LDAP libs to compile this plugin (see RE fi - - -# Check whether --with-systemd was given. -if test ${with_systemd+y} -then : - withval=$with_systemd; -fi - - -if test "x$with_systemd" != "xno" -then : - - _SAVEDLIBS="$LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sd_get_sessions in -lsystemd" >&5 -printf %s "checking for sd_get_sessions in -lsystemd... " >&6; } -if test ${ac_cv_lib_systemd_sd_get_sessions+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsystemd -lsystemd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sd_get_sessions (); -int -main (void) -{ -return sd_get_sessions (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_systemd_sd_get_sessions=yes -else $as_nop - ac_cv_lib_systemd_sd_get_sessions=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_systemd_sd_get_sessions" >&5 -printf "%s\n" "$ac_cv_lib_systemd_sd_get_sessions" >&6; } -if test "x$ac_cv_lib_systemd_sd_get_sessions" = xyes -then : - printf "%s\n" "#define HAVE_LIBSYSTEMD 1" >>confdefs.h - - LIBS="-lsystemd $LIBS" - -fi - - if test "$ac_cv_lib_systemd_sd_get_sessions" = "yes"; then - SYSTEMDLIBS="-lsystemd" - SYSTEMDINCLUDE="" - - - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Skipping systemd support" >&5 -printf "%s\n" "$as_me: WARNING: Skipping systemd support" >&2;} - fi - LIBS="$_SAVEDLIBS" - -fi - - case $host in *linux*) ac_fn_c_check_header_compile "$LINENO" "linux/hdreg.h" "ac_cv_header_linux_hdreg_h" "$ac_includes_default" @@ -18169,6 +17601,32 @@ fi + + + for ac_header in $gl_header_list +do : + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + : + + + + + # Obsolete code to be removed. if test $ac_cv_header_sys_time_h = yes; then @@ -18462,6 +17920,39 @@ printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +printf %s "checking return type of signal handlers... " >&6; } +if test ${ac_cv_type_signal+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +int +main (void) +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_type_signal=int +else $as_nop + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +printf "%s\n" "$ac_cv_type_signal" >&6; } + +printf "%s\n" "#define RETSIGTYPE $ac_cv_type_signal" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 printf %s "checking for va_copy... " >&6; } @@ -18552,20 +18043,15 @@ then : printf "%s\n" "#define HAVE_STRUCT_TIMEVAL 1" >>confdefs.h - FOUND_STRUCT_TIMEVAL="yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -if test x"$FOUND_STRUCT_TIMEVAL" = x"yes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { struct timeval *tv; - struct timezone *tz; - gettimeofday(tv, tz); + struct timezone *tz; + gettimeofday(tv, tz); ; return 0; } @@ -18582,6 +18068,7 @@ printf "%s\n" "#define NEED_GETTIMEOFDAY 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove" if test "x$ac_cv_func_memmove" = xyes @@ -19115,7 +18602,7 @@ elif ps -Ao 's comm vsz rss uid user pid ppid args' 2>/dev/null | \ then ac_cv_ps_varlist="procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos" ac_cv_ps_command="$PATH_TO_PS -Ao 's uid pid ppid vsz rss pcpu comm args'" - # There must be no space between the %s and %n due to a weird problem in sscanf where + # There must be no space between the %s and %n due to a wierd problem in sscanf where # it will return %n as longer than the line length ac_cv_ps_format="%s %d %d %d %d %d %f %s%n" ac_cv_ps_cols=9 @@ -20560,8 +20047,8 @@ then printf "%s\n" "#define PATH_TO_SUDO \"$PATH_TO_SUDO\"" >>confdefs.h else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find sudo or equivalent" >&5 -printf "%s\n" "$as_me: WARNING: Could not find sudo or equivalent" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find sudo or eqivalent" >&5 +printf "%s\n" "$as_me: WARNING: Could not find sudo or eqivalent" >&2;} fi # Extract the first word of "mailq", so it can be a program name with args. @@ -20622,8 +20109,8 @@ then printf "%s\n" "#define PATH_TO_MAILQ \"$PATH_TO_MAILQ\"" >>confdefs.h else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find mailq or equivalent" >&5 -printf "%s\n" "$as_me: WARNING: Could not find mailq or equivalent" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find mailq or eqivalent" >&5 +printf "%s\n" "$as_me: WARNING: Could not find mailq or eqivalent" >&2;} fi # Extract the first word of "qmail-qstat", so it can be a program name with args. @@ -20684,8 +20171,8 @@ then printf "%s\n" "#define PATH_TO_QMAIL_QSTAT \"$PATH_TO_QMAIL_QSTAT\"" >>confdefs.h else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find qmail-qstat or equivalent" >&5 -printf "%s\n" "$as_me: WARNING: Could not find qmail-qstat or equivalent" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Could not find qmail-qstat or eqivalent" >&5 +printf "%s\n" "$as_me: WARNING: Could not find qmail-qstat or eqivalent" >&2;} fi # Extract the first word of "swap", so it can be a program name with args. @@ -20745,14 +20232,14 @@ then grep -E -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \ >/dev/null then - ac_cv_swap_format=" %*d %*s %*d,%*d %*d %*d %lu %lu" + ac_cv_swap_format=" %*d %*s %*d,%*d %*d %*d %f %f" ac_cv_swap_conv=2048 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using IRIX format swap" >&5 printf "%s\n" "using IRIX format swap" >&6; } elif $PATH_TO_SWAP -l 2>/dev/null | grep -E -i "^path +dev +swaplo +blocks +free" >/dev/null then - ac_cv_swap_format="%*s %*[0-9,-] %*d %lu %lu" + ac_cv_swap_format="%*s %*[0-9,-] %*d %f %f" ac_cv_swap_conv=2048 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using Unixware format swap" >&5 printf "%s\n" "using Unixware format swap" >&6; } @@ -20819,7 +20306,7 @@ then if $PATH_TO_SWAPINFO -k 2>/dev/null | grep -E -i "^Device +1K-blocks +Used +Avail" >/dev/null then - ac_cv_swap_format="%*s %lu %*d %lu" + ac_cv_swap_format="%*s %f %*d %f" ac_cv_swap_conv=1024 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using FreeBSD format swapinfo" >&5 printf "%s\n" "using FreeBSD format swapinfo" >&6; } @@ -20829,7 +20316,7 @@ elif $PATH_TO_SWAPINFO -dfM 2>/dev/null | grep -E -i "^TYPE +AVAIL +USED +FREE" then ac_cv_have_swap=yes ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM" - ac_cv_swap_format="%*s %lu %*d %lu" + ac_cv_swap_format="%*s %f %*d %f" ac_cv_swap_conv=1024 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using HP-UX format swapinfo" >&5 printf "%s\n" "using HP-UX format swapinfo" >&6; } @@ -20889,7 +20376,7 @@ if $PATH_TO_LSPS -a 2>/dev/null | grep -E -i "^Page Space" > /dev/null then ac_cv_have_swap=yes ac_cv_swap_command="$PATH_TO_LSPS -a" - ac_cv_swap_format="%*s %*s %*s %lu%*s %lu %*s" + ac_cv_swap_format="%*s %*s %*s %f%*s %f %*s" ac_cv_swap_conv=1 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using AIX lsps" >&5 printf "%s\n" "using AIX lsps" >&6; } @@ -21363,7 +20850,7 @@ printf "%s\n" "$USE_NLS" >&6; } - GETTEXT_MACRO_VERSION=0.20 + GETTEXT_MACRO_VERSION=0.18 @@ -21408,9 +20895,9 @@ else $as_nop ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) - gt_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$gt_saved_IFS" + IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then @@ -21423,7 +20910,7 @@ else $as_nop fi done done - IFS="$gt_saved_IFS" + IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac @@ -21484,7 +20971,12 @@ fi - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac @@ -21531,9 +21023,9 @@ else $as_nop ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) - gt_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$gt_saved_IFS" + IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then @@ -21546,7 +21038,7 @@ else $as_nop fi done done - IFS="$gt_saved_IFS" + IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac @@ -21609,9 +21101,9 @@ else $as_nop ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) - gt_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$gt_saved_IFS" + IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then @@ -21623,7 +21115,7 @@ else $as_nop fi done done - IFS="$gt_saved_IFS" + IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac @@ -21638,15 +21130,7 @@ printf "%s\n" "no" >&6; } fi - if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' - else - if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' - else - MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' - fi - fi + test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= @@ -21666,10 +21150,10 @@ fi else acl_final_exec_prefix="$exec_prefix" fi - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_saved_prefix" + prefix="$acl_save_prefix" @@ -21694,12 +21178,38 @@ if test "${PATH_SEPARATOR+set}" != set; then } fi -if test -n "$LD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 -printf %s "checking for ld... " >&6; } -elif test "$GCC" = yes; then +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 printf %s "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac elif test "$with_gnu_ld" = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 printf %s "checking for GNU ld... " >&6; } @@ -21707,132 +21217,45 @@ else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 printf %s "checking for non-GNU ld... " >&6; } fi -if test -n "$LD"; then - # Let the user override the test with a path. - : -else - if test ${acl_cv_path_LD+y} +if test ${acl_cv_path_LD+y} then : printf %s "(cached) " >&6 else $as_nop - - acl_cv_path_LD= # Final result of this test - ac_prog=ld # Program to search in $PATH - if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - case $host in - *-*-mingw* | windows*) - # gcc leaves a trailing carriage return which upsets mingw - acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - acl_output=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $acl_output in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` - while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do - acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` - done - # Got the pathname. No search in PATH is needed. - acl_cv_path_LD="$acl_output" - ac_prog= - ;; - "") - # If it fails, then pretend we aren't using GCC. - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; + if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 &1 conftest.$ac_ext -/* end confdefs.h. */ -#if defined __powerpc64__ || defined __LP64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - # The compiler produces 64-bit code. Add option '-b64' so that the - # linker groks 64-bit object files. - case "$acl_cv_path_LD " in - *" -b64 "*) ;; - *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; - esac - + done + IFS="$acl_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ;; - sparc64-*-netbsd*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __sparcv9 || defined __arch64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - # The compiler produces 32-bit code. Add option '-m elf32_sparc' - # so that the linker groks 32-bit object files. - case "$acl_cv_path_LD " in - *" -m elf32_sparc "*) ;; - *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; - esac - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ;; - esac - fi - LD="$acl_cv_path_LD" -fi +LD="$acl_cv_path_LD" if test -n "$LD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 printf "%s\n" "$LD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${acl_cv_prog_gnu_ld+y} @@ -21893,237 +21316,69 @@ fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 -printf %s "checking 32-bit host C ABI... " >&6; } -if test ${gl_cv_host_cpu_c_abi_32bit+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_cpu" in - - # CPUs that only support a 32-bit ABI. - arc \ - | bfin \ - | cris* \ - | csky \ - | epiphany \ - | ft32 \ - | h8300 \ - | m68k \ - | microblaze | microblazeel \ - | nds32 | nds32le | nds32be \ - | nios2 | nios2eb | nios2el \ - | or1k* \ - | or32 \ - | sh | sh1234 | sh1234elb \ - | tic6x \ - | xtensa* ) - gl_cv_host_cpu_c_abi_32bit=yes - ;; - - # CPUs that only support a 64-bit ABI. - alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ - | mmix ) - gl_cv_host_cpu_c_abi_32bit=no - ;; - - *) - if test -n "$gl_cv_host_cpu_c_abi"; then - case "$gl_cv_host_cpu_c_abi" in - i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) - gl_cv_host_cpu_c_abi_32bit=yes ;; - x86_64 | alpha | arm64 | aarch64c | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) - gl_cv_host_cpu_c_abi_32bit=no ;; - *) - gl_cv_host_cpu_c_abi_32bit=unknown ;; - esac - else - gl_cv_host_cpu_c_abi_32bit=unknown - fi - if test $gl_cv_host_cpu_c_abi_32bit = unknown; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int test_pointer_size[sizeof (void *) - 5]; - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_host_cpu_c_abi_32bit=no -else $as_nop - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 -printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; } - - HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5 -printf %s "checking for ELF binary format... " >&6; } -if test ${gl_cv_elf+y} + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 +printf %s "checking for 64-bit host... " >&6; } +if test ${gl_cv_solaris_64bit+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined __ELF__ || (defined __linux__ && defined __EDG__) - Extensible Linking Format - #endif + +#ifdef _LP64 +sixtyfour bits +#endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Extensible Linking Format" >/dev/null 2>&1 + $EGREP "sixtyfour bits" >/dev/null 2>&1 then : - gl_cv_elf=yes + gl_cv_solaris_64bit=yes else $as_nop - gl_cv_elf=no + gl_cv_solaris_64bit=no fi rm -rf conftest* fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 -printf "%s\n" "$gl_cv_elf" >&6; } - if test $gl_cv_elf = yes; then - # Extract the ELF class of a file (5th byte) in decimal. - # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header - if od -A x < /dev/null >/dev/null 2>/dev/null; then - # Use POSIX od. - func_elfclass () - { - od -A n -t d1 -j 4 -N 1 - } - else - # Use BSD hexdump. - func_elfclass () - { - dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' - echo - } - fi - # Use 'expr', not 'test', to compare the values of func_elfclass, because on - # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, - # not 1 or 2. - case $HOST_CPU_C_ABI_32BIT in - yes) - # 32-bit ABI. - acl_is_expected_elfclass () - { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null - } - ;; - no) - # 64-bit ABI. - acl_is_expected_elfclass () - { - expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null - } - ;; - *) - # Unknown. - acl_is_expected_elfclass () - { - : - } - ;; - esac - else - acl_is_expected_elfclass () - { - : - } - fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 +printf "%s\n" "$gl_cv_solaris_64bit" >&6; } + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 -printf %s "checking for the common suffixes of directories in the library search path... " >&6; } -if test ${acl_cv_libdirstems+y} -then : - printf %s "(cached) " >&6 -else $as_nop - acl_libdirstem=lib - acl_libdirstem2= - acl_libdirstem3= - case "$host_os" in - solaris*) - if test $HOST_CPU_C_ABI_32BIT = no; then - acl_libdirstem2=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem3=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; - esac - fi - ;; - netbsd*) - if test $HOST_CPU_C_ABI_32BIT != no; then - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparc ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test $HOST_CPU_C_ABI_32BIT != no; then - # 32-bit or unknown ABI. - if test -d /usr/lib32; then - acl_libdirstem2=lib32 - fi - fi - if test $HOST_CPU_C_ABI_32BIT != yes; then - # 64-bit or unknown ABI. - if test -d /usr/lib64; then - acl_libdirstem3=lib64 - fi - fi - if test -n "$searchpath"; then - acl_saved_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; - */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib32 ) acl_libdirstem2=lib32 ;; - */lib64 ) acl_libdirstem3=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_saved_IFS" - if test $HOST_CPU_C_ABI_32BIT = yes; then - # 32-bit ABI. - acl_libdirstem3= - fi - if test $HOST_CPU_C_ABI_32BIT = no; then - # 64-bit ABI. - acl_libdirstem2= - fi - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" - test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" - acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 -printf "%s\n" "$acl_cv_libdirstems" >&6; } - acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` - acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` - acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` @@ -22137,18 +21392,16 @@ printf "%s\n" "$acl_cv_libdirstems" >&6; } use_additional=yes - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. @@ -22160,35 +21413,29 @@ then : else if test "X$withval" = "X"; then - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" - additional_libdir2="$withval/$acl_libdirstem2" - additional_libdir3="$withval/$acl_libdirstem3" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi fi fi fi - if test "X$additional_libdir2" = "X$additional_libdir"; then - additional_libdir2= - fi - if test "X$additional_libdir3" = "X$additional_libdir"; then - additional_libdir3= - fi LIBICONV= LTLIBICONV= INCICONV= @@ -22234,68 +21481,62 @@ fi shrext= fi if test $use_additional = yes; then - for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do - if test "X$found_dir" = "X"; then - eval dir=\$$additional_libdir_variable - if test -n "$dir"; then - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi + found_so="$dir/$f" + break fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi + done fi fi - done + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else @@ -22305,14 +21546,14 @@ fi | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break @@ -22322,7 +21563,7 @@ fi fi fi if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi @@ -22344,8 +21585,7 @@ fi if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= @@ -22377,13 +21617,13 @@ fi haveit= for x in $LDFLAGS $LIBICONV; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes @@ -22424,13 +21664,6 @@ fi fi additional_includedir="$basedir/include" ;; - */$acl_libdirstem3 | */$acl_libdirstem3/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then @@ -22445,13 +21678,13 @@ fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes @@ -22467,23 +21700,21 @@ fi fi fi if test -n "$found_la"; then - saved_libdir="$libdir" + save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac - libdir="$saved_libdir" + libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) - dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= - if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; @@ -22494,43 +21725,43 @@ fi haveit= for x in $LDFLAGS $LIBICONV; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" - if test "X$x" = "X-L$dependency_libdir"; then + if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir" + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" - if test "X$x" = "X-L$dependency_libdir"; then + if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir" + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi @@ -22562,14 +21793,7 @@ fi fi ;; -l*) - dep=`echo "X$dep" | sed -e 's/^X-l//'` - if test "X$dep" != Xc \ - || case $host_os in - linux* | gnu* | k*bsd*-gnu) false ;; - *) true ;; - esac; then - names_next_round="$names_next_round $dep" - fi + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` @@ -22595,17 +21819,17 @@ fi for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done - acl_saved_libdir="$libdir" + acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" + libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do - acl_saved_libdir="$libdir" + acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" + libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi @@ -22622,14 +21846,7 @@ fi - gl_sed_double_backslashes='s/\\/\\\\/g' - gl_sed_escape_doublequotes='s/"/\\"/g' - gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" - gl_sed_escape_for_make_2='s,\$,\\$$,g' - case `echo r | tr -d '\r'` in - '') gl_tr_cr='\015' ;; - *) gl_tr_cr='\r' ;; - esac + @@ -22659,7 +21876,7 @@ if test ${gt_cv_func_CFPreferencesCopyAppValue+y} then : printf %s "(cached) " >&6 else $as_nop - gt_saved_LIBS="$LIBS" + gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -22680,7 +21897,7 @@ else $as_nop fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_saved_LIBS" + LIBS="$gt_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } @@ -22689,13 +21906,13 @@ printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5 -printf %s "checking for CFLocaleCopyPreferredLanguages... " >&6; } -if test ${gt_cv_func_CFLocaleCopyPreferredLanguages+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +printf %s "checking for CFLocaleCopyCurrent... " >&6; } +if test ${gt_cv_func_CFLocaleCopyCurrent+y} then : printf %s "(cached) " >&6 else $as_nop - gt_saved_LIBS="$LIBS" + gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -22703,32 +21920,31 @@ else $as_nop int main (void) { -CFLocaleCopyPreferredLanguages(); +CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : - gt_cv_func_CFLocaleCopyPreferredLanguages=yes + gt_cv_func_CFLocaleCopyCurrent=yes else $as_nop - gt_cv_func_CFLocaleCopyPreferredLanguages=no + gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_saved_LIBS" + LIBS="$gt_save_LIBS" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5 -printf "%s\n" "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; } - if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +printf "%s\n" "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then -printf "%s\n" "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h +printf "%s\n" "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ - || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi @@ -22778,21 +21994,16 @@ else $as_nop /* end confdefs.h. */ #include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +$gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code int main (void) { bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; @@ -22817,19 +22028,19 @@ printf "%s\n" "$ac_res" >&6; } - gl_saved_CPPFLAGS="$CPPFLAGS" + am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes @@ -22874,7 +22085,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then - gl_saved_LIBS="$LIBS" + am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -22899,7 +22110,7 @@ then : fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LIBS="$gl_saved_LIBS" + LIBS="$am_save_LIBS" fi fi @@ -22913,48 +22124,41 @@ then : printf %s "(cached) " >&6 else $as_nop - gl_saved_LIBS="$LIBS" + am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi - am_cv_func_iconv_works=no - for ac_iconv_const in '' 'const'; do - if test "$cross_compiling" = yes + if test "$cross_compiling" = yes then : - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac + + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac + else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include - -#ifndef ICONV_CONST -# define ICONV_CONST $ac_iconv_const -#endif - -int -main (void) +int main () { -int result = 0; - /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from - successful returns. This is even documented in - */ + int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { - static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; - ICONV_CONST char *inptr = input; + const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, - &inptr, &inbytesleft, + (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; @@ -22967,14 +22171,14 @@ int result = 0; iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { - static ICONV_CONST char input[] = "\263"; + static const char input[] = "\263"; char buf[10]; - ICONV_CONST char *inptr = input; + const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, - &inptr, &inbytesleft, + (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; @@ -22986,14 +22190,14 @@ int result = 0; iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { - static ICONV_CONST char input[] = "\304"; + static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; - ICONV_CONST char *inptr = input; + const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, + (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; @@ -23006,14 +22210,14 @@ int result = 0; iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { - static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; - ICONV_CONST char *inptr = input; + const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, + (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; @@ -23023,44 +22227,29 @@ int result = 0; #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ - { - /* Try standardized names. */ - iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); - /* Try IRIX, OSF/1 names. */ - iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); - /* Try AIX names. */ - iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); - /* Try HP-UX names. */ - iconv_t cd4 = iconv_open ("utf8", "eucJP"); - if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) - && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) - result |= 16; - if (cd1 != (iconv_t)(-1)) - iconv_close (cd1); - if (cd2 != (iconv_t)(-1)) - iconv_close (cd2); - if (cd3 != (iconv_t)(-1)) - iconv_close (cd3); - if (cd4 != (iconv_t)(-1)) - iconv_close (cd4); - } + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; return result; - - ; - return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : am_cv_func_iconv_works=yes +else $as_nop + am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - test "$am_cv_func_iconv_works" = no || break - done - LIBS="$gl_saved_LIBS" + LIBS="$am_save_LIBS" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 @@ -23083,7 +22272,7 @@ printf %s "checking how to link with libiconv... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 printf "%s\n" "$LIBICONV" >&6; } else - CPPFLAGS="$gl_saved_CPPFLAGS" + CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi @@ -23097,20 +22286,19 @@ printf "%s\n" "$LIBICONV" >&6; } + use_additional=yes - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. @@ -23122,35 +22310,29 @@ then : else if test "X$withval" = "X"; then - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" - additional_libdir2="$withval/$acl_libdirstem2" - additional_libdir3="$withval/$acl_libdirstem3" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi fi fi fi - if test "X$additional_libdir2" = "X$additional_libdir"; then - additional_libdir2= - fi - if test "X$additional_libdir3" = "X$additional_libdir"; then - additional_libdir3= - fi LIBINTL= LTLIBINTL= INCINTL= @@ -23196,68 +22378,62 @@ fi shrext= fi if test $use_additional = yes; then - for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do - if test "X$found_dir" = "X"; then - eval dir=\$$additional_libdir_variable - if test -n "$dir"; then - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi + found_so="$dir/$f" + break fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi + done fi fi - done + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else @@ -23267,14 +22443,14 @@ fi | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break @@ -23284,7 +22460,7 @@ fi fi fi if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi @@ -23306,8 +22482,7 @@ fi if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= @@ -23339,13 +22514,13 @@ fi haveit= for x in $LDFLAGS $LIBINTL; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes @@ -23386,13 +22561,6 @@ fi fi additional_includedir="$basedir/include" ;; - */$acl_libdirstem3 | */$acl_libdirstem3/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then @@ -23407,13 +22575,13 @@ fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes @@ -23429,23 +22597,21 @@ fi fi fi if test -n "$found_la"; then - saved_libdir="$libdir" + save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac - libdir="$saved_libdir" + libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) - dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= - if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; @@ -23456,43 +22622,43 @@ fi haveit= for x in $LDFLAGS $LIBINTL; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" - if test "X$x" = "X-L$dependency_libdir"; then + if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir" + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" - if test "X$x" = "X-L$dependency_libdir"; then + if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir" + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi @@ -23524,14 +22690,7 @@ fi fi ;; -l*) - dep=`echo "X$dep" | sed -e 's/^X-l//'` - if test "X$dep" != Xc \ - || case $host_os in - linux* | gnu* | k*bsd*-gnu) false ;; - *) true ;; - esac; then - names_next_round="$names_next_round $dep" - fi + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` @@ -23557,17 +22716,17 @@ fi for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done - acl_saved_libdir="$libdir" + acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" + libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do - acl_saved_libdir="$libdir" + acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_saved_libdir" + libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi @@ -23582,6 +22741,7 @@ fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 printf %s "checking for GNU gettext in libintl... " >&6; } if eval test \${$gt_func_gnugettext_libintl+y} @@ -23596,25 +22756,20 @@ else $as_nop /* end confdefs.h. */ #include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +$gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code int main (void) { bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; @@ -23628,37 +22783,26 @@ else $as_nop fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - gt_LIBINTL_EXTRA="$INTL_MACOSX_LIBS" - - case "$host_os" in - aix*) gt_LIBINTL_EXTRA="-lpthread" ;; - esac - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } \ - && { test -n "$LIBICONV" || test -n "$gt_LIBINTL_EXTRA"; }; then - LIBS="$LIBS $LIBICONV $gt_LIBINTL_EXTRA" + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +$gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code int main (void) { bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; @@ -23666,8 +22810,8 @@ return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION _ACEOF if ac_fn_c_try_link "$LINENO" then : - LIBINTL="$LIBINTL $LIBICONV $gt_LIBINTL_EXTRA" - LTLIBINTL="$LTLIBINTL $LTLIBICONV $gt_LIBINTL_EXTRA" + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi @@ -23685,8 +22829,7 @@ printf "%s\n" "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools \ - && test "$PACKAGE" != libintl; }; then + && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= @@ -23747,13 +22890,13 @@ printf "%s\n" "$LIBINTL" >&6; } haveit= for x in $CPPFLAGS; do - acl_saved_prefix="$prefix" + acl_save_prefix="$prefix" prefix="$acl_final_prefix" - acl_saved_exec_prefix="$exec_prefix" + acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" - exec_prefix="$acl_saved_exec_prefix" - prefix="$acl_saved_prefix" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes @@ -23780,8 +22923,7 @@ printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h - - INTLLIBS="$LIBINTL" + INTLLIBS="$LIBINTL" @@ -23789,43 +22931,6 @@ printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h - gt_save_prefix="${prefix}" - gt_save_datarootdir="${datarootdir}" - gt_save_localedir="${localedir}" - if test "X$prefix" = "XNONE"; then - prefix="$ac_default_prefix" - fi - eval datarootdir="$datarootdir" - eval localedir="$localedir" - - - - - - gl_final_localedir="$localedir" - case "$build_os" in - cygwin*) - case "$host_os" in - mingw* | windows*) - gl_final_localedir=`cygpath -w "$gl_final_localedir"` ;; - esac - ;; - esac - localedir_c=`printf '%s\n' "$gl_final_localedir" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes" | tr -d "$gl_tr_cr"` - localedir_c='"'"$localedir_c"'"' - - - localedir_c_make=`printf '%s\n' "$localedir_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2" | tr -d "$gl_tr_cr"` - if test "$localedir_c_make" = '\"'"${gl_final_localedir}"'\"'; then - localedir_c_make='\"$(localedir)\"' - fi - - - localedir="${gt_save_localedir}" - datarootdir="${gt_save_datarootdir}" - prefix="${gt_save_prefix}" - - # Check whether --enable-redhat-pthread-workaround was given. if test ${enable_redhat_pthread_workaround+y} @@ -23928,33 +23033,9 @@ esac - - - - # Check whether --enable-cross-guesses was given. -if test ${enable_cross_guesses+y} -then : - enableval=$enable_cross_guesses; if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-cross-guesses" >&5 -printf "%s\n" "$as_me: WARNING: invalid argument supplied to --enable-cross-guesses" >&2;} - enableval=conservative - fi - gl_cross_guesses="$enableval" -else $as_nop - gl_cross_guesses=conservative -fi - - if test $gl_cross_guesses = risky; then - gl_cross_guess_normal="guessing yes" - gl_cross_guess_inverted="guessing no" - else - gl_cross_guess_normal="guessing no" - gl_cross_guess_inverted="guessing yes" - fi LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ - # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 @@ -24109,6 +23190,8 @@ printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h fi + GNULIB_INET_NTOP=0; + GNULIB_INET_PTON=0; HAVE_DECL_INET_NTOP=1; HAVE_DECL_INET_PTON=1; REPLACE_INET_NTOP=0; @@ -24117,6 +23200,10 @@ fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 printf %s "checking whether the preprocessor supports include_next... " >&6; } if test ${gl_cv_have_include_next+y} @@ -24200,14 +23287,13 @@ printf "%s\n" "$gl_cv_have_include_next" >&6; } - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether source code line length is unlimited" >&5 -printf %s "checking whether source code line length is unlimited... " >&6; } -if test ${gl_cv_source_line_length_unlimited+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5 +printf %s "checking whether system header files limit the line length... " >&6; } +if test ${gl_cv_pragma_columns+y} then : printf %s "(cached) " >&6 else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __TANDEM @@ -24218,17 +23304,17 @@ _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "choke me" >/dev/null 2>&1 then : - gl_cv_source_line_length_unlimited=no + gl_cv_pragma_columns=yes else $as_nop - gl_cv_source_line_length_unlimited=yes + gl_cv_pragma_columns=no fi rm -rf conftest* fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_source_line_length_unlimited" >&5 -printf "%s\n" "$gl_cv_source_line_length_unlimited" >&6; } - if test $gl_cv_source_line_length_unlimited = no; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5 +printf "%s\n" "$gl_cv_pragma_columns" >&6; } + if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= @@ -24238,6 +23324,16 @@ printf "%s\n" "$gl_cv_source_line_length_unlimited" >&6; } + + + + + : + + + + + if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else @@ -24245,138 +23341,6 @@ printf "%s\n" "$gl_cv_source_line_length_unlimited" >&6; } fi - - - if test $ac_cv_header_sys_socket_h = no; then - ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" -if test "x$ac_cv_header_ws2tcpip_h" = xyes -then : - printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h - -fi - - fi - - - - - - if test $ac_cv_header_arpa_inet_h = yes; then - HAVE_ARPA_INET_H=1 - else - HAVE_ARPA_INET_H=0 - fi - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_arpa_inet_h='<'arpa/inet.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_arpa_inet_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_arpa_inet_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'arpa/inet.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_arpa_inet_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_arpa_inet_h - gl_cv_next_arpa_inet_h='"'$gl_header'"' - else - gl_cv_next_arpa_inet_h='<'arpa/inet.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_arpa_inet_h" >&5 -printf "%s\n" "$gl_cv_next_arpa_inet_h" >&6; } - fi - NEXT_ARPA_INET_H=$gl_cv_next_arpa_inet_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'arpa/inet.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_arpa_inet_h - fi - NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H=$gl_next_as_first_directive - - - - - - - - - - if test $ac_cv_header_sys_socket_h = yes; then - HAVE_WS2TCPIP_H=0 - else - if test $ac_cv_header_ws2tcpip_h = yes; then - HAVE_WS2TCPIP_H=1 - else - HAVE_WS2TCPIP_H=0 - fi - fi - - - - - - - - - - GL_GNULIB_INET_NTOP=0 - - - - GL_GNULIB_INET_PTON=0 - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 printf %s "checking for C/C++ restrict keyword... " >&6; } if test ${ac_cv_c_restrict+y} @@ -24428,6 +23392,45 @@ printf "%s\n" "$ac_cv_c_restrict" >&6; } esac + GNULIB_BTOWC=0; + GNULIB_WCTOB=0; + GNULIB_MBSINIT=0; + GNULIB_MBRTOWC=0; + GNULIB_MBRLEN=0; + GNULIB_MBSRTOWCS=0; + GNULIB_MBSNRTOWCS=0; + GNULIB_WCRTOMB=0; + GNULIB_WCSRTOMBS=0; + GNULIB_WCSNRTOMBS=0; + GNULIB_WCWIDTH=0; + GNULIB_WMEMCHR=0; + GNULIB_WMEMCMP=0; + GNULIB_WMEMCPY=0; + GNULIB_WMEMMOVE=0; + GNULIB_WMEMSET=0; + GNULIB_WCSLEN=0; + GNULIB_WCSNLEN=0; + GNULIB_WCSCPY=0; + GNULIB_WCPCPY=0; + GNULIB_WCSNCPY=0; + GNULIB_WCPNCPY=0; + GNULIB_WCSCAT=0; + GNULIB_WCSNCAT=0; + GNULIB_WCSCMP=0; + GNULIB_WCSNCMP=0; + GNULIB_WCSCASECMP=0; + GNULIB_WCSNCASECMP=0; + GNULIB_WCSCOLL=0; + GNULIB_WCSXFRM=0; + GNULIB_WCSDUP=0; + GNULIB_WCSCHR=0; + GNULIB_WCSRCHR=0; + GNULIB_WCSCSPN=0; + GNULIB_WCSSPN=0; + GNULIB_WCSPBRK=0; + GNULIB_WCSSTR=0; + GNULIB_WCSTOK=0; + GNULIB_WCSWIDTH=0; HAVE_BTOWC=1; HAVE_MBSINIT=1; HAVE_MBRTOWC=1; @@ -24441,7 +23444,6 @@ printf "%s\n" "$ac_cv_c_restrict" >&6; } HAVE_WMEMCMP=1; HAVE_WMEMCPY=1; HAVE_WMEMMOVE=1; - HAVE_WMEMPCPY=1; HAVE_WMEMSET=1; HAVE_WCSLEN=1; HAVE_WCSNLEN=1; @@ -24466,9 +23468,7 @@ printf "%s\n" "$ac_cv_c_restrict" >&6; } HAVE_WCSSTR=1; HAVE_WCSTOK=1; HAVE_WCSWIDTH=1; - HAVE_WCSFTIME=1; HAVE_DECL_WCTOB=1; - HAVE_DECL_WCSDUP=1; HAVE_DECL_WCWIDTH=1; REPLACE_MBSTATE_T=0; REPLACE_BTOWC=0; @@ -24483,65 +23483,66 @@ printf "%s\n" "$ac_cv_c_restrict" >&6; } REPLACE_WCSNRTOMBS=0; REPLACE_WCWIDTH=0; REPLACE_WCSWIDTH=0; - REPLACE_WCSFTIME=0; - REPLACE_WCSTOK=0; - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 printf %s "checking whether uses 'inline' correctly... " >&6; } if test ${gl_cv_header_wchar_h_correct_inline+y} then : printf %s "(cached) " >&6 else $as_nop gl_cv_header_wchar_h_correct_inline=yes - case "$host_os" in - *-gnu* | gnu*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - - #define wcstod renamed_wcstod - #include - extern int zero (void); - int main () { return zero(); } + #define wcstod renamed_wcstod +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include +extern int zero (void); +int main () { return zero(); } _ACEOF - save_ac_compile="$ac_compile" - ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` - if echo '#include "conftest.c"' >conftest1.c \ - && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + mv conftest.$ac_objext conftest1.$ac_objext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - - #define wcstod renamed_wcstod - #include - int zero (void) { return 0; } + #define wcstod renamed_wcstod +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include +int zero (void) { return 0; } _ACEOF - ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` - if echo '#include "conftest.c"' >conftest2.c \ - && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then - : - else - gl_cv_header_wchar_h_correct_inline=no - fi - fi + mv conftest.$ac_objext conftest2.$ac_objext + if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then + : + else + gl_cv_header_wchar_h_correct_inline=no fi - ac_compile="$save_ac_compile" - rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext - ;; - esac + fi + fi + rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 @@ -24552,26 +23553,35 @@ This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of - , or + , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted." "$LINENO" 5 fi -ac_func= -for ac_item in $ac_func_c_list -do - if test $ac_func; then - ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func - if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then - echo "#define $ac_item 1" >> confdefs.h - fi - ac_func= - else - ac_func=$ac_item - fi + + + + + + for ac_func in $gl_func_list +do : + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi + done + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 printf %s "checking for nl_langinfo and CODESET... " >&6; } if test ${am_cv_langinfo_codeset+y} @@ -24630,14 +23640,8 @@ else $as_nop struct tm t; char buf[16]; int main () { - /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl - imitates locale dependent behaviour by looking at the environment - variables, and all locales use the UTF-8 encoding. */ -#if defined __BEOS__ || defined __HAIKU__ - return 1; -#else /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -24645,9 +23649,9 @@ int main () { if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -# else +#else if (setlocale (LC_ALL, "") == NULL) return 1; -# endif +#endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -24656,33 +23660,32 @@ int main () { some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -# if HAVE_LANGINFO_CODESET +#if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -# endif -# ifdef __CYGWIN__ +#endif +#ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -# endif +#endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; -# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ +#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; -# endif - return 0; #endif + return 0; } _ACEOF @@ -24751,1402 +23754,6 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; } - - GL_GNULIB_BTOWC=0 - - - - GL_GNULIB_WCTOB=0 - - - - GL_GNULIB_MBSINIT=0 - - - - GL_GNULIB_MBRTOWC=0 - - - - GL_GNULIB_MBRLEN=0 - - - - GL_GNULIB_MBSRTOWCS=0 - - - - GL_GNULIB_MBSNRTOWCS=0 - - - - GL_GNULIB_WCRTOMB=0 - - - - GL_GNULIB_WCSRTOMBS=0 - - - - GL_GNULIB_WCSNRTOMBS=0 - - - - GL_GNULIB_WCWIDTH=0 - - - - GL_GNULIB_WMEMCHR=0 - - - - GL_GNULIB_WMEMCMP=0 - - - - GL_GNULIB_WMEMCPY=0 - - - - GL_GNULIB_WMEMMOVE=0 - - - - GL_GNULIB_WMEMPCPY=0 - - - - GL_GNULIB_WMEMSET=0 - - - - GL_GNULIB_WCSLEN=0 - - - - GL_GNULIB_WCSNLEN=0 - - - - GL_GNULIB_WCSCPY=0 - - - - GL_GNULIB_WCPCPY=0 - - - - GL_GNULIB_WCSNCPY=0 - - - - GL_GNULIB_WCPNCPY=0 - - - - GL_GNULIB_WCSCAT=0 - - - - GL_GNULIB_WCSNCAT=0 - - - - GL_GNULIB_WCSCMP=0 - - - - GL_GNULIB_WCSNCMP=0 - - - - GL_GNULIB_WCSCASECMP=0 - - - - GL_GNULIB_WCSNCASECMP=0 - - - - GL_GNULIB_WCSCOLL=0 - - - - GL_GNULIB_WCSXFRM=0 - - - - GL_GNULIB_WCSDUP=0 - - - - GL_GNULIB_WCSCHR=0 - - - - GL_GNULIB_WCSRCHR=0 - - - - GL_GNULIB_WCSCSPN=0 - - - - GL_GNULIB_WCSSPN=0 - - - - GL_GNULIB_WCSPBRK=0 - - - - GL_GNULIB_WCSSTR=0 - - - - GL_GNULIB_WCSTOK=0 - - - - GL_GNULIB_WCSWIDTH=0 - - - - GL_GNULIB_WCSFTIME=0 - - - - GL_GNULIB_MDA_WCSDUP=1 - - - - - - GL_GNULIB__EXIT=0 - - - - GL_GNULIB_ALIGNED_ALLOC=0 - - - - GL_GNULIB_ATOLL=0 - - - - GL_GNULIB_CALLOC_GNU=0 - - - - GL_GNULIB_CALLOC_POSIX=0 - - - - GL_GNULIB_CANONICALIZE_FILE_NAME=0 - - - - GL_GNULIB_FREE_POSIX=0 - - - - GL_GNULIB_GETLOADAVG=0 - - - - GL_GNULIB_GETSUBOPT=0 - - - - GL_GNULIB_GRANTPT=0 - - - - GL_GNULIB_MALLOC_GNU=0 - - - - GL_GNULIB_MALLOC_POSIX=0 - - - - GL_GNULIB_MBTOWC=0 - - - - GL_GNULIB_MKDTEMP=0 - - - - GL_GNULIB_MKOSTEMP=0 - - - - GL_GNULIB_MKOSTEMPS=0 - - - - GL_GNULIB_MKSTEMP=0 - - - - GL_GNULIB_MKSTEMPS=0 - - - - GL_GNULIB_POSIX_MEMALIGN=0 - - - - GL_GNULIB_POSIX_OPENPT=0 - - - - GL_GNULIB_PTSNAME=0 - - - - GL_GNULIB_PTSNAME_R=0 - - - - GL_GNULIB_PUTENV=0 - - - - GL_GNULIB_QSORT_R=0 - - - - GL_GNULIB_RANDOM=0 - - - - GL_GNULIB_RANDOM_R=0 - - - - GL_GNULIB_REALLOCARRAY=0 - - - - GL_GNULIB_REALLOC_GNU=0 - - - - GL_GNULIB_REALLOC_POSIX=0 - - - - GL_GNULIB_REALPATH=0 - - - - GL_GNULIB_RPMATCH=0 - - - - GL_GNULIB_SECURE_GETENV=0 - - - - GL_GNULIB_SETENV=0 - - - - GL_GNULIB_STRTOD=0 - - - - GL_GNULIB_STRTOL=0 - - - - GL_GNULIB_STRTOLD=0 - - - - GL_GNULIB_STRTOLL=0 - - - - GL_GNULIB_STRTOUL=0 - - - - GL_GNULIB_STRTOULL=0 - - - - GL_GNULIB_SYSTEM_POSIX=0 - - - - GL_GNULIB_UNLOCKPT=0 - - - - GL_GNULIB_UNSETENV=0 - - - - GL_GNULIB_WCTOMB=0 - - - - GL_GNULIB_MDA_ECVT=1 - - - - GL_GNULIB_MDA_FCVT=1 - - - - GL_GNULIB_MDA_GCVT=1 - - - - GL_GNULIB_MDA_MKTEMP=1 - - - - GL_GNULIB_MDA_PUTENV=1 - - - - - HAVE__EXIT=1; - HAVE_ALIGNED_ALLOC=1; - HAVE_ATOLL=1; - HAVE_CANONICALIZE_FILE_NAME=1; - HAVE_DECL_ECVT=1; - HAVE_DECL_FCVT=1; - HAVE_DECL_GCVT=1; - HAVE_DECL_GETLOADAVG=1; - HAVE_GETSUBOPT=1; - HAVE_GRANTPT=1; - HAVE_INITSTATE=1; - HAVE_DECL_INITSTATE=1; - HAVE_MBTOWC=1; - HAVE_MKDTEMP=1; - HAVE_MKOSTEMP=1; - HAVE_MKOSTEMPS=1; - HAVE_MKSTEMP=1; - HAVE_MKSTEMPS=1; - HAVE_POSIX_MEMALIGN=1; - HAVE_POSIX_OPENPT=1; - HAVE_PTSNAME=1; - HAVE_PTSNAME_R=1; - HAVE_QSORT_R=1; - HAVE_RANDOM=1; - HAVE_RANDOM_H=1; - HAVE_RANDOM_R=1; - HAVE_REALLOCARRAY=1; - HAVE_REALPATH=1; - HAVE_RPMATCH=1; - HAVE_SECURE_GETENV=1; - HAVE_SETENV=1; - HAVE_DECL_SETENV=1; - HAVE_SETSTATE=1; - HAVE_DECL_SETSTATE=1; - HAVE_STRTOD=1; - HAVE_STRTOL=1; - HAVE_STRTOLD=1; - HAVE_STRTOLL=1; - HAVE_STRTOUL=1; - HAVE_STRTOULL=1; - HAVE_STRUCT_RANDOM_DATA=1; - HAVE_SYS_LOADAVG_H=0; - HAVE_UNLOCKPT=1; - HAVE_DECL_UNSETENV=1; - REPLACE_ALIGNED_ALLOC=0; - REPLACE_CALLOC_FOR_CALLOC_GNU=0; - REPLACE_CALLOC_FOR_CALLOC_POSIX=0; - REPLACE_CANONICALIZE_FILE_NAME=0; - REPLACE_FREE=0; - REPLACE_INITSTATE=0; - REPLACE_MALLOC_FOR_MALLOC_GNU=0; - REPLACE_MALLOC_FOR_MALLOC_POSIX=0; - REPLACE_MBTOWC=0; - REPLACE_MKSTEMP=0; - REPLACE_POSIX_MEMALIGN=0; - REPLACE_PTSNAME=0; - REPLACE_PTSNAME_R=0; - REPLACE_PUTENV=0; - REPLACE_QSORT_R=0; - REPLACE_RANDOM=0; - REPLACE_RANDOM_R=0; - REPLACE_REALLOC_FOR_REALLOC_GNU=0; - REPLACE_REALLOC_FOR_REALLOC_POSIX=0; - REPLACE_REALLOCARRAY=0; - REPLACE_REALPATH=0; - REPLACE_SETENV=0; - REPLACE_SETSTATE=0; - REPLACE_STRTOD=0; - REPLACE_STRTOL=0; - REPLACE_STRTOLD=0; - REPLACE_STRTOLL=0; - REPLACE_STRTOUL=0; - REPLACE_STRTOULL=0; - REPLACE_UNSETENV=0; - REPLACE_WCTOMB=0; - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc is ptrdiff_t safe" >&5 -printf %s "checking whether malloc is ptrdiff_t safe... " >&6; } -if test ${gl_cv_malloc_ptrdiff+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -/* 64-bit ptrdiff_t is so wide that no practical platform - can exceed it. */ - #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) - - /* On rare machines where size_t fits in ptrdiff_t there - is no problem. */ - #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) - - /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t - bounds even on 32-bit platforms. We don't know which - non-glibc systems are safe. */ - #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) - - #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE - return 0; - #else - #error "malloc might not be ptrdiff_t safe" - syntax error - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_malloc_ptrdiff=yes -else $as_nop - gl_cv_malloc_ptrdiff=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_malloc_ptrdiff" >&5 -printf "%s\n" "$gl_cv_malloc_ptrdiff" >&6; } - - - - - test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1 - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc set errno on failure" >&5 -printf %s "checking whether malloc, realloc, calloc set errno on failure... " >&6; } -if test ${gl_cv_func_malloc_posix+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - case "$host_os" in - mingw*) - gl_cv_func_malloc_posix=no ;; - irix* | solaris*) - - gl_cv_func_malloc_posix=no ;; - *) - gl_cv_func_malloc_posix=yes ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 -printf "%s\n" "$gl_cv_func_malloc_posix" >&6; } - - - - - - if test "$gl_cv_func_malloc_posix" = yes; then - -printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h - - else - REPLACE_MALLOC_FOR_MALLOC_POSIX=1 - fi - - - - - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then - REPLACE_CALLOC_FOR_CALLOC_POSIX=1 - fi - - - HAVE_CHOWN=1; - HAVE_COPY_FILE_RANGE=1; - HAVE_DUP3=1; - HAVE_EUIDACCESS=1; - HAVE_EXECVPE=1; - HAVE_FACCESSAT=1; - HAVE_FCHDIR=1; - HAVE_FCHOWNAT=1; - HAVE_FDATASYNC=1; - HAVE_FSYNC=1; - HAVE_FTRUNCATE=1; - HAVE_GETDTABLESIZE=1; - HAVE_GETENTROPY=1; - HAVE_GETGROUPS=1; - HAVE_GETHOSTNAME=1; - HAVE_GETLOGIN=1; - HAVE_GETPAGESIZE=1; - HAVE_GETPASS=1; - HAVE_GROUP_MEMBER=1; - HAVE_LCHOWN=1; - HAVE_LINK=1; - HAVE_LINKAT=1; - HAVE_PIPE=1; - HAVE_PIPE2=1; - HAVE_PREAD=1; - HAVE_PWRITE=1; - HAVE_READLINK=1; - HAVE_READLINKAT=1; - HAVE_SETHOSTNAME=1; - HAVE_SLEEP=1; - HAVE_SYMLINK=1; - HAVE_SYMLINKAT=1; - HAVE_UNLINKAT=1; - HAVE_USLEEP=1; - HAVE_DECL_ENVIRON=1; - HAVE_DECL_EXECVPE=1; - HAVE_DECL_FCHDIR=1; - HAVE_DECL_FDATASYNC=1; - HAVE_DECL_GETDOMAINNAME=1; - HAVE_DECL_GETLOGIN=1; - HAVE_DECL_GETLOGIN_R=1; - HAVE_DECL_GETPAGESIZE=1; - HAVE_DECL_GETUSERSHELL=1; - HAVE_DECL_SETHOSTNAME=1; - HAVE_DECL_TRUNCATE=1; - HAVE_DECL_TTYNAME_R=1; - HAVE_OS_H=0; - HAVE_SYS_PARAM_H=0; - REPLACE_ACCESS=0; - REPLACE_CHOWN=0; - REPLACE_CLOSE=0; - REPLACE_COPY_FILE_RANGE=0; - REPLACE_DUP=0; - REPLACE_DUP2=0; - REPLACE_EXECL=0; - REPLACE_EXECLE=0; - REPLACE_EXECLP=0; - REPLACE_EXECV=0; - REPLACE_EXECVE=0; - REPLACE_EXECVP=0; - REPLACE_EXECVPE=0; - REPLACE_FACCESSAT=0; - REPLACE_FCHOWNAT=0; - REPLACE_FTRUNCATE=0; - REPLACE_GETCWD=0; - REPLACE_GETDOMAINNAME=0; - REPLACE_GETDTABLESIZE=0; - REPLACE_GETLOGIN_R=0; - REPLACE_GETGROUPS=0; - REPLACE_GETPAGESIZE=0; - REPLACE_GETPASS=0; - REPLACE_GETPASS_FOR_GETPASS_GNU=0; - REPLACE_ISATTY=0; - REPLACE_LCHOWN=0; - REPLACE_LINK=0; - REPLACE_LINKAT=0; - REPLACE_LSEEK=0; - REPLACE_PREAD=0; - REPLACE_PWRITE=0; - REPLACE_READ=0; - REPLACE_READLINK=0; - REPLACE_READLINKAT=0; - REPLACE_RMDIR=0; - REPLACE_SLEEP=0; - REPLACE_SYMLINK=0; - REPLACE_SYMLINKAT=0; - REPLACE_TRUNCATE=0; - REPLACE_TTYNAME_R=0; - REPLACE_UNLINK=0; - REPLACE_UNLINKAT=0; - REPLACE_USLEEP=0; - REPLACE_WRITE=0; - UNISTD_H_HAVE_SYS_RANDOM_H=0; - UNISTD_H_HAVE_WINSOCK2_H=0; - UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; - - - - - - if test $ac_cv_func__set_invalid_parameter_handler = yes; then - HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 - -printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h - - else - HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 - fi - - - - - GL_GNULIB_ACCESS=0 - - - - GL_GNULIB_CHDIR=0 - - - - GL_GNULIB_CHOWN=0 - - - - GL_GNULIB_CLOSE=0 - - - - GL_GNULIB_COPY_FILE_RANGE=0 - - - - GL_GNULIB_DUP=0 - - - - GL_GNULIB_DUP2=0 - - - - GL_GNULIB_DUP3=0 - - - - GL_GNULIB_ENVIRON=0 - - - - GL_GNULIB_EUIDACCESS=0 - - - - GL_GNULIB_EXECL=0 - - - - GL_GNULIB_EXECLE=0 - - - - GL_GNULIB_EXECLP=0 - - - - GL_GNULIB_EXECV=0 - - - - GL_GNULIB_EXECVE=0 - - - - GL_GNULIB_EXECVP=0 - - - - GL_GNULIB_EXECVPE=0 - - - - GL_GNULIB_FACCESSAT=0 - - - - GL_GNULIB_FCHDIR=0 - - - - GL_GNULIB_FCHOWNAT=0 - - - - GL_GNULIB_FDATASYNC=0 - - - - GL_GNULIB_FSYNC=0 - - - - GL_GNULIB_FTRUNCATE=0 - - - - GL_GNULIB_GETCWD=0 - - - - GL_GNULIB_GETDOMAINNAME=0 - - - - GL_GNULIB_GETDTABLESIZE=0 - - - - GL_GNULIB_GETENTROPY=0 - - - - GL_GNULIB_GETGROUPS=0 - - - - GL_GNULIB_GETHOSTNAME=0 - - - - GL_GNULIB_GETLOGIN=0 - - - - GL_GNULIB_GETLOGIN_R=0 - - - - GL_GNULIB_GETOPT_POSIX=0 - - - - GL_GNULIB_GETPAGESIZE=0 - - - - GL_GNULIB_GETPASS=0 - - - - GL_GNULIB_GETPASS_GNU=0 - - - - GL_GNULIB_GETUSERSHELL=0 - - - - GL_GNULIB_GROUP_MEMBER=0 - - - - GL_GNULIB_ISATTY=0 - - - - GL_GNULIB_LCHOWN=0 - - - - GL_GNULIB_LINK=0 - - - - GL_GNULIB_LINKAT=0 - - - - GL_GNULIB_LSEEK=0 - - - - GL_GNULIB_PIPE=0 - - - - GL_GNULIB_PIPE2=0 - - - - GL_GNULIB_PREAD=0 - - - - GL_GNULIB_PWRITE=0 - - - - GL_GNULIB_READ=0 - - - - GL_GNULIB_READLINK=0 - - - - GL_GNULIB_READLINKAT=0 - - - - GL_GNULIB_RMDIR=0 - - - - GL_GNULIB_SETHOSTNAME=0 - - - - GL_GNULIB_SLEEP=0 - - - - GL_GNULIB_SYMLINK=0 - - - - GL_GNULIB_SYMLINKAT=0 - - - - GL_GNULIB_TRUNCATE=0 - - - - GL_GNULIB_TTYNAME_R=0 - - - - GL_GNULIB_UNISTD_H_GETOPT=0 - - - - GL_GNULIB_UNISTD_H_NONBLOCKING=0 - - - - GL_GNULIB_UNISTD_H_SIGPIPE=0 - - - - GL_GNULIB_UNLINK=0 - - - - GL_GNULIB_UNLINKAT=0 - - - - GL_GNULIB_USLEEP=0 - - - - GL_GNULIB_WRITE=0 - - - - GL_GNULIB_MDA_ACCESS=1 - - - - GL_GNULIB_MDA_CHDIR=1 - - - - GL_GNULIB_MDA_CLOSE=1 - - - - GL_GNULIB_MDA_DUP=1 - - - - GL_GNULIB_MDA_DUP2=1 - - - - GL_GNULIB_MDA_EXECL=1 - - - - GL_GNULIB_MDA_EXECLE=1 - - - - GL_GNULIB_MDA_EXECLP=1 - - - - GL_GNULIB_MDA_EXECV=1 - - - - GL_GNULIB_MDA_EXECVE=1 - - - - GL_GNULIB_MDA_EXECVP=1 - - - - GL_GNULIB_MDA_EXECVPE=1 - - - - GL_GNULIB_MDA_GETCWD=1 - - - - GL_GNULIB_MDA_GETPID=1 - - - - GL_GNULIB_MDA_ISATTY=1 - - - - GL_GNULIB_MDA_LSEEK=1 - - - - GL_GNULIB_MDA_READ=1 - - - - GL_GNULIB_MDA_RMDIR=1 - - - - GL_GNULIB_MDA_SWAB=1 - - - - GL_GNULIB_MDA_UNLINK=1 - - - - GL_GNULIB_MDA_WRITE=1 - - - - - HAVE_STRUCT_SOCKADDR_STORAGE=1; - HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; - - HAVE_SA_FAMILY_T=1; - HAVE_ACCEPT4=1; - - - - - - case "$host_os" in - osf*) - -printf "%s\n" "#define _POSIX_PII_SOCKET 1" >>confdefs.h - - ;; - esac - - GL_GENERATE_SYS_SOCKET_H=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 -printf %s "checking whether is self-contained... " >&6; } -if test ${gl_cv_header_sys_socket_h_selfcontained+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_sys_socket_h_selfcontained=yes -else $as_nop - gl_cv_header_sys_socket_h_selfcontained=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 -printf "%s\n" "$gl_cv_header_sys_socket_h_selfcontained" >&6; } - if test $gl_cv_header_sys_socket_h_selfcontained = yes; then - ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" -if test "x$ac_cv_func_shutdown" = xyes -then : - printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h - -fi - - if test $ac_cv_func_shutdown = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 -printf %s "checking whether defines the SHUT_* macros... " >&6; } -if test ${gl_cv_header_sys_socket_h_shut+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_sys_socket_h_shut=yes -else $as_nop - gl_cv_header_sys_socket_h_shut=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5 -printf "%s\n" "$gl_cv_header_sys_socket_h_shut" >&6; } - if test $gl_cv_header_sys_socket_h_shut = no; then - GL_GENERATE_SYS_SOCKET_H=true - fi - fi - fi - # We need to check for ws2tcpip.h now. - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_sys_socket_h='<'sys/socket.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_sys_socket_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_sys_socket_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'sys/socket.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_sys_socket_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_sys_socket_h - gl_cv_next_sys_socket_h='"'$gl_header'"' - else - gl_cv_next_sys_socket_h='<'sys/socket.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5 -printf "%s\n" "$gl_cv_next_sys_socket_h" >&6; } - fi - NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'sys/socket.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_sys_socket_h - fi - NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive - - - - - if test $ac_cv_header_sys_socket_h = yes; then - HAVE_SYS_SOCKET_H=1 - else - HAVE_SYS_SOCKET_H=0 - fi - - - - if test $ac_cv_header_sys_socket_h = yes; then - HAVE_WS2TCPIP_H=0 - else - if test $ac_cv_header_ws2tcpip_h = yes; then - HAVE_WS2TCPIP_H=1 - else - HAVE_WS2TCPIP_H=0 - fi - fi - - - - ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " - /* sys/types.h is not needed according to POSIX, but the - sys/socket.h in i386-unknown-freebsd4.10 and - powerpc-apple-darwin5.5 required it. */ -#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_WS2TCPIP_H -#include -#endif - -" -if test "x$ac_cv_type_struct_sockaddr_storage" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h - - -fi -ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" " - /* sys/types.h is not needed according to POSIX, but the - sys/socket.h in i386-unknown-freebsd4.10 and - powerpc-apple-darwin5.5 required it. */ -#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_WS2TCPIP_H -#include -#endif - -" -if test "x$ac_cv_type_sa_family_t" = xyes -then : - -printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h - - -fi - - if test $ac_cv_type_struct_sockaddr_storage = no; then - HAVE_STRUCT_SOCKADDR_STORAGE=0 - fi - if test $ac_cv_type_sa_family_t = no; then - HAVE_SA_FAMILY_T=0 - fi - if test $ac_cv_type_struct_sockaddr_storage != no; then - ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include - #ifdef HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_WS2TCPIP_H - #include - #endif - -" -if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h - - -else $as_nop - HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 -fi - - fi - if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ - || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then - GL_GENERATE_SYS_SOCKET_H=true - fi - - - - - if test $ac_cv_header_sys_socket_h != yes; then - ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" -if test "x$ac_cv_header_winsock2_h" = xyes -then : - printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h - -fi - - fi - if test "$ac_cv_header_winsock2_h" = yes; then - HAVE_WINSOCK2_H=1 - UNISTD_H_HAVE_WINSOCK2_H=1 - SYS_IOCTL_H_HAVE_WINSOCK2_H=1 - else - HAVE_WINSOCK2_H=0 - fi - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -printf %s "checking for inline... " >&6; } -if test ${ac_cv_c_inline+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo (void) {return 0; } -$ac_kw foo_t foo (void) {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -printf "%s\n" "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether linux/if_alg.h has struct sockaddr_alg." >&5 -printf %s "checking whether linux/if_alg.h has struct sockaddr_alg.... " >&6; } -if test ${gl_cv_header_linux_if_alg_salg+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - struct sockaddr_alg salg = { - .salg_family = AF_ALG, - .salg_type = "hash", - .salg_name = "sha1", - }; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_linux_if_alg_salg=yes -else $as_nop - gl_cv_header_linux_if_alg_salg=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_linux_if_alg_salg" >&5 -printf "%s\n" "$gl_cv_header_linux_if_alg_salg" >&6; } - if test "$gl_cv_header_linux_if_alg_salg" = yes; then - -printf "%s\n" "#define HAVE_LINUX_IF_ALG_H 1" >>confdefs.h - - fi - - use_af_alg=no - -# Check whether --with-linux-crypto was given. -if test ${with_linux_crypto+y} -then : - withval=$with_linux_crypto; use_af_alg=$withval -else $as_nop - use_af_alg=no -fi - - if test "$gl_cv_header_linux_if_alg_salg" != yes; then - if test "$use_af_alg" != no; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Linux kernel cryptographic API not found" >&5 -printf "%s\n" "$as_me: WARNING: Linux kernel cryptographic API not found" >&2;} - fi - use_af_alg=no - fi - - if test "$use_af_alg" != no; then - USE_AF_ALG=1 - else - USE_AF_ALG=0 - fi - -printf "%s\n" "#define USE_LINUX_CRYPTO_API $USE_AF_ALG" >>confdefs.h - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 printf %s "checking whether byte ordering is bigendian... " >&6; } if test ${ac_cv_c_bigendian+y} @@ -26381,62 +23988,185 @@ printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h esac -gl_mda_defines=' -#if defined _WIN32 && !defined __CYGWIN__ -#define access _access -#define chdir _chdir -#define chmod _chmod -#define close _close -#define creat _creat -#define dup _dup -#define dup2 _dup2 -#define ecvt _ecvt -#define execl _execl -#define execle _execle -#define execlp _execlp -#define execv _execv -#define execve _execve -#define execvp _execvp -#define execvpe _execvpe -#define fcloseall _fcloseall -#define fcvt _fcvt -#define fdopen _fdopen -#define fileno _fileno -#define gcvt _gcvt -#define getcwd _getcwd -#define getpid _getpid -#define getw _getw -#define isatty _isatty -#define j0 _j0 -#define j1 _j1 -#define jn _jn -#define lfind _lfind -#define lsearch _lsearch -#define lseek _lseek -#define memccpy _memccpy -#define mkdir _mkdir -#define mktemp _mktemp -#define open _open -#define putenv _putenv -#define putw _putw -#define read _read -#define rmdir _rmdir -#define strdup _strdup -#define swab _swab -#define tempnam _tempnam -#define tzset _tzset -#define umask _umask -#define unlink _unlink -#define utime _utime -#define wcsdup _wcsdup -#define write _write -#define y0 _y0 -#define y1 _y1 -#define yn _yn -#endif -' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 +printf %s "checking whether // is distinct from /... " >&6; } +if test ${gl_cv_double_slash_root+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test x"$cross_compiling" = xyes ; then + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # . + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac + else + set x `ls -di / // 2>/dev/null` + if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 +printf "%s\n" "$gl_cv_double_slash_root" >&6; } + if test "$gl_cv_double_slash_root" = yes; then + +printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h + + fi + + + + + + + GNULIB_CHDIR=0; + GNULIB_CHOWN=0; + GNULIB_CLOSE=0; + GNULIB_DUP=0; + GNULIB_DUP2=0; + GNULIB_DUP3=0; + GNULIB_ENVIRON=0; + GNULIB_EUIDACCESS=0; + GNULIB_FACCESSAT=0; + GNULIB_FCHDIR=0; + GNULIB_FCHOWNAT=0; + GNULIB_FDATASYNC=0; + GNULIB_FSYNC=0; + GNULIB_FTRUNCATE=0; + GNULIB_GETCWD=0; + GNULIB_GETDOMAINNAME=0; + GNULIB_GETDTABLESIZE=0; + GNULIB_GETGROUPS=0; + GNULIB_GETHOSTNAME=0; + GNULIB_GETLOGIN=0; + GNULIB_GETLOGIN_R=0; + GNULIB_GETPAGESIZE=0; + GNULIB_GETUSERSHELL=0; + GNULIB_GROUP_MEMBER=0; + GNULIB_ISATTY=0; + GNULIB_LCHOWN=0; + GNULIB_LINK=0; + GNULIB_LINKAT=0; + GNULIB_LSEEK=0; + GNULIB_PIPE=0; + GNULIB_PIPE2=0; + GNULIB_PREAD=0; + GNULIB_PWRITE=0; + GNULIB_READ=0; + GNULIB_READLINK=0; + GNULIB_READLINKAT=0; + GNULIB_RMDIR=0; + GNULIB_SETHOSTNAME=0; + GNULIB_SLEEP=0; + GNULIB_SYMLINK=0; + GNULIB_SYMLINKAT=0; + GNULIB_TTYNAME_R=0; + GNULIB_UNISTD_H_NONBLOCKING=0; + GNULIB_UNISTD_H_SIGPIPE=0; + GNULIB_UNLINK=0; + GNULIB_UNLINKAT=0; + GNULIB_USLEEP=0; + GNULIB_WRITE=0; + HAVE_CHOWN=1; + HAVE_DUP2=1; + HAVE_DUP3=1; + HAVE_EUIDACCESS=1; + HAVE_FACCESSAT=1; + HAVE_FCHDIR=1; + HAVE_FCHOWNAT=1; + HAVE_FDATASYNC=1; + HAVE_FSYNC=1; + HAVE_FTRUNCATE=1; + HAVE_GETDTABLESIZE=1; + HAVE_GETGROUPS=1; + HAVE_GETHOSTNAME=1; + HAVE_GETLOGIN=1; + HAVE_GETPAGESIZE=1; + HAVE_GROUP_MEMBER=1; + HAVE_LCHOWN=1; + HAVE_LINK=1; + HAVE_LINKAT=1; + HAVE_PIPE=1; + HAVE_PIPE2=1; + HAVE_PREAD=1; + HAVE_PWRITE=1; + HAVE_READLINK=1; + HAVE_READLINKAT=1; + HAVE_SETHOSTNAME=1; + HAVE_SLEEP=1; + HAVE_SYMLINK=1; + HAVE_SYMLINKAT=1; + HAVE_UNLINKAT=1; + HAVE_USLEEP=1; + HAVE_DECL_ENVIRON=1; + HAVE_DECL_FCHDIR=1; + HAVE_DECL_FDATASYNC=1; + HAVE_DECL_GETDOMAINNAME=1; + HAVE_DECL_GETLOGIN_R=1; + HAVE_DECL_GETPAGESIZE=1; + HAVE_DECL_GETUSERSHELL=1; + HAVE_DECL_SETHOSTNAME=1; + HAVE_DECL_TTYNAME_R=1; + HAVE_OS_H=0; + HAVE_SYS_PARAM_H=0; + REPLACE_CHOWN=0; + REPLACE_CLOSE=0; + REPLACE_DUP=0; + REPLACE_DUP2=0; + REPLACE_FCHOWNAT=0; + REPLACE_FTRUNCATE=0; + REPLACE_GETCWD=0; + REPLACE_GETDOMAINNAME=0; + REPLACE_GETLOGIN_R=0; + REPLACE_GETGROUPS=0; + REPLACE_GETPAGESIZE=0; + REPLACE_ISATTY=0; + REPLACE_LCHOWN=0; + REPLACE_LINK=0; + REPLACE_LINKAT=0; + REPLACE_LSEEK=0; + REPLACE_PREAD=0; + REPLACE_PWRITE=0; + REPLACE_READ=0; + REPLACE_READLINK=0; + REPLACE_RMDIR=0; + REPLACE_SLEEP=0; + REPLACE_SYMLINK=0; + REPLACE_TTYNAME_R=0; + REPLACE_UNLINK=0; + REPLACE_UNLINKAT=0; + REPLACE_USLEEP=0; + REPLACE_WRITE=0; + UNISTD_H_HAVE_WINSOCK2_H=0; + UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + + + + + + + + + + + + + : + @@ -26445,11 +24175,12 @@ gl_mda_defines=' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 printf %s "checking if environ is properly declared... " >&6; } -if test ${gt_cv_var_environ_declaration+y} + if test ${gt_cv_var_environ_declaration+y} then : printf %s "(cached) " >&6 else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H #include @@ -26457,8 +24188,7 @@ else $as_nop /* mingw, BeOS, Haiku declare environ in , not in . */ #include - typedef struct { int foo; } foo_t; - extern foo_t environ; + extern struct { int foo; } environ; int main (void) { @@ -26475,7 +24205,8 @@ else $as_nop fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 printf "%s\n" "$gt_cv_var_environ_declaration" >&6; } if test $gt_cv_var_environ_declaration = yes; then @@ -26568,7 +24299,7 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 printf "%s\n" "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then - GL_GENERATE_ERRNO_H=false + ERRNO_H='' else @@ -26588,40 +24319,36 @@ then : printf %s "(cached) " >&6 else $as_nop - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'errno.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_errno_h - gl_cv_next_errno_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'errno.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' fi @@ -26642,10 +24369,19 @@ printf "%s\n" "$gl_cv_next_errno_h" >&6; } - GL_GENERATE_ERRNO_H=true + ERRNO_H='errno.h' fi - if $GL_GENERATE_ERRNO_H; then + if test -n "$ERRNO_H"; then + GL_GENERATE_ERRNO_H_TRUE= + GL_GENERATE_ERRNO_H_FALSE='#' +else + GL_GENERATE_ERRNO_H_TRUE='#' + GL_GENERATE_ERRNO_H_FALSE= +fi + + + if test -n "$ERRNO_H"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 printf %s "checking for EMULTIHOP value... " >&6; } if test ${gl_cv_header_errno_h_EMULTIHOP+y} @@ -26720,7 +24456,7 @@ printf "%s\n" "$gl_cv_header_errno_h_EMULTIHOP" >&6; } fi - if $GL_GENERATE_ERRNO_H; then + if test -n "$ERRNO_H"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 printf %s "checking for ENOLINK value... " >&6; } if test ${gl_cv_header_errno_h_ENOLINK+y} @@ -26795,7 +24531,7 @@ printf "%s\n" "$gl_cv_header_errno_h_ENOLINK" >&6; } fi - if $GL_GENERATE_ERRNO_H; then + if test -n "$ERRNO_H"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 printf %s "checking for EOVERFLOW value... " >&6; } if test ${gl_cv_header_errno_h_EOVERFLOW+y} @@ -26870,7 +24606,8 @@ printf "%s\n" "$gl_cv_header_errno_h_EOVERFLOW" >&6; } fi -ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" + + ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_strerror_r" = xyes then : ac_have_decl=1 @@ -26880,6 +24617,13 @@ fi printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h + + : + + + + + if test $ac_cv_have_decl_strerror_r = yes; then # For backward compatibility's sake, define HAVE_STRERROR_R. # (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well @@ -26935,622 +24679,104 @@ fi XGETTEXT_EXTRA_OPTIONS= - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ctype.h defines __header_inline" >&5 -printf %s "checking whether ctype.h defines __header_inline... " >&6; } -if test ${gl_cv_have___header_inline+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifndef __header_inline - #error " does not define __header_inline" - #endif - -_ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : - gl_cv_have___header_inline=yes -else $as_nop - gl_cv_have___header_inline=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___header_inline" >&5 -printf "%s\n" "$gl_cv_have___header_inline" >&6; } - if test "$gl_cv_have___header_inline" = yes; then - -printf "%s\n" "#define HAVE___HEADER_INLINE 1" >>confdefs.h - - fi - - - - - HAVE_FCNTL=1; - HAVE_OPENAT=1; - REPLACE_CREAT=0; - REPLACE_FCNTL=0; - REPLACE_OPEN=0; - REPLACE_OPENAT=0; - - - - - GL_GNULIB_CREAT=0 - - - - GL_GNULIB_FCNTL=0 - - - - GL_GNULIB_NONBLOCKING=0 - - - - GL_GNULIB_OPEN=0 - - - - GL_GNULIB_OPENAT=0 - - - - GL_GNULIB_MDA_CREAT=1 - - - - GL_GNULIB_MDA_OPEN=1 - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 -printf %s "checking for working fcntl.h... " >&6; } -if test ${gl_cv_header_working_fcntl_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess 'no' on native Windows. - mingw*) gl_cv_header_working_fcntl_h='no' ;; - *) gl_cv_header_working_fcntl_h=cross-compiling ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - #if HAVE_UNISTD_H - # include - #else /* on Windows with MSVC */ - # include - # include - # defined sleep(n) _sleep ((n) * 1000) - #endif - #include - - -$gl_mda_defines - - #ifndef O_NOATIME - #define O_NOATIME 0 - #endif - #ifndef O_NOFOLLOW - #define O_NOFOLLOW 0 - #endif - static int const constants[] = - { - O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, - O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY - }; - -int -main (void) -{ - - int result = !constants; - #if HAVE_SYMLINK - { - static char const sym[] = "conftest.sym"; - if (symlink ("/dev/null", sym) != 0) - result |= 2; - else - { - int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); - if (fd >= 0) - { - close (fd); - result |= 4; - } - } - if (unlink (sym) != 0 || symlink (".", sym) != 0) - result |= 2; - else - { - int fd = open (sym, O_RDONLY | O_NOFOLLOW); - if (fd >= 0) - { - close (fd); - result |= 4; - } - } - unlink (sym); - } - #endif - { - static char const file[] = "confdefs.h"; - int fd = open (file, O_RDONLY | O_NOATIME); - if (fd < 0) - result |= 8; - else - { - struct stat st0; - if (fstat (fd, &st0) != 0) - result |= 16; - else - { - char c; - sleep (1); - if (read (fd, &c, 1) != 1) - result |= 24; - else - { - if (close (fd) != 0) - result |= 32; - else - { - struct stat st1; - if (stat (file, &st1) != 0) - result |= 40; - else - if (st0.st_atime != st1.st_atime) - result |= 64; - } - } - } - } - } - return result; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_header_working_fcntl_h=yes -else $as_nop - case $? in #( - 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( - 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( - 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( - *) gl_cv_header_working_fcntl_h='no';; - esac -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 -printf "%s\n" "$gl_cv_header_working_fcntl_h" >&6; } - - case $gl_cv_header_working_fcntl_h in #( - *O_NOATIME* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - -printf "%s\n" "#define HAVE_WORKING_O_NOATIME $ac_val" >>confdefs.h - - - case $gl_cv_header_working_fcntl_h in #( - *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - -printf "%s\n" "#define HAVE_WORKING_O_NOFOLLOW $ac_val" >>confdefs.h - - -ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define mode_t int" >>confdefs.h - -fi - - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_fcntl_h='<'fcntl.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_fcntl_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'fcntl.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_fcntl_h - gl_cv_next_fcntl_h='"'$gl_header'"' - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 -printf "%s\n" "$gl_cv_next_fcntl_h" >&6; } - fi - NEXT_FCNTL_H=$gl_cv_next_fcntl_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'fcntl.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_fcntl_h - fi - NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive - - - - - - - - - - - - - - - HAVE_DECL_FCLOSEALL=1; - HAVE_DECL_FPURGE=1; - HAVE_DECL_FSEEKO=1; - HAVE_DECL_FTELLO=1; - HAVE_DECL_GETDELIM=1; - HAVE_DECL_GETLINE=1; - HAVE_DECL_OBSTACK_PRINTF=1; - HAVE_DECL_SNPRINTF=1; - HAVE_DECL_VSNPRINTF=1; - HAVE_DPRINTF=1; - HAVE_FSEEKO=1; - HAVE_FTELLO=1; - HAVE_PCLOSE=1; - HAVE_POPEN=1; - HAVE_RENAMEAT=1; - HAVE_VASPRINTF=1; - HAVE_VDPRINTF=1; - REPLACE_DPRINTF=0; - REPLACE_FCLOSE=0; - REPLACE_FDOPEN=0; - REPLACE_FFLUSH=0; - REPLACE_FOPEN=0; - REPLACE_FOPEN_FOR_FOPEN_GNU=0; - REPLACE_FPRINTF=0; - REPLACE_FPURGE=0; - REPLACE_FREOPEN=0; - REPLACE_FSEEK=0; - REPLACE_FSEEKO=0; - REPLACE_FTELL=0; - REPLACE_FTELLO=0; - REPLACE_GETDELIM=0; - REPLACE_GETLINE=0; - REPLACE_OBSTACK_PRINTF=0; - REPLACE_PERROR=0; - REPLACE_POPEN=0; - REPLACE_PRINTF=0; - REPLACE_REMOVE=0; - REPLACE_RENAME=0; - REPLACE_RENAMEAT=0; - REPLACE_SNPRINTF=0; - REPLACE_SPRINTF=0; - REPLACE_STDIO_READ_FUNCS=0; - REPLACE_STDIO_WRITE_FUNCS=0; - REPLACE_TMPFILE=0; - REPLACE_VASPRINTF=0; - REPLACE_VDPRINTF=0; - REPLACE_VFPRINTF=0; - REPLACE_VPRINTF=0; - REPLACE_VSNPRINTF=0; - REPLACE_VSPRINTF=0; - - - - GL_GNULIB_DPRINTF=0 - - - - GL_GNULIB_FCLOSE=0 - - - - GL_GNULIB_FDOPEN=0 - - - - GL_GNULIB_FFLUSH=0 - - - - GL_GNULIB_FGETC=0 - - - - GL_GNULIB_FGETS=0 - - - - GL_GNULIB_FOPEN=0 - - - - GL_GNULIB_FOPEN_GNU=0 - - - - GL_GNULIB_FPRINTF=0 - - - - GL_GNULIB_FPRINTF_POSIX=0 - - - - GL_GNULIB_FPURGE=0 - - - - GL_GNULIB_FPUTC=0 - - - - GL_GNULIB_FPUTS=0 - - - - GL_GNULIB_FREAD=0 - - - - GL_GNULIB_FREOPEN=0 - - - - GL_GNULIB_FSCANF=0 - - - - GL_GNULIB_FSEEK=0 - - - - GL_GNULIB_FSEEKO=0 - - - - GL_GNULIB_FTELL=0 - - - - GL_GNULIB_FTELLO=0 - - - - GL_GNULIB_FWRITE=0 - - - - GL_GNULIB_GETC=0 - - - - GL_GNULIB_GETCHAR=0 - - - - GL_GNULIB_GETDELIM=0 - - - - GL_GNULIB_GETLINE=0 - - - - GL_GNULIB_OBSTACK_PRINTF=0 - - - - GL_GNULIB_OBSTACK_PRINTF_POSIX=0 - - - - GL_GNULIB_PCLOSE=0 - - - - GL_GNULIB_PERROR=0 - - - - GL_GNULIB_POPEN=0 - - - - GL_GNULIB_PRINTF=0 - - - - GL_GNULIB_PRINTF_POSIX=0 - - - - GL_GNULIB_PUTC=0 - - - - GL_GNULIB_PUTCHAR=0 - - - - GL_GNULIB_PUTS=0 - - - - GL_GNULIB_REMOVE=0 - - - - GL_GNULIB_RENAME=0 - - - - GL_GNULIB_RENAMEAT=0 - - - - GL_GNULIB_SCANF=0 - - - - GL_GNULIB_SNPRINTF=0 - - - - GL_GNULIB_SPRINTF_POSIX=0 - - - - GL_GNULIB_STDIO_H_NONBLOCKING=0 - - - - GL_GNULIB_STDIO_H_SIGPIPE=0 - - - - GL_GNULIB_TMPFILE=0 - - - - GL_GNULIB_VASPRINTF=0 - - - - GL_GNULIB_VFSCANF=0 - - - - GL_GNULIB_VSCANF=0 - - - - GL_GNULIB_VDPRINTF=0 - - - - GL_GNULIB_VFPRINTF=0 - - - - GL_GNULIB_VFPRINTF_POSIX=0 - - - - GL_GNULIB_VPRINTF=0 - - - - GL_GNULIB_VPRINTF_POSIX=0 - - - - GL_GNULIB_VSNPRINTF=0 - - - - GL_GNULIB_VSPRINTF_POSIX=0 - - - - GL_GNULIB_MDA_FCLOSEALL=1 - - - - GL_GNULIB_MDA_FDOPEN=1 - - - - GL_GNULIB_MDA_FILENO=1 - - - - GL_GNULIB_MDA_GETW=1 - - - - GL_GNULIB_MDA_PUTW=1 - - - - GL_GNULIB_MDA_TEMPNAM=1 - + GNULIB_ACOSF=0; + GNULIB_ACOSL=0; + GNULIB_ASINF=0; + GNULIB_ASINL=0; + GNULIB_ATANF=0; + GNULIB_ATANL=0; + GNULIB_ATAN2F=0; + GNULIB_CBRT=0; + GNULIB_CBRTF=0; + GNULIB_CBRTL=0; + GNULIB_CEIL=0; + GNULIB_CEILF=0; + GNULIB_CEILL=0; + GNULIB_COPYSIGN=0; + GNULIB_COPYSIGNF=0; + GNULIB_COPYSIGNL=0; + GNULIB_COSF=0; + GNULIB_COSL=0; + GNULIB_COSHF=0; + GNULIB_EXPF=0; + GNULIB_EXPL=0; + GNULIB_EXP2=0; + GNULIB_EXP2F=0; + GNULIB_EXP2L=0; + GNULIB_EXPM1=0; + GNULIB_EXPM1F=0; + GNULIB_EXPM1L=0; + GNULIB_FABSF=0; + GNULIB_FABSL=0; + GNULIB_FLOOR=0; + GNULIB_FLOORF=0; + GNULIB_FLOORL=0; + GNULIB_FMA=0; + GNULIB_FMAF=0; + GNULIB_FMAL=0; + GNULIB_FMOD=0; + GNULIB_FMODF=0; + GNULIB_FMODL=0; + GNULIB_FREXPF=0; + GNULIB_FREXP=0; + GNULIB_FREXPL=0; + GNULIB_HYPOT=0; + GNULIB_HYPOTF=0; + GNULIB_HYPOTL=0; + GNULIB_ILOGB=0; + GNULIB_ILOGBF=0; + GNULIB_ILOGBL=0; + GNULIB_ISFINITE=0; + GNULIB_ISINF=0; + GNULIB_ISNAN=0; + GNULIB_ISNANF=0; + GNULIB_ISNAND=0; + GNULIB_ISNANL=0; + GNULIB_LDEXPF=0; + GNULIB_LDEXPL=0; + GNULIB_LOG=0; + GNULIB_LOGF=0; + GNULIB_LOGL=0; + GNULIB_LOG10=0; + GNULIB_LOG10F=0; + GNULIB_LOG10L=0; + GNULIB_LOG1P=0; + GNULIB_LOG1PF=0; + GNULIB_LOG1PL=0; + GNULIB_LOG2=0; + GNULIB_LOG2F=0; + GNULIB_LOG2L=0; + GNULIB_LOGB=0; + GNULIB_LOGBF=0; + GNULIB_LOGBL=0; + GNULIB_MODF=0; + GNULIB_MODFF=0; + GNULIB_MODFL=0; + GNULIB_POWF=0; + GNULIB_REMAINDER=0; + GNULIB_REMAINDERF=0; + GNULIB_REMAINDERL=0; + GNULIB_RINT=0; + GNULIB_RINTF=0; + GNULIB_RINTL=0; + GNULIB_ROUND=0; + GNULIB_ROUNDF=0; + GNULIB_ROUNDL=0; + GNULIB_SIGNBIT=0; + GNULIB_SINF=0; + GNULIB_SINL=0; + GNULIB_SINHF=0; + GNULIB_SQRTF=0; + GNULIB_SQRTL=0; + GNULIB_TANF=0; + GNULIB_TANL=0; + GNULIB_TANHF=0; + GNULIB_TRUNC=0; + GNULIB_TRUNCF=0; + GNULIB_TRUNCL=0; HAVE_ACOSF=1; HAVE_ACOSL=1; HAVE_ASINF=1; @@ -27647,22 +24873,13 @@ printf "%s\n" "$gl_cv_next_fcntl_h" >&6; } HAVE_DECL_TRUNC=1; HAVE_DECL_TRUNCF=1; HAVE_DECL_TRUNCL=1; - REPLACE_ACOSF=0; - REPLACE_ASINF=0; - REPLACE_ATANF=0; - REPLACE_ATAN2F=0; REPLACE_CBRTF=0; REPLACE_CBRTL=0; REPLACE_CEIL=0; REPLACE_CEILF=0; REPLACE_CEILL=0; - REPLACE_COSF=0; - REPLACE_COSHF=0; - REPLACE_EXPF=0; - REPLACE_EXPL=0; REPLACE_EXPM1=0; REPLACE_EXPM1F=0; - REPLACE_EXPM1L=0; REPLACE_EXP2=0; REPLACE_EXP2L=0; REPLACE_FABSL=0; @@ -27684,7 +24901,6 @@ printf "%s\n" "$gl_cv_next_fcntl_h" >&6; } REPLACE_HYPOTL=0; REPLACE_ILOGB=0; REPLACE_ILOGBF=0; - REPLACE_ILOGBL=0; REPLACE_ISFINITE=0; REPLACE_ISINF=0; REPLACE_ISNAN=0; @@ -27711,892 +24927,160 @@ printf "%s\n" "$gl_cv_next_fcntl_h" >&6; } REPLACE_REMAINDER=0; REPLACE_REMAINDERF=0; REPLACE_REMAINDERL=0; - REPLACE_RINTL=0; REPLACE_ROUND=0; REPLACE_ROUNDF=0; REPLACE_ROUNDL=0; REPLACE_SIGNBIT=0; - REPLACE_SIGNBIT_USING_BUILTINS=0; - REPLACE_SINF=0; - REPLACE_SINHF=0; - REPLACE_SQRTF=0; + REPLACE_SIGNBIT_USING_GCC=0; REPLACE_SQRTL=0; - REPLACE_TANF=0; - REPLACE_TANHF=0; REPLACE_TRUNC=0; REPLACE_TRUNCF=0; REPLACE_TRUNCL=0; - GL_GNULIB_ACOSF=0 - GL_GNULIB_ACOSL=0 - GL_GNULIB_ASINF=0 - GL_GNULIB_ASINL=0 - GL_GNULIB_ATANF=0 + GNULIB_SOCKET=0; + GNULIB_CONNECT=0; + GNULIB_ACCEPT=0; + GNULIB_BIND=0; + GNULIB_GETPEERNAME=0; + GNULIB_GETSOCKNAME=0; + GNULIB_GETSOCKOPT=0; + GNULIB_LISTEN=0; + GNULIB_RECV=0; + GNULIB_SEND=0; + GNULIB_RECVFROM=0; + GNULIB_SENDTO=0; + GNULIB_SETSOCKOPT=0; + GNULIB_SHUTDOWN=0; + GNULIB_ACCEPT4=0; + HAVE_STRUCT_SOCKADDR_STORAGE=1; + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; - GL_GNULIB_ATANL=0 + HAVE_SA_FAMILY_T=1; + HAVE_ACCEPT4=1; - GL_GNULIB_ATAN2F=0 - GL_GNULIB_CBRT=0 + : - GL_GNULIB_CBRTF=0 - GL_GNULIB_CBRTL=0 - - - - GL_GNULIB_CEIL=0 - - - - GL_GNULIB_CEILF=0 - - - - GL_GNULIB_CEILL=0 - - - - GL_GNULIB_COPYSIGN=0 - - - - GL_GNULIB_COPYSIGNF=0 - - - - GL_GNULIB_COPYSIGNL=0 - - - - GL_GNULIB_COSF=0 - - - - GL_GNULIB_COSL=0 - - - - GL_GNULIB_COSHF=0 - - - - GL_GNULIB_EXPF=0 - - - - GL_GNULIB_EXPL=0 - - - - GL_GNULIB_EXP2=0 - - - - GL_GNULIB_EXP2F=0 - - - - GL_GNULIB_EXP2L=0 - - - - GL_GNULIB_EXPM1=0 - - - - GL_GNULIB_EXPM1F=0 - - - - GL_GNULIB_EXPM1L=0 - - - - GL_GNULIB_FABSF=0 - - - - GL_GNULIB_FABSL=0 - - - - GL_GNULIB_FLOOR=0 - - - - GL_GNULIB_FLOORF=0 - - - - GL_GNULIB_FLOORL=0 - - - - GL_GNULIB_FMA=0 - - - - GL_GNULIB_FMAF=0 - - - - GL_GNULIB_FMAL=0 - - - - GL_GNULIB_FMOD=0 - - - - GL_GNULIB_FMODF=0 - - - - GL_GNULIB_FMODL=0 - - - - GL_GNULIB_FREXPF=0 - - - - GL_GNULIB_FREXP=0 - - - - GL_GNULIB_FREXPL=0 - - - - GL_GNULIB_HYPOT=0 - - - - GL_GNULIB_HYPOTF=0 - - - - GL_GNULIB_HYPOTL=0 - - - - GL_GNULIB_ILOGB=0 - - - - GL_GNULIB_ILOGBF=0 - - - - GL_GNULIB_ILOGBL=0 - - - - GL_GNULIB_ISFINITE=0 - - - - GL_GNULIB_ISINF=0 - - - - GL_GNULIB_ISNAN=0 - - - - GL_GNULIB_ISNANF=0 - - - - GL_GNULIB_ISNAND=0 - - - - GL_GNULIB_ISNANL=0 - - - - GL_GNULIB_LDEXPF=0 - - - - GL_GNULIB_LDEXPL=0 - - - - GL_GNULIB_LOG=0 - - - - GL_GNULIB_LOGF=0 - - - - GL_GNULIB_LOGL=0 - - - - GL_GNULIB_LOG10=0 - - - - GL_GNULIB_LOG10F=0 - - - - GL_GNULIB_LOG10L=0 - - - - GL_GNULIB_LOG1P=0 - - - - GL_GNULIB_LOG1PF=0 - - - - GL_GNULIB_LOG1PL=0 - - - - GL_GNULIB_LOG2=0 - - - - GL_GNULIB_LOG2F=0 - - - - GL_GNULIB_LOG2L=0 - - - - GL_GNULIB_LOGB=0 - - - - GL_GNULIB_LOGBF=0 - - - - GL_GNULIB_LOGBL=0 - - - - GL_GNULIB_MODF=0 - - - - GL_GNULIB_MODFF=0 - - - - GL_GNULIB_MODFL=0 - - - - GL_GNULIB_POWF=0 - - - - GL_GNULIB_REMAINDER=0 - - - - GL_GNULIB_REMAINDERF=0 - - - - GL_GNULIB_REMAINDERL=0 - - - - GL_GNULIB_RINT=0 - - - - GL_GNULIB_RINTF=0 - - - - GL_GNULIB_RINTL=0 - - - - GL_GNULIB_ROUND=0 - - - - GL_GNULIB_ROUNDF=0 - - - - GL_GNULIB_ROUNDL=0 - - - - GL_GNULIB_SIGNBIT=0 - - - - GL_GNULIB_SINF=0 - - - - GL_GNULIB_SINL=0 - - - - GL_GNULIB_SINHF=0 - - - - GL_GNULIB_SQRTF=0 - - - - GL_GNULIB_SQRTL=0 - - - - GL_GNULIB_TANF=0 - - - - GL_GNULIB_TANL=0 - - - - GL_GNULIB_TANHF=0 - - - - GL_GNULIB_TRUNC=0 - - - - GL_GNULIB_TRUNCF=0 - - - - GL_GNULIB_TRUNCL=0 - - - - GL_GNULIB_MDA_J0=1 - - - - GL_GNULIB_MDA_J1=1 - - - - GL_GNULIB_MDA_JN=1 - - - - GL_GNULIB_MDA_Y0=1 - - - - GL_GNULIB_MDA_Y1=1 - - - - GL_GNULIB_MDA_YN=1 - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5 -printf %s "checking whether stdin defaults to large file offsets... " >&6; } -if test ${gl_cv_var_stdin_large_offset+y} + if test $ac_cv_header_sys_socket_h = no; then + ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" +if test "x$ac_cv_header_ws2tcpip_h" = xyes then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -#if defined __SL64 && defined __SCLE /* cygwin */ - /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making - fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and - it is easier to do a version check than building a runtime test. */ -# include -# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) - choke me -# endif -#endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_var_stdin_large_offset=yes -else $as_nop - gl_cv_var_stdin_large_offset=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5 -printf "%s\n" "$gl_cv_var_stdin_large_offset" >&6; } - - - - - - case "$host_os" in - mingw*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 -printf %s "checking for 64-bit off_t... " >&6; } -if test ${gl_cv_type_off_t_64+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_type_off_t_64=yes -else $as_nop - gl_cv_type_off_t_64=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 -printf "%s\n" "$gl_cv_type_off_t_64" >&6; } - if test $gl_cv_type_off_t_64 = no; then - WINDOWS_64_BIT_OFF_T=1 - else - WINDOWS_64_BIT_OFF_T=0 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit st_size" >&5 -printf %s "checking for 64-bit st_size... " >&6; } -if test ${gl_cv_member_st_size_64+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - struct stat buf; - int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; -int -main (void) -{ + fi - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_member_st_size_64=yes -else $as_nop - gl_cv_member_st_size_64=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_member_st_size_64" >&5 -printf "%s\n" "$gl_cv_member_st_size_64" >&6; } - if test $gl_cv_member_st_size_64 = no; then - WINDOWS_64_BIT_ST_SIZE=1 - else - WINDOWS_64_BIT_ST_SIZE=0 - fi - ;; - *) - WINDOWS_64_BIT_OFF_T=0 - WINDOWS_64_BIT_ST_SIZE=0 + + + + case "$host_os" in + osf*) + +printf "%s\n" "#define _POSIX_PII_SOCKET 1" >>confdefs.h + ;; esac - - - - - - - - - - -printf "%s\n" "#define _USE_STD_STAT 1" >>confdefs.h - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_sys_types_h='<'sys/types.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_sys_types_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'sys/types.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_sys_types_h - gl_cv_next_sys_types_h='"'$gl_header'"' - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 -printf "%s\n" "$gl_cv_next_sys_types_h" >&6; } - fi - NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'sys/types.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_sys_types_h - fi - NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive - - - - - - - - - - - - - WINDOWS_STAT_INODES=0 - - - -ac_fn_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fseeko" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FSEEKO $ac_have_decl" >>confdefs.h - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 -printf %s "checking for fseeko... " >&6; } -if test ${gl_cv_func_fseeko+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 +printf %s "checking whether is self-contained... " >&6; } +if test ${gl_cv_header_sys_socket_h_selfcontained+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - +#include int main (void) { -fseeko (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_func_fseeko=yes -else $as_nop - gl_cv_func_fseeko=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 -printf "%s\n" "$gl_cv_func_fseeko" >&6; } - - - if test $ac_cv_have_decl_fseeko = no; then - HAVE_DECL_FSEEKO=0 - fi - - if test $gl_cv_func_fseeko = no; then - HAVE_FSEEKO=0 - else - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_FSEEKO=1 - fi - if test $gl_cv_var_stdin_large_offset = no; then - REPLACE_FSEEKO=1 - fi - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 -printf %s "checking whether fflush works on input streams... " >&6; } -if test ${gl_cv_func_fflush_stdin+y} -then : - printf %s "(cached) " >&6 -else $as_nop - echo hello world > conftest.txt - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_fflush_stdin="guessing no" ;; - *) gl_cv_func_fflush_stdin=cross ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#if HAVE_UNISTD_H -# include -#else /* on Windows with MSVC */ -# include -#endif - - -$gl_mda_defines - -int -main (void) -{ -FILE *f = fopen ("conftest.txt", "r"); - char buffer[10]; - int fd; - int c; - if (f == NULL) - return 1; - fd = fileno (f); - if (fd < 0 || fread (buffer, 1, 5, f) != 5) - { fclose (f); return 2; } - /* For deterministic results, ensure f read a bigger buffer. */ - if (lseek (fd, 0, SEEK_CUR) == 5) - { fclose (f); return 3; } - /* POSIX requires fflush-fseek to set file offset of fd. This fails - on BSD systems and on mingw. */ - if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) - { fclose (f); return 4; } - if (lseek (fd, 0, SEEK_CUR) != 5) - { fclose (f); return 5; } - /* Verify behaviour of fflush after ungetc. See - */ - /* Verify behaviour of fflush after a backup ungetc. This fails on - mingw. */ - c = fgetc (f); - ungetc (c, f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 6; } - /* Verify behaviour of fflush after a non-backup ungetc. This fails - on glibc 2.8 and on BSD systems. */ - c = fgetc (f); - ungetc ('@', f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 7; } - fclose (f); - return 0; ; return 0; } -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fflush_stdin=yes -else $as_nop - gl_cv_func_fflush_stdin=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm conftest.txt - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 -printf "%s\n" "$gl_cv_func_fflush_stdin" >&6; } - case "$gl_cv_func_fflush_stdin" in - *yes) gl_func_fflush_stdin=1 ;; - *no) gl_func_fflush_stdin=0 ;; - *) gl_func_fflush_stdin='(-1)' ;; - esac - -printf "%s\n" "#define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin" >>confdefs.h - - - case "$gl_cv_func_fflush_stdin" in - *yes) ;; - *) REPLACE_FSEEKO=1 ;; - esac - - fi - - - HAVE_FCHMODAT=1; - HAVE_FSTATAT=1; - HAVE_FUTIMENS=1; - HAVE_GETUMASK=1; - HAVE_LCHMOD=1; - HAVE_LSTAT=1; - HAVE_MKDIRAT=1; - HAVE_MKFIFO=1; - HAVE_MKFIFOAT=1; - HAVE_MKNOD=1; - HAVE_MKNODAT=1; - HAVE_UTIMENSAT=1; - REPLACE_CHMOD=0; - REPLACE_FCHMODAT=0; - REPLACE_FSTAT=0; - REPLACE_FSTATAT=0; - REPLACE_FUTIMENS=0; - REPLACE_LSTAT=0; - REPLACE_MKDIR=0; - REPLACE_MKFIFO=0; - REPLACE_MKFIFOAT=0; - REPLACE_MKNOD=0; - REPLACE_MKNODAT=0; - REPLACE_STAT=0; - REPLACE_UTIMENSAT=0; - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 -printf %s "checking whether stat file-mode macros are broken... " >&6; } -if test ${ac_cv_header_stat_broken+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -#if defined S_ISBLK && defined S_IFDIR -extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; -#endif - -#if defined S_ISBLK && defined S_IFCHR -extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; -#endif - -#if defined S_ISLNK && defined S_IFREG -extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; -#endif - -#if defined S_ISSOCK && defined S_IFREG -extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; -#endif - _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ac_cv_header_stat_broken=no + gl_cv_header_sys_socket_h_selfcontained=yes else $as_nop - ac_cv_header_stat_broken=yes + gl_cv_header_sys_socket_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 -printf "%s\n" "$ac_cv_header_stat_broken" >&6; } -if test $ac_cv_header_stat_broken = yes; then -printf "%s\n" "#define STAT_MACROS_BROKEN 1" >>confdefs.h +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 +printf "%s\n" "$gl_cv_header_sys_socket_h_selfcontained" >&6; } + if test $gl_cv_header_sys_socket_h_selfcontained = yes; then + ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" +if test "x$ac_cv_func_shutdown" = xyes +then : + printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h fi + if test $ac_cv_func_shutdown = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 +printf %s "checking whether defines the SHUT_* macros... " >&6; } +if test ${gl_cv_header_sys_socket_h_shut+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_sys_socket_h_shut=yes +else $as_nop + gl_cv_header_sys_socket_h_shut=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5 +printf "%s\n" "$gl_cv_header_sys_socket_h_shut" >&6; } + if test $gl_cv_header_sys_socket_h_shut = no; then + SYS_SOCKET_H='sys/socket.h' + fi + fi + fi + # We need to check for ws2tcpip.h now. @@ -28605,6 +25089,9 @@ fi + : + + @@ -28612,489 +25099,241 @@ fi if test $gl_cv_have_include_next = yes; then - gl_cv_next_sys_stat_h='<'sys/stat.h'>' + gl_cv_next_sys_socket_h='<'sys/socket.h'>' else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_sys_stat_h+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_socket_h+y} then : printf %s "(cached) " >&6 else $as_nop - if test $ac_cv_header_sys_stat_h = yes; then + if test $ac_cv_header_sys_socket_h = yes; then - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'sys/stat.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_sys_stat_h - gl_cv_next_sys_stat_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'sys/socket.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_sys_socket_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' else - gl_cv_next_sys_stat_h='<'sys/stat.h'>' + gl_cv_next_sys_socket_h='<'sys/socket.h'>' fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 -printf "%s\n" "$gl_cv_next_sys_stat_h" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5 +printf "%s\n" "$gl_cv_next_sys_socket_h" >&6; } fi - NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h + NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'sys/stat.h'>' + gl_next_as_first_directive='<'sys/socket.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_sys_stat_h + gl_next_as_first_directive=$gl_cv_next_sys_socket_h fi - NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive + NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive - - - - - WINDOWS_STAT_TIMESPEC=0 - - - - - - - - - ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include - #include -" -if test "x$ac_cv_type_nlink_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define nlink_t int" >>confdefs.h - -fi - - - - - - - - - - - case "$host_os" in - mingw*) - ac_fn_c_check_header_compile "$LINENO" "sdkddkver.h" "ac_cv_header_sdkddkver_h" "$ac_includes_default" -if test "x$ac_cv_header_sdkddkver_h" = xyes -then : - printf "%s\n" "#define HAVE_SDKDDKVER_H 1" >>confdefs.h - -fi - - ;; - esac - - - - - - - - GL_GNULIB_CHMOD=0 - - - - GL_GNULIB_FCHMODAT=0 - - - - GL_GNULIB_FSTAT=0 - - - - GL_GNULIB_FSTATAT=0 - - - - GL_GNULIB_FUTIMENS=0 - - - - GL_GNULIB_GETUMASK=0 - - - - GL_GNULIB_LCHMOD=0 - - - - GL_GNULIB_LSTAT=0 - - - - GL_GNULIB_MKDIR=0 - - - - GL_GNULIB_MKDIRAT=0 - - - - GL_GNULIB_MKFIFO=0 - - - - GL_GNULIB_MKFIFOAT=0 - - - - GL_GNULIB_MKNOD=0 - - - - GL_GNULIB_MKNODAT=0 - - - - GL_GNULIB_STAT=0 - - - - GL_GNULIB_UTIMENSAT=0 - - - - GL_GNULIB_OVERRIDES_STRUCT_STAT=0 - - - - GL_GNULIB_MDA_CHMOD=1 - - - - GL_GNULIB_MDA_MKDIR=1 - - - - GL_GNULIB_MDA_UMASK=1 - - - - - - -ac_fn_check_decl "$LINENO" "ftello" "ac_cv_have_decl_ftello" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_ftello" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FTELLO $ac_have_decl" >>confdefs.h - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ungetc works on arbitrary bytes" >&5 -printf %s "checking whether ungetc works on arbitrary bytes... " >&6; } -if test ${gl_cv_func_ungetc_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_ungetc_works="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_ungetc_works="guessing yes" ;; - # Guess yes on bionic systems. - *-android*) gl_cv_func_ungetc_works="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_ungetc_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_ungetc_works="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main (void) -{ -FILE *f; - if (!(f = fopen ("conftest.tmp", "w+"))) - return 1; - if (fputs ("abc", f) < 0) - { fclose (f); return 2; } - rewind (f); - if (fgetc (f) != 'a') - { fclose (f); return 3; } - if (fgetc (f) != 'b') - { fclose (f); return 4; } - if (ungetc ('d', f) != 'd') - { fclose (f); return 5; } - if (ftell (f) != 1) - { fclose (f); return 6; } - if (fgetc (f) != 'd') - { fclose (f); return 7; } - if (ftell (f) != 2) - { fclose (f); return 8; } - if (fseek (f, 0, SEEK_CUR) != 0) - { fclose (f); return 9; } - if (ftell (f) != 2) - { fclose (f); return 10; } - if (fgetc (f) != 'c') - { fclose (f); return 11; } - fclose (f); - remove ("conftest.tmp"); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_ungetc_works=yes -else $as_nop - gl_cv_func_ungetc_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ungetc_works" >&5 -printf "%s\n" "$gl_cv_func_ungetc_works" >&6; } - gl_ftello_broken_after_ungetc=no - case "$gl_cv_func_ungetc_works" in - *yes) ;; - *) - case "$host_os" in - darwin*) gl_ftello_broken_after_ungetc=yes ;; - *) - -printf "%s\n" "#define FUNC_UNGETC_BROKEN 1" >>confdefs.h - - ;; - esac - ;; - esac - - - - - - - - - - - if test $ac_cv_have_decl_ftello = no; then - HAVE_DECL_FTELLO=0 - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 -printf %s "checking for ftello... " >&6; } -if test ${gl_cv_func_ftello+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -ftello (stdin); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_func_ftello=yes -else $as_nop - gl_cv_func_ftello=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 -printf "%s\n" "$gl_cv_func_ftello" >&6; } - if test $gl_cv_func_ftello = no; then - HAVE_FTELLO=0 + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + HAVE_WS2TCPIP_H=0 else - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_FTELLO=1 - fi - if test $gl_cv_var_stdin_large_offset = no; then - REPLACE_FTELLO=1 - fi - if test $REPLACE_FTELLO = 0; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 -printf %s "checking whether ftello works... " >&6; } -if test ${gl_cv_func_ftello_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - case "$host_os" in - # Guess no on Solaris. - solaris*) gl_cv_func_ftello_works="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_ftello_works="guessing yes" ;; - # Guess yes otherwise. - *) gl_cv_func_ftello_works="guessing yes" ;; - esac - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#define TESTFILE "conftest.tmp" -int -main (void) -{ - FILE *fp; - - /* Create a file with some contents. */ - fp = fopen (TESTFILE, "w"); - if (fp == NULL) - return 70; - if (fwrite ("foogarsh", 1, 8, fp) < 8) - { fclose (fp); return 71; } - if (fclose (fp)) - return 72; - - /* The file's contents is now "foogarsh". */ - - /* Try writing after reading to EOF. */ - fp = fopen (TESTFILE, "r+"); - if (fp == NULL) - return 73; - if (fseek (fp, -1, SEEK_END)) - { fclose (fp); return 74; } - if (!(getc (fp) == 'h')) - { fclose (fp); return 1; } - if (!(getc (fp) == EOF)) - { fclose (fp); return 2; } - if (!(ftell (fp) == 8)) - { fclose (fp); return 3; } - if (!(ftell (fp) == 8)) - { fclose (fp); return 4; } - if (!(putc ('!', fp) == '!')) - { fclose (fp); return 5; } - if (!(ftell (fp) == 9)) - { fclose (fp); return 6; } - if (!(fclose (fp) == 0)) - return 7; - fp = fopen (TESTFILE, "r"); - if (fp == NULL) - return 75; - { - char buf[10]; - if (!(fread (buf, 1, 10, fp) == 9)) - { fclose (fp); return 10; } - if (!(memcmp (buf, "foogarsh!", 9) == 0)) - { fclose (fp); return 11; } - } - if (!(fclose (fp) == 0)) - return 12; - - /* The file's contents is now "foogarsh!". */ - - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_ftello_works=yes -else $as_nop - gl_cv_func_ftello_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 -printf "%s\n" "$gl_cv_func_ftello_works" >&6; } - case "$gl_cv_func_ftello_works" in - *yes) ;; - *) - REPLACE_FTELLO=1 - -printf "%s\n" "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h - - ;; - esac - fi - if test $REPLACE_FTELLO = 0; then - - if test $gl_ftello_broken_after_ungetc = yes; then - REPLACE_FTELLO=1 - -printf "%s\n" "#define FTELLO_BROKEN_AFTER_UNGETC 1" >>confdefs.h - - fi + HAVE_SYS_SOCKET_H=0 + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 fi fi + + ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " + /* sys/types.h is not needed according to POSIX, but the + sys/socket.h in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_type_struct_sockaddr_storage" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h + + +fi +ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" " + /* sys/types.h is not needed according to POSIX, but the + sys/socket.h in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_type_sa_family_t" = xyes +then : + +printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h + + +fi + + if test $ac_cv_type_struct_sockaddr_storage = no; then + HAVE_STRUCT_SOCKADDR_STORAGE=0 + fi + if test $ac_cv_type_sa_family_t = no; then + HAVE_SA_FAMILY_T=0 + fi + if test $ac_cv_type_struct_sockaddr_storage != no; then + ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_WS2TCPIP_H + #include + #endif + +" +if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h + + +else $as_nop + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 +fi + + fi + if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ + || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then + SYS_SOCKET_H='sys/socket.h' + fi + + + + + : + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + + + for gl_func in socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Some systems require prerequisite headers. */ +#include +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done + + + + GNULIB_GETADDRINFO=0; HAVE_STRUCT_ADDRINFO=1; HAVE_DECL_FREEADDRINFO=1; HAVE_DECL_GAI_STRERROR=1; HAVE_DECL_GETADDRINFO=1; HAVE_DECL_GETNAMEINFO=1; REPLACE_GAI_STRERROR=0; - REPLACE_GETADDRINFO=0; @@ -29108,6 +25347,16 @@ printf "%s\n" "#define FTELLO_BROKEN_AFTER_UNGETC 1" >>confdefs.h + + : + + + + + + + + if test $gl_cv_have_include_next = yes; then gl_cv_next_netdb_h='<'netdb.h'>' else @@ -29121,40 +25370,36 @@ else $as_nop if test $ac_cv_header_netdb_h = yes; then - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'netdb.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_netdb_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_netdb_h - gl_cv_next_netdb_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'netdb.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_netdb_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_netdb_h='<'netdb.h'>' fi @@ -29186,7 +25431,46 @@ printf "%s\n" "$gl_cv_next_netdb_h" >&6; } + for gl_func in getaddrinfo freeaddrinfo gai_strerror getnameinfo; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -29440,12 +25724,18 @@ done - HAVE_INET_NTOP=1 + HAVE_INET_NTOP=1 INET_NTOP_LIB= + : + + + + + if test $ac_cv_header_sys_socket_h != yes; then ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes @@ -29465,7 +25755,6 @@ fi if test $HAVE_WINSOCK2_H = 1; then - REPLACE_INET_NTOP=1 ac_fn_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_inet_ntop" = xyes @@ -29477,9 +25766,11 @@ fi printf "%s\n" "#define HAVE_DECL_INET_NTOP $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_inet_ntop = yes; then + REPLACE_INET_NTOP=1 INET_NTOP_LIB="-lws2_32" else HAVE_DECL_INET_NTOP=0 + HAVE_INET_NTOP=0 fi else gl_save_LIBS=$LIBS @@ -29505,7 +25796,7 @@ return inet_ntop (); return 0; } _ACEOF -for ac_lib in '' nsl resolv network +for ac_lib in '' nsl resolv do if test -z "$ac_lib"; then ac_res="none required" @@ -29562,6 +25853,12 @@ fi fi + : + + + + + ac_fn_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include #if HAVE_NETDB_H # include @@ -29587,9 +25884,19 @@ printf "%s\n" "#define HAVE_DECL_INET_NTOP $ac_have_decl" >>confdefs.h + + + + : + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv4 sockets" >&5 printf %s "checking for IPv4 sockets... " >&6; } -if test ${gl_cv_socket_ipv4+y} + if test ${gl_cv_socket_ipv4+y} then : printf %s "(cached) " >&6 else $as_nop @@ -29622,7 +25929,8 @@ else $as_nop fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv4" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv4" >&5 printf "%s\n" "$gl_cv_socket_ipv4" >&6; } if test $gl_cv_socket_ipv4 = yes; then @@ -29632,7 +25940,7 @@ printf "%s\n" "#define HAVE_IPV4 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv6 sockets" >&5 printf %s "checking for IPv6 sockets... " >&6; } -if test ${gl_cv_socket_ipv6+y} + if test ${gl_cv_socket_ipv6+y} then : printf %s "(cached) " >&6 else $as_nop @@ -29668,7 +25976,8 @@ else $as_nop fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv6" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv6" >&5 printf "%s\n" "$gl_cv_socket_ipv6" >&6; } if test $gl_cv_socket_ipv6 = yes; then @@ -29677,39 +25986,82 @@ printf "%s\n" "#define HAVE_IPV6 1" >>confdefs.h fi - - GL_GNULIB_GETADDRINFO=0 - - - -ac_fn_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_getdelim" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_GETDELIM $ac_have_decl" >>confdefs.h - - - -ac_fn_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_getdtablesize" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_GETDTABLESIZE $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_getline" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_GETLINE $ac_have_decl" >>confdefs.h + GNULIB__EXIT=0; + GNULIB_ATOLL=0; + GNULIB_CALLOC_POSIX=0; + GNULIB_CANONICALIZE_FILE_NAME=0; + GNULIB_GETLOADAVG=0; + GNULIB_GETSUBOPT=0; + GNULIB_GRANTPT=0; + GNULIB_MALLOC_POSIX=0; + GNULIB_MBTOWC=0; + GNULIB_MKDTEMP=0; + GNULIB_MKOSTEMP=0; + GNULIB_MKOSTEMPS=0; + GNULIB_MKSTEMP=0; + GNULIB_MKSTEMPS=0; + GNULIB_POSIX_OPENPT=0; + GNULIB_PTSNAME=0; + GNULIB_PTSNAME_R=0; + GNULIB_PUTENV=0; + GNULIB_RANDOM=0; + GNULIB_RANDOM_R=0; + GNULIB_REALLOC_POSIX=0; + GNULIB_REALPATH=0; + GNULIB_RPMATCH=0; + GNULIB_SECURE_GETENV=0; + GNULIB_SETENV=0; + GNULIB_STRTOD=0; + GNULIB_STRTOLL=0; + GNULIB_STRTOULL=0; + GNULIB_SYSTEM_POSIX=0; + GNULIB_UNLOCKPT=0; + GNULIB_UNSETENV=0; + GNULIB_WCTOMB=0; + HAVE__EXIT=1; + HAVE_ATOLL=1; + HAVE_CANONICALIZE_FILE_NAME=1; + HAVE_DECL_GETLOADAVG=1; + HAVE_GETSUBOPT=1; + HAVE_GRANTPT=1; + HAVE_MKDTEMP=1; + HAVE_MKOSTEMP=1; + HAVE_MKOSTEMPS=1; + HAVE_MKSTEMP=1; + HAVE_MKSTEMPS=1; + HAVE_POSIX_OPENPT=1; + HAVE_PTSNAME=1; + HAVE_PTSNAME_R=1; + HAVE_RANDOM=1; + HAVE_RANDOM_H=1; + HAVE_RANDOM_R=1; + HAVE_REALPATH=1; + HAVE_RPMATCH=1; + HAVE_SECURE_GETENV=1; + HAVE_SETENV=1; + HAVE_DECL_SETENV=1; + HAVE_STRTOD=1; + HAVE_STRTOLL=1; + HAVE_STRTOULL=1; + HAVE_STRUCT_RANDOM_DATA=1; + HAVE_SYS_LOADAVG_H=0; + HAVE_UNLOCKPT=1; + HAVE_DECL_UNSETENV=1; + REPLACE_CALLOC=0; + REPLACE_CANONICALIZE_FILE_NAME=0; + REPLACE_MALLOC=0; + REPLACE_MBTOWC=0; + REPLACE_MKSTEMP=0; + REPLACE_PTSNAME=0; + REPLACE_PTSNAME_R=0; + REPLACE_PUTENV=0; + REPLACE_RANDOM_R=0; + REPLACE_REALLOC=0; + REPLACE_REALPATH=0; + REPLACE_SETENV=0; + REPLACE_STRTOD=0; + REPLACE_UNSETENV=0; + REPLACE_WCTOMB=0; @@ -29725,6 +26077,16 @@ printf "%s\n" "#define HAVE_DECL_GETLINE $ac_have_decl" >>confdefs.h + + : + + + + + + + + if test $gl_cv_have_include_next = yes; then gl_cv_next_getopt_h='<'getopt.h'>' else @@ -29738,40 +26100,36 @@ else $as_nop if test $ac_cv_header_getopt_h = yes; then - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'getopt.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_getopt_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_getopt_h - gl_cv_next_getopt_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'getopt.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_getopt_h='<'getopt.h'>' fi @@ -30034,7 +26392,7 @@ else $as_nop export POSIXLY_CORRECT if test "$cross_compiling" = yes then : - gl_cv_func_getopt_gnu="$gl_cross_guess_normal" + gl_cv_func_getopt_gnu="guessing no" else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -30080,7 +26438,7 @@ nocrash_init (void) /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { - /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { @@ -30099,14 +26457,14 @@ nocrash_init (void) for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. - See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } -#elif defined _WIN32 && ! defined __CYGWIN__ +#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include @@ -30137,12 +26495,11 @@ nocrash_init (void) #else /* Avoid a crash on POSIX systems. */ #include -#include /* A POSIX signal handler. */ static void exception_handler (int sig) { - _exit (1); + exit (1); } static void nocrash_init (void) @@ -30331,1642 +26688,36 @@ printf "%s\n" "$gl_cv_func_getopt_long_gnu" >&6; } - - - if test -z "$gl_pthreadlib_body_done"; then - gl_pthread_api=no - LIBPTHREAD= - LIBPMULTITHREAD= - # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. - ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = xyes -then : - gl_have_pthread_h=yes -else $as_nop - gl_have_pthread_h=no -fi - - if test "$gl_have_pthread_h" = yes; then - # Other possible tests: - # -lpthreads (FSU threads, PCthreads) - # -lgthreads - # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist - # in libc. IRIX 6.5 has the first one in both libc and libpthread, but - # the second one only in libpthread, and lock.c needs it. - # - # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 - # needs -pthread for some reason. See: - # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html - save_LIBS=$LIBS - for gl_pthread in '' '-pthread'; do - LIBS="$LIBS $gl_pthread" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - pthread_mutex_t m; - pthread_mutexattr_t ma; - -int -main (void) -{ -pthread_mutex_lock (&m); - pthread_mutexattr_init (&ma); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_pthread_api=yes - LIBPTHREAD=$gl_pthread - LIBPMULTITHREAD=$gl_pthread -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LIBS=$save_LIBS - test $gl_pthread_api = yes && break - done - echo "$as_me:30390: gl_pthread_api=$gl_pthread_api" >&5 - echo "$as_me:30391: LIBPTHREAD=$LIBPTHREAD" >&5 - - gl_pthread_in_glibc=no - # On Linux with glibc >= 2.34, libc contains the fully functional - # pthread functions. - case "$host_os" in - linux*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) - Lucky user - #endif - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky user" >/dev/null 2>&1 -then : - gl_pthread_in_glibc=yes -fi -rm -rf conftest* - - ;; - esac - echo "$as_me:30417: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 - - # Test for libpthread by looking for pthread_kill. (Not pthread_self, - # since it is defined as a macro on OSF/1.) - if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then - # The program links fine without libpthread. But it may actually - # need to link with libpthread in order to create multiple threads. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 -printf %s "checking for pthread_kill in -lpthread... " >&6; } -if test ${ac_cv_lib_pthread_pthread_kill+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_kill (); -int -main (void) -{ -return pthread_kill (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_pthread_pthread_kill=yes -else $as_nop - ac_cv_lib_pthread_pthread_kill=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 -printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } -if test "x$ac_cv_lib_pthread_pthread_kill" = xyes -then : - if test $gl_pthread_in_glibc = yes; then - LIBPMULTITHREAD= - else - LIBPMULTITHREAD=-lpthread - # On Solaris and HP-UX, most pthread functions exist also in libc. - # Therefore pthread_in_use() needs to actually try to create a - # thread: pthread_create from libc will fail, whereas - # pthread_create will actually create a thread. - # On Solaris 10 or newer, this test is no longer needed, because - # libc contains the fully functional pthread functions. - case "$host_os" in - solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) - -printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h - - esac - fi - -fi - - elif test $gl_pthread_api != yes; then - # Some library is needed. Try libpthread and libc_r. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 -printf %s "checking for pthread_kill in -lpthread... " >&6; } -if test ${ac_cv_lib_pthread_pthread_kill+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_kill (); -int -main (void) -{ -return pthread_kill (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_pthread_pthread_kill=yes -else $as_nop - ac_cv_lib_pthread_pthread_kill=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 -printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } -if test "x$ac_cv_lib_pthread_pthread_kill" = xyes -then : - gl_pthread_api=yes - LIBPTHREAD=-lpthread - LIBPMULTITHREAD=-lpthread -fi - - if test $gl_pthread_api != yes; then - # For FreeBSD 4. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 -printf %s "checking for pthread_kill in -lc_r... " >&6; } -if test ${ac_cv_lib_c_r_pthread_kill+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_kill (); -int -main (void) -{ -return pthread_kill (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_c_r_pthread_kill=yes -else $as_nop - ac_cv_lib_c_r_pthread_kill=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 -printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; } -if test "x$ac_cv_lib_c_r_pthread_kill" = xyes -then : - gl_pthread_api=yes - LIBPTHREAD=-lc_r - LIBPMULTITHREAD=-lc_r -fi - - fi - fi - echo "$as_me:30571: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 -printf %s "checking whether POSIX threads API is available... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 -printf "%s\n" "$gl_pthread_api" >&6; } - - - if test $gl_pthread_api = yes; then - -printf "%s\n" "#define HAVE_PTHREAD_API 1" >>confdefs.h - + REPLACE_GETOPT=0 + if test -n "$gl_replace_getopt"; then + REPLACE_GETOPT=1 fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - LIB_SCHED_YIELD= + if test $REPLACE_GETOPT = 1; then -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 -printf %s "checking for sched_yield in -lrt... " >&6; } -if test ${ac_cv_lib_rt_sched_yield+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + GETOPT_H=getopt.h -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sched_yield (); -int -main (void) -{ -return sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_rt_sched_yield=yes -else $as_nop - ac_cv_lib_rt_sched_yield=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 -printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; } -if test "x$ac_cv_lib_rt_sched_yield" = xyes -then : - LIB_SCHED_YIELD=-lrt -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 -printf %s "checking for sched_yield in -lposix4... " >&6; } -if test ${ac_cv_lib_posix4_sched_yield+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix4 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sched_yield (); -int -main (void) -{ -return sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_posix4_sched_yield=yes -else $as_nop - ac_cv_lib_posix4_sched_yield=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 -printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; } -if test "x$ac_cv_lib_posix4_sched_yield" = xyes -then : - LIB_SCHED_YIELD=-lposix4 -fi - -fi - - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - - - gl_pthreadlib_body_done=done - fi - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 -printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } -if test ${gl_cv_func_setlocale_null_all_mtsafe+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin. - *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*) - gl_cv_func_setlocale_null_all_mtsafe=no ;; - # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. - *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) - gl_cv_func_setlocale_null_all_mtsafe=yes ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 -printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } - case "$host_os" in - mingw*) ;; - *) - if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then - gl_cv_func_setlocale_null_all_mtsafe="trivially yes" - fi - ;; - esac - case "$gl_cv_func_setlocale_null_all_mtsafe" in - *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; - *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; - esac - -printf "%s\n" "#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE" >>confdefs.h - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 -printf %s "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } -if test ${gl_cv_func_setlocale_null_one_mtsafe+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - # Guess no on OpenBSD, AIX. - openbsd* | aix*) - gl_cv_func_setlocale_null_one_mtsafe=no ;; - # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. - *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) - gl_cv_func_setlocale_null_one_mtsafe=yes ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 -printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } - case "$host_os" in - mingw*) ;; - *) - if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then - gl_cv_func_setlocale_null_one_mtsafe="trivially yes" - fi - ;; - esac - case "$gl_cv_func_setlocale_null_one_mtsafe" in - *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; - *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; - esac - -printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>confdefs.h - - - if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then - case "$host_os" in - mingw*) LIB_SETLOCALE_NULL= ;; - *) - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 -printf %s "checking whether imported symbols can be declared weak... " >&6; } -if test ${gl_cv_have_weak+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - cygwin*) - gl_cv_have_weak="guessing no" - ;; - *) - gl_cv_have_weak=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern void xyzzy (); -#pragma weak xyzzy -int -main (void) -{ -xyzzy(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_have_weak=maybe -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test $gl_cv_have_weak = maybe; then - if test "$cross_compiling" = yes -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __ELF__ - Extensible Linking Format - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Extensible Linking Format" >/dev/null 2>&1 -then : - gl_cv_have_weak="guessing yes" -else $as_nop - gl_cv_have_weak="guessing no" -fi -rm -rf conftest* - - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#pragma weak fputs -int main () -{ - return (fputs == NULL); -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_have_weak=yes -else $as_nop - gl_cv_have_weak=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - ;; - esac - case " $LDFLAGS " in - *" -static "*) gl_cv_have_weak=no ;; - esac - case "$gl_cv_have_weak" in - *yes) - case "$host_os" in - freebsd* | dragonfly* | midnightbsd*) - : > conftest1.c - $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 - cat < conftest2.c -#include -#pragma weak pthread_mutexattr_gettype -int main () -{ - return (pthread_mutexattr_gettype != NULL); -} -EOF - $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ - || gl_cv_have_weak=no - rm -f conftest1.c libempty.so conftest2.c conftest - ;; - esac - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 -printf "%s\n" "$gl_cv_have_weak" >&6; } - case "$gl_cv_have_weak" in - *yes) - -printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h - - ;; - esac - - case "$gl_cv_have_weak" in - *yes) LIB_SETLOCALE_NULL= ;; - *) LIB_SETLOCALE_NULL="$LIBPTHREAD" ;; - esac - ;; - esac - else - LIB_SETLOCALE_NULL= - fi - - - - - - - - - - - - - - - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_limits_h='<'limits.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_limits_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_limits_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'limits.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_limits_h - gl_cv_next_limits_h='"'$gl_header'"' - else - gl_cv_next_limits_h='<'limits.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5 -printf "%s\n" "$gl_cv_next_limits_h" >&6; } - fi - NEXT_LIMITS_H=$gl_cv_next_limits_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'limits.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_limits_h - fi - NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether limits.h has WORD_BIT, BOOL_WIDTH etc." >&5 -printf %s "checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... " >&6; } -if test ${gl_cv_header_limits_width+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ - #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 - #endif - #include - long long llm = LLONG_MAX; - int wb = WORD_BIT; - int ullw = ULLONG_WIDTH; - int bw = BOOL_WIDTH; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_limits_width=yes -else $as_nop - gl_cv_header_limits_width=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5 -printf "%s\n" "$gl_cv_header_limits_width" >&6; } - if test "$gl_cv_header_limits_width" = yes; then - GL_GENERATE_LIMITS_H=false - else - GL_GENERATE_LIMITS_H=true - fi - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 -printf %s "checking for wint_t... " >&6; } -if test ${gt_cv_c_wint_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - wint_t foo = (wchar_t)'\0'; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gt_cv_c_wint_t=yes -else $as_nop - gt_cv_c_wint_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 -printf "%s\n" "$gt_cv_c_wint_t" >&6; } - if test $gt_cv_c_wint_t = yes; then - -printf "%s\n" "#define HAVE_WINT_T 1" >>confdefs.h - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wint_t is large enough" >&5 -printf %s "checking whether wint_t is large enough... " >&6; } -if test ${gl_cv_type_wint_t_large_enough+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_type_wint_t_large_enough=yes -else $as_nop - gl_cv_type_wint_t_large_enough=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wint_t_large_enough" >&5 -printf "%s\n" "$gl_cv_type_wint_t_large_enough" >&6; } - if test $gl_cv_type_wint_t_large_enough = no; then - GNULIBHEADERS_OVERRIDE_WINT_T=1 - else - GNULIBHEADERS_OVERRIDE_WINT_T=0 - fi - else - GNULIBHEADERS_OVERRIDE_WINT_T=0 - fi - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler produces multi-arch binaries" >&5 -printf %s "checking whether the compiler produces multi-arch binaries... " >&6; } -if test ${gl_cv_c_multiarch+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_cv_c_multiarch=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - - arch= - prev= - for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do - if test -n "$prev"; then - case $word in - i?86 | x86_64 | ppc | ppc64 | arm | arm64) - if test -z "$arch" || test "$arch" = "$word"; then - arch="$word" - else - gl_cv_c_multiarch=yes - fi - ;; - esac - prev= - else - if test "x$word" = "x-arch"; then - prev=arch - fi - fi - done - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_multiarch" >&5 -printf "%s\n" "$gl_cv_c_multiarch" >&6; } - if test $gl_cv_c_multiarch = yes; then - APPLE_UNIVERSAL_BUILD=1 - else - APPLE_UNIVERSAL_BUILD=0 - fi - - - - - - - - -printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h - - -printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h - - - - if test $ac_cv_header_wchar_h = yes; then - HAVE_WCHAR_H=1 - else - HAVE_WCHAR_H=0 - fi - - - - if test $ac_cv_header_inttypes_h = yes; then - HAVE_INTTYPES_H=1 - else - HAVE_INTTYPES_H=0 - fi - - - - if test $ac_cv_header_sys_types_h = yes; then - HAVE_SYS_TYPES_H=1 - else - HAVE_SYS_TYPES_H=0 - fi - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_stdint_h='<'stdint.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_stdint_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_stdint_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'stdint.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_stdint_h - gl_cv_next_stdint_h='"'$gl_header'"' - else - gl_cv_next_stdint_h='<'stdint.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 -printf "%s\n" "$gl_cv_next_stdint_h" >&6; } - fi - NEXT_STDINT_H=$gl_cv_next_stdint_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'stdint.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_stdint_h - fi - NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive - - - - - if test $ac_cv_header_stdint_h = yes; then - HAVE_STDINT_H=1 - else - HAVE_STDINT_H=0 - fi - - - if test $ac_cv_header_stdint_h = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 -printf %s "checking whether stdint.h conforms to C99... " >&6; } -if test ${gl_cv_header_working_stdint_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_cv_header_working_stdint_h=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#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 -/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ -#if !(defined WCHAR_MIN && defined WCHAR_MAX) -#error "WCHAR_MIN, WCHAR_MAX not defined in " -#endif - - - #include - #include - #if HAVE_WCHAR_H - # include - #endif - - -#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__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ - || (0x5110 <= __SUNPRO_C && !__STDC__)) -extern size_t k; -extern __typeof__ (SIZE_MAX) k; -#endif - -#include /* 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 and FreeBSD 13.0/arm64. */ - 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; -}; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - if test "$cross_compiling" = yes -then : - 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 - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#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 - - - #include - #include - #if HAVE_WCHAR_H - # include - #endif - - -#include -#include -#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 - }; - -int -main (void) -{ - - 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; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_header_working_stdint_h=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 -printf "%s\n" "$gl_cv_header_working_stdint_h" >&6; } - fi - - HAVE_C99_STDINT_H=0 - HAVE_SYS_BITYPES_H=0 - HAVE_SYS_INTTYPES_H=0 - GL_GENERATE_STDINT_H=true - case "$gl_cv_header_working_stdint_h" in - *yes) - HAVE_C99_STDINT_H=1 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h works without ISO C predefines" >&5 -printf %s "checking whether stdint.h works without ISO C predefines... " >&6; } -if test ${gl_cv_header_stdint_without_STDC_macros+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_cv_header_stdint_without_STDC_macros=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ -#include - - - #include - #include - #if HAVE_WCHAR_H - # include - #endif - - -intmax_t im = INTMAX_MAX; -int32_t i32 = INT32_C (0x7fffffff); - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_stdint_without_STDC_macros=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_without_STDC_macros" >&5 -printf "%s\n" "$gl_cv_header_stdint_without_STDC_macros" >&6; } - - if test $gl_cv_header_stdint_without_STDC_macros = no; then - -printf "%s\n" "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h - - -printf "%s\n" "#define __STDC_LIMIT_MACROS 1" >>confdefs.h - - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5 -printf %s "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; } -if test ${gl_cv_header_stdint_width+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_cv_header_stdint_width=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - /* 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 - - #include - #include - #if HAVE_WCHAR_H - # include - #endif - - int iw = UINTMAX_WIDTH; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_stdint_width=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5 -printf "%s\n" "$gl_cv_header_stdint_width" >&6; } - if test "$gl_cv_header_stdint_width" = yes; then - GL_GENERATE_STDINT_H=false - fi - ;; - *) - ac_fn_c_check_header_compile "$LINENO" "sys/inttypes.h" "ac_cv_header_sys_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_inttypes_h" = xyes -then : - printf "%s\n" "#define HAVE_SYS_INTTYPES_H 1" >>confdefs.h - -fi -ac_fn_c_check_header_compile "$LINENO" "sys/bitypes.h" "ac_cv_header_sys_bitypes_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_bitypes_h" = xyes -then : - printf "%s\n" "#define HAVE_SYS_BITYPES_H 1" >>confdefs.h - -fi - - 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 - - - if test $APPLE_UNIVERSAL_BUILD = 0; then - - - for gltype in ptrdiff_t size_t ; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 -printf %s "checking for bit size of $gltype... " >&6; } -if eval test \${gl_cv_bitsizeof_${gltype}+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " - #include - #include - #if HAVE_WCHAR_H - # include - #endif - -#include " -then : - -else $as_nop - result=unknown -fi - - eval gl_cv_bitsizeof_${gltype}=\$result - -fi -eval ac_res=\$gl_cv_bitsizeof_${gltype} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval result=\$gl_cv_bitsizeof_${gltype} - if test $result = unknown; then - result=0 - fi - GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h - - eval BITSIZEOF_${GLTYPE}=\$result - done fi - for gltype in sig_atomic_t wchar_t wint_t ; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 -printf %s "checking for bit size of $gltype... " >&6; } -if eval test \${gl_cv_bitsizeof_${gltype}+y} + ac_fn_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getenv" = xyes then : - printf %s "(cached) " >&6 + ac_have_decl=1 else $as_nop - if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " - #include - #include - #if HAVE_WCHAR_H - # include - #endif - -#include " -then : - -else $as_nop - result=unknown + ac_have_decl=0 fi +printf "%s\n" "#define HAVE_DECL_GETENV $ac_have_decl" >>confdefs.h - eval gl_cv_bitsizeof_${gltype}=\$result - -fi -eval ac_res=\$gl_cv_bitsizeof_${gltype} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval result=\$gl_cv_bitsizeof_${gltype} - if test $result = unknown; then - result=0 - fi - GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h - - eval BITSIZEOF_${GLTYPE}=\$result - done - - - - - for gltype in sig_atomic_t wchar_t wint_t ; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 -printf %s "checking whether $gltype is signed... " >&6; } -if eval test \${gl_cv_type_${gltype}_signed+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #if HAVE_WCHAR_H - # include - #endif - - int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - result=yes -else $as_nop - result=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - eval gl_cv_type_${gltype}_signed=\$result - -fi -eval ac_res=\$gl_cv_type_${gltype}_signed - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval result=\$gl_cv_type_${gltype}_signed - GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - if test "$result" = yes; then - printf "%s\n" "#define HAVE_SIGNED_${GLTYPE} 1" >>confdefs.h - - eval HAVE_SIGNED_${GLTYPE}=1 - else - eval HAVE_SIGNED_${GLTYPE}=0 - fi - done - - - gl_cv_type_ptrdiff_t_signed=yes - gl_cv_type_size_t_signed=no - if test $APPLE_UNIVERSAL_BUILD = 0; then - - - for gltype in ptrdiff_t size_t ; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 -printf %s "checking for $gltype integer literal suffix... " >&6; } -if eval test \${gl_cv_type_${gltype}_suffix+y} -then : - printf %s "(cached) " >&6 -else $as_nop - 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 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #if HAVE_WCHAR_H - # include - #endif - - extern $gltype foo; - extern $gltype1 foo; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval gl_cv_type_${gltype}_suffix=\$glsuf -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - eval result=\$gl_cv_type_${gltype}_suffix - test "$result" != no && break - done -fi -eval ac_res=\$gl_cv_type_${gltype}_suffix - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - eval result=\$gl_cv_type_${gltype}_suffix - test "$result" = no && result= - eval ${GLTYPE}_SUFFIX=\$result - printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h - - done - - - fi - - - for gltype in sig_atomic_t wchar_t wint_t ; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 -printf %s "checking for $gltype integer literal suffix... " >&6; } -if eval test \${gl_cv_type_${gltype}_suffix+y} -then : - printf %s "(cached) " >&6 -else $as_nop - 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 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #if HAVE_WCHAR_H - # include - #endif - - extern $gltype foo; - extern $gltype1 foo; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval gl_cv_type_${gltype}_suffix=\$glsuf -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - eval result=\$gl_cv_type_${gltype}_suffix - test "$result" != no && break - done -fi -eval ac_res=\$gl_cv_type_${gltype}_suffix - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - eval result=\$gl_cv_type_${gltype}_suffix - test "$result" = no && result= - eval ${GLTYPE}_SUFFIX=\$result - printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h - done - if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then - BITSIZEOF_WINT_T=32 - fi - ;; - esac - - - - GL_GENERATE_LIMITS_H=true @@ -31974,18 +26725,6 @@ printf "%s\n" "$ac_res" >&6; } - HAVE_DECL_IMAXABS=1; - HAVE_DECL_IMAXDIV=1; - HAVE_DECL_STRTOIMAX=1; - HAVE_DECL_STRTOUMAX=1; - HAVE_IMAXDIV_T=1; - REPLACE_STRTOIMAX=0; - REPLACE_STRTOUMAX=0; - INT32_MAX_LT_INTMAX_MAX=1; - INT64_MAX_EQ_LONG_MAX='defined _LP64'; - PRIPTR_PREFIX=__PRIPTR_PREFIX; - UINT32_MAX_LT_UINTMAX_MAX=1; - UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; @@ -32001,72 +26740,17 @@ printf "%s\n" "$ac_res" >&6; } - if test $gl_cv_have_include_next = yes; then - gl_cv_next_inttypes_h='<'inttypes.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_inttypes_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test $ac_cv_header_inttypes_h = yes; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'inttypes.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - gl_header=$gl_cv_absolute_inttypes_h - gl_cv_next_inttypes_h='"'$gl_header'"' - else - gl_cv_next_inttypes_h='<'inttypes.h'>' - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5 -printf "%s\n" "$gl_cv_next_inttypes_h" >&6; } - fi - NEXT_INTTYPES_H=$gl_cv_next_inttypes_h - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'inttypes.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_inttypes_h - fi - NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive @@ -32082,23 +26766,16 @@ printf "%s\n" "$gl_cv_next_inttypes_h" >&6; } - GL_GNULIB_IMAXABS=0 - GL_GNULIB_IMAXDIV=0 - GL_GNULIB_STRTOIMAX=0 - - - - GL_GNULIB_STRTOUMAX=0 - + GNULIB_NL_LANGINFO=0; HAVE_NL_LANGINFO=1; REPLACE_NL_LANGINFO=0; @@ -32109,293 +26786,275 @@ printf "%s\n" "$gl_cv_next_inttypes_h" >&6; } - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_langinfo_h='<'langinfo.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_langinfo_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_langinfo_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - case "$host_os" in mingw*) - gl_dirsep_regex='[/\\]' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 +printf %s "checking for 64-bit off_t... " >&6; } +if test ${gl_cv_type_off_t_64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_off_t_64=yes +else $as_nop + gl_cv_type_off_t_64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 +printf "%s\n" "$gl_cv_type_off_t_64" >&6; } + if test $gl_cv_type_off_t_64 = no; then + WINDOWS_64_BIT_OFF_T=1 + else + WINDOWS_64_BIT_OFF_T=0 + fi + WINDOWS_64_BIT_ST_SIZE=1 ;; *) - gl_dirsep_regex='\/' + WINDOWS_64_BIT_OFF_T=0 + WINDOWS_64_BIT_ST_SIZE=0 ;; esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'langinfo.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_langinfo_h - gl_cv_next_langinfo_h='"'$gl_header'"' - else - gl_cv_next_langinfo_h='<'langinfo.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 -printf "%s\n" "$gl_cv_next_langinfo_h" >&6; } - fi - NEXT_LANGINFO_H=$gl_cv_next_langinfo_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'langinfo.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_langinfo_h - fi - NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive - HAVE_LANGINFO_CODESET=0 - HAVE_LANGINFO_T_FMT_AMPM=0 - HAVE_LANGINFO_ALTMON=0 - HAVE_LANGINFO_ERA=0 - HAVE_LANGINFO_YESEXPR=0 - if test $ac_cv_header_langinfo_h = yes; then - HAVE_LANGINFO_H=1 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 -printf %s "checking whether langinfo.h defines CODESET... " >&6; } -if test ${gl_cv_header_langinfo_codeset+y} + + + + + : + + + + + + + : + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 +printf %s "checking for working fcntl.h... " >&6; } +if test ${gl_cv_header_working_fcntl_h+y} then : printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + gl_cv_header_working_fcntl_h=cross-compiling else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -int a = CODESET; +#include + #include + #if HAVE_UNISTD_H + # include + #else /* on Windows with MSVC */ + # include + # include + # defined sleep(n) _sleep ((n) * 1000) + #endif + #include + #ifndef O_NOATIME + #define O_NOATIME 0 + #endif + #ifndef O_NOFOLLOW + #define O_NOFOLLOW 0 + #endif + static int const constants[] = + { + O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, + O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY + }; int main (void) { + int result = !constants; + #if HAVE_SYMLINK + { + static char const sym[] = "conftest.sym"; + if (symlink ("/dev/null", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + if (unlink (sym) != 0 || symlink (".", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_RDONLY | O_NOFOLLOW); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + unlink (sym); + } + #endif + { + static char const file[] = "confdefs.h"; + int fd = open (file, O_RDONLY | O_NOATIME); + if (fd < 0) + result |= 8; + else + { + struct stat st0; + if (fstat (fd, &st0) != 0) + result |= 16; + else + { + char c; + sleep (1); + if (read (fd, &c, 1) != 1) + result |= 24; + else + { + if (close (fd) != 0) + result |= 32; + else + { + struct stat st1; + if (stat (file, &st1) != 0) + result |= 40; + else + if (st0.st_atime != st1.st_atime) + result |= 64; + } + } + } + } + } + return result; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_run "$LINENO" then : - gl_cv_header_langinfo_codeset=yes + gl_cv_header_working_fcntl_h=yes else $as_nop - gl_cv_header_langinfo_codeset=no + case $? in #( + 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( + 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( + 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( + *) gl_cv_header_working_fcntl_h='no';; + esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 -printf "%s\n" "$gl_cv_header_langinfo_codeset" >&6; } - if test $gl_cv_header_langinfo_codeset = yes; then - HAVE_LANGINFO_CODESET=1 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 -printf %s "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } -if test ${gl_cv_header_langinfo_t_fmt_ampm+y} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 +printf "%s\n" "$gl_cv_header_working_fcntl_h" >&6; } + + case $gl_cv_header_working_fcntl_h in #( + *O_NOATIME* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +printf "%s\n" "#define HAVE_WORKING_O_NOATIME $ac_val" >>confdefs.h + + + case $gl_cv_header_working_fcntl_h in #( + *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +printf "%s\n" "#define HAVE_WORKING_O_NOFOLLOW $ac_val" >>confdefs.h + + + + ac_fn_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_getc_unlocked" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 +printf %s "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } +if test ${ac_cv_gnu_library_2_1+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -int a = T_FMT_AMPM; -int -main (void) -{ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif +#ifdef __UCLIBC__ + Lucky user +#endif - ; - return 0; -} _ACEOF -if ac_fn_c_try_compile "$LINENO" +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky" >/dev/null 2>&1 then : - gl_cv_header_langinfo_t_fmt_ampm=yes + ac_cv_gnu_library_2_1=yes else $as_nop - gl_cv_header_langinfo_t_fmt_ampm=no + ac_cv_gnu_library_2_1=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -rf conftest* + + fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 -printf "%s\n" "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } - if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then - HAVE_LANGINFO_T_FMT_AMPM=1 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ALTMON_1" >&5 -printf %s "checking whether langinfo.h defines ALTMON_1... " >&6; } -if test ${gl_cv_header_langinfo_altmon+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int a = ALTMON_1; +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 +printf "%s\n" "$ac_cv_gnu_library_2_1" >&6; } -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_langinfo_altmon=yes -else $as_nop - gl_cv_header_langinfo_altmon=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_altmon" >&5 -printf "%s\n" "$gl_cv_header_langinfo_altmon" >&6; } - if test $gl_cv_header_langinfo_altmon = yes; then - HAVE_LANGINFO_ALTMON=1 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 -printf %s "checking whether langinfo.h defines ERA... " >&6; } -if test ${gl_cv_header_langinfo_era+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int a = ERA; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_langinfo_era=yes -else $as_nop - gl_cv_header_langinfo_era=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 -printf "%s\n" "$gl_cv_header_langinfo_era" >&6; } - if test $gl_cv_header_langinfo_era = yes; then - HAVE_LANGINFO_ERA=1 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 -printf %s "checking whether langinfo.h defines YESEXPR... " >&6; } -if test ${gl_cv_header_langinfo_yesexpr+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int a = YESEXPR; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_langinfo_yesexpr=yes -else $as_nop - gl_cv_header_langinfo_yesexpr=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 -printf "%s\n" "$gl_cv_header_langinfo_yesexpr" >&6; } - if test $gl_cv_header_langinfo_yesexpr = yes; then - HAVE_LANGINFO_YESEXPR=1 - fi - else - HAVE_LANGINFO_H=0 - fi + GLIBC21="$ac_cv_gnu_library_2_1" - - - - - - - - - - - GL_GNULIB_NL_LANGINFO=0 - - - - - HAVE_NEWLOCALE=1; - HAVE_DUPLOCALE=1; - HAVE_FREELOCALE=1; + GNULIB_LOCALECONV=0; + GNULIB_SETLOCALE=0; + GNULIB_DUPLOCALE=0; + HAVE_DUPLOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; - REPLACE_NEWLOCALE=0; REPLACE_DUPLOCALE=0; - REPLACE_FREELOCALE=0; REPLACE_STRUCT_LCONV=0; - LOCALENAME_ENHANCE_LOCALE_FUNCS=0; REPLACE_NULL=0; - HAVE_MAX_ALIGN_T=1; HAVE_WCHAR_T=1; @@ -32436,69 +27095,11 @@ printf "%s\n" "#define HAVE_WCHAR_T 1" >>confdefs.h - - - - GL_GENERATE_STDDEF_H=false - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 -printf %s "checking for good max_align_t... " >&6; } -if test ${gl_cv_type_max_align_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* On FreeBSD 12.0/x86, max_align_t defined by has - the correct alignment with the default (wrong) definition of - _Alignof, but a wrong alignment as soon as we activate an - ISO C compliant _Alignof definition. */ - #if ((defined __GNUC__ && 4 <= __GNUC__) || defined __clang__) && !defined __cplusplus - #define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) - #endif - #include - unsigned int s = sizeof (max_align_t); - #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ - int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; - int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; - #endif - typedef struct { char a; max_align_t b; } max_helper; - typedef struct { char a; long b; } long_helper; - typedef struct { char a; double b; } double_helper; - typedef struct { char a; long double b; } long_double_helper; - int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; - int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; - int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_type_max_align_t=yes -else $as_nop - gl_cv_type_max_align_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5 -printf "%s\n" "$gl_cv_type_max_align_t" >&6; } - if test $gl_cv_type_max_align_t = no; then - HAVE_MAX_ALIGN_T=0 - GL_GENERATE_STDDEF_H=true - fi - + STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 - GL_GENERATE_STDDEF_H=true + STDDEF_H=stddef.h fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; } if test ${gl_cv_decl_null_works+y} @@ -32530,10 +27131,18 @@ fi printf "%s\n" "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 - GL_GENERATE_STDDEF_H=true + STDDEF_H=stddef.h fi - if $GL_GENERATE_STDDEF_H; then + if test -n "$STDDEF_H"; then + GL_GENERATE_STDDEF_H_TRUE= + GL_GENERATE_STDDEF_H_FALSE='#' +else + GL_GENERATE_STDDEF_H_TRUE='#' + GL_GENERATE_STDDEF_H_FALSE= +fi + + if test -n "$STDDEF_H"; then @@ -32552,40 +27161,36 @@ then : printf %s "(cached) " >&6 else $as_nop - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'stddef.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_stddef_h - gl_cv_next_stddef_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'stddef.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' fi @@ -32612,258 +27217,6 @@ printf "%s\n" "$gl_cv_next_stddef_h" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 -printf %s "checking whether locale.h defines locale_t... " >&6; } -if test ${gl_cv_header_locale_has_locale_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - locale_t x; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_locale_has_locale_t=yes -else $as_nop - gl_cv_header_locale_has_locale_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 -printf "%s\n" "$gl_cv_header_locale_has_locale_t" >&6; } - - - if test $ac_cv_header_xlocale_h = yes; then - HAVE_XLOCALE_H=1 - if test $gl_cv_header_locale_has_locale_t = yes; then - gl_cv_header_locale_h_needs_xlocale_h=no - else - gl_cv_header_locale_h_needs_xlocale_h=yes - fi - HAVE_LOCALE_T=1 - else - HAVE_XLOCALE_H=0 - gl_cv_header_locale_h_needs_xlocale_h=no - if test $gl_cv_header_locale_has_locale_t = yes; then - HAVE_LOCALE_T=1 - else - HAVE_LOCALE_T=0 - fi - fi - - - - - - - - - - - - - case "$host_os" in - solaris*) - -printf "%s\n" "#define _LCONV_C99 1" >>confdefs.h - - ;; - esac - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 -printf %s "checking whether locale.h conforms to POSIX:2001... " >&6; } -if test ${gl_cv_header_locale_h_posix2001+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - int x = LC_MESSAGES; - int y = sizeof (((struct lconv *) 0)->decimal_point); -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_locale_h_posix2001=yes -else $as_nop - gl_cv_header_locale_h_posix2001=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 -printf "%s\n" "$gl_cv_header_locale_h_posix2001" >&6; } - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 -printf %s "checking whether struct lconv is properly defined... " >&6; } -if test ${gl_cv_sys_struct_lconv_ok+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - struct lconv l; - int x = sizeof (l.decimal_point); - int y = sizeof (l.int_p_cs_precedes); -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_sys_struct_lconv_ok=yes -else $as_nop - gl_cv_sys_struct_lconv_ok=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 -printf "%s\n" "$gl_cv_sys_struct_lconv_ok" >&6; } - if test $gl_cv_sys_struct_lconv_ok = no; then - case "$host_os" in - mingw*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _MSC_VER - Special -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Special" >/dev/null 2>&1 -then : - -else $as_nop - REPLACE_STRUCT_LCONV=1 -fi -rm -rf conftest* - - ;; - *) REPLACE_STRUCT_LCONV=1 ;; - esac - fi - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_locale_h='<'locale.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_locale_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'locale.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_locale_h - gl_cv_next_locale_h='"'$gl_header'"' - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 -printf "%s\n" "$gl_cv_next_locale_h" >&6; } - fi - NEXT_LOCALE_H=$gl_cv_next_locale_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'locale.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_locale_h - fi - NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive - - - - - - - - - - - - GL_GNULIB_LOCALECONV=0 - - - - GL_GNULIB_SETLOCALE=0 - - - - GL_GNULIB_SETLOCALE_NULL=0 - - - - GL_GNULIB_DUPLOCALE=0 - - - - GL_GNULIB_LOCALENAME=0 - - @@ -32873,21 +27226,14 @@ printf "%s\n" "$gl_cv_next_locale_h" >&6; } LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 printf %s "checking whether imported symbols can be declared weak... " >&6; } if test ${gl_cv_have_weak+y} then : printf %s "(cached) " >&6 else $as_nop - case "$host_os" in - cygwin*) - gl_cv_have_weak="guessing no" - ;; - *) - gl_cv_have_weak=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + gl_cv_have_weak=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy @@ -32905,14 +27251,14 @@ then : fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - if test $gl_cv_have_weak = maybe; then - if test "$cross_compiling" = yes + if test $gl_cv_have_weak = maybe; then + if test "$cross_compiling" = yes then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ - Extensible Linking Format - #endif + Extensible Linking Format + #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | @@ -32946,65 +27292,15 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi - ;; - esac - case " $LDFLAGS " in - *" -static "*) gl_cv_have_weak=no ;; - esac - case "$gl_cv_have_weak" in - *yes) - case "$host_os" in - freebsd* | dragonfly* | midnightbsd*) - : > conftest1.c - $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 - cat < conftest2.c -#include -#pragma weak pthread_mutexattr_gettype -int main () -{ - return (pthread_mutexattr_gettype != NULL); -} -EOF - $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ - || gl_cv_have_weak=no - rm -f conftest1.c libempty.so conftest2.c conftest - ;; - esac - ;; - esac + fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 printf "%s\n" "$gl_cv_have_weak" >&6; } - case "$gl_cv_have_weak" in - *yes) - -printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h - - ;; - esac - - if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then - - : - fi - if test "$gl_use_threads" = isoc || test "$gl_use_threads" = isoc+posix; then - - gl_have_isoc_threads="$ac_cv_header_threads_h" - fi - if test "$gl_use_threads" = yes \ - || test "$gl_use_threads" = posix \ - || test "$gl_use_threads" = isoc+posix; then - - - if test -z "$gl_pthreadlib_body_done"; then - gl_pthread_api=no - LIBPTHREAD= - LIBPMULTITHREAD= - # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. - ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. + ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" if test "x$ac_cv_header_pthread_h" = xyes then : gl_have_pthread_h=yes @@ -33012,81 +27308,38 @@ else $as_nop gl_have_pthread_h=no fi - if test "$gl_have_pthread_h" = yes; then - # Other possible tests: - # -lpthreads (FSU threads, PCthreads) - # -lgthreads - # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist - # in libc. IRIX 6.5 has the first one in both libc and libpthread, but - # the second one only in libpthread, and lock.c needs it. - # - # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 - # needs -pthread for some reason. See: - # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html - save_LIBS=$LIBS - for gl_pthread in '' '-pthread'; do - LIBS="$LIBS $gl_pthread" + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + gl_have_pthread= + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - pthread_mutex_t m; - pthread_mutexattr_t ma; - int main (void) { -pthread_mutex_lock (&m); - pthread_mutexattr_init (&ma); +pthread_mutex_lock((pthread_mutex_t*)0); + pthread_mutexattr_init((pthread_mutexattr_t*)0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : - gl_pthread_api=yes - LIBPTHREAD=$gl_pthread - LIBPMULTITHREAD=$gl_pthread + gl_have_pthread=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LIBS=$save_LIBS - test $gl_pthread_api = yes && break - done - echo "$as_me:33055: gl_pthread_api=$gl_pthread_api" >&5 - echo "$as_me:33056: LIBPTHREAD=$LIBPTHREAD" >&5 - - gl_pthread_in_glibc=no - # On Linux with glibc >= 2.34, libc contains the fully functional - # pthread functions. - case "$host_os" in - linux*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) - Lucky user - #endif - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky user" >/dev/null 2>&1 -then : - gl_pthread_in_glibc=yes -fi -rm -rf conftest* - - ;; - esac - echo "$as_me:33082: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 - - # Test for libpthread by looking for pthread_kill. (Not pthread_self, - # since it is defined as a macro on OSF/1.) - if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then - # The program links fine without libpthread. But it may actually - # need to link with libpthread in order to create multiple threads. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test -n "$gl_have_pthread"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 printf %s "checking for pthread_kill in -lpthread... " >&6; } if test ${ac_cv_lib_pthread_pthread_kill+y} then : @@ -33123,29 +27376,23 @@ fi printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes then : - if test $gl_pthread_in_glibc = yes; then - LIBPMULTITHREAD= - else - LIBPMULTITHREAD=-lpthread + LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. - # On Solaris 10 or newer, this test is no longer needed, because - # libc contains the fully functional pthread functions. case "$host_os" in - solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) + solaris* | hpux*) printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac - fi fi - elif test $gl_pthread_api != yes; then - # Some library is needed. Try libpthread and libc_r. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 + else + # Some library is needed. Try libpthread and libc_r. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 printf %s "checking for pthread_kill in -lpthread... " >&6; } if test ${ac_cv_lib_pthread_pthread_kill+y} then : @@ -33182,14 +27429,14 @@ fi printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes then : - gl_pthread_api=yes - LIBPTHREAD=-lpthread - LIBPMULTITHREAD=-lpthread + gl_have_pthread=yes + LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread + LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread fi - if test $gl_pthread_api != yes; then - # For FreeBSD 4. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 + if test -z "$gl_have_pthread"; then + # For FreeBSD 4. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 printf %s "checking for pthread_kill in -lc_r... " >&6; } if test ${ac_cv_lib_c_r_pthread_kill+y} then : @@ -33226,623 +27473,637 @@ fi printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; } if test "x$ac_cv_lib_c_r_pthread_kill" = xyes then : - gl_pthread_api=yes - LIBPTHREAD=-lc_r - LIBPMULTITHREAD=-lc_r + gl_have_pthread=yes + LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r + LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r fi + fi fi - fi - echo "$as_me:33236: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 -printf %s "checking whether POSIX threads API is available... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 -printf "%s\n" "$gl_pthread_api" >&6; } - - - if test $gl_pthread_api = yes; then - -printf "%s\n" "#define HAVE_PTHREAD_API 1" >>confdefs.h - - fi - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - LIB_SCHED_YIELD= - -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 -printf %s "checking for sched_yield in -lrt... " >&6; } -if test ${ac_cv_lib_rt_sched_yield+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sched_yield (); -int -main (void) -{ -return sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_rt_sched_yield=yes -else $as_nop - ac_cv_lib_rt_sched_yield=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 -printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; } -if test "x$ac_cv_lib_rt_sched_yield" = xyes -then : - LIB_SCHED_YIELD=-lrt -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 -printf %s "checking for sched_yield in -lposix4... " >&6; } -if test ${ac_cv_lib_posix4_sched_yield+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix4 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sched_yield (); -int -main (void) -{ -return sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_posix4_sched_yield=yes -else $as_nop - ac_cv_lib_posix4_sched_yield=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 -printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; } -if test "x$ac_cv_lib_posix4_sched_yield" = xyes -then : - LIB_SCHED_YIELD=-lposix4 -fi - -fi - - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - - - gl_pthreadlib_body_done=done - fi - - LIBTHREAD=$LIBPTHREAD LTLIBTHREAD=$LIBPTHREAD - LIBMULTITHREAD=$LIBPMULTITHREAD LTLIBMULTITHREAD=$LIBPMULTITHREAD - if test $gl_pthread_api = yes; then - if test "$gl_use_threads" = isoc+posix && test "$gl_have_isoc_threads" = yes; then - gl_threads_api='isoc+posix' - -printf "%s\n" "#define USE_ISOC_AND_POSIX_THREADS 1" >>confdefs.h - - LIBTHREAD= LTLIBTHREAD= - else + if test -n "$gl_have_pthread"; then gl_threads_api=posix printf "%s\n" "#define USE_POSIX_THREADS 1" >>confdefs.h - if test -z "$LIBMULTITHREAD" && test -z "$LTLIBMULTITHREAD"; then - -printf "%s\n" "#define USE_POSIX_THREADS_FROM_LIBC 1" >>confdefs.h - - else + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then printf "%s\n" "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h - LIBTHREAD= LTLIBTHREAD= - else - case "$host_os" in - freebsd* | dragonfly* | midnightbsd*) - if test "x$LIBTHREAD" != "x$LIBMULTITHREAD"; then - -printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h - - fi - ;; - esac + LIBTHREAD= + LTLIBTHREAD= fi fi fi fi fi - if test $gl_threads_api = none; then - if test "$gl_use_threads" = isoc && test "$gl_have_isoc_threads" = yes; then - - - - if test -z "$gl_stdthreadlib_body_done"; then - - - case "$host_os" in - mingw*) - LIBSTDTHREAD= - ;; - *) - - - if test -z "$gl_pthreadlib_body_done"; then - gl_pthread_api=no - LIBPTHREAD= - LIBPMULTITHREAD= - # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. - ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = xyes -then : - gl_have_pthread_h=yes -else $as_nop - gl_have_pthread_h=no -fi - - if test "$gl_have_pthread_h" = yes; then - # Other possible tests: - # -lpthreads (FSU threads, PCthreads) - # -lgthreads - # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist - # in libc. IRIX 6.5 has the first one in both libc and libpthread, but - # the second one only in libpthread, and lock.c needs it. - # - # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 - # needs -pthread for some reason. See: - # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html - save_LIBS=$LIBS - for gl_pthread in '' '-pthread'; do - LIBS="$LIBS $gl_pthread" + if test -z "$gl_have_pthread"; then + if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then + gl_have_solaristhread= + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - pthread_mutex_t m; - pthread_mutexattr_t ma; + +#include +#include int main (void) { -pthread_mutex_lock (&m); - pthread_mutexattr_init (&ma); +thr_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : - gl_pthread_api=yes - LIBPTHREAD=$gl_pthread - LIBPMULTITHREAD=$gl_pthread + gl_have_solaristhread=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LIBS=$save_LIBS - test $gl_pthread_api = yes && break - done - echo "$as_me:33464: gl_pthread_api=$gl_pthread_api" >&5 - echo "$as_me:33465: LIBPTHREAD=$LIBPTHREAD" >&5 + LIBS="$gl_save_LIBS" + if test -n "$gl_have_solaristhread"; then + gl_threads_api=solaris + LIBTHREAD=-lthread + LTLIBTHREAD=-lthread + LIBMULTITHREAD="$LIBTHREAD" + LTLIBMULTITHREAD="$LTLIBTHREAD" - gl_pthread_in_glibc=no - # On Linux with glibc >= 2.34, libc contains the fully functional - # pthread functions. - case "$host_os" in - linux*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) - Lucky user - #endif - #endif +printf "%s\n" "#define USE_SOLARIS_THREADS 1" >>confdefs.h -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky user" >/dev/null 2>&1 -then : - gl_pthread_in_glibc=yes -fi -rm -rf conftest* + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then - ;; - esac - echo "$as_me:33491: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5 - - # Test for libpthread by looking for pthread_kill. (Not pthread_self, - # since it is defined as a macro on OSF/1.) - if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then - # The program links fine without libpthread. But it may actually - # need to link with libpthread in order to create multiple threads. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 -printf %s "checking for pthread_kill in -lpthread... " >&6; } -if test ${ac_cv_lib_pthread_pthread_kill+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_kill (); -int -main (void) -{ -return pthread_kill (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_pthread_pthread_kill=yes -else $as_nop - ac_cv_lib_pthread_pthread_kill=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 -printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } -if test "x$ac_cv_lib_pthread_pthread_kill" = xyes -then : - if test $gl_pthread_in_glibc = yes; then - LIBPMULTITHREAD= - else - LIBPMULTITHREAD=-lpthread - # On Solaris and HP-UX, most pthread functions exist also in libc. - # Therefore pthread_in_use() needs to actually try to create a - # thread: pthread_create from libc will fail, whereas - # pthread_create will actually create a thread. - # On Solaris 10 or newer, this test is no longer needed, because - # libc contains the fully functional pthread functions. - case "$host_os" in - solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) - -printf "%s\n" "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h - - esac - fi - -fi - - elif test $gl_pthread_api != yes; then - # Some library is needed. Try libpthread and libc_r. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 -printf %s "checking for pthread_kill in -lpthread... " >&6; } -if test ${ac_cv_lib_pthread_pthread_kill+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_kill (); -int -main (void) -{ -return pthread_kill (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_pthread_pthread_kill=yes -else $as_nop - ac_cv_lib_pthread_pthread_kill=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 -printf "%s\n" "$ac_cv_lib_pthread_pthread_kill" >&6; } -if test "x$ac_cv_lib_pthread_pthread_kill" = xyes -then : - gl_pthread_api=yes - LIBPTHREAD=-lpthread - LIBPMULTITHREAD=-lpthread -fi - - if test $gl_pthread_api != yes; then - # For FreeBSD 4. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 -printf %s "checking for pthread_kill in -lc_r... " >&6; } -if test ${ac_cv_lib_c_r_pthread_kill+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc_r $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_kill (); -int -main (void) -{ -return pthread_kill (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_c_r_pthread_kill=yes -else $as_nop - ac_cv_lib_c_r_pthread_kill=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 -printf "%s\n" "$ac_cv_lib_c_r_pthread_kill" >&6; } -if test "x$ac_cv_lib_c_r_pthread_kill" = xyes -then : - gl_pthread_api=yes - LIBPTHREAD=-lc_r - LIBPMULTITHREAD=-lc_r -fi +printf "%s\n" "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h + LIBTHREAD= + LTLIBTHREAD= + fi fi fi - echo "$as_me:33645: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5 fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5 -printf %s "checking whether POSIX threads API is available... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_pthread_api" >&5 -printf "%s\n" "$gl_pthread_api" >&6; } + if test "$gl_use_threads" = pth; then + gl_save_CPPFLAGS="$CPPFLAGS" - if test $gl_pthread_api = yes; then -printf "%s\n" "#define HAVE_PTHREAD_API 1" >>confdefs.h - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - LIB_SCHED_YIELD= - -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 -printf %s "checking for sched_yield in -lrt... " >&6; } -if test ${ac_cv_lib_rt_sched_yield+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5 +printf %s "checking how to link with libpth... " >&6; } +if test ${ac_cv_libpth_libs+y} then : printf %s "(cached) " >&6 else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sched_yield (); -int -main (void) -{ -return sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libpth-prefix was given. +if test ${with_libpth_prefix+y} then : - ac_cv_lib_rt_sched_yield=yes -else $as_nop - ac_cv_lib_rt_sched_yield=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 -printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; } -if test "x$ac_cv_lib_rt_sched_yield" = xyes -then : - LIB_SCHED_YIELD=-lrt -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 -printf %s "checking for sched_yield in -lposix4... " >&6; } -if test ${ac_cv_lib_posix4_sched_yield+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix4 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + withval=$with_libpth_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sched_yield (); -int -main (void) -{ -return sched_yield (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_posix4_sched_yield=yes -else $as_nop - ac_cv_lib_posix4_sched_yield=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 -printf "%s\n" "$ac_cv_lib_posix4_sched_yield" >&6; } -if test "x$ac_cv_lib_posix4_sched_yield" = xyes -then : - LIB_SCHED_YIELD=-lposix4 -fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - - - gl_pthreadlib_body_done=done - fi - - if test $ac_cv_header_threads_h = yes; then - ac_fn_c_check_func "$LINENO" "thrd_create" "ac_cv_func_thrd_create" -if test "x$ac_cv_func_thrd_create" = xyes -then : - printf "%s\n" "#define HAVE_THRD_CREATE 1" >>confdefs.h - -fi - - if test $ac_cv_func_thrd_create = yes; then - LIBSTDTHREAD= + LIBPTH= + LTLIBPTH= + INCPTH= + LIBPTH_PREFIX= + HAVE_LIBPTH= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='pth ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value" else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thrd_create in -lstdthreads" >&5 -printf %s "checking for thrd_create in -lstdthreads... " >&6; } -if test ${ac_cv_lib_stdthreads_thrd_create+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lstdthreads $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char thrd_create (); -int -main (void) -{ -return thrd_create (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_stdthreads_thrd_create=yes -else $as_nop - ac_cv_lib_stdthreads_thrd_create=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_stdthreads_thrd_create" >&5 -printf "%s\n" "$ac_cv_lib_stdthreads_thrd_create" >&6; } -if test "x$ac_cv_lib_stdthreads_thrd_create" = xyes -then : - - LIBSTDTHREAD='-lstdthreads -lpthread' - -else $as_nop - - LIBSTDTHREAD="$LIBPMULTITHREAD" - -fi - + : fi else - LIBSTDTHREAD="$LIBPMULTITHREAD $LIB_SCHED_YIELD" + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBPTH; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBPTH; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" + else + LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a" + else + LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'pth'; then + LIBPTH_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'pth'; then + LIBPTH_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCPTH; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBPTH; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBPTH; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBPTH="${LIBPTH}${LIBPTH:+ }$dep" + LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep" + ;; + esac + done + fi + else + LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" + LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name" + fi fi - ;; - esac - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ISO C threads API is available" >&5 -printf %s "checking whether ISO C threads API is available... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_threads_h" >&5 -printf "%s\n" "$ac_cv_header_threads_h" >&6; } - gl_stdthreadlib_body_done=done + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir" + done fi - LIBTHREAD=$LIBSTDTHREAD LTLIBTHREAD=$LIBSTDTHREAD - LIBMULTITHREAD=$LIBSTDTHREAD LTLIBMULTITHREAD=$LIBSTDTHREAD - gl_threads_api=isoc -printf "%s\n" "#define USE_ISOC_THREADS 1" >>confdefs.h + + + + ac_cv_libpth_libs="$LIBPTH" + ac_cv_libpth_ltlibs="$LTLIBPTH" + ac_cv_libpth_cppflags="$INCPTH" + ac_cv_libpth_prefix="$LIBPTH_PREFIX" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5 +printf "%s\n" "$ac_cv_libpth_libs" >&6; } + LIBPTH="$ac_cv_libpth_libs" + LTLIBPTH="$ac_cv_libpth_ltlibs" + INCPTH="$ac_cv_libpth_cppflags" + LIBPTH_PREFIX="$ac_cv_libpth_prefix" + + for element in $INCPTH; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + + + HAVE_LIBPTH=yes + + + + gl_have_pth= + gl_save_LIBS="$LIBS" + LIBS="$LIBS $LIBPTH" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +pth_self(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_have_pth=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gl_save_LIBS" + if test -n "$gl_have_pth"; then + gl_threads_api=pth + LIBTHREAD="$LIBPTH" + LTLIBTHREAD="$LTLIBPTH" + LIBMULTITHREAD="$LIBTHREAD" + LTLIBMULTITHREAD="$LTLIBTHREAD" + +printf "%s\n" "#define USE_PTH_THREADS 1" >>confdefs.h + + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + +printf "%s\n" "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h + + LIBTHREAD= + LTLIBTHREAD= + fi + fi + else + CPPFLAGS="$gl_save_CPPFLAGS" fi fi - if test $gl_threads_api = none; then + if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in @@ -33873,25 +28134,56 @@ printf "%s\n" "$gl_threads_api" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5 +printf %s "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } +if test ${gl_cv_func_malloc_posix+y} +then : + printf %s "(cached) " >&6 +else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5 -printf %s "checking whether malloc (0) returns nonnull... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + choke me + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_malloc_posix=yes +else $as_nop + gl_cv_func_malloc_posix=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 +printf "%s\n" "$gl_cv_func_malloc_posix" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 +printf %s "checking for GNU libc compatible malloc... " >&6; } if test ${ac_cv_func_malloc_0_nonnull+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : - case "$host_os" in - # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ - | gnu* | *-musl* | midnightbsd* \ - | hpux* | solaris* | cygwin* | mingw* | msys* ) - ac_cv_func_malloc_0_nonnull="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; - esac - + case "$host_os" in # (( + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull=yes ;; + # If we don't know, assume the worst. + *) ac_cv_func_malloc_0_nonnull=no ;; + esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -33901,13 +28193,12 @@ int main (void) { void *p = malloc (0); - int result = !p; - free (p); - return result; + int result = !p; + free (p); + return result; ; return 0; } - _ACEOF if ac_fn_c_try_run "$LINENO" then : @@ -33919,172 +28210,140 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } - case $ac_cv_func_malloc_0_nonnull in #( - *yes) : - gl_cv_func_malloc_0_nonnull=1 ;; #( - *) : - gl_cv_func_malloc_0_nonnull=0 ;; -esac +if test $ac_cv_func_malloc_0_nonnull = yes +then : + gl_cv_func_malloc_0_nonnull=1 +else $as_nop + gl_cv_func_malloc_0_nonnull=0 +fi printf "%s\n" "#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull" >>confdefs.h - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_math_h='<'math.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_math_h+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 +printf %s "checking for unsigned long long int... " >&6; } +if test ${ac_cv_type_unsigned_long_long_int+y} then : printf %s "(cached) " >&6 else $as_nop - - if test $ac_cv_header_math_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_cv_type_unsigned_long_long_int=yes + if test "x${ac_cv_prog_cc_c99-no}" = xno; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'math.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_math_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_math_h - gl_cv_next_math_h='"'$gl_header'"' - else - gl_cv_next_math_h='<'math.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_math_h" >&5 -printf "%s\n" "$gl_cv_next_math_h" >&6; } - fi - NEXT_MATH_H=$gl_cv_next_math_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'math.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_math_h - fi - NEXT_AS_FIRST_DIRECTIVE_MATH_H=$gl_next_as_first_directive - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5 -printf %s "checking whether NAN macro works... " >&6; } -if test ${gl_cv_header_math_nan_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include + /* For now, do not test the preprocessor; as of 2007 there are too many + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ + /* Test literals. */ + long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + unsigned long long int ull = 18446744073709551615ULL; + /* Test constant expressions. */ + typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + ? 1 : -1)]; + typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63; int main (void) { -/* Solaris 10 has a broken definition of NAN. Other platforms - fail to provide NAN, or provide it only in C99 mode; this - test only needs to fail when NAN is provided but wrong. */ - float f = 1.0f; -#ifdef NAN - f = NAN; -#endif - return f == 0; +/* Test availability of runtime routines for shift and division. */ + long long int llmax = 9223372036854775807ll; + unsigned long long int ullmax = 18446744073709551615ull; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull)); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else $as_nop + ac_cv_type_unsigned_long_long_int=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 +printf "%s\n" "$ac_cv_type_unsigned_long_long_int" >&6; } + if test $ac_cv_type_unsigned_long_long_int = yes; then + +printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h + + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 +printf %s "checking for long long int... " >&6; } +if test ${ac_cv_type_long_long_int+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_type_long_long_int=yes + if test "x${ac_cv_prog_cc_c99-no}" = xno; then + ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int + if test $ac_cv_type_long_long_int = yes; then + if test "$cross_compiling" = yes +then : + : +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifndef LLONG_MAX + # define HALF \ + (1LL << (sizeof (long long int) * CHAR_BIT - 2)) + # define LLONG_MAX (HALF - 1 + HALF) + #endif +int +main (void) +{ +long long int n = 1; + int i; + for (i = 0; ; i++) + { + long long int m = n << i; + if (m >> i != n) + return 1; + if (LLONG_MAX / 2 < m) + break; + } + return 0; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_run "$LINENO" then : - gl_cv_header_math_nan_works=yes + else $as_nop - gl_cv_header_math_nan_works=no + ac_cv_type_long_long_int=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_nan_works" >&5 -printf "%s\n" "$gl_cv_header_math_nan_works" >&6; } - if test $gl_cv_header_math_nan_works = no; then - REPLACE_NAN=1 - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5 -printf %s "checking whether HUGE_VAL works... " >&6; } -if test ${gl_cv_header_math_huge_val_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -/* Solaris 10 has a broken definition of HUGE_VAL. */ - double d = HUGE_VAL; - return d == 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_header_math_huge_val_works=yes -else $as_nop - gl_cv_header_math_huge_val_works=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_huge_val_works" >&5 -printf "%s\n" "$gl_cv_header_math_huge_val_works" >&6; } - if test $gl_cv_header_math_huge_val_works = no; then - REPLACE_HUGE_VAL=1 + + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 +printf "%s\n" "$ac_cv_type_long_long_int" >&6; } + if test $ac_cv_type_long_long_int = yes; then + +printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h + fi @@ -34093,6 +28352,7 @@ printf "%s\n" "$gl_cv_header_math_huge_val_works" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 printf %s "checking for mbstate_t... " >&6; } if test ${ac_cv_type_mbstate_t+y} @@ -34102,7 +28362,14 @@ else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default - #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include int main (void) { @@ -34136,6 +28403,14 @@ printf "%s\n" "#define mbstate_t int" >>confdefs.h + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 printf %s "checking for a traditional japanese locale... " >&6; } if test ${gt_cv_locale_ja+y} @@ -34157,14 +28432,9 @@ struct tm t; char buf[16]; int main () { - /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl - imitates locale dependent behaviour by looking at the environment - variables, and all locales use the UTF-8 encoding. */ -#if defined __BEOS__ || defined __HAIKU__ - return 1; -#else + const char *p; /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -34172,9 +28442,9 @@ int main () if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -# else +#else if (setlocale (LC_ALL, "") == NULL) return 1; -# endif +#endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -34183,36 +28453,32 @@ int main () some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -# if HAVE_LANGINFO_CODESET +#if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -# endif -# ifdef __CYGWIN__ +#endif +#ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -# endif +#endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ - { - const char *p; - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; - } + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; return 0; -#endif } _ACEOF @@ -34284,6 +28550,140 @@ printf "%s\n" "$gt_cv_locale_ja" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 +printf %s "checking for a transitional chinese locale... " >&6; } +if test ${gt_cv_locale_zh_CN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +#include +#include +struct tm t; +char buf[16]; +int main () +{ + const char *p; + /* Check whether the given locale name is recognized by the system. */ +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +#else + if (setlocale (LC_ALL, "") == NULL) return 1; +#endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +#if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +#endif +#ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +#endif + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding (except on MirBSD). */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + /* Check whether a typical GB18030 multibyte sequence is recognized as a + single wide character. This excludes the GB2312 and GBK encodings. */ + if (mblen ("\203\062\332\066", 5) != 4) + return 1; + return 0; +} + +_ACEOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=Chinese_China.54936 + else + # None found. + gt_cv_locale_zh_CN=none + fi + ;; + solaris2.8) + # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are + # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. + # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. + gt_cv_locale_zh_CN=none + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the locale name without encoding suffix. + if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN.GB18030 + else + # None found. + gt_cv_locale_zh_CN=none + fi + fi + ;; + esac + else + # If there was a link error, due to mblen(), the system is so old that + # it certainly doesn't have a chinese locale. + gt_cv_locale_zh_CN=none + fi + rm -fr conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 +printf "%s\n" "$gt_cv_locale_zh_CN" >&6; } + LOCALE_ZH_CN=$gt_cv_locale_zh_CN + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 printf %s "checking for a french Unicode locale... " >&6; } if test ${gt_cv_locale_fr_utf8+y} @@ -34309,7 +28709,7 @@ int main () { variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -34414,144 +28814,87 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 -printf %s "checking for a transitional chinese locale... " >&6; } -if test ${gt_cv_locale_zh_CN+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#if HAVE_LANGINFO_CODESET -# include -#endif -#include -#include -struct tm t; -char buf[16]; -int main () -{ - /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl - imitates locale dependent behaviour by looking at the environment - variables, and all locales use the UTF-8 encoding. */ -#if defined __BEOS__ || defined __HAIKU__ - return 1; -#else - /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ - /* On native Windows, setlocale(category, "") looks at the system settings, - not at the environment variables. Also, when an encoding suffix such - as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE - category of the locale to "C". */ - if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL - || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) - return 1; -# else - if (setlocale (LC_ALL, "") == NULL) return 1; -# endif - /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". - On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) - is empty, and the behaviour of Tcl 8.4 in this locale is not useful. - On OpenBSD 4.0, when an unsupported locale is specified, setlocale() - succeeds but then nl_langinfo(CODESET) is "646". In this situation, - some unit tests fail. - On MirBSD 10, when an unsupported locale is specified, setlocale() - succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -# if HAVE_LANGINFO_CODESET - { - const char *cs = nl_langinfo (CODESET); - if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 - || strcmp (cs, "UTF-8") == 0) - return 1; - } -# endif -# ifdef __CYGWIN__ - /* On Cygwin, avoid locale names without encoding suffix, because the - locale_charset() function relies on the encoding suffix. Note that - LC_ALL is set on the command line. */ - if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -# endif - /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. - This excludes the UTF-8 encoding (except on MirBSD). */ - { - const char *p; - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; - } - /* Check whether a typical GB18030 multibyte sequence is recognized as a - single wide character. This excludes the GB2312 and GBK encodings. */ - if (mblen ("\203\062\332\066", 5) != 4) - return 1; - return 0; -#endif -} -_ACEOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest$ac_exeext; then - case "$host_os" in - # Handle native Windows specially, because there setlocale() interprets - # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", - # "fr" or "fra" as "French" or "French_France.1252", - # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", - # "ja" as "Japanese" or "Japanese_Japan.932", - # and similar. - mingw*) - # Test for the hypothetical native Windows locale name. - if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_zh_CN=Chinese_China.54936 - else - # None found. - gt_cv_locale_zh_CN=none - fi - ;; - solaris2.8) - # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are - # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. - # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. - gt_cv_locale_zh_CN=none - ;; - *) - # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because - # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the - # configure script would override the LC_ALL setting. Likewise for - # LC_CTYPE, which is also set at the beginning of the configure script. - # Test for the locale name without encoding suffix. - if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_zh_CN=zh_CN - else - # Test for the locale name with explicit encoding suffix. - if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_zh_CN=zh_CN.GB18030 - else - # None found. - gt_cv_locale_zh_CN=none - fi - fi - ;; - esac - else - # If there was a link error, due to mblen(), the system is so old that - # it certainly doesn't have a chinese locale. - gt_cv_locale_zh_CN=none - fi - rm -fr conftest* -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 -printf "%s\n" "$gt_cv_locale_zh_CN" >&6; } - LOCALE_ZH_CN=$gt_cv_locale_zh_CN + + + + + GNULIB_FFSL=0; + GNULIB_FFSLL=0; + GNULIB_MEMCHR=0; + GNULIB_MEMMEM=0; + GNULIB_MEMPCPY=0; + GNULIB_MEMRCHR=0; + GNULIB_RAWMEMCHR=0; + GNULIB_STPCPY=0; + GNULIB_STPNCPY=0; + GNULIB_STRCHRNUL=0; + GNULIB_STRDUP=0; + GNULIB_STRNCAT=0; + GNULIB_STRNDUP=0; + GNULIB_STRNLEN=0; + GNULIB_STRPBRK=0; + GNULIB_STRSEP=0; + GNULIB_STRSTR=0; + GNULIB_STRCASESTR=0; + GNULIB_STRTOK_R=0; + GNULIB_MBSLEN=0; + GNULIB_MBSNLEN=0; + GNULIB_MBSCHR=0; + GNULIB_MBSRCHR=0; + GNULIB_MBSSTR=0; + GNULIB_MBSCASECMP=0; + GNULIB_MBSNCASECMP=0; + GNULIB_MBSPCASECMP=0; + GNULIB_MBSCASESTR=0; + GNULIB_MBSCSPN=0; + GNULIB_MBSPBRK=0; + GNULIB_MBSSPN=0; + GNULIB_MBSSEP=0; + GNULIB_MBSTOK_R=0; + GNULIB_STRERROR=0; + GNULIB_STRERROR_R=0; + GNULIB_STRSIGNAL=0; + GNULIB_STRVERSCMP=0; + HAVE_MBSLEN=0; + HAVE_FFSL=1; + HAVE_FFSLL=1; + HAVE_MEMCHR=1; + HAVE_DECL_MEMMEM=1; + HAVE_MEMPCPY=1; + HAVE_DECL_MEMRCHR=1; + HAVE_RAWMEMCHR=1; + HAVE_STPCPY=1; + HAVE_STPNCPY=1; + HAVE_STRCHRNUL=1; + HAVE_DECL_STRDUP=1; + HAVE_DECL_STRNDUP=1; + HAVE_DECL_STRNLEN=1; + HAVE_STRPBRK=1; + HAVE_STRSEP=1; + HAVE_STRCASESTR=1; + HAVE_DECL_STRTOK_R=1; + HAVE_DECL_STRERROR_R=1; + HAVE_DECL_STRSIGNAL=1; + HAVE_STRVERSCMP=1; + REPLACE_MEMCHR=0; + REPLACE_MEMMEM=0; + REPLACE_STPNCPY=0; + REPLACE_STRDUP=0; + REPLACE_STRSTR=0; + REPLACE_STRCASESTR=0; + REPLACE_STRCHRNUL=0; + REPLACE_STRERROR=0; + REPLACE_STRERROR_R=0; + REPLACE_STRNCAT=0; + REPLACE_STRNDUP=0; + REPLACE_STRNLEN=0; + REPLACE_STRSIGNAL=0; + REPLACE_STRTOK_R=0; + UNDEFINE_STRTOK_R=0; @@ -34621,50 +28964,14 @@ printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi + : - HAVE_MBSLEN=0; - HAVE_EXPLICIT_BZERO=1; - HAVE_FFSL=1; - HAVE_FFSLL=1; - HAVE_DECL_MEMMEM=1; - HAVE_MEMPCPY=1; - HAVE_MEMSET_EXPLICIT=1; - HAVE_DECL_MEMRCHR=1; - HAVE_RAWMEMCHR=1; - HAVE_STPCPY=1; - HAVE_STPNCPY=1; - HAVE_STRCHRNUL=1; - HAVE_DECL_STRDUP=1; - HAVE_DECL_STRNDUP=1; - HAVE_DECL_STRNLEN=1; - HAVE_STRPBRK=1; - HAVE_STRSEP=1; - HAVE_STRCASESTR=1; - HAVE_DECL_STRTOK_R=1; - HAVE_DECL_STRERROR_R=1; - HAVE_STRERRORNAME_NP=1; - HAVE_SIGABBREV_NP=1; - HAVE_SIGDESCR_NP=1; - HAVE_DECL_STRSIGNAL=1; - HAVE_STRVERSCMP=1; - REPLACE_FFSLL=0; - REPLACE_MEMCHR=0; - REPLACE_MEMMEM=0; - REPLACE_STPNCPY=0; - REPLACE_STRCHRNUL=0; - REPLACE_STRDUP=0; - REPLACE_STRNCAT=0; - REPLACE_STRNDUP=0; - REPLACE_STRNLEN=0; - REPLACE_STRSTR=0; - REPLACE_STRCASESTR=0; - REPLACE_STRTOK_R=0; - REPLACE_STRERROR=0; - REPLACE_STRERROR_R=0; - REPLACE_STRERRORNAME_NP=0; - REPLACE_STRSIGNAL=0; - UNDEFINE_STRTOK_R=0; + + + + + : @@ -34673,16 +28980,15 @@ printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h - # Detect platform-specific bugs in some versions of glibc: - # memchr should not dereference anything with length 0 - # https://bugzilla.redhat.com/show_bug.cgi?id=499689 - # memchr should not dereference overestimated length after a match - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 - # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 - # memchr should cast the second argument to 'unsigned char'. - # This bug exists in Android 4.3. - # Assume that memchr works on platforms that lack mprotect. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 + if test $HAVE_MEMCHR = 1; then + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # http://bugzilla.redhat.com/499689 + # memchr should not dereference overestimated length after a match + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # Assume that memchr works on platforms that lack mprotect. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 printf %s "checking whether memchr works... " >&6; } if test ${gl_cv_func_memchr_works+y} then : @@ -34690,15 +28996,7 @@ then : else $as_nop if test "$cross_compiling" = yes then : - case "$host_os" in - # Guess no on Android. - linux*-android*) gl_cv_func_memchr_works="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_memchr_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; - esac - + gl_cv_func_memchr_works="guessing no" else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -34741,7 +29039,6 @@ main (void) #endif if (fence) { - /* Test against bugs on glibc systems. */ if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); @@ -34749,19 +29046,7 @@ main (void) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; - /* Test against bug on AIX 7.2. */ - if (memchr (fence - 4, '6', 16) != fence - 4) - result |= 8; } - /* Test against bug on Android 4.3. */ - { - char input[3]; - input[0] = 'a'; - input[1] = 'b'; - input[2] = 'c'; - if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) - result |= 16; - } return result; ; @@ -34778,329 +29063,31 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 printf "%s\n" "$gl_cv_func_memchr_works" >&6; } - case "$gl_cv_func_memchr_works" in - *yes) ;; - *) REPLACE_MEMCHR=1 ;; - esac - - - - GL_GNULIB_EXPLICIT_BZERO=0 - - - - GL_GNULIB_FFSL=0 - - - - GL_GNULIB_FFSLL=0 - - - - GL_GNULIB_MEMCHR=0 - - - - GL_GNULIB_MEMMEM=0 - - - - GL_GNULIB_MEMPCPY=0 - - - - GL_GNULIB_MEMRCHR=0 - - - - GL_GNULIB_MEMSET_EXPLICIT=0 - - - - GL_GNULIB_RAWMEMCHR=0 - - - - GL_GNULIB_STPCPY=0 - - - - GL_GNULIB_STPNCPY=0 - - - - GL_GNULIB_STRCHRNUL=0 - - - - GL_GNULIB_STRDUP=0 - - - - GL_GNULIB_STRNCAT=0 - - - - GL_GNULIB_STRNDUP=0 - - - - GL_GNULIB_STRNLEN=0 - - - - GL_GNULIB_STRPBRK=0 - - - - GL_GNULIB_STRSEP=0 - - - - GL_GNULIB_STRSTR=0 - - - - GL_GNULIB_STRCASESTR=0 - - - - GL_GNULIB_STRTOK_R=0 - - - - GL_GNULIB_MBSLEN=0 - - - - GL_GNULIB_MBSNLEN=0 - - - - GL_GNULIB_MBSCHR=0 - - - - GL_GNULIB_MBSRCHR=0 - - - - GL_GNULIB_MBSSTR=0 - - - - GL_GNULIB_MBSCASECMP=0 - - - - GL_GNULIB_MBSNCASECMP=0 - - - - GL_GNULIB_MBSPCASECMP=0 - - - - GL_GNULIB_MBSCASESTR=0 - - - - GL_GNULIB_MBSCSPN=0 - - - - GL_GNULIB_MBSPBRK=0 - - - - GL_GNULIB_MBSSPN=0 - - - - GL_GNULIB_MBSSEP=0 - - - - GL_GNULIB_MBSTOK_R=0 - - - - GL_GNULIB_STRERROR=0 - - - - GL_GNULIB_STRERROR_R=0 - - - - GL_GNULIB_STRERRORNAME_NP=0 - - - - GL_GNULIB_SIGABBREV_NP=0 - - - - GL_GNULIB_SIGDESCR_NP=0 - - - - GL_GNULIB_STRSIGNAL=0 - - - - GL_GNULIB_STRVERSCMP=0 - - - - GL_GNULIB_MDA_MEMCCPY=1 - - - - GL_GNULIB_MDA_STRDUP=1 - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 -printf %s "checking whether defines MIN and MAX... " >&6; } -if test ${gl_cv_minmax_in_limits_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - int x = MIN (42, 17); -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_minmax_in_limits_h=yes -else $as_nop - gl_cv_minmax_in_limits_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_limits_h" >&5 -printf "%s\n" "$gl_cv_minmax_in_limits_h" >&6; } - if test $gl_cv_minmax_in_limits_h = yes; then - -printf "%s\n" "#define HAVE_MINMAX_IN_LIMITS_H 1" >>confdefs.h - + if test "$gl_cv_func_memchr_works" != yes; then + REPLACE_MEMCHR=1 + fi fi - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 -printf %s "checking whether defines MIN and MAX... " >&6; } -if test ${gl_cv_minmax_in_sys_param_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - int x = MIN (42, 17); -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_minmax_in_sys_param_h=yes -else $as_nop - gl_cv_minmax_in_sys_param_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_sys_param_h" >&5 -printf "%s\n" "$gl_cv_minmax_in_sys_param_h" >&6; } - if test $gl_cv_minmax_in_sys_param_h = yes; then - -printf "%s\n" "#define HAVE_MINMAX_IN_SYS_PARAM_H 1" >>confdefs.h - - fi - - - - - + GNULIB_MKTIME=0; + GNULIB_NANOSLEEP=0; + GNULIB_STRPTIME=0; + GNULIB_TIMEGM=0; + GNULIB_TIME_R=0; HAVE_DECL_LOCALTIME_R=1; HAVE_NANOSLEEP=1; HAVE_STRPTIME=1; HAVE_TIMEGM=1; - HAVE_TIMESPEC_GET=1; - HAVE_TIMESPEC_GETRES=1; - HAVE_TIMEZONE_T=0; - REPLACE_CTIME=GNULIB_PORTCHECK; - REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; + REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; REPLACE_MKTIME=GNULIB_PORTCHECK; REPLACE_NANOSLEEP=GNULIB_PORTCHECK; - REPLACE_STRFTIME=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; - REPLACE_TZSET=GNULIB_PORTCHECK; - - : ${GNULIB_GETTIMEOFDAY=0}; - REPLACE_GMTIME=0; - REPLACE_LOCALTIME=0; - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether time_t is signed" >&5 -printf %s "checking whether time_t is signed... " >&6; } -if test ${gl_cv_time_t_is_signed+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - char time_t_signed[(time_t) -1 < 0 ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_time_t_is_signed=yes -else $as_nop - gl_cv_time_t_is_signed=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_t_is_signed" >&5 -printf "%s\n" "$gl_cv_time_t_is_signed" >&6; } - if test $gl_cv_time_t_is_signed = yes; then - -printf "%s\n" "#define TIME_T_IS_SIGNED 1" >>confdefs.h - - fi - -ac_fn_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" + ac_fn_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_alarm" = xyes then : ac_have_decl=1 @@ -35111,412 +29098,159 @@ printf "%s\n" "#define HAVE_DECL_ALARM $ac_have_decl" >>confdefs.h - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 -printf %s "checking for working mktime... " >&6; } -if test ${gl_cv_func_working_mktime+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test $APPLE_UNIVERSAL_BUILD = 1; then - # A universal build on Apple Mac OS X platforms. - # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode. - # But we need a configuration result that is valid in both modes. - gl_cv_func_working_mktime="guessing no" - else - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_working_mktime="guessing no" ;; - *) gl_cv_func_working_mktime="$gl_cross_guess_normal" ;; - esac - -else $as_nop + gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Test program from Paul Eggert and Tony Leneis. */ -#include -#include -#include +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; -#ifdef HAVE_UNISTD_H -# include -#endif - -#if HAVE_DECL_ALARM -# include -#endif - - - -$gl_mda_defines - - -#ifndef TIME_T_IS_SIGNED -# define TIME_T_IS_SIGNED 0 -#endif - -static time_t time_t_max; -static time_t time_t_min; - -/* Values we'll use to set the TZ environment variable. */ -static char *tz_strings[] = { - (char *) 0, "TZ=GMT0", "TZ=JST-9", - "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" -}; -#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) - -/* Return 0 if mktime fails to convert a date in the spring-forward gap. - Based on a problem report from Andreas Jaeger. */ -static int -spring_forward_gap () -{ - /* glibc (up to about 1998-10-07) failed this test. */ - struct tm tm; - - /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" - instead of "TZ=America/Vancouver" in order to detect the bug even - on systems that don't support the Olson extension, or don't have the - full zoneinfo tables installed. */ - if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0) - return -1; - - tm.tm_year = 98; - tm.tm_mon = 3; - tm.tm_mday = 5; - tm.tm_hour = 2; - tm.tm_min = 0; - tm.tm_sec = 0; - tm.tm_isdst = -1; - return mktime (&tm) != (time_t) -1; -} - -static int -mktime_test1 (time_t now) -{ - struct tm *lt; - return ! (lt = localtime (&now)) || mktime (lt) == now; -} - -static int -mktime_test (time_t now) -{ - return (mktime_test1 (now) - && mktime_test1 ((time_t) (time_t_max - now)) - && mktime_test1 ((time_t) (time_t_min + now))); -} - -static int -irix_6_4_bug () -{ - /* Based on code from Ariel Faigon. */ - struct tm tm; - tm.tm_year = 96; - tm.tm_mon = 3; - tm.tm_mday = 0; - tm.tm_hour = 0; - tm.tm_min = 0; - tm.tm_sec = 0; - tm.tm_isdst = -1; - mktime (&tm); - return tm.tm_mon == 2 && tm.tm_mday == 31; -} - -static int -bigtime_test (int j) -{ - struct tm tm; - time_t now; - tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; - now = mktime (&tm); - if (now != (time_t) -1) - { - struct tm *lt = localtime (&now); - if (! (lt - && lt->tm_year == tm.tm_year - && lt->tm_mon == tm.tm_mon - && lt->tm_mday == tm.tm_mday - && lt->tm_hour == tm.tm_hour - && lt->tm_min == tm.tm_min - && lt->tm_sec == tm.tm_sec - && lt->tm_yday == tm.tm_yday - && lt->tm_wday == tm.tm_wday - && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) - == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - return 0; - } - return 1; -} - -static int -year_2050_test () -{ - /* The correct answer for 2050-02-01 00:00:00 in Pacific time, - ignoring leap seconds. */ - unsigned long int answer = 2527315200UL; - - struct tm tm; - time_t t; - tm.tm_year = 2050 - 1900; - tm.tm_mon = 2 - 1; - tm.tm_mday = 1; - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - tm.tm_isdst = -1; - - /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" - instead of "TZ=America/Vancouver" in order to detect the bug even - on systems that don't support the Olson extension, or don't have the - full zoneinfo tables installed. */ - if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0) - return -1; - - t = mktime (&tm); - - /* Check that the result is either a failure, or close enough - to the correct answer that we can assume the discrepancy is - due to leap seconds. */ - return (t == (time_t) -1 - || (0 < t && answer - 120 <= t && t <= answer + 120)); -} - -static int -indiana_test () -{ - if (putenv ("TZ=America/Indiana/Indianapolis") != 0) - return -1; - struct tm tm; - tm.tm_year = 1986 - 1900; tm.tm_mon = 4 - 1; tm.tm_mday = 28; - tm.tm_hour = 16; tm.tm_min = 24; tm.tm_sec = 50; tm.tm_isdst = 0; - time_t std = mktime (&tm); - if (! (std == 515107490 || std == 515107503)) - return 1; - - /* This platform supports TZDB, either without or with leap seconds. - Return true if GNU Bug#48085 is absent. */ - tm.tm_isdst = 1; - time_t dst = mktime (&tm); - return std - dst == 60 * 60; -} - -int -main () -{ - int result = 0; - time_t t, delta; - int i, j; - int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1; - -#if HAVE_DECL_ALARM - /* This test makes some buggy mktime implementations loop. - Give up after 60 seconds; a mktime slower than that - isn't worth using anyway. */ - signal (SIGALRM, SIG_DFL); - alarm (60); -#endif - - time_t_max = (! TIME_T_IS_SIGNED - ? (time_t) -1 - : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1) - * 2 + 1)); - time_t_min = (! TIME_T_IS_SIGNED - ? (time_t) 0 - : time_t_signed_magnitude - ? ~ (time_t) 0 - : ~ time_t_max); - - delta = time_t_max / 997; /* a suitable prime number */ - for (i = 0; i < N_STRINGS; i++) - { - if (tz_strings[i]) - putenv (tz_strings[i]); - - for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta) - if (! mktime_test (t)) - result |= 1; - if ((result & 2) == 0 - && ! (mktime_test ((time_t) 1) - && mktime_test ((time_t) (60 * 60)) - && mktime_test ((time_t) (60 * 60 * 24)))) - result |= 2; - - for (j = 1; (result & 4) == 0; j <<= 1) - { - if (! bigtime_test (j)) - result |= 4; - if (INT_MAX / 2 < j) - break; - } - if ((result & 8) == 0 && ! bigtime_test (INT_MAX)) - result |= 8; - } - if (! irix_6_4_bug ()) - result |= 16; - if (! spring_forward_gap ()) - result |= 32; - if (! year_2050_test () || ! indiana_test ()) - result |= 64; - return result; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_working_mktime=yes -else $as_nop - gl_cv_func_working_mktime=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5 -printf "%s\n" "$gl_cv_func_working_mktime" >&6; } - - - - GL_GNULIB_CTIME=0 - - - - GL_GNULIB_MKTIME=0 - - - - GL_GNULIB_LOCALTIME=0 - - - - GL_GNULIB_NANOSLEEP=0 - - - - GL_GNULIB_STRFTIME=0 - - - - GL_GNULIB_STRPTIME=0 - - - - GL_GNULIB_TIMEGM=0 - - - - GL_GNULIB_TIMESPEC_GET=0 - - - - GL_GNULIB_TIMESPEC_GETRES=0 - - - - GL_GNULIB_TIME_R=0 - - - - GL_GNULIB_TIME_RZ=0 - - - - GL_GNULIB_TZSET=0 - - - - GL_GNULIB_MDA_TZSET=1 - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 -printf %s "checking for O_CLOEXEC... " >&6; } -if test ${gl_cv_macro_O_CLOEXEC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifndef O_CLOEXEC - choke me; - #endif - -int -main (void) -{ -return O_CLOEXEC; - ; - return 0; -} _ACEOF if ac_fn_c_try_compile "$LINENO" then : - gl_cv_macro_O_CLOEXEC=yes -else $as_nop - gl_cv_macro_O_CLOEXEC=no + + arch= + prev= + for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do + if test -n "$prev"; then + case $word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$arch" || test "$arch" = "$word"; then + arch="$word" + else + gl_cv_c_multiarch=yes + fi + ;; + esac + prev= + else + if test "x$word" = "x-arch"; then + prev=arch + fi + fi + done + fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_O_CLOEXEC" >&5 -printf "%s\n" "$gl_cv_macro_O_CLOEXEC" >&6; } - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 -printf %s "checking for promoted mode_t type... " >&6; } -if test ${gl_cv_promoted_mode_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_promoted_mode_t='int' -else $as_nop - gl_cv_promoted_mode_t='mode_t' -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 -printf "%s\n" "$gl_cv_promoted_mode_t" >&6; } - -printf "%s\n" "#define PROMOTED_MODE_T $gl_cv_promoted_mode_t" >>confdefs.h - - - - - - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then - REPLACE_REALLOC_FOR_REALLOC_POSIX=1 + if test $gl_cv_c_multiarch = yes; then + APPLE_UNIVERSAL_BUILD=1 + else + APPLE_UNIVERSAL_BUILD=0 fi -ac_fn_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +printf %s "checking for inline... " >&6; } +if test ${ac_cv_c_inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo (void) {return 0; } +$ac_kw foo_t foo (void) {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +printf "%s\n" "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 +printf %s "checking for ssize_t... " >&6; } +if test ${gt_cv_ssize_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int x = sizeof (ssize_t *) + sizeof (ssize_t); + return !x; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gt_cv_ssize_t=yes +else $as_nop + gt_cv_ssize_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 +printf "%s\n" "$gt_cv_ssize_t" >&6; } + if test $gt_cv_ssize_t = no; then + +printf "%s\n" "#define ssize_t int" >>confdefs.h + + fi + + + ac_fn_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_setenv" = xyes then : ac_have_decl=1 @@ -35529,10 +29263,33 @@ printf "%s\n" "#define HAVE_DECL_SETENV $ac_have_decl" >>confdefs.h + + + + + + : + + + + + if test $ac_cv_have_decl_setenv = no; then HAVE_DECL_SETENV=0 fi + : + + + + + + + + + + : + @@ -35554,6 +29311,119 @@ fi + GNULIB_DPRINTF=0; + GNULIB_FCLOSE=0; + GNULIB_FDOPEN=0; + GNULIB_FFLUSH=0; + GNULIB_FGETC=0; + GNULIB_FGETS=0; + GNULIB_FOPEN=0; + GNULIB_FPRINTF=0; + GNULIB_FPRINTF_POSIX=0; + GNULIB_FPURGE=0; + GNULIB_FPUTC=0; + GNULIB_FPUTS=0; + GNULIB_FREAD=0; + GNULIB_FREOPEN=0; + GNULIB_FSCANF=0; + GNULIB_FSEEK=0; + GNULIB_FSEEKO=0; + GNULIB_FTELL=0; + GNULIB_FTELLO=0; + GNULIB_FWRITE=0; + GNULIB_GETC=0; + GNULIB_GETCHAR=0; + GNULIB_GETDELIM=0; + GNULIB_GETLINE=0; + GNULIB_OBSTACK_PRINTF=0; + GNULIB_OBSTACK_PRINTF_POSIX=0; + GNULIB_PCLOSE=0; + GNULIB_PERROR=0; + GNULIB_POPEN=0; + GNULIB_PRINTF=0; + GNULIB_PRINTF_POSIX=0; + GNULIB_PUTC=0; + GNULIB_PUTCHAR=0; + GNULIB_PUTS=0; + GNULIB_REMOVE=0; + GNULIB_RENAME=0; + GNULIB_RENAMEAT=0; + GNULIB_SCANF=0; + GNULIB_SNPRINTF=0; + GNULIB_SPRINTF_POSIX=0; + GNULIB_STDIO_H_NONBLOCKING=0; + GNULIB_STDIO_H_SIGPIPE=0; + GNULIB_TMPFILE=0; + GNULIB_VASPRINTF=0; + GNULIB_VFSCANF=0; + GNULIB_VSCANF=0; + GNULIB_VDPRINTF=0; + GNULIB_VFPRINTF=0; + GNULIB_VFPRINTF_POSIX=0; + GNULIB_VPRINTF=0; + GNULIB_VPRINTF_POSIX=0; + GNULIB_VSNPRINTF=0; + GNULIB_VSPRINTF_POSIX=0; + HAVE_DECL_FPURGE=1; + HAVE_DECL_FSEEKO=1; + HAVE_DECL_FTELLO=1; + HAVE_DECL_GETDELIM=1; + HAVE_DECL_GETLINE=1; + HAVE_DECL_OBSTACK_PRINTF=1; + HAVE_DECL_SNPRINTF=1; + HAVE_DECL_VSNPRINTF=1; + HAVE_DPRINTF=1; + HAVE_FSEEKO=1; + HAVE_FTELLO=1; + HAVE_PCLOSE=1; + HAVE_POPEN=1; + HAVE_RENAMEAT=1; + HAVE_VASPRINTF=1; + HAVE_VDPRINTF=1; + REPLACE_DPRINTF=0; + REPLACE_FCLOSE=0; + REPLACE_FDOPEN=0; + REPLACE_FFLUSH=0; + REPLACE_FOPEN=0; + REPLACE_FPRINTF=0; + REPLACE_FPURGE=0; + REPLACE_FREOPEN=0; + REPLACE_FSEEK=0; + REPLACE_FSEEKO=0; + REPLACE_FTELL=0; + REPLACE_FTELLO=0; + REPLACE_GETDELIM=0; + REPLACE_GETLINE=0; + REPLACE_OBSTACK_PRINTF=0; + REPLACE_PERROR=0; + REPLACE_POPEN=0; + REPLACE_PRINTF=0; + REPLACE_REMOVE=0; + REPLACE_RENAME=0; + REPLACE_RENAMEAT=0; + REPLACE_SNPRINTF=0; + REPLACE_SPRINTF=0; + REPLACE_STDIO_READ_FUNCS=0; + REPLACE_STDIO_WRITE_FUNCS=0; + REPLACE_TMPFILE=0; + REPLACE_VASPRINTF=0; + REPLACE_VDPRINTF=0; + REPLACE_VFPRINTF=0; + REPLACE_VPRINTF=0; + REPLACE_VSNPRINTF=0; + REPLACE_VSPRINTF=0; + + + + + + + + + : + + + @@ -35569,15 +29439,13 @@ else $as_nop if test "$cross_compiling" = yes then : - case "$host_os" in + + case "$host_os" in # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";; + *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. - freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; + freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; - midnightbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; @@ -35597,29 +29465,8 @@ then : netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; - # Guess yes on Android. - linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";; - # Guess yes on MSVC, no on mingw. - mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _MSC_VER - Known -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Known" >/dev/null 2>&1 -then : - gl_cv_func_snprintf_retval_c99="guessing yes" -else $as_nop - gl_cv_func_snprintf_retval_c99="guessing no" -fi -rm -rf conftest* - - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_snprintf_retval_c99="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_snprintf_retval_c99="guessing no";; esac else $as_nop @@ -35670,7 +29517,8 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5 printf "%s\n" "$gl_cv_func_snprintf_retval_c99" >&6; } -ac_fn_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" + + ac_fn_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_snprintf" = xyes then : ac_have_decl=1 @@ -35680,194 +29528,151 @@ fi printf "%s\n" "#define HAVE_DECL_SNPRINTF $ac_have_decl" >>confdefs.h - - - - - if test $ac_cv_header_sys_socket_h != yes; then - ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" -if test "x$ac_cv_header_winsock2_h" = xyes -then : - printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h - -fi - - fi - if test "$ac_cv_header_winsock2_h" = yes; then - HAVE_WINSOCK2_H=1 - UNISTD_H_HAVE_WINSOCK2_H=1 - SYS_IOCTL_H_HAVE_WINSOCK2_H=1 - else - HAVE_WINSOCK2_H=0 - fi - - LIBSOCKET= - if test $HAVE_WINSOCK2_H = 1; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for WSAStartup" >&5 -printf %s "checking for WSAStartup... " >&6; } -if test ${gl_cv_func_wsastartup+y} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 +printf %s "checking for stdbool.h that conforms to C99... " >&6; } +if test ${ac_cv_header_stdbool_h+y} then : printf %s "(cached) " >&6 else $as_nop - - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lws2_32" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef HAVE_WINSOCK2_H -# include -#endif + #include + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + /* See body of main program for 'e'. */ + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; + int main (void) { - WORD wVersionRequested = MAKEWORD(1, 1); - WSADATA wsaData; - int err = WSAStartup(wVersionRequested, &wsaData); - WSACleanup (); + bool e = &s; + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); ; return 0; } - _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - gl_cv_func_wsastartup=yes + ac_cv_header_stdbool_h=yes else $as_nop - gl_cv_func_wsastartup=no + ac_cv_header_stdbool_h=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gl_save_LIBS" +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +printf "%s\n" "$ac_cv_header_stdbool_h" >&6; } + ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" +if test "x$ac_cv_type__Bool" = xyes +then : + +printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h + fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wsastartup" >&5 -printf "%s\n" "$gl_cv_func_wsastartup" >&6; } - if test "$gl_cv_func_wsastartup" = "yes"; then -printf "%s\n" "#define WINDOWS_SOCKETS 1" >>confdefs.h - LIBSOCKET='-lws2_32' - fi + + + + + + + + + + + + + + if test $ac_cv_type_long_long_int = yes; then + HAVE_LONG_LONG_INT=1 else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 -printf %s "checking for library containing setsockopt... " >&6; } -if test ${gl_cv_lib_socket+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - gl_cv_lib_socket= - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern -#ifdef __cplusplus -"C" -#endif -char setsockopt(); -int -main (void) -{ -setsockopt(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - -else $as_nop - gl_save_LIBS="$LIBS" - LIBS="$gl_save_LIBS -lsocket" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern -#ifdef __cplusplus -"C" -#endif -char setsockopt(); -int -main (void) -{ -setsockopt(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_lib_socket="-lsocket" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$gl_cv_lib_socket"; then - LIBS="$gl_save_LIBS -lnetwork" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern -#ifdef __cplusplus -"C" -#endif -char setsockopt(); -int -main (void) -{ -setsockopt(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_lib_socket="-lnetwork" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$gl_cv_lib_socket"; then - LIBS="$gl_save_LIBS -lnet" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern -#ifdef __cplusplus -"C" -#endif -char setsockopt(); -int -main (void) -{ -setsockopt(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_lib_socket="-lnet" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - fi - fi - LIBS="$gl_save_LIBS" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$gl_cv_lib_socket"; then - gl_cv_lib_socket="none needed" - fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_socket" >&5 -printf "%s\n" "$gl_cv_lib_socket" >&6; } - if test "$gl_cv_lib_socket" != "none needed"; then - LIBSOCKET="$gl_cv_lib_socket" - fi + HAVE_LONG_LONG_INT=0 fi + 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 + + + + : + + + + + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + if test $ac_cv_header_inttypes_h = yes; then + HAVE_INTTYPES_H=1 + else + HAVE_INTTYPES_H=0 + fi + + + if test $ac_cv_header_sys_types_h = yes; then + HAVE_SYS_TYPES_H=1 + else + HAVE_SYS_TYPES_H=0 + fi + + + + @@ -35880,112 +29685,242 @@ printf "%s\n" "$gl_cv_lib_socket" >&6; } -ac_fn_check_decl "$LINENO" "fcloseall" "ac_cv_have_decl_fcloseall" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fcloseall" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FCLOSEALL $ac_have_decl" >>confdefs.h - - - - - printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_stdio_h='<'stdio.h'>' + gl_cv_next_stdint_h='<'stdint.h'>' else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_stdio_h+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stdint_h+y} then : printf %s "(cached) " >&6 else $as_nop + if test $ac_cv_header_stdint_h = yes; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'stdio.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_stdio_h - gl_cv_next_stdio_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'stdint.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_stdint_h='<'stdint.h'>' + fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 -printf "%s\n" "$gl_cv_next_stdio_h" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 +printf "%s\n" "$gl_cv_next_stdint_h" >&6; } fi - NEXT_STDIO_H=$gl_cv_next_stdio_h + NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'stdio.h'>' + gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_stdio_h + gl_next_as_first_directive=$gl_cv_next_stdint_h fi - NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive + NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive + if test $ac_cv_header_stdint_h = yes; then + HAVE_STDINT_H=1 + else + HAVE_STDINT_H=0 + fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5 -printf %s "checking which flavor of printf attribute matches inttypes macros... " >&6; } -if test ${gl_cv_func_printf_attribute_flavor+y} + + if test $ac_cv_header_stdint_h = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 +printf %s "checking whether stdint.h conforms to C99... " >&6; } +if test ${gl_cv_header_working_stdint_h+y} then : printf %s "(cached) " >&6 else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + gl_cv_header_working_stdint_h=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #define __STDC_FORMAT_MACROS 1 - #include - #include - /* For non-mingw systems, compilation will trivially succeed. - For mingw, compilation will succeed for older mingw (system - printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ - #if (defined _WIN32 && ! defined __CYGWIN__) && \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) - extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; - #endif + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include +/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ +#if !(defined WCHAR_MIN && defined WCHAR_MAX) +#error "WCHAR_MIN, WCHAR_MAX not defined in " +#endif + + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + +#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; + +#include /* 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; +}; int main (void) @@ -35997,158 +29932,444 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - gl_cv_func_printf_attribute_flavor=system + if test "$cross_compiling" = yes +then : + gl_cv_header_working_stdint_h=yes + else $as_nop - gl_cv_func_printf_attribute_flavor=gnu + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include + + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + +#include +#include +#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 + }; + +int +main (void) +{ + + 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; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_header_working_stdint_h=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_attribute_flavor" >&5 -printf "%s\n" "$gl_cv_func_printf_attribute_flavor" >&6; } - if test "$gl_cv_func_printf_attribute_flavor" = gnu; then - -printf "%s\n" "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h - +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 +printf "%s\n" "$gl_cv_header_working_stdint_h" >&6; } fi - - - - - - - - - - - - - - if test $ac_cv_have_decl_fcloseall = no; then - HAVE_DECL_FCLOSEALL=0 - fi - -ac_fn_check_decl "$LINENO" "ecvt" "ac_cv_have_decl_ecvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_ecvt" = xyes + if test "$gl_cv_header_working_stdint_h" = yes; then + STDINT_H= + else + ac_fn_c_check_header_compile "$LINENO" "sys/inttypes.h" "ac_cv_header_sys_inttypes_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_inttypes_h" = xyes then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_ECVT $ac_have_decl" >>confdefs.h + printf "%s\n" "#define HAVE_SYS_INTTYPES_H 1" >>confdefs.h -ac_fn_check_decl "$LINENO" "fcvt" "ac_cv_have_decl_fcvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fcvt" = xyes +fi +ac_fn_c_check_header_compile "$LINENO" "sys/bitypes.h" "ac_cv_header_sys_bitypes_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_bitypes_h" = xyes then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 + printf "%s\n" "#define HAVE_SYS_BITYPES_H 1" >>confdefs.h + fi -printf "%s\n" "#define HAVE_DECL_FCVT $ac_have_decl" >>confdefs.h -ac_fn_check_decl "$LINENO" "gcvt" "ac_cv_have_decl_gcvt" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_gcvt" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_GCVT $ac_have_decl" >>confdefs.h + if test $ac_cv_header_sys_inttypes_h = yes; then + HAVE_SYS_INTTYPES_H=1 + else + HAVE_SYS_INTTYPES_H=0 + fi + + if test $ac_cv_header_sys_bitypes_h = yes; then + HAVE_SYS_BITYPES_H=1 + else + HAVE_SYS_BITYPES_H=0 + fi + if test $APPLE_UNIVERSAL_BUILD = 0; then - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_stdlib_h='<'stdlib.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_stdlib_h+y} + for gltype in ptrdiff_t size_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 +printf %s "checking for bit size of $gltype... " >&6; } +if eval test \${gl_cv_bitsizeof_${gltype}+y} then : printf %s "(cached) " >&6 else $as_nop + if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif +#include " +then : +else $as_nop + result=unknown +fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'stdlib.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_stdlib_h - gl_cv_next_stdlib_h='"'$gl_header'"' - + eval gl_cv_bitsizeof_${gltype}=\$result fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 -printf "%s\n" "$gl_cv_next_stdlib_h" >&6; } - fi - NEXT_STDLIB_H=$gl_cv_next_stdlib_h +eval ac_res=\$gl_cv_bitsizeof_${gltype} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval result=\$gl_cv_bitsizeof_${gltype} + if test $result = unknown; then + result=0 + fi + GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'stdlib.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_stdlib_h - fi - NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive + eval BITSIZEOF_${GLTYPE}=\$result + done - - - - - - - - - - - if test $ac_cv_have_decl_ecvt = no; then - HAVE_DECL_ECVT=0 - fi - - if test $ac_cv_have_decl_fcvt = no; then - HAVE_DECL_FCVT=0 - fi - - if test $ac_cv_have_decl_gcvt = no; then - HAVE_DECL_GCVT=0 fi + for gltype in sig_atomic_t wchar_t wint_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 +printf %s "checking for bit size of $gltype... " >&6; } +if eval test \${gl_cv_bitsizeof_${gltype}+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + +#include " +then : + +else $as_nop + result=unknown +fi + + eval gl_cv_bitsizeof_${gltype}=\$result + +fi +eval ac_res=\$gl_cv_bitsizeof_${gltype} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval result=\$gl_cv_bitsizeof_${gltype} + if test $result = unknown; then + result=0 + fi + GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + printf "%s\n" "#define BITSIZEOF_${GLTYPE} $result" >>confdefs.h + + eval BITSIZEOF_${GLTYPE}=\$result + done + + + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 +printf %s "checking whether $gltype is signed... " >&6; } +if eval test \${gl_cv_type_${gltype}_signed+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + result=yes +else $as_nop + result=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval gl_cv_type_${gltype}_signed=\$result + +fi +eval ac_res=\$gl_cv_type_${gltype}_signed + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval result=\$gl_cv_type_${gltype}_signed + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + if test "$result" = yes; then + printf "%s\n" "#define HAVE_SIGNED_${GLTYPE} 1" >>confdefs.h + + eval HAVE_SIGNED_${GLTYPE}=1 + else + eval HAVE_SIGNED_${GLTYPE}=0 + fi + done + + + gl_cv_type_ptrdiff_t_signed=yes + gl_cv_type_size_t_signed=no + if test $APPLE_UNIVERSAL_BUILD = 0; then + + + for gltype in ptrdiff_t size_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 +printf %s "checking for $gltype integer literal suffix... " >&6; } +if eval test \${gl_cv_type_${gltype}_suffix+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + extern $gltype foo; + extern $gltype1 foo; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval gl_cv_type_${gltype}_suffix=\$glsuf +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done +fi +eval ac_res=\$gl_cv_type_${gltype}_suffix + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h + + done + + + fi + + + for gltype in sig_atomic_t wchar_t wint_t ; do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 +printf %s "checking for $gltype integer literal suffix... " >&6; } +if eval test \${gl_cv_type_${gltype}_suffix+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ + #include + #include + #if HAVE_WCHAR_H + # include + # include + # include + #endif + + extern $gltype foo; + extern $gltype1 foo; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval gl_cv_type_${gltype}_suffix=\$glsuf +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done +fi +eval ac_res=\$gl_cv_type_${gltype}_suffix + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + printf "%s\n" "#define ${GLTYPE}_SUFFIX $result" >>confdefs.h + + done + + + + if test $BITSIZEOF_WINT_T -lt 32; then + BITSIZEOF_WINT_T=32 + fi + + STDINT_H=stdint.h + fi + + if test -n "$STDINT_H"; then + GL_GENERATE_STDINT_H_TRUE= + GL_GENERATE_STDINT_H_FALSE='#' +else + GL_GENERATE_STDINT_H_TRUE='#' + GL_GENERATE_STDINT_H_FALSE= +fi + + + + GNULIB_FFS=0; HAVE_FFS=1; HAVE_STRCASECMP=1; HAVE_DECL_STRNCASECMP=1; @@ -36169,10 +30390,10 @@ fi if test $ac_cv_func_strcasestr = no; then HAVE_STRCASESTR=0 else - if test $REPLACE_MEMCHR = 1; then + if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRCASESTR=1 else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 printf %s "checking whether strcasestr works... " >&6; } if test ${gl_cv_func_strcasestr_works_always+y} then : @@ -36180,10 +30401,9 @@ then : else $as_nop if test "$cross_compiling" = yes then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include /* for __GNU_LIBRARY__ */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ @@ -36205,7 +30425,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | then : gl_cv_func_strcasestr_works_always="guessing yes" else $as_nop - gl_cv_func_strcasestr_works_always="$gl_cross_guess_normal" + gl_cv_func_strcasestr_works_always="guessing no" fi rm -rf conftest* @@ -36214,13 +30434,7 @@ else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include /* for __GNU_LIBRARY__, strcasestr */ -#ifdef __GNU_LIBRARY__ - #include - #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 - Unlucky user - #endif -#endif +#include /* for strcasestr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P @@ -36268,14 +30482,10 @@ else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_strerror_0_works="guessing no" ;; esac else $as_nop @@ -36334,6 +30544,7 @@ printf "%s\n" "#define REPLACE_STRERROR_0 1" >>confdefs.h + if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else @@ -36344,40 +30555,36 @@ then : printf %s "(cached) " >&6 else $as_nop - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'string.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_string_h - gl_cv_next_string_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'string.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' fi @@ -36400,6 +30607,47 @@ printf "%s\n" "$gl_cv_next_string_h" >&6; } + for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -36416,6 +30664,14 @@ printf "%s\n" "$gl_cv_next_string_h" >&6; } + : + + + + + + + if test $gl_cv_have_include_next = yes; then gl_cv_next_strings_h='<'strings.h'>' @@ -36430,40 +30686,36 @@ else $as_nop if test $ac_cv_header_strings_h = yes; then - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'strings.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_strings_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_strings_h - gl_cv_next_strings_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'strings.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_strings_h='<'strings.h'>' fi @@ -36495,76 +30747,91 @@ printf "%s\n" "$gl_cv_next_strings_h" >&6; } + for gl_func in ffs strcasecmp strncasecmp; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Minix 3.1.8 has a bug: must be included before + . */ + #include + #include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done + + + + ac_fn_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_strndup" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STRNDUP $ac_have_decl" >>confdefs.h - GL_GNULIB_FFS=0 + + + + ac_fn_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_strnlen" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STRNLEN $ac_have_decl" >>confdefs.h +ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" +if test "x$ac_cv_type_mode_t" = xyes +then : - GL_GNULIB_SOCKET=0 - - - - GL_GNULIB_CONNECT=0 - - - - GL_GNULIB_ACCEPT=0 - - - - GL_GNULIB_BIND=0 - - - - GL_GNULIB_GETPEERNAME=0 - - - - GL_GNULIB_GETSOCKNAME=0 - - - - GL_GNULIB_GETSOCKOPT=0 - - - - GL_GNULIB_LISTEN=0 - - - - GL_GNULIB_RECV=0 - - - - GL_GNULIB_SEND=0 - - - - GL_GNULIB_RECVFROM=0 - - - - GL_GNULIB_SENDTO=0 - - - - GL_GNULIB_SETSOCKOPT=0 - - - - GL_GNULIB_SHUTDOWN=0 - - - - GL_GNULIB_ACCEPT4=0 +else $as_nop +printf "%s\n" "#define mode_t int" >>confdefs.h +fi @@ -36583,86 +30850,87 @@ printf "%s\n" "$gl_cv_next_strings_h" >&6; } if test $gl_cv_have_include_next = yes; then - gl_cv_next_sys_uio_h='<'sys/uio.h'>' + gl_cv_next_sys_types_h='<'sys/types.h'>' else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_sys_uio_h+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_types_h+y} then : printf %s "(cached) " >&6 else $as_nop - if test $ac_cv_header_sys_uio_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'sys/uio.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_sys_uio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_sys_uio_h - gl_cv_next_sys_uio_h='"'$gl_header'"' - else - gl_cv_next_sys_uio_h='<'sys/uio.h'>' - fi + gl_header_literal_regex=`echo 'sys/types.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5 -printf "%s\n" "$gl_cv_next_sys_uio_h" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 +printf "%s\n" "$gl_cv_next_sys_types_h" >&6; } fi - NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_h + NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'sys/uio.h'>' + gl_next_as_first_directive='<'sys/types.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_sys_uio_h + gl_next_as_first_directive=$gl_cv_next_sys_types_h fi - NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive + NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive - if test $ac_cv_header_sys_uio_h = yes; then - HAVE_SYS_UIO_H=1 - else - HAVE_SYS_UIO_H=0 - fi + + + + + + + + + + + : + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 printf %s "checking for struct timespec in ... " >&6; } if test ${gl_cv_sys_struct_timespec_in_time_h+y} @@ -36695,7 +30963,6 @@ printf "%s\n" "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 - UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else @@ -36760,38 +31027,6 @@ fi printf "%s\n" "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 -printf %s "checking for struct timespec in ... " >&6; } -if test ${gl_cv_sys_struct_timespec_in_unistd_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -static struct timespec x; x.tv_sec = x.tv_nsec; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_sys_struct_timespec_in_unistd_h=yes -else $as_nop - gl_cv_sys_struct_timespec_in_unistd_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5 -printf "%s\n" "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } - if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then - UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 - fi fi fi fi @@ -36810,7 +31045,6 @@ printf "%s\n" "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } - if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else @@ -36821,40 +31055,36 @@ then : printf %s "(cached) " >&6 else $as_nop - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'time.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_time_h - gl_cv_next_time_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'time.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' fi @@ -36883,274 +31113,12 @@ printf "%s\n" "$gl_cv_next_time_h" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIME_UTC in " >&5 -printf %s "checking for TIME_UTC in ... " >&6; } -if test ${gl_cv_time_h_has_TIME_UTC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -static int x = TIME_UTC; x++; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_time_h_has_TIME_UTC=yes -else $as_nop - gl_cv_time_h_has_TIME_UTC=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_h_has_TIME_UTC" >&5 -printf "%s\n" "$gl_cv_time_h_has_TIME_UTC" >&6; } - if test $gl_cv_time_h_has_TIME_UTC = yes; then - TIME_H_DEFINES_TIME_UTC=1 - else - TIME_H_DEFINES_TIME_UTC=0 - fi - - - - -ac_fn_check_decl "$LINENO" "execvpe" "ac_cv_have_decl_execvpe" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_execvpe" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_EXECVPE $ac_have_decl" >>confdefs.h - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_unistd_h='<'unistd.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_unistd_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_unistd_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'unistd.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_unistd_h - gl_cv_next_unistd_h='"'$gl_header'"' - else - gl_cv_next_unistd_h='<'unistd.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 -printf "%s\n" "$gl_cv_next_unistd_h" >&6; } - fi - NEXT_UNISTD_H=$gl_cv_next_unistd_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'unistd.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_unistd_h - fi - NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive - - - - - if test $ac_cv_header_unistd_h = yes; then - HAVE_UNISTD_H=1 - else - HAVE_UNISTD_H=0 - fi - - - - - - - - - - - - - - if test $ac_cv_have_decl_execvpe = no; then - HAVE_DECL_EXECVPE=0 - fi - -ac_fn_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_feof_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_ferror_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fflush_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fgets_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fputc_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fputs_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fread_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_getc_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_getchar_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_putc_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_putchar_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl" >>confdefs.h - -ac_fn_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" + ac_fn_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_unsetenv" = xyes then : ac_have_decl=1 @@ -37161,6 +31129,54 @@ printf "%s\n" "#define HAVE_DECL_UNSETENV $ac_have_decl" >>confdefs.h + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 +printf %s "checking for wint_t... " >&6; } +if test ${gt_cv_c_wint_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be included + before . */ +#include +#include +#include +#include + wint_t foo = (wchar_t)'\0'; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gt_cv_c_wint_t=yes +else $as_nop + gt_cv_c_wint_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 +printf "%s\n" "$gt_cv_c_wint_t" >&6; } + if test $gt_cv_c_wint_t = yes; then + +printf "%s\n" "#define HAVE_WINT_T 1" >>confdefs.h + + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 printf %s "checking for inttypes.h... " >&6; } if test ${gl_cv_header_inttypes_h+y} @@ -37277,7 +31293,11 @@ printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h else -printf "%s\n" "#define intmax_t long long" >>confdefs.h + test $ac_cv_type_long_long_int = yes \ + && ac_type='long long' \ + || ac_type='long' + +printf "%s\n" "#define intmax_t $ac_type" >>confdefs.h fi @@ -37639,108 +31659,6 @@ printf "%s\n" "#define DBL_EXPBIT0_BIT $bit" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf truncates the result as in C99" >&5 -printf %s "checking whether snprintf truncates the result as in C99... " >&6; } -if test ${gl_cv_func_snprintf_truncation_c99+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test "$cross_compiling" = yes -then : - - case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on FreeBSD >= 5. - freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; - freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - midnightbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on Mac OS X >= 10.3. - darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; - darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on OpenBSD >= 3.9. - openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) - gl_cv_func_snprintf_truncation_c99="guessing no";; - openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on Solaris >= 2.6. - solaris2.[0-5] | solaris2.[0-5].*) - gl_cv_func_snprintf_truncation_c99="guessing no";; - solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on AIX >= 4. - aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";; - aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on HP-UX >= 11. - hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";; - hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on IRIX >= 6.5. - irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on OSF/1 >= 5. - osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; - osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on NetBSD >= 3. - netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) - gl_cv_func_snprintf_truncation_c99="guessing no";; - netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on BeOS. - beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on Android. - linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess no on native Windows. - mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_snprintf_truncation_c99="$gl_cross_guess_normal";; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#if HAVE_SNPRINTF -# define my_snprintf snprintf -#else -# include -static int my_snprintf (char *buf, int size, const char *format, ...) -{ - va_list args; - int ret; - va_start (args, format); - ret = vsnprintf (buf, size, format, args); - va_end (args); - return ret; -} -#endif -static char buf[100]; -int main () -{ - strcpy (buf, "ABCDEF"); - my_snprintf (buf, 3, "%d %d", 4567, 89); - if (memcmp (buf, "45\0DEF", 6) != 0) - return 1; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_snprintf_truncation_c99=yes -else $as_nop - gl_cv_func_snprintf_truncation_c99=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_truncation_c99" >&5 -printf "%s\n" "$gl_cv_func_snprintf_truncation_c99" >&6; } - - - ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" @@ -37800,15 +31718,8 @@ printf "%s\n" "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h ;; esac - case "$gl_cv_func_snprintf_truncation_c99" in - *yes) -printf "%s\n" "#define HAVE_SNPRINTF_TRUNCATION_C99 1" >>confdefs.h - - ;; - esac - -ac_fn_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" + ac_fn_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_vsnprintf" = xyes then : ac_have_decl=1 @@ -37820,144 +31731,19 @@ printf "%s\n" "#define HAVE_DECL_VSNPRINTF $ac_have_decl" >>confdefs.h - if test $ac_cv_header_crtdefs_h = yes; then - HAVE_CRTDEFS_H=1 - else - HAVE_CRTDEFS_H=0 - fi - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_wchar_h='<'wchar.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_wchar_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_wchar_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'wchar.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_wchar_h - gl_cv_next_wchar_h='"'$gl_header'"' - else - gl_cv_next_wchar_h='<'wchar.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 -printf "%s\n" "$gl_cv_next_wchar_h" >&6; } - fi - NEXT_WCHAR_H=$gl_cv_next_wchar_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'wchar.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_wchar_h - fi - NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive - - - - - if test $ac_cv_header_wchar_h = yes; then - HAVE_WCHAR_H=1 - else - HAVE_WCHAR_H=0 - fi - - - - - - if test $gt_cv_c_wint_t = yes; then - HAVE_WINT_T=1 - else - HAVE_WINT_T=0 - fi - - - - - - - - - - - ac_fn_check_decl "$LINENO" "wcsdup" "ac_cv_have_decl_wcsdup" " - #include - -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_wcsdup" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_WCSDUP $ac_have_decl" >>confdefs.h - - if test $ac_cv_have_decl_wcsdup = no; then - HAVE_DECL_WCSDUP=0 - fi - - - + GNULIB_ISWBLANK=0; + GNULIB_WCTYPE=0; + GNULIB_ISWCTYPE=0; + GNULIB_WCTRANS=0; + GNULIB_TOWCTRANS=0; HAVE_ISWBLANK=1; HAVE_WCTYPE_T=1; HAVE_WCTRANS_T=1; REPLACE_ISWBLANK=0; - REPLACE_ISWDIGIT=0; - REPLACE_ISWXDIGIT=0; @@ -37966,409 +31752,9 @@ printf "%s\n" "#define HAVE_DECL_WCSDUP $ac_have_decl" >>confdefs.h - if test $ac_cv_func_iswcntrl = yes; then - HAVE_ISWCNTRL=1 - else - HAVE_ISWCNTRL=0 - fi - if test $gt_cv_c_wint_t = yes; then - HAVE_WINT_T=1 - else - HAVE_WINT_T=0 - fi - - - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_wctype_h='<'wctype.h'>' - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_wctype_h+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test $ac_cv_header_wctype_h = yes; then - - - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'wctype.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' - - gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_wctype_h - gl_cv_next_wctype_h='"'$gl_header'"' - else - gl_cv_next_wctype_h='<'wctype.h'>' - fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 -printf "%s\n" "$gl_cv_next_wctype_h" >&6; } - fi - NEXT_WCTYPE_H=$gl_cv_next_wctype_h - - if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'wctype.h'>' - else - # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_wctype_h - fi - NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive - - - - - if test $ac_cv_header_wctype_h = yes; then - if test $ac_cv_func_iswcntrl = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 -printf %s "checking whether iswcntrl works... " >&6; } -if test ${gl_cv_func_iswcntrl_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - if test "$cross_compiling" = yes -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #if __GNU_LIBRARY__ == 1 - Linux libc5 i18n is broken. - #endif -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_func_iswcntrl_works="guessing yes" -else $as_nop - gl_cv_func_iswcntrl_works="guessing no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - int main () { return iswprint ('x') == 0; } - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_iswcntrl_works=yes -else $as_nop - gl_cv_func_iswcntrl_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 -printf "%s\n" "$gl_cv_func_iswcntrl_works" >&6; } - fi - HAVE_WCTYPE_H=1 - else - HAVE_WCTYPE_H=0 - fi - - - if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then - REPLACE_ISWCNTRL=1 - else - case "$gl_cv_func_iswcntrl_works" in - *yes) REPLACE_ISWCNTRL=0 ;; - *) REPLACE_ISWCNTRL=1 ;; - esac - fi - - - if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then - : - fi - - if test $REPLACE_ISWCNTRL = 1; then - REPLACE_TOWLOWER=1 - else - ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" -if test "x$ac_cv_func_towlower" = xyes -then : - printf "%s\n" "#define HAVE_TOWLOWER 1" >>confdefs.h - -fi - - if test $ac_cv_func_towlower = yes; then - REPLACE_TOWLOWER=0 - else - ac_fn_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "#include - #if HAVE_WCTYPE_H - # include - #endif - -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_towlower" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_TOWLOWER $ac_have_decl" >>confdefs.h - - if test $ac_cv_have_decl_towlower = yes; then - REPLACE_TOWLOWER=1 - else - REPLACE_TOWLOWER=0 - fi - fi - fi - - - if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then - : - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 -printf %s "checking for wctype_t... " >&6; } -if test ${gl_cv_type_wctype_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #if HAVE_WCTYPE_H - # include - #endif - wctype_t a; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_type_wctype_t=yes -else $as_nop - gl_cv_type_wctype_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 -printf "%s\n" "$gl_cv_type_wctype_t" >&6; } - if test $gl_cv_type_wctype_t = no; then - HAVE_WCTYPE_T=0 - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 -printf %s "checking for wctrans_t... " >&6; } -if test ${gl_cv_type_wctrans_t+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - wctrans_t a; - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_type_wctrans_t=yes -else $as_nop - gl_cv_type_wctrans_t=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 -printf "%s\n" "$gl_cv_type_wctrans_t" >&6; } - if test $gl_cv_type_wctrans_t = no; then - HAVE_WCTRANS_T=0 - fi - - - - - - - - GL_GNULIB_ISWBLANK=0 - - - - GL_GNULIB_ISWDIGIT=0 - - - - GL_GNULIB_ISWXDIGIT=0 - - - - GL_GNULIB_WCTYPE=0 - - - - GL_GNULIB_ISWCTYPE=0 - - - - GL_GNULIB_WCTRANS=0 - - - - GL_GNULIB_TOWCTRANS=0 - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler option to allow warnings" >&5 -printf %s "checking for C compiler option to allow warnings... " >&6; } -if test ${gl_cv_cc_wallow+y} -then : - printf %s "(cached) " >&6 -else $as_nop - rm -f conftest* - echo 'int dummy;' > conftest.c - { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } >/dev/null - { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } >/dev/null - if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then - gl_cv_cc_wallow='-Wno-error' - else - gl_cv_cc_wallow=none - fi - rm -f conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_wallow" >&5 -printf "%s\n" "$gl_cv_cc_wallow" >&6; } - case "$gl_cv_cc_wallow" in - none) GL_CFLAG_ALLOW_WARNINGS='' ;; - *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; - esac - - - - - GL_CFLAG_GNULIB_WARNINGS='' - if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then - cat > conftest.c <<\EOF - #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-cast-qual - -Wno-conversion - -Wno-float-equal - -Wno-sign-compare - -Wno-undef - -Wno-unused-function - -Wno-unused-parameter - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-float-conversion - #endif - #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wimplicit-fallthrough - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-pedantic - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-sign-conversion - -Wno-type-limits - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4 - -Wno-unsuffixed-float-constants - #endif -EOF - gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gl_command\""; } >&5 - (eval $gl_command) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - gl_options=`grep -v '#' conftest.out` - for word in $gl_options; do - GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word" - done - fi - rm -f conftest.c conftest.out - fi - - if false; then GL_COND_LIBTOOL_TRUE= @@ -38391,11 +31777,7 @@ fi - - - gl_source_base='gl' - gl_source_base_prefix= if test $ac_cv_func_alloca_works = no; then @@ -38436,47 +31818,37 @@ printf "%s\n" "$gl_cv_rpl_alloca" >&6; } printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h - GL_GENERATE_ALLOCA_H=true + ALLOCA_H=alloca.h else - GL_GENERATE_ALLOCA_H=false + ALLOCA_H= fi else - GL_GENERATE_ALLOCA_H=true + ALLOCA_H=alloca.h fi - if test $ac_cv_working_alloca_h = yes; then - HAVE_ALLOCA_H=1 - else - HAVE_ALLOCA_H=0 - fi - - - - - - - case "$GL_GENERATE_ALLOCA_H" in - false) ALLOCA_H='' ;; - true) - if test -z "$ALLOCA_H"; then - ALLOCA_H="${gl_source_base_prefix}alloca.h" - fi - ;; - *) echo "*** GL_GENERATE_ALLOCA_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_ALLOCA_H; then + if test -n "$ALLOCA_H"; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi -: - if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then - GL_GENERATE_ALLOCA_H_TRUE='#' - GL_GENERATE_ALLOCA_H_FALSE='#' + + + + + + + : + + + + + + if test $ac_cv_header_arpa_inet_h = yes; then + HAVE_ARPA_INET_H=1 + else + HAVE_ARPA_INET_H=0 fi @@ -38485,73 +31857,7 @@ fi - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for static_assert" >&5 -printf %s "checking for static_assert... " >&6; } -if test ${gl_cv_static_assert+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_save_CFLAGS=$CFLAGS - for gl_working in "yes, a keyword" "yes, an macro"; do - case $gl_working in #( - *assert.h*) : - CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H" ;; #( - *) : - ;; -esac - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __clang__ && __STDC_VERSION__ < 202311 - #pragma clang diagnostic error "-Wc2x-extensions" - #pragma clang diagnostic error "-Wc++17-extensions" - #endif - #ifdef INCLUDE_ASSERT_H - #include - #endif - static_assert (2 + 2 == 4, "arithmetic does not work"); - static_assert (2 + 2 == 4); - -int -main (void) -{ - - static_assert (sizeof (char) == 1, "sizeof does not work"); - static_assert (sizeof (char) == 1); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_static_assert=$gl_working -else $as_nop - gl_cv_static_assert=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$gl_save_CFLAGS - test "$gl_cv_static_assert" != no && break - done -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_static_assert" >&5 -printf "%s\n" "$gl_cv_static_assert" >&6; } - - GL_GENERATE_ASSERT_H=false - case $gl_cv_static_assert in #( - yes*keyword*) : - -printf "%s\n" "#define HAVE_C_STATIC_ASSERT 1" >>confdefs.h - ;; #( - no) : - GL_GENERATE_ASSERT_H=true + : @@ -38561,72 +31867,67 @@ printf "%s\n" "#define HAVE_C_STATIC_ASSERT 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then - gl_cv_next_assert_h='<'assert.h'>' + gl_cv_next_arpa_inet_h='<'arpa/inet.h'>' else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 -printf %s "checking absolute name of ... " >&6; } -if test ${gl_cv_next_assert_h+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_arpa_inet_h+y} then : printf %s "(cached) " >&6 else $as_nop + if test $ac_cv_header_arpa_inet_h = yes; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'assert.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_assert_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_assert_h - gl_cv_next_assert_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'arpa/inet.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_arpa_inet_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_arpa_inet_h='<'arpa/inet.h'>' + fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_assert_h" >&5 -printf "%s\n" "$gl_cv_next_assert_h" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_arpa_inet_h" >&5 +printf "%s\n" "$gl_cv_next_arpa_inet_h" >&6; } fi - NEXT_ASSERT_H=$gl_cv_next_assert_h + NEXT_ARPA_INET_H=$gl_cv_next_arpa_inet_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' - gl_next_as_first_directive='<'assert.h'>' + gl_next_as_first_directive='<'arpa/inet.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=$gl_cv_next_assert_h + gl_next_as_first_directive=$gl_cv_next_arpa_inet_h fi - NEXT_AS_FIRST_DIRECTIVE_ASSERT_H=$gl_next_as_first_directive - - - - ;; #( - *) : - ;; -esac + NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H=$gl_next_as_first_directive @@ -38634,29 +31935,56 @@ esac - case "$GL_GENERATE_ASSERT_H" in - false) ASSERT_H='' ;; - true) - if test -z "$ASSERT_H"; then - ASSERT_H="${gl_source_base_prefix}assert.h" - fi - ;; - *) echo "*** GL_GENERATE_ASSERT_H is not set correctly" 1>&2; exit 1 ;; - esac + for gl_func in inet_ntop inet_pton; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if $GL_GENERATE_ASSERT_H; then - GL_GENERATE_ASSERT_H_TRUE= - GL_GENERATE_ASSERT_H_FALSE='#' -else - GL_GENERATE_ASSERT_H_TRUE='#' - GL_GENERATE_ASSERT_H_FALSE= +/* On some systems, this header is not self-consistent. */ +#if !(defined __GLIBC__ || defined __UCLIBC__) +# include +#endif +#ifdef __TANDEM +# include +#endif +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" fi -: - if test -z "${GL_GENERATE_ASSERT_H_TRUE}" && test -z "${GL_GENERATE_ASSERT_H_FALSE}"; then - GL_GENERATE_ASSERT_H_TRUE='#' - GL_GENERATE_ASSERT_H_FALSE='#' - fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -38671,6 +31999,9 @@ fi + : + + @@ -38694,8 +32025,6 @@ then : case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_btowc_nul="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac @@ -38704,6 +32033,14 @@ else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -38735,12 +32072,10 @@ then : else $as_nop case "$host_os" in - # Guess no on IRIX. - irix*) gl_cv_func_btowc_eof="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_btowc_eof="guessing yes" ;; - # Guess yes otherwise. - *) gl_cv_func_btowc_eof="guessing yes" ;; + # Guess no on IRIX. + irix*) gl_cv_func_btowc_eof="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_btowc_eof="guessing yes" ;; esac if test $LOCALE_FR != none; then if test "$cross_compiling" = yes @@ -38751,7 +32086,14 @@ else $as_nop /* end confdefs.h. */ #include +#include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include #include +#include #include int main () { @@ -38789,42 +32131,27 @@ printf "%s\n" "$gl_cv_func_btowc_eof" >&6; } esac fi + if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then - if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then - GL_COND_OBJ_BTOWC_TRUE= - GL_COND_OBJ_BTOWC_FALSE='#' -else - GL_COND_OBJ_BTOWC_TRUE='#' - GL_COND_OBJ_BTOWC_FALSE= -fi -: - if test -z "${GL_COND_OBJ_BTOWC_TRUE}" && test -z "${GL_COND_OBJ_BTOWC_FALSE}"; then - GL_COND_OBJ_BTOWC_TRUE='#' - GL_COND_OBJ_BTOWC_FALSE='#' - fi - if test -z "$GL_COND_OBJ_BTOWC_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext" : - -fi + fi - - - - - - - - - - GL_GNULIB_BTOWC=1 + GNULIB_BTOWC=1 @@ -38835,453 +32162,47 @@ printf "%s\n" "#define GNULIB_TEST_BTOWC 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 -printf %s "checking for __builtin_expect... " >&6; } -if test ${gl_cv___builtin_expect+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test "x$datarootdir" = x; then + datarootdir='${datadir}' - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - } -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv___builtin_expect=yes -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + fi + if test "x$docdir" = x; then + docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' - #include - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - } -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv___builtin_expect="in " -else $as_nop - gl_cv___builtin_expect=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5 -printf "%s\n" "$gl_cv___builtin_expect" >&6; } - if test "$gl_cv___builtin_expect" = yes; then - printf "%s\n" "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h + fi + if test "x$htmldir" = x; then + htmldir='${docdir}' - elif test "$gl_cv___builtin_expect" = "in "; then - printf "%s\n" "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h + fi + if test "x$dvidir" = x; then + dvidir='${docdir}' + + fi + if test "x$pdfdir" = x; then + pdfdir='${docdir}' + + fi + if test "x$psdir" = x; then + psdir='${docdir}' + + fi + if test "x$lispdir" = x; then + lispdir='${datarootdir}/emacs/site-lisp' + + fi + if test "x$localedir" = x; then + localedir='${datarootdir}/locale' fi + pkglibexecdir='${libexecdir}/${PACKAGE}' - for ac_header in byteswap.h -do : - ac_fn_c_check_header_compile "$LINENO" "byteswap.h" "ac_cv_header_byteswap_h" "$ac_includes_default" -if test "x$ac_cv_header_byteswap_h" = xyes -then : - printf "%s\n" "#define HAVE_BYTESWAP_H 1" >>confdefs.h - GL_GENERATE_BYTESWAP_H=false -else $as_nop + : - GL_GENERATE_BYTESWAP_H=true -fi - -done - - - - - - case "$GL_GENERATE_BYTESWAP_H" in - false) BYTESWAP_H='' ;; - true) - if test -z "$BYTESWAP_H"; then - BYTESWAP_H="${gl_source_base_prefix}byteswap.h" - fi - ;; - *) echo "*** GL_GENERATE_BYTESWAP_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_BYTESWAP_H; then - GL_GENERATE_BYTESWAP_H_TRUE= - GL_GENERATE_BYTESWAP_H_FALSE='#' -else - GL_GENERATE_BYTESWAP_H_TRUE='#' - GL_GENERATE_BYTESWAP_H_FALSE= -fi -: - if test -z "${GL_GENERATE_BYTESWAP_H_TRUE}" && test -z "${GL_GENERATE_BYTESWAP_H_FALSE}"; then - GL_GENERATE_BYTESWAP_H_TRUE='#' - GL_GENERATE_BYTESWAP_H_FALSE='#' - fi - - - - - - - - - - REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX" - if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether calloc (0, n) and calloc (n, 0) return nonnull" >&5 -printf %s "checking whether calloc (0, n) and calloc (n, 0) return nonnull... " >&6; } -if test ${ac_cv_func_calloc_0_nonnull+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test $cross_compiling != yes; then - ac_cv_func_calloc_0_nonnull=yes - if test "$cross_compiling" = yes -then : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main (void) -{ -int result = 0; - char * volatile p = calloc (0, 0); - if (!p) - result |= 1; - free (p); - return result; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - -else $as_nop - ac_cv_func_calloc_0_nonnull=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - else - case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; - # Guess yes on native Windows. - mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;; - esac - fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_calloc_0_nonnull" >&5 -printf "%s\n" "$ac_cv_func_calloc_0_nonnull" >&6; } - case $ac_cv_func_calloc_0_nonnull in #( - *yes) : - ;; #( - *) : - REPLACE_CALLOC_FOR_CALLOC_GNU=1 ;; -esac - - fi - - if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext" - - fi - - - - - - - - - - GL_GNULIB_CALLOC_GNU=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_CALLOC_GNU 1" >>confdefs.h - - - - - - - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then - REPLACE_CALLOC_FOR_CALLOC_POSIX=1 - fi - - if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext" - - fi - - - - - - - - - - GL_GNULIB_CALLOC_POSIX=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_CALLOC_POSIX 1" >>confdefs.h - - - - - -printf "%s\n" "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h - - - - - - - if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then - REPLACE_CLOSE=1 - fi - - - - - - - if test $ac_cv_header_sys_socket_h != yes; then - ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" -if test "x$ac_cv_header_winsock2_h" = xyes -then : - printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h - -fi - - fi - if test "$ac_cv_header_winsock2_h" = yes; then - HAVE_WINSOCK2_H=1 - UNISTD_H_HAVE_WINSOCK2_H=1 - SYS_IOCTL_H_HAVE_WINSOCK2_H=1 - else - HAVE_WINSOCK2_H=0 - fi - - - if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then - REPLACE_CLOSE=1 - fi - - - - - if test $REPLACE_CLOSE = 1; then - GL_COND_OBJ_CLOSE_TRUE= - GL_COND_OBJ_CLOSE_FALSE='#' -else - GL_COND_OBJ_CLOSE_TRUE='#' - GL_COND_OBJ_CLOSE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_CLOSE_TRUE}" && test -z "${GL_COND_OBJ_CLOSE_FALSE}"; then - GL_COND_OBJ_CLOSE_TRUE='#' - GL_COND_OBJ_CLOSE_FALSE='#' - fi - - - - - - - - - - - GL_GNULIB_CLOSE=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_CLOSE 1" >>confdefs.h - - - - - - - - - - - - - - -# Check whether --with-openssl was given. -if test ${with_openssl+y} -then : - withval=$with_openssl; -else $as_nop - with_openssl=$with_openssl_default -fi - - - - if test "x$with_openssl" != xno; then - if test "x$with_openssl" = xauto-gpl-compat; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether openssl is GPL compatible" >&5 -printf %s "checking whether openssl is GPL compatible... " >&6; } -if test ${gl_cv_openssl_gpl_compat+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #if OPENSSL_VERSION_MAJOR < 3 - #error "openssl >= version 3 not found" - #endif - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_openssl_gpl_compat=yes -else $as_nop - gl_cv_openssl_gpl_compat=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_openssl_gpl_compat" >&5 -printf "%s\n" "$gl_cv_openssl_gpl_compat" >&6; } - fi - if test "x$with_openssl" != xauto-gpl-compat || - test "x$gl_cv_openssl_gpl_compat" = xyes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA256 in -lcrypto" >&5 -printf %s "checking for SHA256 in -lcrypto... " >&6; } -if test ${ac_cv_lib_crypto_SHA256+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char SHA256 (); -int -main (void) -{ -return SHA256 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_crypto_SHA256=yes -else $as_nop - ac_cv_lib_crypto_SHA256=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SHA256" >&5 -printf "%s\n" "$ac_cv_lib_crypto_SHA256" >&6; } -if test "x$ac_cv_lib_crypto_SHA256" = xyes -then : - for ac_header in openssl/sha.h -do : - ac_fn_c_check_header_compile "$LINENO" "openssl/sha.h" "ac_cv_header_openssl_sha_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_sha_h" = xyes -then : - printf "%s\n" "#define HAVE_OPENSSL_SHA_H 1" >>confdefs.h - LIB_CRYPTO=-lcrypto - -printf "%s\n" "#define HAVE_OPENSSL_SHA256 1" >>confdefs.h - -fi - -done -fi - - fi - if test "x$LIB_CRYPTO" = x; then - message='openssl development library not found for SHA256. - If you want to install it, first find the pre-built package name: - - On Debian and Debian-based systems: libssl-dev, - - On Red Hat distributions: openssl-devel. - - Other: https://repology.org/project/openssl/versions' - if test "x$with_openssl" = xyes; then - as_fn_error $? "$message" "$LINENO" 5 - elif test "x$with_openssl" = xoptional; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $message" >&5 -printf "%s\n" "$as_me: WARNING: $message" >&2;} - fi - fi - fi @@ -39291,6 +32212,10 @@ printf "%s\n" "#define GNULIB_DIRNAME 1" >>confdefs.h + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 printf %s "checking whether // is distinct from /... " >&6; } if test ${gl_cv_double_slash_root+y} @@ -39332,177 +32257,10 @@ printf "%s\n" "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 -printf %s "checking whether dup2 works... " >&6; } -if test ${gl_cv_func_dup2_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - mingw*) # on this platform, dup2 always returns 0 for success - gl_cv_func_dup2_works="guessing no" ;; - cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 - gl_cv_func_dup2_works="guessing no" ;; - aix* | freebsd*) - # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, - # not EBADF. - gl_cv_func_dup2_works="guessing no" ;; - haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. - gl_cv_func_dup2_works="guessing no" ;; - *-android*) # implemented using dup3(), which fails if oldfd == newfd - gl_cv_func_dup2_works="guessing no" ;; - os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. - gl_cv_func_dup2_works="guessing no" ;; - *) gl_cv_func_dup2_works="guessing yes" ;; - esac -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #include - #include - #include - - -$gl_mda_defines - - #ifndef RLIM_SAVED_CUR - # define RLIM_SAVED_CUR RLIM_INFINITY - #endif - #ifndef RLIM_SAVED_MAX - # define RLIM_SAVED_MAX RLIM_INFINITY - #endif - -int -main (void) -{ -int result = 0; - int bad_fd = INT_MAX; - struct rlimit rlim; - if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 - && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX - && rlim.rlim_cur != RLIM_INFINITY - && rlim.rlim_cur != RLIM_SAVED_MAX - && rlim.rlim_cur != RLIM_SAVED_CUR) - bad_fd = rlim.rlim_cur; - #ifdef FD_CLOEXEC - if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) - result |= 1; - #endif - if (dup2 (1, 1) != 1) - result |= 2; - #ifdef FD_CLOEXEC - if (fcntl (1, F_GETFD) != FD_CLOEXEC) - result |= 4; - #endif - close (0); - if (dup2 (0, 0) != -1) - result |= 8; - /* Many gnulib modules require POSIX conformance of EBADF. */ - if (dup2 (2, bad_fd) == -1 && errno != EBADF) - result |= 16; - /* Flush out some cygwin core dumps. */ - if (dup2 (2, -1) != -1 || errno != EBADF) - result |= 32; - dup2 (2, 255); - dup2 (2, 256); - /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ - { - int fd = open (".", O_RDONLY); - if (fd == -1) - result |= 64; - else if (dup2 (fd, fd + 1) == -1) - result |= 128; - close (fd); - } - return result; - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_dup2_works=yes -else $as_nop - gl_cv_func_dup2_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 -printf "%s\n" "$gl_cv_func_dup2_works" >&6; } - case "$gl_cv_func_dup2_works" in - *yes) ;; - *) - REPLACE_DUP2=1 - ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize" -if test "x$ac_cv_func_setdtablesize" = xyes -then : - printf "%s\n" "#define HAVE_SETDTABLESIZE 1" >>confdefs.h - -fi - - ;; - esac - if test $REPLACE_DUP2 = 1; then - GL_COND_OBJ_DUP2_TRUE= - GL_COND_OBJ_DUP2_FALSE='#' -else - GL_COND_OBJ_DUP2_TRUE='#' - GL_COND_OBJ_DUP2_FALSE= -fi -: - if test -z "${GL_COND_OBJ_DUP2_TRUE}" && test -z "${GL_COND_OBJ_DUP2_FALSE}"; then - GL_COND_OBJ_DUP2_TRUE='#' - GL_COND_OBJ_DUP2_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_DUP2_TRUE"; then : - - - -fi - - - - - - - - - - GL_GNULIB_DUP2=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_DUP2 1" >>confdefs.h - - - - - - - - - - - - - - GL_GNULIB_ENVIRON=1 + GNULIB_ENVIRON=1 @@ -39514,39 +32272,6 @@ printf "%s\n" "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h - - - - case "$GL_GENERATE_ERRNO_H" in - false) ERRNO_H='' ;; - true) - if test -z "$ERRNO_H"; then - ERRNO_H="${gl_source_base_prefix}errno.h" - fi - ;; - *) echo "*** GL_GENERATE_ERRNO_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_ERRNO_H; then - GL_GENERATE_ERRNO_H_TRUE= - GL_GENERATE_ERRNO_H_FALSE='#' -else - GL_GENERATE_ERRNO_H_TRUE='#' - GL_GENERATE_ERRNO_H_FALSE= -fi -: - if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then - GL_GENERATE_ERRNO_H_TRUE='#' - GL_GENERATE_ERRNO_H_FALSE='#' - fi - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 printf %s "checking for error_at_line... " >&6; } if test ${ac_cv_lib_error_at_line+y} @@ -39576,30 +32301,22 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 printf "%s\n" "$ac_cv_lib_error_at_line" >&6; } - - if test "$ac_cv_lib_error_at_line" = no; then - GL_COND_OBJ_ERROR_TRUE= - GL_COND_OBJ_ERROR_FALSE='#' -else - GL_COND_OBJ_ERROR_TRUE='#' - GL_COND_OBJ_ERROR_FALSE= -fi -: - if test -z "${GL_COND_OBJ_ERROR_TRUE}" && test -z "${GL_COND_OBJ_ERROR_FALSE}"; then - GL_COND_OBJ_ERROR_TRUE='#' - GL_COND_OBJ_ERROR_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_ERROR_TRUE"; then : + if test $ac_cv_lib_error_at_line = no; then + + + + gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" + + + : - -fi + fi XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" @@ -39612,403 +32329,16 @@ fi - - - if test $ac_cv_func_fcntl = no; then - - - - if test $ac_cv_func_fcntl = no; then - HAVE_FCNTL=0 - else - REPLACE_FCNTL=1 - fi - - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 -printf %s "checking whether fcntl handles F_DUPFD correctly... " >&6; } -if test ${gl_cv_func_fcntl_f_dupfd_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case $host_os in - aix* | cygwin* | haiku*) - gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; - *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; - esac -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - #include - #include - #include - - -$gl_mda_defines - - #ifndef RLIM_SAVED_CUR - # define RLIM_SAVED_CUR RLIM_INFINITY - #endif - #ifndef RLIM_SAVED_MAX - # define RLIM_SAVED_MAX RLIM_INFINITY - #endif - -int -main (void) -{ -int result = 0; - int bad_fd = INT_MAX; - struct rlimit rlim; - if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 - && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX - && rlim.rlim_cur != RLIM_INFINITY - && rlim.rlim_cur != RLIM_SAVED_MAX - && rlim.rlim_cur != RLIM_SAVED_CUR) - bad_fd = rlim.rlim_cur; - if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; - if (errno != EINVAL) result |= 2; - if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; - if (errno != EINVAL) result |= 8; - /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ - { - int fd; - fd = open (".", O_RDONLY); - if (fd == -1) - result |= 16; - else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) - result |= 32; - - close (fd); - } - return result; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fcntl_f_dupfd_works=yes -else $as_nop - gl_cv_func_fcntl_f_dupfd_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 -printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_works" >&6; } - case $gl_cv_func_fcntl_f_dupfd_works in - *yes) ;; - *) - - - if test $ac_cv_func_fcntl = no; then - HAVE_FCNTL=0 - else - REPLACE_FCNTL=1 - fi - - -printf "%s\n" "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h - ;; - esac - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 -printf %s "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } -if test ${gl_cv_func_fcntl_f_dupfd_cloexec+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess no on NetBSD. - netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; - *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - int main (int argc, char *argv[]) - { - if (argc == 1) - /* parent process */ - { - if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) - return 1; - return execl ("./conftest", "./conftest", "child", NULL); - } - else - /* child process */ - return (fcntl (10, F_GETFL) < 0 ? 0 : 42); - } - - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef __linux__ -/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace - it to support the semantics on older kernels that failed with EINVAL. */ -choke me -#endif - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_func_fcntl_f_dupfd_cloexec=yes -else $as_nop - gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -else $as_nop - gl_cv_func_fcntl_f_dupfd_cloexec=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 -printf "%s\n" "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } - case "$gl_cv_func_fcntl_f_dupfd_cloexec" in - *yes) ;; - *) - - - if test $ac_cv_func_fcntl = no; then - HAVE_FCNTL=0 - else - REPLACE_FCNTL=1 - fi - - ;; - esac - fi - - - - if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then - GL_COND_OBJ_FCNTL_TRUE= - GL_COND_OBJ_FCNTL_FALSE='#' -else - GL_COND_OBJ_FCNTL_TRUE='#' - GL_COND_OBJ_FCNTL_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FCNTL_TRUE}" && test -z "${GL_COND_OBJ_FCNTL_FALSE}"; then - GL_COND_OBJ_FCNTL_TRUE='#' - GL_COND_OBJ_FCNTL_FALSE='#' - fi - - - - - - - - - - - GL_GNULIB_FCNTL=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FCNTL 1" >>confdefs.h - - - - - - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 -printf %s "checking whether fflush works on input streams... " >&6; } -if test ${gl_cv_func_fflush_stdin+y} -then : - printf %s "(cached) " >&6 -else $as_nop - echo hello world > conftest.txt - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_fflush_stdin="guessing no" ;; - *) gl_cv_func_fflush_stdin=cross ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#if HAVE_UNISTD_H -# include -#else /* on Windows with MSVC */ -# include -#endif - - -$gl_mda_defines - -int -main (void) -{ -FILE *f = fopen ("conftest.txt", "r"); - char buffer[10]; - int fd; - int c; - if (f == NULL) - return 1; - fd = fileno (f); - if (fd < 0 || fread (buffer, 1, 5, f) != 5) - { fclose (f); return 2; } - /* For deterministic results, ensure f read a bigger buffer. */ - if (lseek (fd, 0, SEEK_CUR) == 5) - { fclose (f); return 3; } - /* POSIX requires fflush-fseek to set file offset of fd. This fails - on BSD systems and on mingw. */ - if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) - { fclose (f); return 4; } - if (lseek (fd, 0, SEEK_CUR) != 5) - { fclose (f); return 5; } - /* Verify behaviour of fflush after ungetc. See - */ - /* Verify behaviour of fflush after a backup ungetc. This fails on - mingw. */ - c = fgetc (f); - ungetc (c, f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 6; } - /* Verify behaviour of fflush after a non-backup ungetc. This fails - on glibc 2.8 and on BSD systems. */ - c = fgetc (f); - ungetc ('@', f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 7; } - fclose (f); - return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fflush_stdin=yes -else $as_nop - gl_cv_func_fflush_stdin=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm conftest.txt - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 -printf "%s\n" "$gl_cv_func_fflush_stdin" >&6; } - case "$gl_cv_func_fflush_stdin" in - *yes) gl_func_fflush_stdin=1 ;; - *no) gl_func_fflush_stdin=0 ;; - *) gl_func_fflush_stdin='(-1)' ;; - esac - -printf "%s\n" "#define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin" >>confdefs.h - - - case "$gl_cv_func_fflush_stdin" in - *yes) ;; - *) REPLACE_FFLUSH=1 ;; - esac - - - if test $REPLACE_FFLUSH = 1; then - GL_COND_OBJ_FFLUSH_TRUE= - GL_COND_OBJ_FFLUSH_FALSE='#' -else - GL_COND_OBJ_FFLUSH_TRUE='#' - GL_COND_OBJ_FFLUSH_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FFLUSH_TRUE}" && test -z "${GL_COND_OBJ_FFLUSH_FALSE}"; then - GL_COND_OBJ_FFLUSH_TRUE='#' - GL_COND_OBJ_FFLUSH_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_FFLUSH_TRUE"; then : - - : - -fi - - -printf "%s\n" "#define GNULIB_FFLUSH 1" >>confdefs.h - - - - - - - - - - - - GL_GNULIB_FFLUSH=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FFLUSH 1" >>confdefs.h - - - - - - - GL_GENERATE_FLOAT_H=false + FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; - freebsd* | dragonfly*) + freebsd*) case "$host_cpu" in i[34567]86 ) - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating @@ -40016,33 +32346,32 @@ printf "%s\n" "#define GNULIB_TEST_FFLUSH 1" >>confdefs.h cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __x86_64__ || defined __amd64__ - int ok; - #else - error fail - #endif - + yes + #endif _ACEOF -if ac_fn_c_try_compile "$LINENO" +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 then : else $as_nop - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -rf conftest* + ;; esac ;; linux*) case "$host_cpu" in powerpc*) - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; esac ;; esac case "$host_os" in - aix* | freebsd* | dragonfly* | linux*) - if $GL_GENERATE_FLOAT_H; then + aix* | freebsd* | linux*) + if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; @@ -40063,23 +32392,20 @@ then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __arch64__ - int ok; - #else - error fail - #endif - + yes + #endif _ACEOF -if ac_fn_c_try_compile "$LINENO" +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 then : gl_cv_func_itold_works="guessing no" else $as_nop gl_cv_func_itold_works="guessing yes" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -rf conftest* + ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_itold_works="guessing yes" ;; - *) gl_cv_func_itold_works="guessing yes" ;; + *) gl_cv_func_itold_works="guessing yes" ;; esac else $as_nop @@ -40113,11 +32439,11 @@ printf "%s\n" "$gl_cv_func_itold_works" >&6; } case "$gl_cv_func_itold_works" in *no) REPLACE_ITOLD=1 - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; esac - if $GL_GENERATE_FLOAT_H; then + if test -n "$FLOAT_H"; then @@ -40136,40 +32462,36 @@ then : printf %s "(cached) " >&6 else $as_nop - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'float.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_float_h - gl_cv_next_float_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'float.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' fi @@ -40192,34 +32514,29 @@ printf "%s\n" "$gl_cv_next_float_h" >&6; } fi - - - - - - case "$GL_GENERATE_FLOAT_H" in - false) FLOAT_H='' ;; - true) - if test -z "$FLOAT_H"; then - FLOAT_H="${gl_source_base_prefix}float.h" - fi - ;; - *) echo "*** GL_GENERATE_FLOAT_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_FLOAT_H; then + if test -n "$FLOAT_H"; then GL_GENERATE_FLOAT_H_TRUE= GL_GENERATE_FLOAT_H_FALSE='#' else GL_GENERATE_FLOAT_H_TRUE='#' GL_GENERATE_FLOAT_H_FALSE= fi -: - if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then - GL_GENERATE_FLOAT_H_TRUE='#' - GL_GENERATE_FLOAT_H_FALSE='#' + + + + if test $REPLACE_FLOAT_LDBL = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext" + fi + if test $REPLACE_ITOLD = 1; then @@ -40227,35 +32544,12 @@ fi - if test $REPLACE_FLOAT_LDBL = 1; then - GL_COND_OBJ_FLOAT_TRUE= - GL_COND_OBJ_FLOAT_FALSE='#' -else - GL_COND_OBJ_FLOAT_TRUE='#' - GL_COND_OBJ_FLOAT_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FLOAT_TRUE}" && test -z "${GL_COND_OBJ_FLOAT_FALSE}"; then - GL_COND_OBJ_FLOAT_TRUE='#' - GL_COND_OBJ_FLOAT_FALSE='#' + + gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext" + fi - if test $REPLACE_ITOLD = 1; then - GL_COND_OBJ_ITOLD_TRUE= - GL_COND_OBJ_ITOLD_FALSE='#' -else - GL_COND_OBJ_ITOLD_TRUE='#' - GL_COND_OBJ_ITOLD_FALSE= -fi -: - if test -z "${GL_COND_OBJ_ITOLD_TRUE}" && test -z "${GL_COND_OBJ_ITOLD_FALSE}"; then - GL_COND_OBJ_ITOLD_TRUE='#' - GL_COND_OBJ_ITOLD_FALSE='#' - fi - - - ac_fn_check_decl "$LINENO" "floorf" "ac_cv_have_decl_floorf" "#include @@ -40271,10 +32565,9 @@ printf "%s\n" "#define HAVE_DECL_FLOORF $ac_have_decl" >>confdefs.h if test "$ac_cv_have_decl_floorf" = yes; then - - exec 9>&6 6>/dev/null - - if test ${gl_cv_func_floorf_libm+y} + saved_as_echo_n="$as_echo_n" + as_echo_n=':' + if test ${gl_cv_func_floorf_libm+y} then : printf %s "(cached) " >&6 else $as_nop @@ -40332,9 +32625,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ fi - - exec 6>&9 9>&- - + as_echo_n="$saved_as_echo_n" FLOORF_LIBM="$gl_cv_func_floorf_libm" @@ -40350,30 +32641,24 @@ fi fi + if test $HAVE_DECL_FLOORF = 0 || test $REPLACE_FLOORF = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS floorf.$ac_objext" - if test $HAVE_DECL_FLOORF = 0 || test $REPLACE_FLOORF = 1; then - GL_COND_OBJ_FLOORF_TRUE= - GL_COND_OBJ_FLOORF_FALSE='#' -else - GL_COND_OBJ_FLOORF_TRUE='#' - GL_COND_OBJ_FLOORF_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FLOORF_TRUE}" && test -z "${GL_COND_OBJ_FLOORF_FALSE}"; then - GL_COND_OBJ_FLOORF_TRUE='#' - GL_COND_OBJ_FLOORF_FALSE='#' fi - - - - - - GL_GNULIB_FLOORF=1 + GNULIB_FLOORF=1 @@ -40385,814 +32670,16 @@ printf "%s\n" "#define GNULIB_TEST_FLOORF 1" >>confdefs.h + : - case "$host_os" in - mingw* | pw*) - REPLACE_FOPEN=1 - gl_cv_func_fopen_slash="guessing no" - ;; - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopen recognizes a trailing slash" >&5 -printf %s "checking whether fopen recognizes a trailing slash... " >&6; } -if test ${gl_cv_func_fopen_slash+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) - gl_cv_func_fopen_slash="guessing no" ;; - *) - gl_cv_func_fopen_slash="guessing yes" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int main () -{ - FILE *fp = fopen ("conftest.sl/", "w"); - int result = (fp != NULL); - if (fp != NULL) - fclose (fp); - return result; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fopen_slash=yes -else $as_nop - gl_cv_func_fopen_slash=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm -f conftest.sl - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_slash" >&5 -printf "%s\n" "$gl_cv_func_fopen_slash" >&6; } - ;; - esac - case "$gl_cv_func_fopen_slash" in - *no) - -printf "%s\n" "#define FOPEN_TRAILING_SLASH_BUG 1" >>confdefs.h - - REPLACE_FOPEN=1 - ;; - esac - - if test $REPLACE_FOPEN = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS fopen.$ac_objext" - - : - fi - - - - - - - - - - GL_GNULIB_FOPEN=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FOPEN 1" >>confdefs.h - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopen supports the mode character 'x'" >&5 -printf %s "checking whether fopen supports the mode character 'x'... " >&6; } -if test ${gl_cv_func_fopen_mode_x+y} -then : - printf %s "(cached) " >&6 -else $as_nop - rm -f conftest.x - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess yes on glibc and musl systems. - linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*) - gl_cv_func_fopen_mode_x="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_fopen_mode_x="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int main () -{ - FILE *fp; - fp = fopen ("conftest.x", "w"); - fclose (fp); - fp = fopen ("conftest.x", "wx"); - if (fp != NULL) - /* 'x' ignored */ - return 1; - else if (errno == EEXIST) - return 0; - else - /* 'x' rejected */ - return 2; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fopen_mode_x=yes -else $as_nop - gl_cv_func_fopen_mode_x=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm -f conftest.x - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_mode_x" >&5 -printf "%s\n" "$gl_cv_func_fopen_mode_x" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopen supports the mode character 'e'" >&5 -printf %s "checking whether fopen supports the mode character 'e'... " >&6; } -if test ${gl_cv_func_fopen_mode_e+y} -then : - printf %s "(cached) " >&6 -else $as_nop - echo foo > conftest.x - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess yes on glibc and musl systems. - linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*) - gl_cv_func_fopen_mode_e="guessing yes" ;; - # Guess no on native Windows. - mingw*) - gl_cv_func_fopen_mode_e="guessing no" ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_fopen_mode_e="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - - -$gl_mda_defines - -int main () -{ - FILE *fp = fopen ("conftest.x", "re"); - if (fp != NULL) - { - if (fcntl (fileno (fp), F_GETFD) & FD_CLOEXEC) - return 0; - else - /* 'e' ignored */ - return 1; - } - else - /* 'e' rejected */ - return 2; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fopen_mode_e=yes -else $as_nop - gl_cv_func_fopen_mode_e=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm -f conftest.x - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_mode_e" >&5 -printf "%s\n" "$gl_cv_func_fopen_mode_e" >&6; } - REPLACE_FOPEN_FOR_FOPEN_GNU="$REPLACE_FOPEN" - case "$gl_cv_func_fopen_mode_x" in - *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;; - esac - case "$gl_cv_func_fopen_mode_e" in - *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;; - esac - - if test $REPLACE_FOPEN_FOR_FOPEN_GNU = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS fopen.$ac_objext" - - : - fi - - -printf "%s\n" "#define GNULIB_FOPEN_GNU 1" >>confdefs.h - - - - - - - - - - - - GL_GNULIB_FOPEN_GNU=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FOPEN_GNU 1" >>confdefs.h - - - - - - - - - ac_fn_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_fpurge" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_FPURGE $ac_have_decl" >>confdefs.h - - if test "x$ac_cv_func_fpurge" = xyes; then - HAVE_FPURGE=1 - # Detect BSD bug. Only cygwin 1.7 and musl are known to be immune. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fpurge works" >&5 -printf %s "checking whether fpurge works... " >&6; } -if test ${gl_cv_func_fpurge_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess yes on musl systems. - *-musl*) gl_cv_func_fpurge_works="guessing yes" ;; - # Otherwise obey --enable-cross-guesses. - *) gl_cv_func_fpurge_works="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -FILE *f = fopen ("conftest.txt", "w+"); - if (!f) - return 1; - if (fputc ('a', f) != 'a') - { fclose (f); return 2; } - rewind (f); - if (fgetc (f) != 'a') - { fclose (f); return 3; } - if (fgetc (f) != EOF) - { fclose (f); return 4; } - if (fpurge (f) != 0) - { fclose (f); return 5; } - if (putc ('b', f) != 'b') - { fclose (f); return 6; } - if (fclose (f) != 0) - return 7; - if ((f = fopen ("conftest.txt", "r")) == NULL) - return 8; - if (fgetc (f) != 'a') - { fclose (f); return 9; } - if (fgetc (f) != 'b') - { fclose (f); return 10; } - if (fgetc (f) != EOF) - { fclose (f); return 11; } - if (fclose (f) != 0) - return 12; - if (remove ("conftest.txt") != 0) - return 13; - return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fpurge_works=yes -else $as_nop - gl_cv_func_fpurge_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fpurge_works" >&5 -printf "%s\n" "$gl_cv_func_fpurge_works" >&6; } - case "$gl_cv_func_fpurge_works" in - *yes) ;; - *) REPLACE_FPURGE=1 ;; - esac - else - HAVE_FPURGE=0 - fi - if test "x$ac_cv_have_decl_fpurge" = xno; then - HAVE_DECL_FPURGE=0 - fi - - - if test $HAVE_FPURGE = 0 || test $REPLACE_FPURGE = 1; then - GL_COND_OBJ_FPURGE_TRUE= - GL_COND_OBJ_FPURGE_FALSE='#' -else - GL_COND_OBJ_FPURGE_TRUE='#' - GL_COND_OBJ_FPURGE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FPURGE_TRUE}" && test -z "${GL_COND_OBJ_FPURGE_FALSE}"; then - GL_COND_OBJ_FPURGE_TRUE='#' - GL_COND_OBJ_FPURGE_FALSE='#' - fi - - - - - - - - - - - GL_GNULIB_FPURGE=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FPURGE 1" >>confdefs.h - - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether free is known to preserve errno" >&5 -printf %s "checking whether free is known to preserve errno... " >&6; } -if test ${gl_cv_func_free_preserves_errno+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) - #elif defined __OpenBSD__ - #elif defined __sun - #else - #error "'free' is not known to preserve errno" - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_func_free_preserves_errno=yes -else $as_nop - gl_cv_func_free_preserves_errno=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_free_preserves_errno" >&5 -printf "%s\n" "$gl_cv_func_free_preserves_errno" >&6; } - - case $gl_cv_func_free_preserves_errno in - *yes) - -printf "%s\n" "#define HAVE_FREE_POSIX 1" >>confdefs.h - - ;; - *) REPLACE_FREE=1 ;; - esac - - - if test $REPLACE_FREE = 1; then - GL_COND_OBJ_FREE_TRUE= - GL_COND_OBJ_FREE_FALSE='#' -else - GL_COND_OBJ_FREE_TRUE='#' - GL_COND_OBJ_FREE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FREE_TRUE}" && test -z "${GL_COND_OBJ_FREE_FALSE}"; then - GL_COND_OBJ_FREE_TRUE='#' - GL_COND_OBJ_FREE_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_FREE_TRUE"; then : - - : - -fi - - - - - - - - - - GL_GNULIB_FREE_POSIX=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FREE_POSIX 1" >>confdefs.h - - - - - - - if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then - REPLACE_FSEEK=1 - fi - - - if test $REPLACE_FSEEK = 1; then - GL_COND_OBJ_FSEEK_TRUE= - GL_COND_OBJ_FSEEK_FALSE='#' -else - GL_COND_OBJ_FSEEK_TRUE='#' - GL_COND_OBJ_FSEEK_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FSEEK_TRUE}" && test -z "${GL_COND_OBJ_FSEEK_FALSE}"; then - GL_COND_OBJ_FSEEK_TRUE='#' - GL_COND_OBJ_FSEEK_FALSE='#' - fi - - - - - - - - - - - GL_GNULIB_FSEEK=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FSEEK 1" >>confdefs.h - - - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 -printf %s "checking for fseeko... " >&6; } -if test ${gl_cv_func_fseeko+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -fseeko (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_func_fseeko=yes -else $as_nop - gl_cv_func_fseeko=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 -printf "%s\n" "$gl_cv_func_fseeko" >&6; } - - - if test $ac_cv_have_decl_fseeko = no; then - HAVE_DECL_FSEEKO=0 - fi - - if test $gl_cv_func_fseeko = no; then - HAVE_FSEEKO=0 - else - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_FSEEKO=1 - fi - if test $gl_cv_var_stdin_large_offset = no; then - REPLACE_FSEEKO=1 - fi - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 -printf %s "checking whether fflush works on input streams... " >&6; } -if test ${gl_cv_func_fflush_stdin+y} -then : - printf %s "(cached) " >&6 -else $as_nop - echo hello world > conftest.txt - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_fflush_stdin="guessing no" ;; - *) gl_cv_func_fflush_stdin=cross ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#if HAVE_UNISTD_H -# include -#else /* on Windows with MSVC */ -# include -#endif - - -$gl_mda_defines - -int -main (void) -{ -FILE *f = fopen ("conftest.txt", "r"); - char buffer[10]; - int fd; - int c; - if (f == NULL) - return 1; - fd = fileno (f); - if (fd < 0 || fread (buffer, 1, 5, f) != 5) - { fclose (f); return 2; } - /* For deterministic results, ensure f read a bigger buffer. */ - if (lseek (fd, 0, SEEK_CUR) == 5) - { fclose (f); return 3; } - /* POSIX requires fflush-fseek to set file offset of fd. This fails - on BSD systems and on mingw. */ - if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) - { fclose (f); return 4; } - if (lseek (fd, 0, SEEK_CUR) != 5) - { fclose (f); return 5; } - /* Verify behaviour of fflush after ungetc. See - */ - /* Verify behaviour of fflush after a backup ungetc. This fails on - mingw. */ - c = fgetc (f); - ungetc (c, f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 6; } - /* Verify behaviour of fflush after a non-backup ungetc. This fails - on glibc 2.8 and on BSD systems. */ - c = fgetc (f); - ungetc ('@', f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 7; } - fclose (f); - return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_fflush_stdin=yes -else $as_nop - gl_cv_func_fflush_stdin=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm conftest.txt - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 -printf "%s\n" "$gl_cv_func_fflush_stdin" >&6; } - case "$gl_cv_func_fflush_stdin" in - *yes) gl_func_fflush_stdin=1 ;; - *no) gl_func_fflush_stdin=0 ;; - *) gl_func_fflush_stdin='(-1)' ;; - esac - -printf "%s\n" "#define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin" >>confdefs.h - - - case "$gl_cv_func_fflush_stdin" in - *yes) ;; - *) REPLACE_FSEEKO=1 ;; - esac - - fi - - - if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then - GL_COND_OBJ_FSEEKO_TRUE= - GL_COND_OBJ_FSEEKO_FALSE='#' -else - GL_COND_OBJ_FSEEKO_TRUE='#' - GL_COND_OBJ_FSEEKO_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FSEEKO_TRUE}" && test -z "${GL_COND_OBJ_FSEEKO_FALSE}"; then - GL_COND_OBJ_FSEEKO_TRUE='#' - GL_COND_OBJ_FSEEKO_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_FSEEKO_TRUE"; then : - - - ac_fn_c_check_func "$LINENO" "_fseeki64" "ac_cv_func__fseeki64" -if test "x$ac_cv_func__fseeki64" = xyes -then : - printf "%s\n" "#define HAVE__FSEEKI64 1" >>confdefs.h - -fi - - if test $ac_cv_func__fseeki64 = yes; then - ac_fn_check_decl "$LINENO" "_fseeki64" "ac_cv_have_decl__fseeki64" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl__fseeki64" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL__FSEEKI64 $ac_have_decl" >>confdefs.h - - fi - - -fi - - - - - - - - - - GL_GNULIB_FSEEKO=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h - - - - - - - - case "$host_os" in - mingw* | solaris*) - REPLACE_FSTAT=1 - ;; - esac - - - - - if test $REPLACE_FSTAT = 1; then - GL_COND_OBJ_FSTAT_TRUE= - GL_COND_OBJ_FSTAT_FALSE='#' -else - GL_COND_OBJ_FSTAT_TRUE='#' - GL_COND_OBJ_FSTAT_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FSTAT_TRUE}" && test -z "${GL_COND_OBJ_FSTAT_FALSE}"; then - GL_COND_OBJ_FSTAT_TRUE='#' - GL_COND_OBJ_FSTAT_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_FSTAT_TRUE"; then : - - case "$host_os" in - mingw*) - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" - - ;; - esac : -fi - - - - - - - - - - GL_GNULIB_FSTAT=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FSTAT 1" >>confdefs.h @@ -41213,18 +32700,20 @@ fi - ac_fsusage_space=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to get file system space usage" >&5 +printf "%s\n" "$as_me: checking how to get file system space usage" >&6;} +ac_fsusage_space=no - # Perform only the link test since it seems there are no variants of the - # statvfs function. This check is more than just AC_CHECK_FUNCS([statvfs]) - # because that got a false positive on SCO OSR5. Adding the declaration - # of a 'struct statvfs' causes this test to fail (as it should) on such - # systems. That system is reported to work fine with STAT_STATFS4 which - # is what it gets when this test fails. - if test $ac_fsusage_space = no; then - # glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, - # OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for statvfs function (SVR4)" >&5 +# Perform only the link test since it seems there are no variants of the +# statvfs function. This check is more than just AC_CHECK_FUNCS([statvfs]) +# because that got a false positive on SCO OSR5. Adding the declaration +# of a 'struct statvfs' causes this test to fail (as it should) on such +# systems. That system is reported to work fine with STAT_STATFS4 which +# is what it gets when this test fails. +if test $ac_fsusage_space = no; then + # glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, + # OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for statvfs function (SVR4)" >&5 printf %s "checking for statvfs function (SVR4)... " >&6; } if test ${fu_cv_sys_stat_statvfs+y} then : @@ -41232,7 +32721,6 @@ then : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include #ifdef __osf__ "Do not use Tru64's statvfs implementation" @@ -41268,16 +32756,15 @@ else $as_nop fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statvfs" >&5 printf "%s\n" "$fu_cv_sys_stat_statvfs" >&6; } - if test $fu_cv_sys_stat_statvfs = yes; then - ac_fsusage_space=yes - # AIX >= 5.2 has statvfs64 that has a wider f_blocks field than statvfs. - # glibc, HP-UX, IRIX, Solaris have statvfs64 as well, but on these systems - # statvfs with large-file support is already equivalent to statvfs64. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use statvfs64" >&5 + if test $fu_cv_sys_stat_statvfs = yes; then + ac_fsusage_space=yes + # AIX >= 5.2 has statvfs64 that has a wider f_blocks field than statvfs. + # glibc, HP-UX, IRIX, Solaris have statvfs64 as well, but on these systems + # statvfs with large-file support is already equivalent to statvfs64. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use statvfs64" >&5 printf %s "checking whether to use statvfs64... " >&6; } if test ${fu_cv_sys_stat_statvfs64+y} then : @@ -41286,12 +32773,12 @@ else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - #include - struct statvfs64 fsd; - int check_f_blocks_larger_in_statvfs64 - [sizeof (((struct statvfs64 *) 0)->f_blocks) - > sizeof (((struct statvfs *) 0)->f_blocks) - ? 1 : -1]; + #include + struct statvfs64 fsd; + int check_f_blocks_larger_in_statvfs64 + [sizeof (((struct statvfs64 *) 0)->f_blocks) + > sizeof (((struct statvfs *) 0)->f_blocks) + ? 1 : -1]; int main (void) @@ -41313,21 +32800,21 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statvfs64" >&5 printf "%s\n" "$fu_cv_sys_stat_statvfs64" >&6; } - if test $fu_cv_sys_stat_statvfs64 = yes; then + if test $fu_cv_sys_stat_statvfs64 = yes; then printf "%s\n" "#define STAT_STATVFS64 1" >>confdefs.h - else + else printf "%s\n" "#define STAT_STATVFS 1" >>confdefs.h - fi fi fi +fi - # Check for this unconditionally so we have a - # good fallback on glibc/Linux > 2.6 < 2.6.36 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.f_frsize member" >&5 +# Check for this unconditionally so we have a +# good fallback on glibc/Linux > 2.6 < 2.6.36 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.f_frsize member" >&5 printf %s "checking for two-argument statfs with statfs.f_frsize member... " >&6; } if test ${fu_cv_sys_stat_statfs2_frsize+y} then : @@ -41352,9 +32839,9 @@ else $as_nop int main () { - struct statfs fsd; - fsd.f_frsize = 0; - return statfs (".", &fsd) != 0; + struct statfs fsd; + fsd.f_frsize = 0; + return statfs (".", &fsd) != 0; } _ACEOF if ac_fn_c_try_run "$LINENO" @@ -41367,22 +32854,22 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_frsize" >&5 printf "%s\n" "$fu_cv_sys_stat_statfs2_frsize" >&6; } - if test $fu_cv_sys_stat_statfs2_frsize = yes; then +if test $fu_cv_sys_stat_statfs2_frsize = yes; then ac_fsusage_space=yes printf "%s\n" "#define STAT_STATFS2_FRSIZE 1" >>confdefs.h - fi +fi - if test $ac_fsusage_space = no; then - # DEC Alpha running OSF/1 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 3-argument statfs function (DEC OSF/1)" >&5 +if test $ac_fsusage_space = no; then + # DEC Alpha running OSF/1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 3-argument statfs function (DEC OSF/1)" >&5 printf %s "checking for 3-argument statfs function (DEC OSF/1)... " >&6; } -if test ${fu_cv_sys_stat_statfs3_osf1+y} + if test ${fu_cv_sys_stat_statfs3_osf1+y} then : printf %s "(cached) " >&6 else $as_nop @@ -41414,28 +32901,28 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs3_osf1" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs3_osf1" >&5 printf "%s\n" "$fu_cv_sys_stat_statfs3_osf1" >&6; } - if test $fu_cv_sys_stat_statfs3_osf1 = yes; then - ac_fsusage_space=yes + if test $fu_cv_sys_stat_statfs3_osf1 = yes; then + ac_fsusage_space=yes printf "%s\n" "#define STAT_STATFS3_OSF1 1" >>confdefs.h - fi fi +fi - if test $ac_fsusage_space = no; then - # glibc/Linux, Mac OS X, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4. - # (glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, - # OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.) - # (On IRIX you need to include , not only and - # .) - # (On Solaris, statfs has 4 arguments.) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.f_bsize member (AIX, 4.3BSD)" >&5 +if test $ac_fsusage_space = no; then + # glibc/Linux, Mac OS X, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4. + # (glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, + # OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.) + # (On IRIX you need to include , not only and + # .) + # (On Solaris, statfs has 4 arguments.) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.f_bsize member (AIX, 4.3BSD)" >&5 printf %s "checking for two-argument statfs with statfs.f_bsize member (AIX, 4.3BSD)... " >&6; } -if test ${fu_cv_sys_stat_statfs2_bsize+y} + if test ${fu_cv_sys_stat_statfs2_bsize+y} then : printf %s "(cached) " >&6 else $as_nop @@ -41458,9 +32945,9 @@ else $as_nop int main () { - struct statfs fsd; - fsd.f_bsize = 0; - return statfs (".", &fsd) != 0; + struct statfs fsd; + fsd.f_bsize = 0; + return statfs (".", &fsd) != 0; } _ACEOF if ac_fn_c_try_run "$LINENO" @@ -41473,24 +32960,24 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_bsize" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_bsize" >&5 printf "%s\n" "$fu_cv_sys_stat_statfs2_bsize" >&6; } - if test $fu_cv_sys_stat_statfs2_bsize = yes; then - ac_fsusage_space=yes + if test $fu_cv_sys_stat_statfs2_bsize = yes; then + ac_fsusage_space=yes printf "%s\n" "#define STAT_STATFS2_BSIZE 1" >>confdefs.h - fi fi +fi - if test $ac_fsusage_space = no; then - # SVR3 - # (Solaris already handled above.) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for four-argument statfs (SVR3)" >&5 -printf %s "checking for four-argument statfs (SVR3)... " >&6; } -if test ${fu_cv_sys_stat_statfs4+y} +if test $ac_fsusage_space = no; then + # SVR3 + # (Solaris already handled above.) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 +printf %s "checking for four-argument statfs (AIX-3.2.5, SVR3)... " >&6; } + if test ${fu_cv_sys_stat_statfs4+y} then : printf %s "(cached) " >&6 else $as_nop @@ -41506,8 +32993,8 @@ else $as_nop int main () { - struct statfs fsd; - return statfs (".", &fsd, sizeof fsd, 0) != 0; + struct statfs fsd; + return statfs (".", &fsd, sizeof fsd, 0) != 0; } _ACEOF if ac_fn_c_try_run "$LINENO" @@ -41520,27 +33007,27 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs4" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs4" >&5 printf "%s\n" "$fu_cv_sys_stat_statfs4" >&6; } - if test $fu_cv_sys_stat_statfs4 = yes; then - ac_fsusage_space=yes + if test $fu_cv_sys_stat_statfs4 = yes; then + ac_fsusage_space=yes printf "%s\n" "#define STAT_STATFS4 1" >>confdefs.h - fi fi +fi - if test $ac_fsusage_space = no; then - # 4.4BSD and older NetBSD - # (OSF/1 already handled above.) - # (On AIX, you need to include , not only .) - # (On Solaris, statfs has 4 arguments and 'struct statfs' is not declared in - # .) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.f_fsize member (4.4BSD and NetBSD)" >&5 +if test $ac_fsusage_space = no; then + # 4.4BSD and older NetBSD + # (OSF/1 already handled above.) + # (On AIX, you need to include , not only .) + # (On Solaris, statfs has 4 arguments and 'struct statfs' is not declared in + # .) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.f_fsize member (4.4BSD and NetBSD)" >&5 printf %s "checking for two-argument statfs with statfs.f_fsize member (4.4BSD and NetBSD)... " >&6; } -if test ${fu_cv_sys_stat_statfs2_fsize+y} + if test ${fu_cv_sys_stat_statfs2_fsize+y} then : printf %s "(cached) " >&6 else $as_nop @@ -41561,9 +33048,9 @@ else $as_nop int main () { - struct statfs fsd; - fsd.f_fsize = 0; - return statfs (".", &fsd) != 0; + struct statfs fsd; + fsd.f_fsize = 0; + return statfs (".", &fsd) != 0; } _ACEOF if ac_fn_c_try_run "$LINENO" @@ -41576,19 +33063,93 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_fsize" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_fsize" >&5 printf "%s\n" "$fu_cv_sys_stat_statfs2_fsize" >&6; } - if test $fu_cv_sys_stat_statfs2_fsize = yes; then - ac_fsusage_space=yes + if test $fu_cv_sys_stat_statfs2_fsize = yes; then + ac_fsusage_space=yes printf "%s\n" "#define STAT_STATFS2_FSIZE 1" >>confdefs.h - fi fi +fi - if test $ac_fsusage_space = yes +if test $ac_fsusage_space = no; then + # Ultrix + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 +printf %s "checking for two-argument statfs with struct fs_data (Ultrix)... " >&6; } + if test ${fu_cv_sys_stat_fs_data+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + fu_cv_sys_stat_fs_data=no +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_FS_TYPES_H +#include +#endif + int + main () + { + struct fs_data fsd; + /* Ultrix's statfs returns 1 for success, + 0 for not mounted, -1 for failure. */ + return statfs (".", &fsd) != 1; + } +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + fu_cv_sys_stat_fs_data=yes +else $as_nop + fu_cv_sys_stat_fs_data=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_fs_data" >&5 +printf "%s\n" "$fu_cv_sys_stat_fs_data" >&6; } + if test $fu_cv_sys_stat_fs_data = yes; then + ac_fsusage_space=yes + +printf "%s\n" "#define STAT_STATFS2_FS_DATA 1" >>confdefs.h + + fi +fi + +if test $ac_fsusage_space = no; then + # SVR2 + # (AIX, HP-UX, OSF/1 already handled above.) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +printf "%s\n" "#define STAT_READ_FILSYS 1" >>confdefs.h + + ac_fsusage_space=yes +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi + +if test $ac_fsusage_space = yes then : gl_cv_fs_space=yes else $as_nop @@ -41597,28 +33158,35 @@ fi + if test $gl_cv_fs_space = yes; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fsusage.$ac_objext" + + + ac_fn_c_check_header_compile "$LINENO" "dustat.h" "ac_cv_header_dustat_h" "$ac_includes_default" +if test "x$ac_cv_header_dustat_h" = xyes +then : + printf "%s\n" "#define HAVE_DUSTAT_H 1" >>confdefs.h - if test $gl_cv_fs_space = yes; then - GL_COND_OBJ_FSUSAGE_TRUE= - GL_COND_OBJ_FSUSAGE_FALSE='#' -else - GL_COND_OBJ_FSUSAGE_TRUE='#' - GL_COND_OBJ_FSUSAGE_FALSE= fi -: - if test -z "${GL_COND_OBJ_FSUSAGE_TRUE}" && test -z "${GL_COND_OBJ_FSUSAGE_FALSE}"; then - GL_COND_OBJ_FSUSAGE_TRUE='#' - GL_COND_OBJ_FSUSAGE_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_FSUSAGE_TRUE"; then : - - - ac_fn_c_check_header_compile "$LINENO" "sys/fs/s5param.h" "ac_cv_header_sys_fs_s5param_h" "$ac_includes_default" +ac_fn_c_check_header_compile "$LINENO" "sys/fs/s5param.h" "ac_cv_header_sys_fs_s5param_h" "$ac_includes_default" if test "x$ac_cv_header_sys_fs_s5param_h" = xyes then : printf "%s\n" "#define HAVE_SYS_FS_S5PARAM_H 1" >>confdefs.h +fi +ac_fn_c_check_header_compile "$LINENO" "sys/filsys.h" "ac_cv_header_sys_filsys_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_filsys_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_FILSYS_H 1" >>confdefs.h + fi ac_fn_c_check_header_compile "$LINENO" "sys/statfs.h" "ac_cv_header_sys_statfs_h" "$ac_includes_default" if test "x$ac_cv_header_sys_statfs_h" = xyes @@ -41630,7 +33198,7 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for statfs that truncates block counts" >&5 printf %s "checking for statfs that truncates block counts... " >&6; } -if test ${fu_cv_sys_truncating_statfs+y} + if test ${fu_cv_sys_truncating_statfs+y} then : printf %s "(cached) " >&6 else $as_nop @@ -41642,13 +33210,11 @@ choke -- this is a workaround for a Sun-specific problem #endif #include #include - int main (void) { struct statfs t; long c = *(t.f_spare); - if (c) return 0; - + if (c) return 0; ; return 0; } @@ -41660,276 +33226,22 @@ else $as_nop fu_cv_sys_truncating_statfs=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_truncating_statfs" >&5 -printf "%s\n" "$fu_cv_sys_truncating_statfs" >&6; } + if test $fu_cv_sys_truncating_statfs = yes; then printf "%s\n" "#define STATFS_TRUNCATES_BLOCK_COUNTS 1" >>confdefs.h fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_truncating_statfs" >&5 +printf "%s\n" "$fu_cv_sys_truncating_statfs" >&6; } - -fi - - - - if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then - REPLACE_FTELL=1 fi - - if test $REPLACE_FTELL = 1; then - GL_COND_OBJ_FTELL_TRUE= - GL_COND_OBJ_FTELL_FALSE='#' -else - GL_COND_OBJ_FTELL_TRUE='#' - GL_COND_OBJ_FTELL_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FTELL_TRUE}" && test -z "${GL_COND_OBJ_FTELL_FALSE}"; then - GL_COND_OBJ_FTELL_TRUE='#' - GL_COND_OBJ_FTELL_FALSE='#' - fi - - - - - - - - - - - GL_GNULIB_FTELL=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FTELL 1" >>confdefs.h - - - - - - - - - - - - - if test $ac_cv_have_decl_ftello = no; then - HAVE_DECL_FTELLO=0 - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 -printf %s "checking for ftello... " >&6; } -if test ${gl_cv_func_ftello+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -ftello (stdin); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_func_ftello=yes -else $as_nop - gl_cv_func_ftello=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 -printf "%s\n" "$gl_cv_func_ftello" >&6; } - if test $gl_cv_func_ftello = no; then - HAVE_FTELLO=0 - else - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_FTELLO=1 - fi - if test $gl_cv_var_stdin_large_offset = no; then - REPLACE_FTELLO=1 - fi - if test $REPLACE_FTELLO = 0; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 -printf %s "checking whether ftello works... " >&6; } -if test ${gl_cv_func_ftello_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - case "$host_os" in - # Guess no on Solaris. - solaris*) gl_cv_func_ftello_works="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_ftello_works="guessing yes" ;; - # Guess yes otherwise. - *) gl_cv_func_ftello_works="guessing yes" ;; - esac - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#define TESTFILE "conftest.tmp" -int -main (void) -{ - FILE *fp; - - /* Create a file with some contents. */ - fp = fopen (TESTFILE, "w"); - if (fp == NULL) - return 70; - if (fwrite ("foogarsh", 1, 8, fp) < 8) - { fclose (fp); return 71; } - if (fclose (fp)) - return 72; - - /* The file's contents is now "foogarsh". */ - - /* Try writing after reading to EOF. */ - fp = fopen (TESTFILE, "r+"); - if (fp == NULL) - return 73; - if (fseek (fp, -1, SEEK_END)) - { fclose (fp); return 74; } - if (!(getc (fp) == 'h')) - { fclose (fp); return 1; } - if (!(getc (fp) == EOF)) - { fclose (fp); return 2; } - if (!(ftell (fp) == 8)) - { fclose (fp); return 3; } - if (!(ftell (fp) == 8)) - { fclose (fp); return 4; } - if (!(putc ('!', fp) == '!')) - { fclose (fp); return 5; } - if (!(ftell (fp) == 9)) - { fclose (fp); return 6; } - if (!(fclose (fp) == 0)) - return 7; - fp = fopen (TESTFILE, "r"); - if (fp == NULL) - return 75; - { - char buf[10]; - if (!(fread (buf, 1, 10, fp) == 9)) - { fclose (fp); return 10; } - if (!(memcmp (buf, "foogarsh!", 9) == 0)) - { fclose (fp); return 11; } - } - if (!(fclose (fp) == 0)) - return 12; - - /* The file's contents is now "foogarsh!". */ - - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_ftello_works=yes -else $as_nop - gl_cv_func_ftello_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 -printf "%s\n" "$gl_cv_func_ftello_works" >&6; } - case "$gl_cv_func_ftello_works" in - *yes) ;; - *) - REPLACE_FTELLO=1 - -printf "%s\n" "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h - - ;; - esac - fi - if test $REPLACE_FTELLO = 0; then - - if test $gl_ftello_broken_after_ungetc = yes; then - REPLACE_FTELLO=1 - -printf "%s\n" "#define FTELLO_BROKEN_AFTER_UNGETC 1" >>confdefs.h - - fi - fi - fi - - - if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then - GL_COND_OBJ_FTELLO_TRUE= - GL_COND_OBJ_FTELLO_FALSE='#' -else - GL_COND_OBJ_FTELLO_TRUE='#' - GL_COND_OBJ_FTELLO_FALSE= -fi -: - if test -z "${GL_COND_OBJ_FTELLO_TRUE}" && test -z "${GL_COND_OBJ_FTELLO_FALSE}"; then - GL_COND_OBJ_FTELLO_TRUE='#' - GL_COND_OBJ_FTELLO_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_FTELLO_TRUE"; then : - - - ac_fn_c_check_func "$LINENO" "_ftelli64" "ac_cv_func__ftelli64" -if test "x$ac_cv_func__ftelli64" = xyes -then : - printf "%s\n" "#define HAVE__FTELLI64 1" >>confdefs.h - -fi - - - -fi - - - - - - - - - - GL_GNULIB_FTELLO=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FTELLO 1" >>confdefs.h - - - - - GETADDRINFO_LIB= + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&5 +printf "%s\n" "$as_me: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&6;} + GETADDRINFO_LIB= gai_saved_LIBS="$LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing getaddrinfo" >&5 @@ -42075,55 +33387,11 @@ printf "%s\n" "$gl_cv_w32_getaddrinfo" >&6; } if test "$gl_cv_w32_getaddrinfo" = "yes"; then GETADDRINFO_LIB="-lws2_32" LIBS="$gai_saved_LIBS $GETADDRINFO_LIB" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo with POSIX signature" >&5 -printf %s "checking for getaddrinfo with POSIX signature... " >&6; } -if test ${gl_cv_func_getaddrinfo_posix_signature+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#include -extern -#ifdef __cplusplus -"C" -#endif -int getaddrinfo (const char *, const char *, const struct addrinfo *, struct addrinfo **); - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_func_getaddrinfo_posix_signature=yes -else $as_nop - gl_cv_func_getaddrinfo_posix_signature=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getaddrinfo_posix_signature" >&5 -printf "%s\n" "$gl_cv_func_getaddrinfo_posix_signature" >&6; } - if test $gl_cv_func_getaddrinfo_posix_signature = no; then - REPLACE_GETADDRINFO=1 - fi else HAVE_GETADDRINFO=0 fi fi -printf "%s\n" "#define HAVE_GETADDRINFO $HAVE_GETADDRINFO" >>confdefs.h - - # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an # inline function declared in ws2tcpip.h, so we need to get that # header included somehow. @@ -42238,6 +33506,12 @@ fi + : + + + + + ac_fn_check_decl "$LINENO" "getaddrinfo" "ac_cv_have_decl_getaddrinfo" " /* sys/types.h is not needed according to POSIX, but the @@ -42365,44 +33639,36 @@ fi + if test $HAVE_GETADDRINFO = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getaddrinfo.$ac_objext" - if test $HAVE_GETADDRINFO = 0 || test $REPLACE_GETADDRINFO = 1; then - GL_COND_OBJ_GETADDRINFO_TRUE= - GL_COND_OBJ_GETADDRINFO_FALSE='#' -else - GL_COND_OBJ_GETADDRINFO_TRUE='#' - GL_COND_OBJ_GETADDRINFO_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GETADDRINFO_TRUE}" && test -z "${GL_COND_OBJ_GETADDRINFO_FALSE}"; then - GL_COND_OBJ_GETADDRINFO_TRUE='#' - GL_COND_OBJ_GETADDRINFO_FALSE='#' fi + if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then - if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then - GL_COND_OBJ_GAI_STRERROR_TRUE= - GL_COND_OBJ_GAI_STRERROR_FALSE='#' -else - GL_COND_OBJ_GAI_STRERROR_TRUE='#' - GL_COND_OBJ_GAI_STRERROR_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GAI_STRERROR_TRUE}" && test -z "${GL_COND_OBJ_GAI_STRERROR_FALSE}"; then - GL_COND_OBJ_GAI_STRERROR_TRUE='#' - GL_COND_OBJ_GAI_STRERROR_FALSE='#' + + + + + + + gl_LIBOBJS="$gl_LIBOBJS gai_strerror.$ac_objext" + fi - - - - - - GL_GNULIB_GETADDRINFO=1 + GNULIB_GETADDRINFO=1 @@ -42418,284 +33684,7 @@ printf "%s\n" "#define GNULIB_TEST_GETADDRINFO 1" >>confdefs.h - - - - if test $ac_cv_func_getdelim = yes; then - HAVE_GETDELIM=1 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5 -printf %s "checking for working getdelim function... " >&6; } -if test ${gl_cv_func_working_getdelim+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - darwin*) - gl_cv_func_working_getdelim=no ;; - *) - echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data - if test "$cross_compiling" = yes -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ >= 2) && !defined __UCLIBC__ - Lucky GNU user - #endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky GNU user" >/dev/null 2>&1 -then : - gl_cv_func_working_getdelim="guessing yes" -else $as_nop - case "$host_os" in - *-musl*) gl_cv_func_working_getdelim="guessing yes" ;; - *) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;; - esac - -fi -rm -rf conftest* - - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# include -# include -# include - int main () - { - FILE *in = fopen ("./conftest.data", "r"); - if (!in) - return 1; - { - /* Test result for a NULL buffer and a zero size. - Based on a test program from Karl Heuer. */ - char *line = NULL; - size_t siz = 0; - int len = getdelim (&line, &siz, '\n', in); - if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) - { free (line); fclose (in); return 2; } - free (line); - } - { - /* Test result for a NULL buffer and a non-zero size. - This crashes on FreeBSD 8.0. */ - char *line = NULL; - size_t siz = (size_t)(~0) / 4; - if (getdelim (&line, &siz, '\n', in) == -1) - { fclose (in); return 3; } - free (line); - } - fclose (in); - return 0; - } - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_working_getdelim=yes -else $as_nop - gl_cv_func_working_getdelim=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5 -printf "%s\n" "$gl_cv_func_working_getdelim" >&6; } - case "$gl_cv_func_working_getdelim" in - *yes) ;; - *) REPLACE_GETDELIM=1 ;; - esac - else - HAVE_GETDELIM=0 - fi - - if test $ac_cv_have_decl_getdelim = no; then - HAVE_DECL_GETDELIM=0 - fi - - - if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then - GL_COND_OBJ_GETDELIM_TRUE= - GL_COND_OBJ_GETDELIM_FALSE='#' -else - GL_COND_OBJ_GETDELIM_TRUE='#' - GL_COND_OBJ_GETDELIM_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GETDELIM_TRUE}" && test -z "${GL_COND_OBJ_GETDELIM_FALSE}"; then - GL_COND_OBJ_GETDELIM_TRUE='#' - GL_COND_OBJ_GETDELIM_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_GETDELIM_TRUE"; then : - - - ac_fn_c_check_func "$LINENO" "flockfile" "ac_cv_func_flockfile" -if test "x$ac_cv_func_flockfile" = xyes -then : - printf "%s\n" "#define HAVE_FLOCKFILE 1" >>confdefs.h - -fi -ac_fn_c_check_func "$LINENO" "funlockfile" "ac_cv_func_funlockfile" -if test "x$ac_cv_func_funlockfile" = xyes -then : - printf "%s\n" "#define HAVE_FUNLOCKFILE 1" >>confdefs.h - -fi - - ac_fn_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_getc_unlocked" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h - - - -fi - - - - - - - - - - GL_GNULIB_GETDELIM=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h - - - - - - - - - if test $ac_cv_func_getdtablesize = yes && - test $ac_cv_have_decl_getdtablesize = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5 -printf %s "checking whether getdtablesize works... " >&6; } -if test ${gl_cv_func_getdtablesize_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; - *) - if test "$cross_compiling" = yes -then : - case "$host_os" in - cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows - gl_cv_func_getdtablesize_works="guessing no" ;; - *) gl_cv_func_getdtablesize_works="guessing yes" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - - -$gl_mda_defines - - -int -main (void) -{ -int size = getdtablesize(); - if (dup2 (0, getdtablesize()) != -1) - return 1; - if (size != getdtablesize()) - return 2; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_getdtablesize_works=yes -else $as_nop - gl_cv_func_getdtablesize_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5 -printf "%s\n" "$gl_cv_func_getdtablesize_works" >&6; } - case "$gl_cv_func_getdtablesize_works" in - *yes | "no (limitation)") ;; - *) REPLACE_GETDTABLESIZE=1 ;; - esac - else - HAVE_GETDTABLESIZE=0 - fi - - - if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then - GL_COND_OBJ_GETDTABLESIZE_TRUE= - GL_COND_OBJ_GETDTABLESIZE_FALSE='#' -else - GL_COND_OBJ_GETDTABLESIZE_TRUE='#' - GL_COND_OBJ_GETDTABLESIZE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GETDTABLESIZE_TRUE}" && test -z "${GL_COND_OBJ_GETDTABLESIZE_FALSE}"; then - GL_COND_OBJ_GETDTABLESIZE_TRUE='#' - GL_COND_OBJ_GETDTABLESIZE_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_GETDTABLESIZE_TRUE"; then : - - : - -fi - - - - - - - - - - GL_GNULIB_GETDTABLESIZE=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h - - - - + : @@ -42782,6 +33771,24 @@ done + : + + + + + + + : + + + + + + + : + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HOST_NAME_MAX" >&5 @@ -42844,21 +33851,16 @@ printf "%s\n" "#define HOST_NAME_MAX $gl_cv_decl_HOST_NAME_MAX" >>confdefs.h fi + if test $HAVE_GETHOSTNAME = 0; then - if test $HAVE_GETHOSTNAME = 0; then - GL_COND_OBJ_GETHOSTNAME_TRUE= - GL_COND_OBJ_GETHOSTNAME_FALSE='#' -else - GL_COND_OBJ_GETHOSTNAME_TRUE='#' - GL_COND_OBJ_GETHOSTNAME_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GETHOSTNAME_TRUE}" && test -z "${GL_COND_OBJ_GETHOSTNAME_FALSE}"; then - GL_COND_OBJ_GETHOSTNAME_TRUE='#' - GL_COND_OBJ_GETHOSTNAME_FALSE='#' - fi - if test -z "$GL_COND_OBJ_GETHOSTNAME_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS gethostname.$ac_objext" if test "$gl_cv_w32_gethostname" != "yes"; then @@ -42871,18 +33873,13 @@ fi fi - -fi + fi - - - - - GL_GNULIB_GETHOSTNAME=1 + GNULIB_GETHOSTNAME=1 @@ -42894,167 +33891,12 @@ printf "%s\n" "#define GNULIB_TEST_GETHOSTNAME 1" >>confdefs.h - - - - - - gl_getline_needs_run_time_check=no - ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline" -if test "x$ac_cv_func_getline" = xyes -then : - gl_getline_needs_run_time_check=yes -else $as_nop - am_cv_func_working_getline=no -fi - - if test $gl_getline_needs_run_time_check = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5 -printf %s "checking for working getline function... " >&6; } -if test ${am_cv_func_working_getline+y} -then : - printf %s "(cached) " >&6 -else $as_nop - echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data - if test "$cross_compiling" = yes -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ >= 2) && !defined __UCLIBC__ - Lucky GNU user - #endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky GNU user" >/dev/null 2>&1 -then : - am_cv_func_working_getline="guessing yes" -else $as_nop - case "$host_os" in - *-musl*) am_cv_func_working_getline="guessing yes" ;; - *) am_cv_func_working_getline="$gl_cross_guess_normal" ;; - esac - -fi -rm -rf conftest* - - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# include -# include -# include - int main () - { - FILE *in = fopen ("./conftest.data", "r"); - if (!in) - return 1; - { - /* Test result for a NULL buffer and a zero size. - Based on a test program from Karl Heuer. */ - char *line = NULL; - size_t siz = 0; - int len = getline (&line, &siz, in); - if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) - { free (line); fclose (in); return 2; } - free (line); - } - { - /* Test result for a NULL buffer and a non-zero size. - This crashes on FreeBSD 8.0. */ - char *line = NULL; - size_t siz = (size_t)(~0) / 4; - if (getline (&line, &siz, in) == -1) - { fclose (in); return 3; } - free (line); - } - fclose (in); - return 0; - } - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - am_cv_func_working_getline=yes -else $as_nop - am_cv_func_working_getline=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5 -printf "%s\n" "$am_cv_func_working_getline" >&6; } - fi - - if test $ac_cv_have_decl_getline = no; then - HAVE_DECL_GETLINE=0 - fi - - case "$am_cv_func_working_getline" in - *yes) ;; - *) - REPLACE_GETLINE=1 - ;; - esac - - - if test $REPLACE_GETLINE = 1; then - GL_COND_OBJ_GETLINE_TRUE= - GL_COND_OBJ_GETLINE_FALSE='#' -else - GL_COND_OBJ_GETLINE_TRUE='#' - GL_COND_OBJ_GETLINE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GETLINE_TRUE}" && test -z "${GL_COND_OBJ_GETLINE_FALSE}"; then - GL_COND_OBJ_GETLINE_TRUE='#' - GL_COND_OBJ_GETLINE_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_GETLINE_TRUE"; then : - - - : - - -fi - - - - - - - - - - GL_GNULIB_GETLINE=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_GETLINE 1" >>confdefs.h - - - - - - # Persuade glibc to declare getloadavg(). gl_save_LIBS=$LIBS -# getloadavg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0, +# getloadvg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0, # NetBSD >= 0.9, OpenBSD >= 2.0, Solaris >= 7. HAVE_GETLOADAVG=1 ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg" @@ -43197,9 +34039,7 @@ fi # There is a commonly available library for RS/6000 AIX. # Since it is not a standard part of AIX, it might be installed locally. gl_getloadavg_LIBS=$LIBS - if test $cross_compiling != yes; then - LIBS="-L/usr/local/lib $LIBS" - fi + LIBS="-L/usr/local/lib $LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lgetloadavg" >&5 printf %s "checking for getloadavg in -lgetloadavg... " >&6; } if test ${ac_cv_lib_getloadavg_getloadavg+y} @@ -43423,9 +34263,6 @@ else HAVE_SYS_LOADAVG_H=0 fi ac_fn_check_decl "$LINENO" "getloadavg" "ac_cv_have_decl_getloadavg" "#if HAVE_SYS_LOADAVG_H - /* OpenIndiana has a bug: must be included before - . */ - # include # include #endif #include @@ -43437,26 +34274,27 @@ else $as_nop HAVE_DECL_GETLOADAVG=0 fi + if test $HAVE_GETLOADAVG = 0; then - if test $HAVE_GETLOADAVG = 0; then - GL_COND_OBJ_GETLOADAVG_TRUE= - GL_COND_OBJ_GETLOADAVG_FALSE='#' -else - GL_COND_OBJ_GETLOADAVG_TRUE='#' - GL_COND_OBJ_GETLOADAVG_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GETLOADAVG_TRUE}" && test -z "${GL_COND_OBJ_GETLOADAVG_FALSE}"; then - GL_COND_OBJ_GETLOADAVG_TRUE='#' - GL_COND_OBJ_GETLOADAVG_FALSE='#' - fi - if test -z "$GL_COND_OBJ_GETLOADAVG_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getloadavg.$ac_objext" # Figure out what our getloadavg.c needs. + : + + + + + # On HPUX9, an unprivileged user can get load averages this way. if test $gl_func_getloadavg_done = no; then @@ -43563,18 +34401,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ fi done - -fi + fi - - - - - GL_GNULIB_GETLOADAVG=1 + GNULIB_GETLOADAVG=1 @@ -43589,6 +34422,45 @@ printf "%s\n" "#define GNULIB_TEST_GETLOADAVG 1" >>confdefs.h + if test $REPLACE_GETOPT = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" + + + + : + + + + + + + GNULIB_GL_UNISTD_H_GETOPT=1 + fi + + + +printf "%s\n" "#define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h + + + @@ -43598,234 +34470,53 @@ printf "%s\n" "#define GNULIB_TEST_GETLOADAVG 1" >>confdefs.h REPLACE_GETOPT=1 fi - GL_GENERATE_GETOPT_H=false - GL_GENERATE_GETOPT_CDEFS_H=false if test $REPLACE_GETOPT = 1; then - - if test $ac_cv_header_sys_cdefs_h = yes; then - HAVE_SYS_CDEFS_H=1 - else - HAVE_SYS_CDEFS_H=0 - fi - - + GETOPT_H=getopt.h printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h - GL_GENERATE_GETOPT_H=true - GL_GENERATE_GETOPT_CDEFS_H=true + + fi + + if test $REPLACE_GETOPT = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" + + + + : + + + + + + + GNULIB_GL_UNISTD_H_GETOPT=1 fi - case "$GL_GENERATE_GETOPT_H" in - false) GETOPT_H='' ;; - true) - if test -z "$GETOPT_H"; then - GETOPT_H="${gl_source_base_prefix}getopt.h" - fi - ;; - *) echo "*** GL_GENERATE_GETOPT_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_GETOPT_H; then - GL_GENERATE_GETOPT_H_TRUE= - GL_GENERATE_GETOPT_H_FALSE='#' -else - GL_GENERATE_GETOPT_H_TRUE='#' - GL_GENERATE_GETOPT_H_FALSE= -fi -: - if test -z "${GL_GENERATE_GETOPT_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_H_FALSE}"; then - GL_GENERATE_GETOPT_H_TRUE='#' - GL_GENERATE_GETOPT_H_FALSE='#' - fi - - - - - - - - - - case "$GL_GENERATE_GETOPT_CDEFS_H" in - false) GETOPT_CDEFS_H='' ;; - true) - if test -z "$GETOPT_CDEFS_H"; then - GETOPT_CDEFS_H="${gl_source_base_prefix}getopt-cdefs.h" - fi - ;; - *) echo "*** GL_GENERATE_GETOPT_CDEFS_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_GETOPT_CDEFS_H; then - GL_GENERATE_GETOPT_CDEFS_H_TRUE= - GL_GENERATE_GETOPT_CDEFS_H_FALSE='#' -else - GL_GENERATE_GETOPT_CDEFS_H_TRUE='#' - GL_GENERATE_GETOPT_CDEFS_H_FALSE= -fi -: - if test -z "${GL_GENERATE_GETOPT_CDEFS_H_TRUE}" && test -z "${GL_GENERATE_GETOPT_CDEFS_H_FALSE}"; then - GL_GENERATE_GETOPT_CDEFS_H_TRUE='#' - GL_GENERATE_GETOPT_CDEFS_H_FALSE='#' - fi - - - - - - - - if test $REPLACE_GETOPT = 1; then - GL_COND_OBJ_GETOPT_TRUE= - GL_COND_OBJ_GETOPT_FALSE='#' -else - GL_COND_OBJ_GETOPT_TRUE='#' - GL_COND_OBJ_GETOPT_FALSE= -fi -: - if test -z "${GL_COND_OBJ_GETOPT_TRUE}" && test -z "${GL_COND_OBJ_GETOPT_FALSE}"; then - GL_COND_OBJ_GETOPT_TRUE='#' - GL_COND_OBJ_GETOPT_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_GETOPT_TRUE"; then : - - - - - - - - GL_GNULIB_UNISTD_H_GETOPT=1 - - - -fi - - - - - - - - - - GL_GNULIB_GETOPT_POSIX=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_GETOPT_POSIX 1" >>confdefs.h - - - - - - - ac_found=0 - ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_program_invocation_name" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl" >>confdefs.h -if test $ac_have_decl = 1 -then : - ac_found=1 -fi - - ac_fn_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl" >>confdefs.h -if test $ac_have_decl = 1 -then : - ac_found=1 -fi - - ac_fn_check_decl "$LINENO" "__argv" "ac_cv_have_decl___argv" "#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl___argv" = xyes -then : - ac_have_decl=1 -else $as_nop - ac_have_decl=0 -fi -printf "%s\n" "#define HAVE_DECL___ARGV $ac_have_decl" >>confdefs.h -if test $ac_have_decl = 1 -then : - ac_found=1 -fi - - - # Incur the cost of this test only if none of the above worked. - if test $ac_found = 0; then - # On OpenBSD 5.1, using the global __progname variable appears to be - # the only way to implement getprogname. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether __progname is defined in default libraries" >&5 -printf %s "checking whether __progname is defined in default libraries... " >&6; } -if test ${gl_cv_var___progname+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - gl_cv_var___progname= - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern char *__progname; -int -main (void) -{ -return *__progname; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_var___progname=yes - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5 -printf "%s\n" "$gl_cv_var___progname" >&6; } - if test "$gl_cv_var___progname" = yes; then - -printf "%s\n" "#define HAVE_VAR___PROGNAME 1" >>confdefs.h - - fi - fi - - - - - - LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL" - - HOSTENT_LIB= gl_saved_libs="$LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 @@ -43951,6 +34642,7 @@ done + : @@ -43960,12 +34652,59 @@ done - HAVE_INET_NTOP=1 + + + + + + + + + + + + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HAVE_INET_NTOP=1 INET_NTOP_LIB= + : + + + + + if test $ac_cv_header_sys_socket_h != yes; then ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes @@ -43985,7 +34724,6 @@ fi if test $HAVE_WINSOCK2_H = 1; then - REPLACE_INET_NTOP=1 ac_fn_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_inet_ntop" = xyes @@ -43997,9 +34735,11 @@ fi printf "%s\n" "#define HAVE_DECL_INET_NTOP $ac_have_decl" >>confdefs.h if test $ac_cv_have_decl_inet_ntop = yes; then + REPLACE_INET_NTOP=1 INET_NTOP_LIB="-lws2_32" else HAVE_DECL_INET_NTOP=0 + HAVE_INET_NTOP=0 fi else gl_save_LIBS=$LIBS @@ -44025,7 +34765,7 @@ return inet_ntop (); return 0; } _ACEOF -for ac_lib in '' nsl resolv network +for ac_lib in '' nsl resolv do if test -z "$ac_lib"; then ac_res="none required" @@ -44082,6 +34822,12 @@ fi fi + : + + + + + ac_fn_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include #if HAVE_NETDB_H # include @@ -44102,118 +34848,461 @@ printf "%s\n" "#define HAVE_DECL_INET_NTOP $ac_have_decl" >>confdefs.h fi + if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS inet_ntop.$ac_objext" + + + - if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then - GL_COND_OBJ_INET_NTOP_TRUE= - GL_COND_OBJ_INET_NTOP_FALSE='#' -else - GL_COND_OBJ_INET_NTOP_TRUE='#' - GL_COND_OBJ_INET_NTOP_FALSE= -fi -: - if test -z "${GL_COND_OBJ_INET_NTOP_TRUE}" && test -z "${GL_COND_OBJ_INET_NTOP_FALSE}"; then - GL_COND_OBJ_INET_NTOP_TRUE='#' - GL_COND_OBJ_INET_NTOP_FALSE='#' fi - if test -z "$GL_COND_OBJ_INET_NTOP_TRUE"; then : + GNULIB_INET_NTOP=1 + + + + + + + + + + + + + + + + : + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_langinfo_h='<'langinfo.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_langinfo_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_langinfo_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'langinfo.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_langinfo_h='<'langinfo.h'>' + fi + fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 +printf "%s\n" "$gl_cv_next_langinfo_h" >&6; } + fi + NEXT_LANGINFO_H=$gl_cv_next_langinfo_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'langinfo.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_langinfo_h + fi + NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive + HAVE_LANGINFO_CODESET=0 + HAVE_LANGINFO_T_FMT_AMPM=0 + HAVE_LANGINFO_ERA=0 + HAVE_LANGINFO_YESEXPR=0 - - - - GL_GNULIB_INET_NTOP=1 + : - - - - - - - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5 -printf %s "checking whether the compiler supports the __inline keyword... " >&6; } -if test ${gl_cv_c___inline+y} + if test $ac_cv_header_langinfo_h = yes; then + HAVE_LANGINFO_H=1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 +printf %s "checking whether langinfo.h defines CODESET... " >&6; } +if test ${gl_cv_header_langinfo_codeset+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -typedef int foo_t; - static __inline foo_t foo (void) { return 0; } +#include +int a = CODESET; + int main (void) { -return foo (); + ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : - gl_cv_c___inline=yes + gl_cv_header_langinfo_codeset=yes else $as_nop - gl_cv_c___inline=no + gl_cv_header_langinfo_codeset=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 +printf "%s\n" "$gl_cv_header_langinfo_codeset" >&6; } + if test $gl_cv_header_langinfo_codeset = yes; then + HAVE_LANGINFO_CODESET=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 +printf %s "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } +if test ${gl_cv_header_langinfo_t_fmt_ampm+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = T_FMT_AMPM; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_t_fmt_ampm=yes +else $as_nop + gl_cv_header_langinfo_t_fmt_ampm=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 +printf "%s\n" "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } + if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then + HAVE_LANGINFO_T_FMT_AMPM=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 +printf %s "checking whether langinfo.h defines ERA... " >&6; } +if test ${gl_cv_header_langinfo_era+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = ERA; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_era=yes +else $as_nop + gl_cv_header_langinfo_era=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 +printf "%s\n" "$gl_cv_header_langinfo_era" >&6; } + if test $gl_cv_header_langinfo_era = yes; then + HAVE_LANGINFO_ERA=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 +printf %s "checking whether langinfo.h defines YESEXPR... " >&6; } +if test ${gl_cv_header_langinfo_yesexpr+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int a = YESEXPR; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_langinfo_yesexpr=yes +else $as_nop + gl_cv_header_langinfo_yesexpr=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 +printf "%s\n" "$gl_cv_header_langinfo_yesexpr" >&6; } + if test $gl_cv_header_langinfo_yesexpr = yes; then + HAVE_LANGINFO_YESEXPR=1 + fi + else + HAVE_LANGINFO_H=0 + fi + + + + + + + + for gl_func in nl_langinfo; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c___inline" >&5 -printf "%s\n" "$gl_cv_c___inline" >&6; } - if test $gl_cv_c___inline = yes; then +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF -printf "%s\n" "#define HAVE___INLINE 1" >>confdefs.h - - fi + eval ac_cv_have_decl_$gl_func=yes +fi + done - case "$GL_GENERATE_LIMITS_H" in - false) LIMITS_H='' ;; - true) - if test -z "$LIMITS_H"; then - LIMITS_H="${gl_source_base_prefix}limits.h" - fi + + : + + + + + + + + + + LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" + + + + + + + + + + case "$host_os" in + solaris*) + +printf "%s\n" "#define _LCONV_C99 1" >>confdefs.h + ;; - *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 +printf %s "checking whether locale.h conforms to POSIX:2001... " >&6; } +if test ${gl_cv_header_locale_h_posix2001+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int x = LC_MESSAGES; + int y = sizeof (((struct lconv *) 0)->decimal_point); +int +main (void) +{ - if $GL_GENERATE_LIMITS_H; then - GL_GENERATE_LIMITS_H_TRUE= - GL_GENERATE_LIMITS_H_FALSE='#' -else - GL_GENERATE_LIMITS_H_TRUE='#' - GL_GENERATE_LIMITS_H_FALSE= + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_locale_h_posix2001=yes +else $as_nop + gl_cv_header_locale_h_posix2001=no fi -: - if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then - GL_GENERATE_LIMITS_H_TRUE='#' - GL_GENERATE_LIMITS_H_FALSE='#' +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 +printf "%s\n" "$gl_cv_header_locale_h_posix2001" >&6; } + + + : + + + + + + if test $ac_cv_header_xlocale_h = yes; then + HAVE_XLOCALE_H=1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 +printf %s "checking whether locale.h defines locale_t... " >&6; } +if test ${gl_cv_header_locale_has_locale_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + locale_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_locale_has_locale_t=yes +else $as_nop + gl_cv_header_locale_has_locale_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 +printf "%s\n" "$gl_cv_header_locale_has_locale_t" >&6; } + if test $gl_cv_header_locale_has_locale_t = yes; then + gl_cv_header_locale_h_needs_xlocale_h=no + else + gl_cv_header_locale_h_needs_xlocale_h=yes + fi + else + HAVE_XLOCALE_H=0 + gl_cv_header_locale_h_needs_xlocale_h=no + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 +printf %s "checking whether struct lconv is properly defined... " >&6; } +if test ${gl_cv_sys_struct_lconv_ok+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + struct lconv l; + int x = sizeof (l.decimal_point); + int y = sizeof (l.int_p_cs_precedes); +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_sys_struct_lconv_ok=yes +else $as_nop + gl_cv_sys_struct_lconv_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 +printf "%s\n" "$gl_cv_sys_struct_lconv_ok" >&6; } + if test $gl_cv_sys_struct_lconv_ok = no; then + REPLACE_STRUCT_LCONV=1 fi @@ -44224,13 +35313,113 @@ fi - LOCALCHARSET_TESTS_ENVIRONMENT= + if test $gl_cv_have_include_next = yes; then + gl_cv_next_locale_h='<'locale.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_locale_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'locale.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_locale_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 +printf "%s\n" "$gl_cv_next_locale_h" >&6; } + fi + NEXT_LOCALE_H=$gl_cv_next_locale_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'locale.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_locale_h + fi + NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive + for gl_func in setlocale duplocale; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +/* Some systems provide declarations in a non-standard header. */ +#if HAVE_XLOCALE_H +# include +#endif + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -44241,21 +35430,16 @@ fi REPLACE_LOCALECONV=1 fi + if test $REPLACE_LOCALECONV = 1; then - if test $REPLACE_LOCALECONV = 1; then - GL_COND_OBJ_LOCALECONV_TRUE= - GL_COND_OBJ_LOCALECONV_FALSE='#' -else - GL_COND_OBJ_LOCALECONV_TRUE='#' - GL_COND_OBJ_LOCALECONV_FALSE= -fi -: - if test -z "${GL_COND_OBJ_LOCALECONV_TRUE}" && test -z "${GL_COND_OBJ_LOCALECONV_FALSE}"; then - GL_COND_OBJ_LOCALECONV_TRUE='#' - GL_COND_OBJ_LOCALECONV_FALSE='#' - fi - if test -z "$GL_COND_OBJ_LOCALECONV_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS localeconv.$ac_objext" ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include @@ -44269,18 +35453,13 @@ printf "%s\n" "#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1" >>confdefs.h fi - -fi + fi - - - - - GL_GNULIB_LOCALECONV=1 + GNULIB_LOCALECONV=1 @@ -44295,189 +35474,15 @@ printf "%s\n" "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. - has_rwlock=false ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include " if test "x$ac_cv_type_pthread_rwlock_t" = xyes then : - has_rwlock=true printf "%s\n" "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h fi - if $has_rwlock; then - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_rwlock_rdlock prefers a writer to a reader" >&5 -printf %s "checking whether pthread_rwlock_rdlock prefers a writer to a reader... " >&6; } -if test ${gl_cv_pthread_rwlock_rdlock_prefer_writer+y} -then : - printf %s "(cached) " >&6 -else $as_nop - save_LIBS="$LIBS" - LIBS="$LIBS $LIBMULTITHREAD" - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess no on glibc systems. - *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; - # Guess no on musl systems. - *-musl*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; - # Guess no on bionic systems. - *-android*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; - # Guess yes on native Windows with the mingw-w64 winpthreads library. - # Guess no on native Windows with the gnulib windows-rwlock module. - mingw*) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" - else - gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" - fi - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#include - -#define SUCCEED() exit (0) -#define FAILURE() exit (1) -#define UNEXPECTED(n) (exit (10 + (n))) - -/* The main thread creates the waiting writer and the requesting reader threads - in the default way; this guarantees that they have the same priority. - We can reuse the main thread as first reader thread. */ - -static pthread_rwlock_t lock; -static pthread_t reader1; -static pthread_t writer; -static pthread_t reader2; -static pthread_t timer; -/* Used to pass control from writer to reader2 and from reader2 to timer, - as in a relay race. - Passing control from one running thread to another running thread - is most likely faster than to create the second thread. */ -static pthread_mutex_t baton; - -static void * -timer_func (void *ignored) -{ - /* Step 13 (can be before or after step 12): - The timer thread takes the baton, then waits a moment to make sure - it can tell whether the second reader thread is blocked at step 12. */ - if (pthread_mutex_lock (&baton)) - UNEXPECTED (13); - usleep (100000); - /* By the time we get here, it's clear that the second reader thread is - blocked at step 12. This is the desired behaviour. */ - SUCCEED (); -} - -static void * -reader2_func (void *ignored) -{ - int err; - - /* Step 8 (can be before or after step 7): - The second reader thread takes the baton, then waits a moment to make sure - the writer thread has reached step 7. */ - if (pthread_mutex_lock (&baton)) - UNEXPECTED (8); - usleep (100000); - /* Step 9: The second reader thread requests the lock. */ - err = pthread_rwlock_tryrdlock (&lock); - if (err == 0) - FAILURE (); - else if (err != EBUSY) - UNEXPECTED (9); - /* Step 10: Launch a timer, to test whether the next call blocks. */ - if (pthread_create (&timer, NULL, timer_func, NULL)) - UNEXPECTED (10); - /* Step 11: Release the baton. */ - if (pthread_mutex_unlock (&baton)) - UNEXPECTED (11); - /* Step 12: The second reader thread requests the lock. */ - err = pthread_rwlock_rdlock (&lock); - if (err == 0) - FAILURE (); - else - UNEXPECTED (12); -} - -static void * -writer_func (void *ignored) -{ - /* Step 4: Take the baton, so that the second reader thread does not go ahead - too early. */ - if (pthread_mutex_lock (&baton)) - UNEXPECTED (4); - /* Step 5: Create the second reader thread. */ - if (pthread_create (&reader2, NULL, reader2_func, NULL)) - UNEXPECTED (5); - /* Step 6: Release the baton. */ - if (pthread_mutex_unlock (&baton)) - UNEXPECTED (6); - /* Step 7: The writer thread requests the lock. */ - if (pthread_rwlock_wrlock (&lock)) - UNEXPECTED (7); - return NULL; -} - -int -main () -{ - reader1 = pthread_self (); - - /* Step 1: The main thread initializes the lock and the baton. */ - if (pthread_rwlock_init (&lock, NULL)) - UNEXPECTED (1); - if (pthread_mutex_init (&baton, NULL)) - UNEXPECTED (1); - /* Step 2: The main thread acquires the lock as a reader. */ - if (pthread_rwlock_rdlock (&lock)) - UNEXPECTED (2); - /* Step 3: Create the writer thread. */ - if (pthread_create (&writer, NULL, writer_func, NULL)) - UNEXPECTED (3); - /* Job done. Go to sleep. */ - for (;;) - { - sleep (1); - } -} - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_pthread_rwlock_rdlock_prefer_writer=yes -else $as_nop - gl_cv_pthread_rwlock_rdlock_prefer_writer=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - LIBS="$save_LIBS" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5 -printf "%s\n" "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; } - case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in - *yes) - -printf "%s\n" "#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1" >>confdefs.h - - ;; - esac - - fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -44518,160 +35523,22 @@ printf "%s\n" "#define GNULIB_LOCK 1" >>confdefs.h - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5 -printf %s "checking whether lseek detects pipes... " >&6; } -if test ${gl_cv_func_lseek_pipe+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - mingw*) - gl_cv_func_lseek_pipe=no - ;; - *) - if test $cross_compiling = no; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include /* for off_t */ -#include /* for SEEK_CUR */ -#if HAVE_UNISTD_H -# include -#else /* on Windows with MSVC */ -# include -#endif - - -$gl_mda_defines - -int -main (void) -{ - - /* Exit with success only if stdin is seekable. */ - return lseek (0, (off_t)0, SEEK_CUR) < 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - if test -s conftest$ac_exeext \ - && ./conftest$ac_exeext < conftest.$ac_ext \ - && test 1 = "`echo hi \ - | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then - gl_cv_func_lseek_pipe=yes - else - gl_cv_func_lseek_pipe=no - fi - -else $as_nop - gl_cv_func_lseek_pipe=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if defined __BEOS__ -/* BeOS mistakenly return 0 when trying to seek on pipes. */ - Choke me. -#endif -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_func_lseek_pipe=yes -else $as_nop - gl_cv_func_lseek_pipe=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lseek_pipe" >&5 -printf "%s\n" "$gl_cv_func_lseek_pipe" >&6; } - if test "$gl_cv_func_lseek_pipe" = no; then - REPLACE_LSEEK=1 - -printf "%s\n" "#define LSEEK_PIPE_BROKEN 1" >>confdefs.h - - fi - - - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_LSEEK=1 - fi - - case $host_os in - darwin*) - REPLACE_LSEEK=1;; - esac - - - if test $REPLACE_LSEEK = 1; then - GL_COND_OBJ_LSEEK_TRUE= - GL_COND_OBJ_LSEEK_FALSE='#' -else - GL_COND_OBJ_LSEEK_TRUE='#' - GL_COND_OBJ_LSEEK_FALSE= -fi -: - if test -z "${GL_COND_OBJ_LSEEK_TRUE}" && test -z "${GL_COND_OBJ_LSEEK_FALSE}"; then - GL_COND_OBJ_LSEEK_TRUE='#' - GL_COND_OBJ_LSEEK_FALSE='#' - fi - - - - - - - - - - - GL_GNULIB_LSEEK=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_LSEEK 1" >>confdefs.h - - - - - - - REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX" - if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc (0) returns nonnull" >&5 -printf %s "checking whether malloc (0) returns nonnull... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 +printf %s "checking for GNU libc compatible malloc... " >&6; } if test ${ac_cv_func_malloc_0_nonnull+y} then : printf %s "(cached) " >&6 else $as_nop if test "$cross_compiling" = yes then : - case "$host_os" in - # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ - | gnu* | *-musl* | midnightbsd* \ - | hpux* | solaris* | cygwin* | mingw* | msys* ) - ac_cv_func_malloc_0_nonnull="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; - esac - + case "$host_os" in # (( + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull=yes ;; + # If we don't know, assume the worst. + *) ac_cv_func_malloc_0_nonnull=no ;; + esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -44681,13 +35548,12 @@ int main (void) { void *p = malloc (0); - int result = !p; - free (p); - return result; + int result = !p; + free (p); + return result; ; return 0; } - _ACEOF if ac_fn_c_try_run "$LINENO" then : @@ -44699,20 +35565,51 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; } - case $ac_cv_func_malloc_0_nonnull in #( - *yes) : - ;; #( - *) : - REPLACE_MALLOC_FOR_MALLOC_GNU=1 ;; -esac +if test $ac_cv_func_malloc_0_nonnull = yes +then : + +printf "%s\n" "#define HAVE_MALLOC_GNU 1" >>confdefs.h + +else $as_nop + printf "%s\n" "#define HAVE_MALLOC_GNU 0" >>confdefs.h + + REPLACE_MALLOC=1 + +fi + + + if test $REPLACE_MALLOC = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi - if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then + +printf "%s\n" "#define GNULIB_MALLOC_GNU 1" >>confdefs.h + + + + + + if test $gl_cv_func_malloc_posix = yes; then + +printf "%s\n" "#define HAVE_MALLOC_POSIX 1" >>confdefs.h + + else + REPLACE_MALLOC=1 + fi + + if test $REPLACE_MALLOC = 1; then @@ -44729,43 +35626,7 @@ esac - - - - - GL_GNULIB_MALLOC_GNU=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_MALLOC_GNU 1" >>confdefs.h - - - - - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" - - fi - - - - - - - - - - GL_GNULIB_MALLOC_POSIX=1 + GNULIB_MALLOC_POSIX=1 @@ -44787,6 +35648,193 @@ printf "%s\n" "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h + : + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_math_h='<'math.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_math_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_math_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'math.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_math_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_math_h='<'math.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_math_h" >&5 +printf "%s\n" "$gl_cv_next_math_h" >&6; } + fi + NEXT_MATH_H=$gl_cv_next_math_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'math.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_math_h + fi + NEXT_AS_FIRST_DIRECTIVE_MATH_H=$gl_next_as_first_directive + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5 +printf %s "checking whether NAN macro works... " >&6; } +if test ${gl_cv_header_math_nan_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +/* Solaris 10 has a broken definition of NAN. Other platforms + fail to provide NAN, or provide it only in C99 mode; this + test only needs to fail when NAN is provided but wrong. */ + float f = 1.0f; +#ifdef NAN + f = NAN; +#endif + return f == 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_math_nan_works=yes +else $as_nop + gl_cv_header_math_nan_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_nan_works" >&5 +printf "%s\n" "$gl_cv_header_math_nan_works" >&6; } + if test $gl_cv_header_math_nan_works = no; then + REPLACE_NAN=1 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5 +printf %s "checking whether HUGE_VAL works... " >&6; } +if test ${gl_cv_header_math_huge_val_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +/* Solaris 10 has a broken definition of HUGE_VAL. */ + double d = HUGE_VAL; + return d == 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_math_huge_val_works=yes +else $as_nop + gl_cv_header_math_huge_val_works=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_huge_val_works" >&5 +printf "%s\n" "$gl_cv_header_math_huge_val_works" >&6; } + if test $gl_cv_header_math_huge_val_works = no; then + REPLACE_HUGE_VAL=1 + fi + + + for gl_func in acosf acosl asinf asinl atanf atanl cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf expf expl exp2 exp2f exp2l expm1 expm1f expm1l fabsf fabsl floorf floorl fma fmaf fmal fmod fmodf fmodl frexpf frexpl hypotf hypotl ilogb ilogbf ilogbl ldexpf ldexpl log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l logb logbf logbl modf modff modfl powf remainder remainderf remainderl rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl tanf tanl tanhf trunc truncf truncl; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -44798,15 +35846,23 @@ printf "%s\n" "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h - if case "$host_os" in - mingw*) true ;; - *) test $ac_cv_func_mbsinit = yes ;; - esac \ - && test $ac_cv_func_mbrtowc = yes; then + : + + + : + + + + + + if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } if test ${gl_cv_func_mbrtowc_incomplete_state+y} @@ -44830,6 +35886,13 @@ else $as_nop #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -44842,7 +35905,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) - return 2; + return 1; } return 0; } @@ -44857,45 +35920,6 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - else - if test $LOCALE_FR_UTF8 != none; then - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -int main () -{ - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) - { - const char input[] = "B\303\274\303\237er"; /* "Büßer" */ - mbstate_t state; - wchar_t wc; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) - if (mbsinit (&state)) - return 2; - } - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_mbrtowc_incomplete_state=yes -else $as_nop - gl_cv_func_mbrtowc_incomplete_state=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi fi fi @@ -44929,6 +35953,13 @@ else $as_nop #include #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -44944,7 +35975,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) - return 2; + return 1; } return 0; } @@ -44980,10 +36011,23 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + : + + + + + if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 ac_fn_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" " - #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_mbrtowc" = xyes @@ -45028,6 +36072,13 @@ else $as_nop #include #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -45100,6 +36151,13 @@ else $as_nop #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -45114,7 +36172,7 @@ int main () mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) - return 2; + return 1; } return 0; } @@ -45164,6 +36222,13 @@ else $as_nop #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -45295,6 +36360,13 @@ else $as_nop #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -45306,7 +36378,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) - return 2; + return 1; } return 0; } @@ -45327,244 +36399,6 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5 printf "%s\n" "$gl_cv_func_mbrtowc_nul_retval" >&6; } - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc stores incomplete characters" >&5 -printf %s "checking whether mbrtowc stores incomplete characters... " >&6; } -if test ${gl_cv_func_mbrtowc_stores_incomplete+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - case "$host_os" in - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;; - *) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;; - esac - case "$host_os" in - mingw*) - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -int main () -{ - int result = 0; - if (setlocale (LC_ALL, "French_France.65001") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 1; - } - if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 2; - } - if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 4; - } - if (setlocale (LC_ALL, "Chinese_China.936") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 8; - } - return result; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_mbrtowc_stores_incomplete=no -else $as_nop - gl_cv_func_mbrtowc_stores_incomplete=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - ;; - *) - - if test $LOCALE_FR_UTF8 != none; then - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -int main () -{ - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - return 1; - } - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_mbrtowc_stores_incomplete=no -else $as_nop - gl_cv_func_mbrtowc_stores_incomplete=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_stores_incomplete" >&5 -printf "%s\n" "$gl_cv_func_mbrtowc_stores_incomplete" >&6; } - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5 -printf %s "checking whether mbrtowc works on empty input... " >&6; } -if test ${gl_cv_func_mbrtowc_empty_input+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - case "$host_os" in - # Guess no on AIX and glibc systems. - aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - esac - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - static wchar_t wc; - static mbstate_t mbs; - int - main (void) - { - return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; - } -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_mbrtowc_empty_input=yes -else $as_nop - gl_cv_func_mbrtowc_empty_input=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5 -printf "%s\n" "$gl_cv_func_mbrtowc_empty_input" >&6; } - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5 -printf %s "checking whether the C locale is free of encoding errors... " >&6; } -if test ${gl_cv_func_mbrtowc_C_locale_sans_EILSEQ+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal" - - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - #include - -int -main (void) -{ - - int i; - char *locale = setlocale (LC_ALL, "C"); - if (! locale) - return 2; - for (i = CHAR_MIN; i <= CHAR_MAX; i++) - { - char c = i; - wchar_t wc; - mbstate_t mbs = { 0, }; - size_t ss = mbrtowc (&wc, &c, 1, &mbs); - if (1 < ss) - return 3; - } - return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes -else $as_nop - gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&5 -printf "%s\n" "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" >&6; } - case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) @@ -45597,311 +36431,30 @@ printf "%s\n" "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac - case "$gl_cv_func_mbrtowc_stores_incomplete" in - *no) ;; - *) -printf "%s\n" "#define MBRTOWC_STORES_INCOMPLETE_BUG 1" >>confdefs.h - - REPLACE_MBRTOWC=1 - ;; - esac - case "$gl_cv_func_mbrtowc_empty_input" in - *yes) ;; - *) -printf "%s\n" "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h - - REPLACE_MBRTOWC=1 - ;; - esac - case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in - *yes) ;; - *) -printf "%s\n" "#define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h - - REPLACE_MBRTOWC=1 - ;; - esac - fi - fi - if test $REPLACE_MBSTATE_T = 1; then - case "$host_os" in - mingw*) LIB_MBRTOWC= ;; - *) - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 -printf %s "checking whether imported symbols can be declared weak... " >&6; } -if test ${gl_cv_have_weak+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - cygwin*) - gl_cv_have_weak="guessing no" - ;; - *) - gl_cv_have_weak=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern void xyzzy (); -#pragma weak xyzzy -int -main (void) -{ -xyzzy(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_have_weak=maybe -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test $gl_cv_have_weak = maybe; then - if test "$cross_compiling" = yes -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __ELF__ - Extensible Linking Format - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Extensible Linking Format" >/dev/null 2>&1 -then : - gl_cv_have_weak="guessing yes" -else $as_nop - gl_cv_have_weak="guessing no" -fi -rm -rf conftest* - - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#pragma weak fputs -int main () -{ - return (fputs == NULL); -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_have_weak=yes -else $as_nop - gl_cv_have_weak=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - ;; - esac - case " $LDFLAGS " in - *" -static "*) gl_cv_have_weak=no ;; - esac - case "$gl_cv_have_weak" in - *yes) - case "$host_os" in - freebsd* | dragonfly* | midnightbsd*) - : > conftest1.c - $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 - cat < conftest2.c -#include -#pragma weak pthread_mutexattr_gettype -int main () -{ - return (pthread_mutexattr_gettype != NULL); -} -EOF - $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ - || gl_cv_have_weak=no - rm -f conftest1.c libempty.so conftest2.c conftest - ;; - esac - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 -printf "%s\n" "$gl_cv_have_weak" >&6; } - case "$gl_cv_have_weak" in - *yes) - -printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h - - ;; - esac - - case "$gl_cv_have_weak" in - *yes) LIB_MBRTOWC= ;; - *) LIB_MBRTOWC="$LIBPTHREAD" ;; - esac - ;; - esac - else - LIB_MBRTOWC= - fi - - - - if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then - GL_COND_OBJ_MBRTOWC_TRUE= - GL_COND_OBJ_MBRTOWC_FALSE='#' -else - GL_COND_OBJ_MBRTOWC_TRUE='#' - GL_COND_OBJ_MBRTOWC_FALSE= -fi -: - if test -z "${GL_COND_OBJ_MBRTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBRTOWC_FALSE}"; then - GL_COND_OBJ_MBRTOWC_TRUE='#' - GL_COND_OBJ_MBRTOWC_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_MBRTOWC_TRUE"; then : - - if test $REPLACE_MBSTATE_T = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS lc-charset-dispatch.$ac_objext" - - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS mbtowc-lock.$ac_objext" - - - - - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 -printf %s "checking whether the -Werror option is usable... " >&6; } -if test ${gl_cv_cc_vis_werror+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_cc_vis_werror=yes -else $as_nop - gl_cv_cc_vis_werror=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 -printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 -printf %s "checking for simple visibility declarations... " >&6; } -if test ${gl_cv_cc_visibility+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - if test $gl_cv_cc_vis_werror = yes; then - CFLAGS="$CFLAGS -Werror" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void); - void dummyfunc (void); - int hiddenvar; - int exportedvar; - int hiddenfunc (void) { return 51; } - int exportedfunc (void) { return 1225736919; } - void dummyfunc (void) {} - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_cc_visibility=yes -else $as_nop - gl_cv_cc_visibility=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 -printf "%s\n" "$gl_cv_cc_visibility" >&6; } - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 fi fi - - -printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h + if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then - fi + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" : - -fi + fi - - - - - - - - - - GL_GNULIB_MBRTOWC=1 + GNULIB_MBRTOWC=1 @@ -45921,17 +36474,23 @@ printf "%s\n" "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h + : - if case "$host_os" in - mingw*) true ;; - *) test $ac_cv_func_mbsinit = yes ;; - esac \ - && test $ac_cv_func_mbrtowc = yes; then + : + + + + + + if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } if test ${gl_cv_func_mbrtowc_incomplete_state+y} @@ -45955,6 +36514,13 @@ else $as_nop #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -45967,7 +36533,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) - return 2; + return 1; } return 0; } @@ -45982,45 +36548,6 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - else - if test $LOCALE_FR_UTF8 != none; then - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -int main () -{ - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) - { - const char input[] = "B\303\274\303\237er"; /* "Büßer" */ - mbstate_t state; - wchar_t wc; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) - if (mbsinit (&state)) - return 2; - } - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_mbrtowc_incomplete_state=yes -else $as_nop - gl_cv_func_mbrtowc_incomplete_state=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi fi fi @@ -46054,6 +36581,13 @@ else $as_nop #include #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -46069,7 +36603,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) - return 2; + return 1; } return 0; } @@ -46105,10 +36639,23 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + : + + + + + if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 ac_fn_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" " - #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_mbsinit" = xyes @@ -46132,42 +36679,27 @@ printf "%s\n" "#define HAVE_DECL_MBSINIT $ac_have_decl" >>confdefs.h fi fi + if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then - if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then - GL_COND_OBJ_MBSINIT_TRUE= - GL_COND_OBJ_MBSINIT_FALSE='#' -else - GL_COND_OBJ_MBSINIT_TRUE='#' - GL_COND_OBJ_MBSINIT_FALSE= -fi -: - if test -z "${GL_COND_OBJ_MBSINIT_TRUE}" && test -z "${GL_COND_OBJ_MBSINIT_FALSE}"; then - GL_COND_OBJ_MBSINIT_TRUE='#' - GL_COND_OBJ_MBSINIT_FALSE='#' - fi - if test -z "$GL_COND_OBJ_MBSINIT_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext" : - -fi + fi - - - - - - - - - - GL_GNULIB_MBSINIT=1 + GNULIB_MBSINIT=1 @@ -46180,52 +36712,31 @@ printf "%s\n" "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h - ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc" -if test "x$ac_cv_func_mbtowc" = xyes -then : - printf "%s\n" "#define HAVE_MBTOWC 1" >>confdefs.h - -fi - - if test $ac_cv_func_mbtowc = no; then - HAVE_MBTOWC=0 - else - if false; then - REPLACE_MBTOWC=1 - fi + if false; then + REPLACE_MBTOWC=1 fi + if test $REPLACE_MBTOWC = 1; then - if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then - GL_COND_OBJ_MBTOWC_TRUE= - GL_COND_OBJ_MBTOWC_FALSE='#' -else - GL_COND_OBJ_MBTOWC_TRUE='#' - GL_COND_OBJ_MBTOWC_FALSE= -fi -: - if test -z "${GL_COND_OBJ_MBTOWC_TRUE}" && test -z "${GL_COND_OBJ_MBTOWC_FALSE}"; then - GL_COND_OBJ_MBTOWC_TRUE='#' - GL_COND_OBJ_MBTOWC_FALSE='#' - fi - if test -z "$GL_COND_OBJ_MBTOWC_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext" : - -fi + fi - - - - - GL_GNULIB_MBTOWC=1 + GNULIB_MBTOWC=1 @@ -46236,21 +36747,16 @@ printf "%s\n" "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h + if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then - if test $REPLACE_MEMCHR = 1; then - GL_COND_OBJ_MEMCHR_TRUE= - GL_COND_OBJ_MEMCHR_FALSE='#' -else - GL_COND_OBJ_MEMCHR_TRUE='#' - GL_COND_OBJ_MEMCHR_FALSE= -fi -: - if test -z "${GL_COND_OBJ_MEMCHR_TRUE}" && test -z "${GL_COND_OBJ_MEMCHR_FALSE}"; then - GL_COND_OBJ_MEMCHR_TRUE='#' - GL_COND_OBJ_MEMCHR_FALSE='#' - fi - if test -z "$GL_COND_OBJ_MEMCHR_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext" ac_fn_c_check_header_compile "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" @@ -46261,23 +36767,13 @@ then : fi - -fi + fi - - - - - - - - - - GL_GNULIB_MEMCHR=1 + GNULIB_MEMCHR=1 @@ -46291,25 +36787,256 @@ printf "%s\n" "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h + : - REPLACE_MKTIME=0 - if test "$gl_cv_func_working_mktime" != yes; then - REPLACE_MKTIME=1 -printf "%s\n" "#define NEED_MKTIME_WORKING 1" >>confdefs.h + : + + + + + + + if test $APPLE_UNIVERSAL_BUILD = 1; then + # A universal build on Apple Mac OS X platforms. + # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode. + # But we need a configuration result that is valid in both modes. + gl_cv_func_working_mktime=no fi - case "$host_os" in - mingw*) - REPLACE_MKTIME=1 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 +printf %s "checking for working mktime... " >&6; } +if test ${gl_cv_func_working_mktime+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + gl_cv_func_working_mktime=no +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Test program from Paul Eggert and Tony Leneis. */ +#include +#include +#include -printf "%s\n" "#define NEED_MKTIME_WINDOWS 1" >>confdefs.h +#ifdef HAVE_UNISTD_H +# include +#endif - ;; - esac +#if HAVE_DECL_ALARM +# include +#endif + +/* Work around redefinition to rpl_putenv by other config tests. */ +#undef putenv + +static time_t time_t_max; +static time_t time_t_min; + +/* Values we'll use to set the TZ environment variable. */ +static char *tz_strings[] = { + (char *) 0, "TZ=GMT0", "TZ=JST-9", + "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" +}; +#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) + +/* Return 0 if mktime fails to convert a date in the spring-forward gap. + Based on a problem report from Andreas Jaeger. */ +static int +spring_forward_gap () +{ + /* glibc (up to about 1998-10-07) failed this test. */ + struct tm tm; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + + tm.tm_year = 98; + tm.tm_mon = 3; + tm.tm_mday = 5; + tm.tm_hour = 2; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + return mktime (&tm) != (time_t) -1; +} + +static int +mktime_test1 (time_t now) +{ + struct tm *lt; + return ! (lt = localtime (&now)) || mktime (lt) == now; +} + +static int +mktime_test (time_t now) +{ + return (mktime_test1 (now) + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); +} + +static int +irix_6_4_bug () +{ + /* Based on code from Ariel Faigon. */ + struct tm tm; + tm.tm_year = 96; + tm.tm_mon = 3; + tm.tm_mday = 0; + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + mktime (&tm); + return tm.tm_mon == 2 && tm.tm_mday == 31; +} + +static int +bigtime_test (int j) +{ + struct tm tm; + time_t now; + tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; + now = mktime (&tm); + if (now != (time_t) -1) + { + struct tm *lt = localtime (&now); + if (! (lt + && lt->tm_year == tm.tm_year + && lt->tm_mon == tm.tm_mon + && lt->tm_mday == tm.tm_mday + && lt->tm_hour == tm.tm_hour + && lt->tm_min == tm.tm_min + && lt->tm_sec == tm.tm_sec + && lt->tm_yday == tm.tm_yday + && lt->tm_wday == tm.tm_wday + && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) + == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) + return 0; + } + return 1; +} + +static int +year_2050_test () +{ + /* The correct answer for 2050-02-01 00:00:00 in Pacific time, + ignoring leap seconds. */ + unsigned long int answer = 2527315200UL; + + struct tm tm; + time_t t; + tm.tm_year = 2050 - 1900; + tm.tm_mon = 2 - 1; + tm.tm_mday = 1; + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + tm.tm_isdst = -1; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + + t = mktime (&tm); + + /* Check that the result is either a failure, or close enough + to the correct answer that we can assume the discrepancy is + due to leap seconds. */ + return (t == (time_t) -1 + || (0 < t && answer - 120 <= t && t <= answer + 120)); +} + +int +main () +{ + int result = 0; + time_t t, delta; + int i, j; + int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1; + int time_t_signed = ! ((time_t) 0 < (time_t) -1); + +#if HAVE_DECL_ALARM + /* This test makes some buggy mktime implementations loop. + Give up after 60 seconds; a mktime slower than that + isn't worth using anyway. */ + signal (SIGALRM, SIG_DFL); + alarm (60); +#endif + + time_t_max = (! time_t_signed + ? (time_t) -1 + : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1) + * 2 + 1)); + time_t_min = (! time_t_signed + ? (time_t) 0 + : time_t_signed_magnitude + ? ~ (time_t) 0 + : ~ time_t_max); + + delta = time_t_max / 997; /* a suitable prime number */ + for (i = 0; i < N_STRINGS; i++) + { + if (tz_strings[i]) + putenv (tz_strings[i]); + + for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta) + if (! mktime_test (t)) + result |= 1; + if ((result & 2) == 0 + && ! (mktime_test ((time_t) 1) + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + result |= 2; + + for (j = 1; (result & 4) == 0; j <<= 1) + { + if (! bigtime_test (j)) + result |= 4; + if (INT_MAX / 2 < j) + break; + } + if ((result & 8) == 0 && ! bigtime_test (INT_MAX)) + result |= 8; + } + if (! irix_6_4_bug ()) + result |= 16; + if (! spring_forward_gap ()) + result |= 32; + if (! year_2050_test ()) + result |= 64; + return result; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_working_mktime=yes +else $as_nop + gl_cv_func_working_mktime=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5 +printf "%s\n" "$gl_cv_func_working_mktime" >&6; } + + if test $gl_cv_func_working_mktime = no; then + REPLACE_MKTIME=1 + else + REPLACE_MKTIME=0 + fi if test $REPLACE_MKTIME = 1; then @@ -46329,11 +37056,7 @@ printf "%s\n" "#define NEED_MKTIME_WINDOWS 1" >>confdefs.h - - - - - GL_GNULIB_MKTIME=1 + GNULIB_MKTIME=1 @@ -46345,9 +37068,8 @@ printf "%s\n" "#define GNULIB_TEST_MKTIME 1" >>confdefs.h - - WANT_MKTIME_INTERNAL=0 - ac_fn_c_check_func "$LINENO" "__mktime_internal" "ac_cv_func___mktime_internal" + if test $REPLACE_MKTIME = 0; then + ac_fn_c_check_func "$LINENO" "__mktime_internal" "ac_cv_func___mktime_internal" if test "x$ac_cv_func___mktime_internal" = xyes then : @@ -46355,15 +37077,13 @@ printf "%s\n" "#define mktime_internal __mktime_internal" >>confdefs.h else $as_nop - WANT_MKTIME_INTERNAL=1 - -printf "%s\n" "#define NEED_MKTIME_INTERNAL 1" >>confdefs.h - + REPLACE_MKTIME=1 fi + fi - if test $WANT_MKTIME_INTERNAL = 1; then + if test $REPLACE_MKTIME = 1; then @@ -46378,18 +37098,33 @@ fi fi - ac_fn_c_check_func "$LINENO" "listmntent" "ac_cv_func_listmntent" +ac_fn_c_check_func "$LINENO" "listmntent" "ac_cv_func_listmntent" if test "x$ac_cv_func_listmntent" = xyes then : printf "%s\n" "#define HAVE_LISTMNTENT 1" >>confdefs.h fi +ac_fn_c_check_func "$LINENO" "getmntinfo" "ac_cv_func_getmntinfo" +if test "x$ac_cv_func_getmntinfo" = xyes +then : + printf "%s\n" "#define HAVE_GETMNTINFO 1" >>confdefs.h + +fi + + + : - # We must include grp.h before ucred.h on OSF V4.0, since ucred.h uses - # NGROUPS (as the array dimension for a struct member) without a definition. - ac_fn_c_check_header_compile "$LINENO" "sys/ucred.h" "ac_cv_header_sys_ucred_h" "#include + + + + + + +# We must include grp.h before ucred.h on OSF V4.0, since ucred.h uses +# NGROUPS (as the array dimension for a struct member) without a definition. +ac_fn_c_check_header_compile "$LINENO" "sys/ucred.h" "ac_cv_header_sys_ucred_h" "#include " if test "x$ac_cv_header_sys_ucred_h" = xyes then : @@ -46398,11 +37133,10 @@ then : fi - ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default - #if HAVE_SYS_PARAM_H - #include - #endif - +ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default + #if HAVE_SYS_PARAM_H + #include + #endif " if test "x$ac_cv_header_sys_mount_h" = xyes then : @@ -46411,7 +37145,7 @@ then : fi - ac_fn_c_check_header_compile "$LINENO" "mntent.h" "ac_cv_header_mntent_h" "$ac_includes_default" +ac_fn_c_check_header_compile "$LINENO" "mntent.h" "ac_cv_header_mntent_h" "$ac_includes_default" if test "x$ac_cv_header_mntent_h" = xyes then : printf "%s\n" "#define HAVE_MNTENT_H 1" >>confdefs.h @@ -46424,7 +37158,7 @@ then : fi - getfsstat_includes="\ + getfsstat_includes="\ $ac_includes_default #if HAVE_SYS_PARAM_H # include /* needed by powerpc-apple-darwin1.3.7 */ @@ -46440,7 +37174,7 @@ $ac_includes_default # include /* needed by powerpc-apple-darwin1.3.7 */ #endif " - ac_fn_c_check_member "$LINENO" "struct fsstat" "f_fstypename" "ac_cv_member_struct_fsstat_f_fstypename" "$getfsstat_includes +ac_fn_c_check_member "$LINENO" "struct fsstat" "f_fstypename" "ac_cv_member_struct_fsstat_f_fstypename" "$getfsstat_includes " if test "x$ac_cv_member_struct_fsstat_f_fstypename" = xyes then : @@ -46451,15 +37185,14 @@ printf "%s\n" "#define HAVE_STRUCT_FSSTAT_F_FSTYPENAME 1" >>confdefs.h fi - # Determine how to get the list of mounted file systems. - ac_list_mounted_fs= +# Determine how to get the list of mounted file systems. +ac_list_mounted_fs= - # If the getmntent function is available but not in the standard library, - # make sure LIBS contains the appropriate -l option. - - # getmntent is in the standard C library on most systems, but in -lgen on - # Unixware. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing getmntent" >&5 +# If the getmntent function is available but not in the standard library, +# make sure LIBS contains the appropriate -l option. +# getmntent is in the standard C library on UNICOS, in -lsun on Irix 4, +# -lseq on Dynix/PTX, -lgen on Unixware. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing getmntent" >&5 printf %s "checking for library containing getmntent... " >&6; } if test ${ac_cv_search_getmntent+y} then : @@ -46481,7 +37214,7 @@ return getmntent (); return 0; } _ACEOF -for ac_lib in '' gen +for ac_lib in '' sun seq gen do if test -z "$ac_lib"; then ac_res="none required" @@ -46518,7 +37251,7 @@ then : fi - ac_fn_c_check_func "$LINENO" "getmntent" "ac_cv_func_getmntent" +ac_fn_c_check_func "$LINENO" "getmntent" "ac_cv_func_getmntent" if test "x$ac_cv_func_getmntent" = xyes then : printf "%s\n" "#define HAVE_GETMNTENT 1" >>confdefs.h @@ -46527,11 +37260,59 @@ fi - if test -z "$ac_list_mounted_fs"; then - # AIX. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mntctl function and struct vmount" >&5 +# This test must precede the ones for getmntent because Unicos-9 is +# reported to have the getmntent function, but its support is incompatible +# with other getmntent implementations. + +# NOTE: Normally, I wouldn't use a check for system type as I've done for +# 'CRAY' below since that goes against the whole autoconf philosophy. But +# I think there is too great a chance that some non-Cray system has a +# function named listmntent to risk the false positive. + +if test -z "$ac_list_mounted_fs"; then + # Cray UNICOS 9 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for listmntent of Cray/Unicos-9" >&5 +printf %s "checking for listmntent of Cray/Unicos-9... " >&6; } + if test ${fu_cv_sys_mounted_cray_listmntent+y} +then : + printf %s "(cached) " >&6 +else $as_nop + fu_cv_sys_mounted_cray_listmntent=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _CRAY +yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1 +then : + test $ac_cv_func_listmntent = yes \ + && fu_cv_sys_mounted_cray_listmntent=yes + +fi +rm -rf conftest* + + + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_cray_listmntent" >&5 +printf "%s\n" "$fu_cv_sys_mounted_cray_listmntent" >&6; } + if test $fu_cv_sys_mounted_cray_listmntent = yes; then + ac_list_mounted_fs=found + +printf "%s\n" "#define MOUNTED_LISTMNTENT 1" >>confdefs.h + + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # AIX. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mntctl function and struct vmount" >&5 printf %s "checking for mntctl function and struct vmount... " >&6; } -if test ${fu_cv_sys_mounted_vmount+y} + if test ${fu_cv_sys_mounted_vmount+y} then : printf %s "(cached) " >&6 else $as_nop @@ -46547,26 +37328,27 @@ else $as_nop fi rm -f conftest.err conftest.i conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_vmount" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_vmount" >&5 printf "%s\n" "$fu_cv_sys_mounted_vmount" >&6; } - if test $fu_cv_sys_mounted_vmount = yes; then - ac_list_mounted_fs=found + if test $fu_cv_sys_mounted_vmount = yes; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_VMOUNT 1" >>confdefs.h - fi fi +fi - if test $ac_cv_func_getmntent = yes; then +if test $ac_cv_func_getmntent = yes; then - # This system has the getmntent function. - # Determine whether it's the one-argument variant or the two-argument one. + # This system has the getmntent function. + # Determine whether it's the one-argument variant or the two-argument one. - if test -z "$ac_list_mounted_fs"; then - # glibc, HP-UX, IRIX, Cygwin, Android, also (obsolete) 4.3BSD, SunOS. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for one-argument getmntent function" >&5 + if test -z "$ac_list_mounted_fs"; then + # 4.3BSD, SunOS, HP-UX, Dynix, Irix + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for one-argument getmntent function" >&5 printf %s "checking for one-argument getmntent function... " >&6; } -if test ${fu_cv_sys_mounted_getmntent1+y} + if test ${fu_cv_sys_mounted_getmntent1+y} then : printf %s "(cached) " >&6 else $as_nop @@ -46577,24 +37359,23 @@ else $as_nop #include #include -#if defined __ANDROID__ /* Android */ -# undef MOUNTED -# define MOUNTED "/proc/mounts" -#elif !defined MOUNTED -# if defined _PATH_MOUNTED /* GNU libc */ +#if !defined MOUNTED +# if defined _PATH_MOUNTED /* GNU libc */ # define MOUNTED _PATH_MOUNTED # endif -# if defined MNT_MNTTAB /* HP-UX. */ +# if defined MNT_MNTTAB /* HP-UX. */ # define MOUNTED MNT_MNTTAB # endif +# if defined MNTTABNAME /* Dynix. */ +# define MOUNTED MNTTABNAME +# endif #endif int main (void) { -struct mntent *mnt = 0; char *table = MOUNTED; - if (sizeof mnt && sizeof table) return 0; - + struct mntent *mnt = 0; char *table = MOUNTED; + if (sizeof mnt && sizeof table) return 0; ; return 0; } @@ -46606,76 +37387,23 @@ else $as_nop fu_cv_sys_mounted_getmntent1=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntent1" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntent1" >&5 printf "%s\n" "$fu_cv_sys_mounted_getmntent1" >&6; } - if test $fu_cv_sys_mounted_getmntent1 = yes; then - ac_list_mounted_fs=found + if test $fu_cv_sys_mounted_getmntent1 = yes; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_GETMNTENT1 1" >>confdefs.h - ac_fn_c_check_func "$LINENO" "setmntent" "ac_cv_func_setmntent" -if test "x$ac_cv_func_setmntent" = xyes -then : - printf "%s\n" "#define HAVE_SETMNTENT 1" >>confdefs.h - -fi -ac_fn_c_check_func "$LINENO" "endmntent" "ac_cv_func_endmntent" -if test "x$ac_cv_func_endmntent" = xyes -then : - printf "%s\n" "#define HAVE_ENDMNTENT 1" >>confdefs.h - -fi -ac_fn_c_check_func "$LINENO" "hasmntopt" "ac_cv_func_hasmntopt" -if test "x$ac_cv_func_hasmntopt" = xyes -then : - printf "%s\n" "#define HAVE_HASMNTOPT 1" >>confdefs.h - -fi - - fi fi + fi - if test -z "$ac_list_mounted_fs"; then - # Solaris >= 8. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getextmntent function" >&5 -printf %s "checking for getextmntent function... " >&6; } -if test ${fu_cv_sys_mounted_getextmntent+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getextmntent" >/dev/null 2>&1 -then : - fu_cv_sys_mounted_getextmntent=yes -else $as_nop - fu_cv_sys_mounted_getextmntent=no -fi -rm -rf conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getextmntent" >&5 -printf "%s\n" "$fu_cv_sys_mounted_getextmntent" >&6; } - if test $fu_cv_sys_mounted_getextmntent = yes; then - ac_list_mounted_fs=found - -printf "%s\n" "#define MOUNTED_GETEXTMNTENT 1" >>confdefs.h - - fi - fi - - if test -z "$ac_list_mounted_fs"; then - # Solaris < 8, also (obsolete) SVR4. - # Solaris >= 8 has the two-argument getmntent but is already handled above. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument getmntent function" >&5 + if test -z "$ac_list_mounted_fs"; then + # SVR4 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for two-argument getmntent function" >&5 printf %s "checking for two-argument getmntent function... " >&6; } -if test ${fu_cv_sys_mounted_getmntent2+y} + if test ${fu_cv_sys_mounted_getmntent2+y} then : printf %s "(cached) " >&6 else $as_nop @@ -46693,34 +37421,34 @@ else $as_nop fi rm -rf conftest* - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntent2" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntent2" >&5 printf "%s\n" "$fu_cv_sys_mounted_getmntent2" >&6; } - if test $fu_cv_sys_mounted_getmntent2 = yes; then - ac_list_mounted_fs=found + if test $fu_cv_sys_mounted_getmntent2 = yes; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_GETMNTENT2 1" >>confdefs.h - ac_fn_c_check_func "$LINENO" "hasmntopt" "ac_cv_func_hasmntopt" + ac_fn_c_check_func "$LINENO" "hasmntopt" "ac_cv_func_hasmntopt" if test "x$ac_cv_func_hasmntopt" = xyes then : printf "%s\n" "#define HAVE_HASMNTOPT 1" >>confdefs.h fi - fi fi - fi - if test -z "$ac_list_mounted_fs"; then - # OSF/1, also (obsolete) Apple Darwin 1.3. - # powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h +fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getfsstat function" >&5 +if test -z "$ac_list_mounted_fs"; then + # DEC Alpha running OSF/1, and Apple Darwin 1.3. + # powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getfsstat function" >&5 printf %s "checking for getfsstat function... " >&6; } -if test ${fu_cv_sys_mounted_getfsstat+y} + if test ${fu_cv_sys_mounted_getfsstat+y} then : printf %s "(cached) " >&6 else $as_nop @@ -46739,9 +37467,8 @@ int main (void) { struct statfs *stats; - int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); - char *t = FS_TYPE (*stats); - + int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); + char *t = FS_TYPE (*stats); ; return 0; } @@ -46754,23 +37481,23 @@ else $as_nop fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getfsstat" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getfsstat" >&5 printf "%s\n" "$fu_cv_sys_mounted_getfsstat" >&6; } - if test $fu_cv_sys_mounted_getfsstat = yes; then - ac_list_mounted_fs=found + if test $fu_cv_sys_mounted_getfsstat = yes; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_GETFSSTAT 1" >>confdefs.h - fi fi +fi - if test -z "$ac_list_mounted_fs"; then - # (obsolete) SVR3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FIXME existence of three headers" >&5 +if test -z "$ac_list_mounted_fs"; then + # SVR3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FIXME existence of three headers" >&5 printf %s "checking for FIXME existence of three headers... " >&6; } -if test ${fu_cv_sys_mounted_fread_fstyp+y} + if test ${fu_cv_sys_mounted_fread_fstyp+y} then : printf %s "(cached) " >&6 else $as_nop @@ -46780,7 +37507,6 @@ else $as_nop #include #include #include - _ACEOF if ac_fn_c_try_cpp "$LINENO" then : @@ -46789,74 +37515,44 @@ else $as_nop fu_cv_sys_mounted_fread_fstyp=no fi rm -f conftest.err conftest.i conftest.$ac_ext - fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_fread_fstyp" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_fread_fstyp" >&5 printf "%s\n" "$fu_cv_sys_mounted_fread_fstyp" >&6; } - if test $fu_cv_sys_mounted_fread_fstyp = yes; then - ac_list_mounted_fs=found + if test $fu_cv_sys_mounted_fread_fstyp = yes; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_FREAD_FSTYP 1" >>confdefs.h - fi fi +fi - if test -z "$ac_list_mounted_fs"; then - # Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix, also (obsolete) 4.4BSD. - # OSF/1 also has getmntinfo but is already handled above. - # We cannot use AC_CHECK_FUNCS([getmntinfo]) here, because at the linker - # level the function is sometimes called getmntinfo64 or getmntinfo$INODE64 - # on Mac OS X, __getmntinfo13 on NetBSD and Minix, _F64_getmntinfo on OSF/1. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getmntinfo function" >&5 +if test -z "$ac_list_mounted_fs"; then + # 4.4BSD and DEC OSF/1. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getmntinfo function" >&5 printf %s "checking for getmntinfo function... " >&6; } -if test ${fu_cv_sys_mounted_getmntinfo+y} + if test ${fu_cv_sys_mounted_getmntinfo+y} then : printf %s "(cached) " >&6 else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if HAVE_SYS_PARAM_H -# include -#endif -#include -#if HAVE_SYS_MOUNT_H -# include -#endif -#if HAVE_SYS_STATVFS_H -# include -#endif -#include - -int -main (void) -{ -int count = getmntinfo (NULL, MNT_WAIT); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - fu_cv_sys_mounted_getmntinfo=yes -else $as_nop - fu_cv_sys_mounted_getmntinfo=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + test "$ac_cv_func_getmntinfo" = yes \ + && fu_cv_sys_mounted_getmntinfo=yes \ + || fu_cv_sys_mounted_getmntinfo=no fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntinfo" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntinfo" >&5 printf "%s\n" "$fu_cv_sys_mounted_getmntinfo" >&6; } - if test $fu_cv_sys_mounted_getmntinfo = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getmntinfo returns statvfs structures" >&5 + if test $fu_cv_sys_mounted_getmntinfo = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getmntinfo returns statvfs structures" >&5 printf %s "checking whether getmntinfo returns statvfs structures... " >&6; } -if test ${fu_cv_sys_mounted_getmntinfo2+y} + if test ${fu_cv_sys_mounted_getmntinfo2+y} then : printf %s "(cached) " >&6 else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_SYS_PARAM_H @@ -46892,27 +37588,59 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntinfo2" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmntinfo2" >&5 printf "%s\n" "$fu_cv_sys_mounted_getmntinfo2" >&6; } - if test $fu_cv_sys_mounted_getmntinfo2 = no; then - # Mac OS X, FreeBSD, OpenBSD, also (obsolete) 4.4BSD. - ac_list_mounted_fs=found + if test $fu_cv_sys_mounted_getmntinfo2 = no; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_GETMNTINFO 1" >>confdefs.h - else - # NetBSD, Minix. - ac_list_mounted_fs=found + else + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_GETMNTINFO2 1" >>confdefs.h - fi fi fi +fi - if test -z "$ac_list_mounted_fs"; then - # Haiku, also (obsolete) BeOS. - ac_fn_c_check_func "$LINENO" "next_dev" "ac_cv_func_next_dev" +if test -z "$ac_list_mounted_fs"; then + # Ultrix + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getmnt function" >&5 +printf %s "checking for getmnt function... " >&6; } + if test ${fu_cv_sys_mounted_getmnt+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + fu_cv_sys_mounted_getmnt=yes +else $as_nop + fu_cv_sys_mounted_getmnt=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_getmnt" >&5 +printf "%s\n" "$fu_cv_sys_mounted_getmnt" >&6; } + if test $fu_cv_sys_mounted_getmnt = yes; then + ac_list_mounted_fs=found + +printf "%s\n" "#define MOUNTED_GETMNT 1" >>confdefs.h + + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # BeOS + ac_fn_c_check_func "$LINENO" "next_dev" "ac_cv_func_next_dev" if test "x$ac_cv_func_next_dev" = xyes then : printf "%s\n" "#define HAVE_NEXT_DEV 1" >>confdefs.h @@ -46925,87 +37653,110 @@ then : fi - ac_fn_c_check_header_compile "$LINENO" "fs_info.h" "ac_cv_header_fs_info_h" "$ac_includes_default" + ac_fn_c_check_header_compile "$LINENO" "fs_info.h" "ac_cv_header_fs_info_h" "$ac_includes_default" if test "x$ac_cv_header_fs_info_h" = xyes then : printf "%s\n" "#define HAVE_FS_INFO_H 1" >>confdefs.h fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BEOS mounted file system support functions" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BEOS mounted file system support functions" >&5 printf %s "checking for BEOS mounted file system support functions... " >&6; } -if test ${fu_cv_sys_mounted_fs_stat_dev+y} -then : - printf %s "(cached) " >&6 -else $as_nop if test $ac_cv_header_fs_info_h = yes \ - && test $ac_cv_func_next_dev = yes \ - && test $ac_cv_func_fs_stat_dev = yes; then - fu_cv_sys_mounted_fs_stat_dev=yes - else - fu_cv_sys_mounted_fs_stat_dev=no - fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_fs_stat_dev" >&5 -printf "%s\n" "$fu_cv_sys_mounted_fs_stat_dev" >&6; } - if test $fu_cv_sys_mounted_fs_stat_dev = yes; then - ac_list_mounted_fs=found + && test $ac_cv_func_next_dev = yes \ + && test $ac_cv_func_fs_stat_dev = yes; then + fu_result=yes + else + fu_result=no + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_result" >&5 +printf "%s\n" "$fu_result" >&6; } + if test $fu_result = yes; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_FS_STAT_DEV 1" >>confdefs.h - fi fi +fi - if test -z "$ac_list_mounted_fs"; then - # Interix / BSD alike statvfs - # the code is really interix specific, so make sure, we're on it. - case "$host" in - *-interix*) - ac_fn_c_check_func "$LINENO" "statvfs" "ac_cv_func_statvfs" +if test -z "$ac_list_mounted_fs"; then + # SVR2 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is possible to resort to fread on /etc/mnttab" >&5 +printf %s "checking whether it is possible to resort to fread on /etc/mnttab... " >&6; } + if test ${fu_cv_sys_mounted_fread+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + fu_cv_sys_mounted_fread=yes +else $as_nop + fu_cv_sys_mounted_fread=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_mounted_fread" >&5 +printf "%s\n" "$fu_cv_sys_mounted_fread" >&6; } + if test $fu_cv_sys_mounted_fread = yes; then + ac_list_mounted_fs=found + +printf "%s\n" "#define MOUNTED_FREAD 1" >>confdefs.h + + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # Interix / BSD alike statvfs + # the code is really interix specific, so make sure, we're on it. + case "$host" in + *-interix*) + ac_fn_c_check_func "$LINENO" "statvfs" "ac_cv_func_statvfs" if test "x$ac_cv_func_statvfs" = xyes then : printf "%s\n" "#define HAVE_STATVFS 1" >>confdefs.h fi - if test $ac_cv_func_statvfs = yes; then - ac_list_mounted_fs=found + if test $ac_cv_func_statvfs = yes; then + ac_list_mounted_fs=found printf "%s\n" "#define MOUNTED_INTERIX_STATVFS 1" >>confdefs.h - fi - ;; - esac - fi - - if test -z "$ac_list_mounted_fs"; then - as_fn_error $? "could not determine how to read list of mounted file systems" "$LINENO" 5 - # FIXME -- no need to abort building the whole package - # Can't build mountlist.c or anything that needs its functions - fi - - if test $ac_list_mounted_fs = found; then - gl_cv_list_mounted_fs=yes - else - gl_cv_list_mounted_fs=no - fi - - - if test $gl_cv_list_mounted_fs = yes; then - GL_COND_OBJ_MOUNTLIST_TRUE= - GL_COND_OBJ_MOUNTLIST_FALSE='#' -else - GL_COND_OBJ_MOUNTLIST_TRUE='#' - GL_COND_OBJ_MOUNTLIST_FALSE= + fi + ;; + esac fi -: - if test -z "${GL_COND_OBJ_MOUNTLIST_TRUE}" && test -z "${GL_COND_OBJ_MOUNTLIST_FALSE}"; then - GL_COND_OBJ_MOUNTLIST_TRUE='#' - GL_COND_OBJ_MOUNTLIST_FALSE='#' - fi - if test -z "$GL_COND_OBJ_MOUNTLIST_TRUE"; then : +if test -z "$ac_list_mounted_fs"; then + as_fn_error $? "could not determine how to read list of mounted file systems" "$LINENO" 5 + # FIXME -- no need to abort building the whole package + # Can't build mountlist.c or anything that needs its functions +fi + +if test $ac_list_mounted_fs = found +then : + gl_cv_list_mounted_fs=yes +else $as_nop + gl_cv_list_mounted_fs=no +fi + + + + if test $gl_cv_list_mounted_fs = yes; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mountlist.$ac_objext" ac_fn_c_check_header_compile "$LINENO" "sys/mntent.h" "ac_cv_header_sys_mntent_h" "$ac_includes_default" @@ -47016,25 +37767,6 @@ then : fi -ac_fn_c_check_header_compile "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_mkdev_h" = xyes -then : - -printf "%s\n" "#define MAJOR_IN_MKDEV 1" >>confdefs.h - -fi - -if test $ac_cv_header_sys_mkdev_h = no; then - ac_fn_c_check_header_compile "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sysmacros_h" = xyes -then : - -printf "%s\n" "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h - -fi - -fi - ac_fn_c_check_member "$LINENO" "struct statfs" "f_fstypename" "ac_cv_member_struct_statfs_f_fstypename" " #include #include @@ -47051,41 +37783,62 @@ fi - -fi + fi - if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then - GL_COND_OBJ_MSVC_INVAL_TRUE= - GL_COND_OBJ_MSVC_INVAL_FALSE='#' -else - GL_COND_OBJ_MSVC_INVAL_TRUE='#' - GL_COND_OBJ_MSVC_INVAL_FALSE= -fi -: - if test -z "${GL_COND_OBJ_MSVC_INVAL_TRUE}" && test -z "${GL_COND_OBJ_MSVC_INVAL_FALSE}"; then - GL_COND_OBJ_MSVC_INVAL_TRUE='#' - GL_COND_OBJ_MSVC_INVAL_FALSE='#' + : + + + + + + if test $ac_cv_func__set_invalid_parameter_handler = yes; then + HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 + +printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h + + else + HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 + fi + + + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext" + fi - if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then - GL_COND_OBJ_MSVC_NOTHROW_TRUE= - GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' -else - GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' - GL_COND_OBJ_MSVC_NOTHROW_FALSE= -fi -: - if test -z "${GL_COND_OBJ_MSVC_NOTHROW_TRUE}" && test -z "${GL_COND_OBJ_MSVC_NOTHROW_FALSE}"; then - GL_COND_OBJ_MSVC_NOTHROW_TRUE='#' - GL_COND_OBJ_MSVC_NOTHROW_FALSE='#' + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext" + fi -printf "%s\n" "#define GNULIB_MSVC_NOTHROW 1" >>confdefs.h + + + + + + + : @@ -47094,6 +37847,120 @@ printf "%s\n" "#define GNULIB_MSVC_NOTHROW 1" >>confdefs.h + if test $gl_cv_have_include_next = yes; then + gl_cv_next_netdb_h='<'netdb.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_netdb_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_netdb_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'netdb.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_netdb_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_netdb_h='<'netdb.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_netdb_h" >&5 +printf "%s\n" "$gl_cv_next_netdb_h" >&6; } + fi + NEXT_NETDB_H=$gl_cv_next_netdb_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'netdb.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_netdb_h + fi + NEXT_AS_FIRST_DIRECTIVE_NETDB_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_netdb_h = yes; then + HAVE_NETDB_H=1 + else + HAVE_NETDB_H=0 + fi + + + + for gl_func in getaddrinfo freeaddrinfo gai_strerror getnameinfo; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -47127,9 +37994,9 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_netinet_in_h_selfcontained" >&5 printf "%s\n" "$gl_cv_header_netinet_in_h_selfcontained" >&6; } if test $gl_cv_header_netinet_in_h_selfcontained = yes; then - GL_GENERATE_NETINET_IN_H=false + NETINET_IN_H='' else - GL_GENERATE_NETINET_IN_H=true + NETINET_IN_H='netinet/in.h' ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default" if test "x$ac_cv_header_netinet_in_h" = xyes then : @@ -47143,6 +38010,12 @@ fi + : + + + + + @@ -47159,40 +38032,36 @@ else $as_nop if test $ac_cv_header_netinet_in_h = yes; then - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include + _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac - case "$host_os" in - mingw*) - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo 'netinet/in.h' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_cv_absolute_netinet_in_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n "$gl_absolute_header_sed"` - - gl_header=$gl_cv_absolute_netinet_in_h - gl_cv_next_netinet_in_h='"'$gl_header'"' + gl_header_literal_regex=`echo 'netinet/in.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_netinet_in_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_netinet_in_h='<'netinet/in.h'>' fi @@ -47224,33 +38093,13 @@ printf "%s\n" "$gl_cv_next_netinet_in_h" >&6; } fi - - - - - case "$GL_GENERATE_NETINET_IN_H" in - false) NETINET_IN_H='' ;; - true) - if test -z "$NETINET_IN_H"; then - NETINET_IN_H="${gl_source_base_prefix}netinet/in.h" - fi - ;; - *) echo "*** GL_GENERATE_NETINET_IN_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_NETINET_IN_H; then + if test -n "$NETINET_IN_H"; then GL_GENERATE_NETINET_IN_H_TRUE= GL_GENERATE_NETINET_IN_H_FALSE='#' else GL_GENERATE_NETINET_IN_H_TRUE='#' GL_GENERATE_NETINET_IN_H_FALSE= fi -: - if test -z "${GL_GENERATE_NETINET_IN_H_TRUE}" && test -z "${GL_GENERATE_NETINET_IN_H_FALSE}"; then - GL_GENERATE_NETINET_IN_H_TRUE='#' - GL_GENERATE_NETINET_IN_H_FALSE='#' - fi @@ -47258,14 +38107,13 @@ fi + : - - - if test $ac_cv_func_nl_langinfo = yes; then + if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5 printf %s "checking whether YESEXPR works... " >&6; } @@ -47318,20 +38166,8 @@ printf "%s\n" "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; } printf "%s\n" "#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS" >>confdefs.h - # On Solaris 10 and Solaris 11.3, nl_langinfo is not multithread-safe. - case "$host_os" in - solaris*) NL_LANGINFO_MTSAFE=0 ;; - *) NL_LANGINFO_MTSAFE=1 ;; - esac - -printf "%s\n" "#define NL_LANGINFO_MTSAFE $NL_LANGINFO_MTSAFE" >>confdefs.h - - if test $HAVE_LANGINFO_CODESET = 1 \ - && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ - && test $HAVE_LANGINFO_ALTMON = 1 \ - && test $HAVE_LANGINFO_ERA = 1 \ - && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1 \ - && test $NL_LANGINFO_MTSAFE = 1; then + if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \ + && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 @@ -47342,134 +38178,17 @@ printf "%s\n" "#define REPLACE_NL_LANGINFO 1" >>confdefs.h else HAVE_NL_LANGINFO=0 fi - if test $HAVE_NL_LANGINFO = 0 || test $HAVE_LANGINFO_CODESET = 0; then - LIB_NL_LANGINFO="$LIB_SETLOCALE_NULL" - else - LIB_NL_LANGINFO= - fi + + if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then - if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then - GL_COND_OBJ_NL_LANGINFO_TRUE= - GL_COND_OBJ_NL_LANGINFO_FALSE='#' -else - GL_COND_OBJ_NL_LANGINFO_TRUE='#' - GL_COND_OBJ_NL_LANGINFO_FALSE= -fi -: - if test -z "${GL_COND_OBJ_NL_LANGINFO_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_FALSE}"; then - GL_COND_OBJ_NL_LANGINFO_TRUE='#' - GL_COND_OBJ_NL_LANGINFO_FALSE='#' - fi - - - if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then - GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE= - GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#' -else - GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#' - GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE= -fi -: - if test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE}" && test -z "${GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE}"; then - GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE='#' - GL_COND_OBJ_NL_LANGINFO_LOCK_FALSE='#' - fi - - if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 -printf %s "checking whether the -Werror option is usable... " >&6; } -if test ${gl_cv_cc_vis_werror+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_cc_vis_werror=yes -else $as_nop - gl_cv_cc_vis_werror=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 -printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 -printf %s "checking for simple visibility declarations... " >&6; } -if test ${gl_cv_cc_visibility+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - if test $gl_cv_cc_vis_werror = yes; then - CFLAGS="$CFLAGS -Werror" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void); - void dummyfunc (void); - int hiddenvar; - int exportedvar; - int hiddenfunc (void) { return 51; } - int exportedfunc (void) { return 1225736919; } - void dummyfunc (void) {} - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_cc_visibility=yes -else $as_nop - gl_cv_cc_visibility=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 -printf "%s\n" "$gl_cv_cc_visibility" >&6; } - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 - fi - fi - - - -printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h + gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext" fi @@ -47477,11 +38196,7 @@ printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h - - - - - GL_GNULIB_NL_LANGINFO=1 + GNULIB_NL_LANGINFO=1 @@ -47494,241 +38209,12 @@ printf "%s\n" "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h - case "$host_os" in - mingw* | pw*) - REPLACE_OPEN=1 - ;; - *) - - if test "$gl_cv_macro_O_CLOEXEC" != yes; then - REPLACE_OPEN=1 - fi - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 -printf %s "checking whether open recognizes a trailing slash... " >&6; } -if test ${gl_cv_func_open_slash+y} -then : - printf %s "(cached) " >&6 -else $as_nop - # Assume that if we have lstat, we can also check symlinks. - if test $ac_cv_func_lstat = yes; then - touch conftest.tmp - ln -s conftest.tmp conftest.lnk - fi - if test "$cross_compiling" = yes -then : - - case "$host_os" in - freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) - gl_cv_func_open_slash="guessing no" ;; - *) - gl_cv_func_open_slash="guessing yes" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#if HAVE_UNISTD_H -# include -#endif - - -$gl_mda_defines - -int main () -{ - int result = 0; -#if HAVE_LSTAT - if (open ("conftest.lnk/", O_RDONLY) != -1) - result |= 1; -#endif - if (open ("conftest.sl/", O_CREAT, 0600) >= 0) - result |= 2; - return result; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_open_slash=yes -else $as_nop - gl_cv_func_open_slash=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm -f conftest.sl conftest.tmp conftest.lnk - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 -printf "%s\n" "$gl_cv_func_open_slash" >&6; } - case "$gl_cv_func_open_slash" in - *no) - -printf "%s\n" "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h - - ;; - esac - - case "$gl_cv_func_open_slash" in - *no) - REPLACE_OPEN=1 - ;; - esac - ;; - esac - - - - - if test $REPLACE_OPEN = 1; then - GL_COND_OBJ_OPEN_TRUE= - GL_COND_OBJ_OPEN_FALSE='#' -else - GL_COND_OBJ_OPEN_TRUE='#' - GL_COND_OBJ_OPEN_FALSE= -fi -: - if test -z "${GL_COND_OBJ_OPEN_TRUE}" && test -z "${GL_COND_OBJ_OPEN_FALSE}"; then - GL_COND_OBJ_OPEN_TRUE='#' - GL_COND_OBJ_OPEN_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_OPEN_TRUE"; then : - - - - : - - -fi - - - - - - - - - - GL_GNULIB_OPEN=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_OPEN 1" >>confdefs.h - - - - - - - - - - if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether realloc (0, 0) returns nonnull" >&5 -printf %s "checking whether realloc (0, 0) returns nonnull... " >&6; } -if test ${ac_cv_func_realloc_0_nonnull+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ - | gnu* | *-musl* | midnightbsd* \ - | hpux* | solaris* | cygwin* | mingw* | msys* ) - ac_cv_func_realloc_0_nonnull="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -void *p = realloc (0, 0); - int result = !p; - free (p); - return result; - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - ac_cv_func_realloc_0_nonnull=yes -else $as_nop - ac_cv_func_realloc_0_nonnull=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 -printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; } - case $ac_cv_func_realloc_0_nonnull in #( - *yes) : - ;; #( - *) : - REPLACE_REALLOC_FOR_REALLOC_GNU=1 ;; -esac - - fi - - if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" - + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_READ=1 fi - - - - - - - - GL_GNULIB_REALLOC_GNU=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_REALLOC_GNU 1" >>confdefs.h - - - - - - - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then - REPLACE_REALLOC_FOR_REALLOC_POSIX=1 - fi - - if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then + if test $REPLACE_READ = 1; then @@ -47737,86 +38223,22 @@ printf "%s\n" "#define GNULIB_TEST_REALLOC_GNU 1" >>confdefs.h - gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" - - fi - - - - - - - - - - GL_GNULIB_REALLOC_POSIX=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h - - - - - - - - - ac_fn_c_check_func "$LINENO" "reallocarray" "ac_cv_func_reallocarray" -if test "x$ac_cv_func_reallocarray" = xyes -then : - printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h - -fi - - if test "$ac_cv_func_reallocarray" = no; then - HAVE_REALLOCARRAY=0 - elif test "$gl_cv_malloc_ptrdiff" = no; then - REPLACE_REALLOCARRAY=1 - fi - - - if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then - GL_COND_OBJ_REALLOCARRAY_TRUE= - GL_COND_OBJ_REALLOCARRAY_FALSE='#' -else - GL_COND_OBJ_REALLOCARRAY_TRUE='#' - GL_COND_OBJ_REALLOCARRAY_FALSE= -fi -: - if test -z "${GL_COND_OBJ_REALLOCARRAY_TRUE}" && test -z "${GL_COND_OBJ_REALLOCARRAY_FALSE}"; then - GL_COND_OBJ_REALLOCARRAY_TRUE='#' - GL_COND_OBJ_REALLOCARRAY_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_REALLOCARRAY_TRUE"; then : + gl_LIBOBJS="$gl_LIBOBJS read.$ac_objext" : - -fi - - -printf "%s\n" "#define GNULIB_REALLOCARRAY 1" >>confdefs.h + fi + GNULIB_READ=1 - - GL_GNULIB_REALLOCARRAY=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_REALLOCARRAY 1" >>confdefs.h +printf "%s\n" "#define GNULIB_TEST_READ 1" >>confdefs.h @@ -47838,6 +38260,11 @@ fi # If cross compiling, assume the test would fail and use the included # regex.c. + : + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5 printf %s "checking for working re_compile_pattern... " >&6; } @@ -47847,13 +38274,7 @@ then : else $as_nop if test "$cross_compiling" = yes then : - case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;; - # Otherwise obey --enable-cross-guesses. - *) gl_cv_func_re_compile_pattern_working="$gl_cross_guess_normal" ;; - esac - + gl_cv_func_re_compile_pattern_working=no else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -47862,19 +38283,9 @@ else $as_nop #include #include #include - - #if defined M_CHECK_ACTION || HAVE_DECL_ALARM - # include + #if HAVE_DECL_ALARM # include - #endif - - #if HAVE_MALLOC_H - # include - #endif - - #ifdef M_CHECK_ACTION - /* Exit with distinguishable exit code. */ - static void sigabrt_no_core (int sig) { raise (SIGTERM); } + # include #endif int @@ -47887,22 +38298,15 @@ int result = 0; const char *s; struct re_registers regs; - /* Some builds of glibc go into an infinite loop on this - test. Use alarm to force death, and mallopt to avoid - malloc recursion in diagnosing the corrupted heap. */ #if HAVE_DECL_ALARM + /* Some builds of glibc go into an infinite loop on this test. */ signal (SIGALRM, SIG_DFL); alarm (2); #endif -#ifdef M_CHECK_ACTION - signal (SIGABRT, sigabrt_no_core); - mallopt (M_CHECK_ACTION, 2); -#endif - if (setlocale (LC_ALL, "en_US.UTF-8")) { { - /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html + /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the @@ -47916,20 +38320,16 @@ int result = 0; s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; - else - { - if (re_search (®ex, data, sizeof data - 1, - 0, sizeof data - 1, ®s) - != -1) - result |= 1; - regfree (®ex); - } + else if (re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, ®s) + != -1) + result |= 1; } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in - . + . */ static char const pat[] = "[^x]x"; static char const data[] = @@ -47954,7 +38354,6 @@ int result = 0; 0, sizeof data - 1, 0); if (i != 0 && i != 21) result |= 1; - regfree (®ex); } } @@ -47968,13 +38367,9 @@ int result = 0; s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; - else - { - /* This should fail, but succeeds for glibc-2.5. */ - if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) - result |= 2; - regfree (®ex); - } + /* This should fail, but succeeds for glibc-2.5. */ + else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ @@ -47986,10 +38381,7 @@ int result = 0; s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) - { - result |= 4; - regfree (®ex); - } + result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ @@ -47997,18 +38389,13 @@ int result = 0; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) - { - result |= 8; - regfree (®ex); - } + result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; - else - regfree (®ex); /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ @@ -48016,35 +38403,17 @@ int result = 0; s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; - else - { - /* This should match, but does not for glibc-2.2.1. */ - if (re_match (®ex, "an", 2, 0, ®s) != 2) - result |= 8; - else - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } + /* This should match, but does not for glibc-2.2.1. */ + else if (re_match (®ex, "an", 2, 0, ®s) != 2) + result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; - else - { - /* glibc-2.2.93 does not work with a negative RANGE argument. */ - if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) - result |= 8; - else - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } + /* glibc-2.2.93 does not work with a negative RANGE argument. */ + else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) + result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ @@ -48053,89 +38422,25 @@ int result = 0; s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; - else - { - if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) - result |= 16; - else - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } + else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) + result |= 16; /* Catch a bug reported by Vin Shelton in - https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html + http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("[[:alnum:]_-]\\\\+\$", 16, ®ex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; - else - regfree (®ex); /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; - /* Matching with the compiled form of this regexp would provoke - an assertion failure prior to glibc-2.28: - regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed - With glibc-2.28, compilation fails and reports the invalid - back reference. */ - re_set_syntax (RE_SYNTAX_POSIX_EGREP); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("0|()0|\\\\1|0", 10, ®ex); - if (!s) - { - memset (®s, 0, sizeof regs); - i = re_search (®ex, "x", 1, 0, 1, ®s); - if (i != -1) - result |= 64; - if (0 <= i) - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } - else - { - if (strcmp (s, "Invalid back reference")) - result |= 64; - } - - /* glibc bug 11053. */ - re_set_syntax (RE_SYNTAX_POSIX_BASIC); - memset (®ex, 0, sizeof regex); - static char const pat_sub2[] = "\\\\(a*\\\\)*a*\\\\1"; - s = re_compile_pattern (pat_sub2, sizeof pat_sub2 - 1, ®ex); - if (s) - result |= 64; - else - { - memset (®s, 0, sizeof regs); - static char const data[] = "a"; - int datalen = sizeof data - 1; - i = re_search (®ex, data, datalen, 0, datalen, ®s); - if (i != 0) - result |= 64; - else if (regs.num_regs < 2) - result |= 64; - else if (! (regs.start[0] == 0 && regs.end[0] == 1)) - result |= 64; - else if (! (regs.start[1] == 0 && regs.end[1] == 0)) - result |= 64; - regfree (®ex); - free (regs.start); - free (regs.end); - } - #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and @@ -48164,13 +38469,12 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5 printf "%s\n" "$gl_cv_func_re_compile_pattern_working" >&6; } - case "$gl_cv_func_re_compile_pattern_working" in #( - *yes) ac_use_included_regex=no;; #( - *no) ac_use_included_regex=yes;; + case $gl_cv_func_re_compile_pattern_working in #( + yes) ac_use_included_regex=no;; #( + no) ac_use_included_regex=yes;; esac ;; *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5 @@ -48231,21 +38535,17 @@ printf "%s\n" "#define regfree rpl_regfree" >>confdefs.h fi + if test $ac_use_included_regex = yes; then - if test $ac_use_included_regex = yes; then - GL_COND_OBJ_REGEX_TRUE= - GL_COND_OBJ_REGEX_FALSE='#' -else - GL_COND_OBJ_REGEX_TRUE='#' - GL_COND_OBJ_REGEX_FALSE= -fi -: - if test -z "${GL_COND_OBJ_REGEX_TRUE}" && test -z "${GL_COND_OBJ_REGEX_FALSE}"; then - GL_COND_OBJ_REGEX_TRUE='#' - GL_COND_OBJ_REGEX_FALSE='#' - fi - if test -z "$GL_COND_OBJ_REGEX_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext" + @@ -48261,6 +38561,18 @@ then : fi + : + + + + + + + + + + + ac_fn_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_isblank" = xyes @@ -48272,8 +38584,10 @@ fi printf "%s\n" "#define HAVE_DECL_ISBLANK $ac_have_decl" >>confdefs.h + fi + + -fi SERVENT_LIB= gl_saved_libs="$LIBS" @@ -48410,12 +38724,10 @@ else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_setenv_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_setenv_works="$gl_cross_guess_normal" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_setenv_works="guessing no" ;; esac else $as_nop @@ -48470,30 +38782,24 @@ printf "%s\n" "$gl_cv_func_setenv_works" >&6; } esac fi + if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext" - if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then - GL_COND_OBJ_SETENV_TRUE= - GL_COND_OBJ_SETENV_FALSE='#' -else - GL_COND_OBJ_SETENV_TRUE='#' - GL_COND_OBJ_SETENV_FALSE= -fi -: - if test -z "${GL_COND_OBJ_SETENV_TRUE}" && test -z "${GL_COND_OBJ_SETENV_FALSE}"; then - GL_COND_OBJ_SETENV_TRUE='#' - GL_COND_OBJ_SETENV_FALSE='#' fi - - - - - - GL_GNULIB_SETENV=1 + GNULIB_SETENV=1 @@ -48504,342 +38810,6 @@ printf "%s\n" "#define GNULIB_TEST_SETENV 1" >>confdefs.h - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (LC_ALL, NULL) is multithread-safe" >&5 -printf %s "checking whether setlocale (LC_ALL, NULL) is multithread-safe... " >&6; } -if test ${gl_cv_func_setlocale_null_all_mtsafe+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin. - *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*) - gl_cv_func_setlocale_null_all_mtsafe=no ;; - # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. - *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) - gl_cv_func_setlocale_null_all_mtsafe=yes ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_all_mtsafe" >&5 -printf "%s\n" "$gl_cv_func_setlocale_null_all_mtsafe" >&6; } - case "$host_os" in - mingw*) ;; - *) - if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then - gl_cv_func_setlocale_null_all_mtsafe="trivially yes" - fi - ;; - esac - case "$gl_cv_func_setlocale_null_all_mtsafe" in - *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; - *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; - esac - -printf "%s\n" "#define SETLOCALE_NULL_ALL_MTSAFE $SETLOCALE_NULL_ALL_MTSAFE" >>confdefs.h - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setlocale (category, NULL) is multithread-safe" >&5 -printf %s "checking whether setlocale (category, NULL) is multithread-safe... " >&6; } -if test ${gl_cv_func_setlocale_null_one_mtsafe+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - # Guess no on OpenBSD, AIX. - openbsd* | aix*) - gl_cv_func_setlocale_null_one_mtsafe=no ;; - # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. - *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) - gl_cv_func_setlocale_null_one_mtsafe=yes ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setlocale_null_one_mtsafe" >&5 -printf "%s\n" "$gl_cv_func_setlocale_null_one_mtsafe" >&6; } - case "$host_os" in - mingw*) ;; - *) - if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then - gl_cv_func_setlocale_null_one_mtsafe="trivially yes" - fi - ;; - esac - case "$gl_cv_func_setlocale_null_one_mtsafe" in - *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; - *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; - esac - -printf "%s\n" "#define SETLOCALE_NULL_ONE_MTSAFE $SETLOCALE_NULL_ONE_MTSAFE" >>confdefs.h - - - if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then - case "$host_os" in - mingw*) LIB_SETLOCALE_NULL= ;; - *) - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 -printf %s "checking whether imported symbols can be declared weak... " >&6; } -if test ${gl_cv_have_weak+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case "$host_os" in - cygwin*) - gl_cv_have_weak="guessing no" - ;; - *) - gl_cv_have_weak=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern void xyzzy (); -#pragma weak xyzzy -int -main (void) -{ -xyzzy(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_have_weak=maybe -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test $gl_cv_have_weak = maybe; then - if test "$cross_compiling" = yes -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __ELF__ - Extensible Linking Format - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Extensible Linking Format" >/dev/null 2>&1 -then : - gl_cv_have_weak="guessing yes" -else $as_nop - gl_cv_have_weak="guessing no" -fi -rm -rf conftest* - - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#pragma weak fputs -int main () -{ - return (fputs == NULL); -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_have_weak=yes -else $as_nop - gl_cv_have_weak=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi - ;; - esac - case " $LDFLAGS " in - *" -static "*) gl_cv_have_weak=no ;; - esac - case "$gl_cv_have_weak" in - *yes) - case "$host_os" in - freebsd* | dragonfly* | midnightbsd*) - : > conftest1.c - $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&5 2>&1 - cat < conftest2.c -#include -#pragma weak pthread_mutexattr_gettype -int main () -{ - return (pthread_mutexattr_gettype != NULL); -} -EOF - $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&5 2>&1 \ - || gl_cv_have_weak=no - rm -f conftest1.c libempty.so conftest2.c conftest - ;; - esac - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 -printf "%s\n" "$gl_cv_have_weak" >&6; } - case "$gl_cv_have_weak" in - *yes) - -printf "%s\n" "#define HAVE_WEAK_SYMBOLS 1" >>confdefs.h - - ;; - esac - - case "$gl_cv_have_weak" in - *yes) LIB_SETLOCALE_NULL= ;; - *) LIB_SETLOCALE_NULL="$LIBPTHREAD" ;; - esac - ;; - esac - else - LIB_SETLOCALE_NULL= - fi - - - - if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then - GL_COND_OBJ_SETLOCALE_LOCK_TRUE= - GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' -else - GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' - GL_COND_OBJ_SETLOCALE_LOCK_FALSE= -fi -: - if test -z "${GL_COND_OBJ_SETLOCALE_LOCK_TRUE}" && test -z "${GL_COND_OBJ_SETLOCALE_LOCK_FALSE}"; then - GL_COND_OBJ_SETLOCALE_LOCK_TRUE='#' - GL_COND_OBJ_SETLOCALE_LOCK_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_SETLOCALE_LOCK_TRUE"; then : - - - - - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 -printf %s "checking whether the -Werror option is usable... " >&6; } -if test ${gl_cv_cc_vis_werror+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_cc_vis_werror=yes -else $as_nop - gl_cv_cc_vis_werror=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 -printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 -printf %s "checking for simple visibility declarations... " >&6; } -if test ${gl_cv_cc_visibility+y} -then : - printf %s "(cached) " >&6 -else $as_nop - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - if test $gl_cv_cc_vis_werror = yes; then - CFLAGS="$CFLAGS -Werror" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void); - void dummyfunc (void); - int hiddenvar; - int exportedvar; - int hiddenfunc (void) { return 51; } - int exportedfunc (void) { return 1225736919; } - void dummyfunc (void) {} - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - gl_cv_cc_visibility=yes -else $as_nop - gl_cv_cc_visibility=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 -printf "%s\n" "$gl_cv_cc_visibility" >&6; } - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 - fi - fi - - - -printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h - - - - -fi - - - - - - - - - - GL_GNULIB_SETLOCALE_NULL=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_SETLOCALE_NULL 1" >>confdefs.h - - - - ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes then : @@ -48854,7 +38824,7 @@ then : printf %s "(cached) " >&6 else $as_nop - gl_cv_size_max=no + gl_cv_size_max= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -48874,7 +38844,7 @@ then : fi rm -rf conftest* - if test $gl_cv_size_max != yes; then + if test -z "$gl_cv_size_max"; then if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include #include " then : @@ -48955,14 +38925,7 @@ else $as_nop if test "$cross_compiling" = yes then : - case "$host_os" in - # Guess yes on Android. - linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; - *) gl_cv_func_snprintf_size1="guessing yes" ;; - esac - + gl_cv_func_snprintf_size1="guessing yes" else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -49023,13 +38986,10 @@ then : case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) - gl_cv_func_printf_positions="guessing no";; - beos*) gl_cv_func_printf_positions="guessing no";; - # Guess yes on Android. - linux*-android*) gl_cv_func_printf_positions="guessing yes";; - # Guess no on native Windows. - mingw* | pw*) gl_cv_func_printf_positions="guessing no";; - *) gl_cv_func_printf_positions="guessing yes";; + gl_cv_func_printf_positions="guessing no";; + beos*) gl_cv_func_printf_positions="guessing no";; + mingw* | pw*) gl_cv_func_printf_positions="guessing no";; + *) gl_cv_func_printf_positions="guessing yes";; esac else $as_nop @@ -49088,16 +39048,17 @@ printf "%s\n" "$gl_cv_func_printf_positions" >&6; } if test $ac_cv_func_snprintf = yes; then REPLACE_SNPRINTF=1 - else - - if test $ac_cv_have_decl_snprintf = yes; then - REPLACE_SNPRINTF=1 - fi fi : fi + : + + + + + if test $ac_cv_have_decl_snprintf = no; then HAVE_DECL_SNPRINTF=0 fi @@ -49107,11 +39068,7 @@ printf "%s\n" "$gl_cv_func_printf_positions" >&6; } - - - - - GL_GNULIB_SNPRINTF=1 + GNULIB_SNPRINTF=1 @@ -49128,6 +39085,204 @@ printf "%s\n" "#define GNULIB_SNPRINTF 1" >>confdefs.h + + + + : + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + LIBSOCKET= + if test $HAVE_WINSOCK2_H = 1; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need to call WSAStartup in winsock2.h and -lws2_32" >&5 +printf %s "checking if we need to call WSAStartup in winsock2.h and -lws2_32... " >&6; } +if test ${gl_cv_func_wsastartup+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_WINSOCK2_H +# include +#endif +int +main (void) +{ + + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_func_wsastartup=yes +else $as_nop + gl_cv_func_wsastartup=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gl_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wsastartup" >&5 +printf "%s\n" "$gl_cv_func_wsastartup" >&6; } + if test "$gl_cv_func_wsastartup" = "yes"; then + +printf "%s\n" "#define WINDOWS_SOCKETS 1" >>confdefs.h + + LIBSOCKET='-lws2_32' + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 +printf %s "checking for library containing setsockopt... " >&6; } +if test ${gl_cv_lib_socket+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + gl_cv_lib_socket= + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else $as_nop + gl_save_LIBS="$LIBS" + LIBS="$gl_save_LIBS -lsocket" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_lib_socket="-lsocket" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$gl_cv_lib_socket"; then + LIBS="$gl_save_LIBS -lnetwork" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_lib_socket="-lnetwork" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$gl_cv_lib_socket"; then + LIBS="$gl_save_LIBS -lnet" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern +#ifdef __cplusplus +"C" +#endif +char setsockopt(); +int +main (void) +{ +setsockopt(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gl_cv_lib_socket="-lnet" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + fi + LIBS="$gl_save_LIBS" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$gl_cv_lib_socket"; then + gl_cv_lib_socket="none needed" + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_socket" >&5 +printf "%s\n" "$gl_cv_lib_socket" >&6; } + if test "$gl_cv_lib_socket" != "none needed"; then + LIBSOCKET="$gl_cv_lib_socket" + fi + fi + + + + + + + : + + ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " /* is not needed according to POSIX, but the in i386-unknown-freebsd4.10 and @@ -49146,7 +39301,7 @@ then : else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5 printf %s "checking for socklen_t equivalent... " >&6; } -if test ${gl_cv_socklen_t_equiv+y} + if test ${gl_cv_socklen_t_equiv+y} then : printf %s "(cached) " >&6 else $as_nop @@ -49179,12 +39334,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done test "$gl_cv_socklen_t_equiv" != "" && break done - if test "$gl_cv_socklen_t_equiv" = ""; then - as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5 - fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5 + + if test "$gl_cv_socklen_t_equiv" = ""; then + as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5 printf "%s\n" "$gl_cv_socklen_t_equiv" >&6; } printf "%s\n" "#define socklen_t $gl_cv_socklen_t_equiv" >>confdefs.h @@ -49227,301 +39383,20 @@ printf "%s\n" "#define ssize_t int" >>confdefs.h fi - - - - case "$host_os" in - mingw*) - REPLACE_STAT=1 - ;; - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 -printf %s "checking whether stat handles trailing slashes on files... " >&6; } -if test ${gl_cv_func_stat_file_slash+y} -then : - printf %s "(cached) " >&6 -else $as_nop - touch conftest.tmp - # Assume that if we have lstat, we can also check symlinks. - if test $ac_cv_func_lstat = yes; then - ln -s conftest.tmp conftest.lnk - fi - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess yes on Linux systems. - linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -int result = 0; - struct stat st; - if (!stat ("conftest.tmp/", &st)) - result |= 1; -#if HAVE_LSTAT - if (!stat ("conftest.lnk/", &st)) - result |= 2; -#endif - return result; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_stat_file_slash=yes -else $as_nop - gl_cv_func_stat_file_slash=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - rm -f conftest.tmp conftest.lnk -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 -printf "%s\n" "$gl_cv_func_stat_file_slash" >&6; } - case $gl_cv_func_stat_file_slash in - *no) - REPLACE_STAT=1 - -printf "%s\n" "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h -;; - esac - case $host_os in - solaris*) - REPLACE_FSTAT=1 ;; - esac - ;; - esac - - - if test $REPLACE_STAT = 1; then - GL_COND_OBJ_STAT_TRUE= - GL_COND_OBJ_STAT_FALSE='#' -else - GL_COND_OBJ_STAT_TRUE='#' - GL_COND_OBJ_STAT_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STAT_TRUE}" && test -z "${GL_COND_OBJ_STAT_FALSE}"; then - GL_COND_OBJ_STAT_TRUE='#' - GL_COND_OBJ_STAT_FALSE='#' - fi - - if test -z "$GL_COND_OBJ_STAT_TRUE"; then : - - case "$host_os" in - mingw*) - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" - - ;; - esac - - - - : - - -fi - - - - - - - - - - GL_GNULIB_STAT=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_STAT 1" >>confdefs.h - - - - - - - - ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1" >>confdefs.h - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 -printf %s "checking whether struct stat.st_atim is of type struct timespec... " >&6; } -if test ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - #if HAVE_SYS_TIME_H - # include - #endif - #include - struct timespec ts; - struct stat st; - -int -main (void) -{ - - st.st_atim = ts; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes -else $as_nop - ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 -printf "%s\n" "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } - if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then - -printf "%s\n" "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h - - fi -else $as_nop - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1" >>confdefs.h - - -else $as_nop - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1" >>confdefs.h - - -else $as_nop - ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1" >>confdefs.h - - -fi - -fi - -fi - -fi - - - - - - ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1" >>confdefs.h - - -else $as_nop - ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1" >>confdefs.h - - -else $as_nop - ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include - #include -" -if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes -then : - -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1" >>confdefs.h - - -fi - -fi - -fi - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alignas and alignof" >&5 -printf %s "checking for alignas and alignof... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5 +printf %s "checking for working stdalign.h... " >&6; } if test ${gl_cv_header_working_stdalign_h+y} then : printf %s "(cached) " >&6 else $as_nop - gl_save_CFLAGS=$CFLAGS - for gl_working in "yes, keywords" "yes, macros"; do - case $gl_working in #( - *stdalign.h*) : - CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H" ;; #( - *) : - ;; -esac - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - #ifdef INCLUDE_STDALIGN_H - #include - #endif +#include #include /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 - . */ + . */ #ifdef __cplusplus template struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper, b) @@ -49532,16 +39407,11 @@ esac char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; - /* Test alignas only on platforms where gnulib can help. */ + /* Test _Alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ - || (__TINYC__ && defined __attribute__) \ - || (defined __APPLE__ && defined __MACH__ \ - ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - : __GNUC__) \ - || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ - || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ - || 1300 <= _MSC_VER) + || __GNUC__ || __IBMC__ || __IBMCPP__ || __ICC \ + || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; @@ -49557,176 +39427,109 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - gl_cv_header_working_stdalign_h=$gl_working + gl_cv_header_working_stdalign_h=yes else $as_nop gl_cv_header_working_stdalign_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - - CFLAGS=$gl_save_CFLAGS - test "$gl_cv_header_working_stdalign_h" != no && break - done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5 printf "%s\n" "$gl_cv_header_working_stdalign_h" >&6; } - GL_GENERATE_STDALIGN_H=false - case $gl_cv_header_working_stdalign_h in #( - no) : - GL_GENERATE_STDALIGN_H=true ;; #( - yes*keyword*) : - -printf "%s\n" "#define HAVE_C_ALIGNASOF 1" >>confdefs.h - ;; #( - *) : - ;; -esac + if test $gl_cv_header_working_stdalign_h = yes; then + STDALIGN_H='' + else + STDALIGN_H='stdalign.h' + fi - - - - - - - - case "$GL_GENERATE_STDALIGN_H" in - false) STDALIGN_H='' ;; - true) - if test -z "$STDALIGN_H"; then - STDALIGN_H="${gl_source_base_prefix}stdalign.h" - fi - ;; - *) echo "*** GL_GENERATE_STDALIGN_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_STDALIGN_H; then + if test -n "$STDALIGN_H"; then GL_GENERATE_STDALIGN_H_TRUE= GL_GENERATE_STDALIGN_H_FALSE='#' else GL_GENERATE_STDALIGN_H_TRUE='#' GL_GENERATE_STDALIGN_H_FALSE= fi -: - if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then - GL_GENERATE_STDALIGN_H_TRUE='#' - GL_GENERATE_STDALIGN_H_FALSE='#' + + + + + + # Define two additional variables used in the Makefile substitution. + + if test "$ac_cv_header_stdbool_h" = yes; then + STDBOOL_H='' + else + STDBOOL_H='stdbool.h' + fi + + if test -n "$STDBOOL_H"; then + GL_GENERATE_STDBOOL_H_TRUE= + GL_GENERATE_STDBOOL_H_FALSE='#' +else + GL_GENERATE_STDBOOL_H_TRUE='#' + GL_GENERATE_STDBOOL_H_FALSE= +fi + + + if test "$ac_cv_type__Bool" = yes; then + HAVE__BOOL=1 + else + HAVE__BOOL=0 fi - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bool, true, false" >&5 -printf %s "checking for bool, true, false... " >&6; } -if test ${gl_cv_c_bool+y} + STDDEF_H= + if test $gt_cv_c_wchar_t = no; then + HAVE_WCHAR_T=0 + STDDEF_H=stddef.h + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 +printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; } +if test ${gl_cv_decl_null_works+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include + int test[2 * (sizeof NULL == sizeof (void *)) -1]; - #if true == false - #error "true == false" - #endif - extern bool b; - bool b = true == false; +int +main (void) +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_compile "$LINENO" then : - gl_cv_c_bool=yes + gl_cv_decl_null_works=yes else $as_nop - gl_cv_c_bool=no + gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_bool" >&5 -printf "%s\n" "$gl_cv_c_bool" >&6; } - if test "$gl_cv_c_bool" = yes; then - -printf "%s\n" "#define HAVE_C_BOOL 1" >>confdefs.h - +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 +printf "%s\n" "$gl_cv_decl_null_works" >&6; } + if test $gl_cv_decl_null_works = no; then + REPLACE_NULL=1 + STDDEF_H=stddef.h fi - - - - - - if test $ac_cv_header_stdckdint_h = yes; then - GL_GENERATE_STDCKDINT_H=false - else - GL_GENERATE_STDCKDINT_H=true - fi - - - - - case "$GL_GENERATE_STDCKDINT_H" in - false) STDCKDINT_H='' ;; - true) - if test -z "$STDCKDINT_H"; then - STDCKDINT_H="${gl_source_base_prefix}stdckdint.h" - fi - ;; - *) echo "*** GL_GENERATE_STDCKDINT_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_STDCKDINT_H; then - GL_GENERATE_STDCKDINT_H_TRUE= - GL_GENERATE_STDCKDINT_H_FALSE='#' -else - GL_GENERATE_STDCKDINT_H_TRUE='#' - GL_GENERATE_STDCKDINT_H_FALSE= -fi -: - if test -z "${GL_GENERATE_STDCKDINT_H_TRUE}" && test -z "${GL_GENERATE_STDCKDINT_H_FALSE}"; then - GL_GENERATE_STDCKDINT_H_TRUE='#' - GL_GENERATE_STDCKDINT_H_FALSE='#' - fi - - - - - - - - - - - - - - - - - case "$GL_GENERATE_STDDEF_H" in - false) STDDEF_H='' ;; - true) - if test -z "$STDDEF_H"; then - STDDEF_H="${gl_source_base_prefix}stddef.h" - fi - ;; - *) echo "*** GL_GENERATE_STDDEF_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_STDDEF_H; then + if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi -: - if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then - GL_GENERATE_STDDEF_H_TRUE='#' - GL_GENERATE_STDDEF_H_FALSE='#' - fi + + if test -n "$STDDEF_H"; then @@ -49735,31 +39538,66 @@ fi + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stddef_h='<'stddef.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stddef_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'stddef.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' - - case "$GL_GENERATE_STDINT_H" in - false) STDINT_H='' ;; - true) - if test -z "$STDINT_H"; then - STDINT_H="${gl_source_base_prefix}stdint.h" - fi - ;; - *) echo "*** GL_GENERATE_STDINT_H is not set correctly" 1>&2; exit 1 ;; - esac - - - if $GL_GENERATE_STDINT_H; then - GL_GENERATE_STDINT_H_TRUE= - GL_GENERATE_STDINT_H_FALSE='#' -else - GL_GENERATE_STDINT_H_TRUE='#' - GL_GENERATE_STDINT_H_FALSE= fi -: - if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then - GL_GENERATE_STDINT_H_TRUE='#' - GL_GENERATE_STDINT_H_FALSE='#' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 +printf "%s\n" "$gl_cv_next_stddef_h" >&6; } + fi + NEXT_STDDEF_H=$gl_cv_next_stddef_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stddef.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stddef_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive + + + + fi @@ -49770,408 +39608,265 @@ fi - case "$GL_GENERATE_LIMITS_H" in - false) LIMITS_H='' ;; - true) - if test -z "$LIMITS_H"; then - LIMITS_H="${gl_source_base_prefix}limits.h" - fi - ;; - *) echo "*** GL_GENERATE_LIMITS_H is not set correctly" 1>&2; exit 1 ;; - esac - if $GL_GENERATE_LIMITS_H; then - GL_GENERATE_LIMITS_H_TRUE= - GL_GENERATE_LIMITS_H_FALSE='#' -else - GL_GENERATE_LIMITS_H_TRUE='#' - GL_GENERATE_LIMITS_H_FALSE= + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdio_h='<'stdio.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stdio_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'stdio.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + + fi -: - if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then - GL_GENERATE_LIMITS_H_TRUE='#' - GL_GENERATE_LIMITS_H_FALSE='#' - fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 +printf "%s\n" "$gl_cv_next_stdio_h" >&6; } + fi + NEXT_STDIO_H=$gl_cv_next_stdio_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdio.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdio_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive - - - - - - - - - - if test $REPLACE_STDIO_READ_FUNCS = 1; then - GL_COND_OBJ_STDIO_READ_TRUE= - GL_COND_OBJ_STDIO_READ_FALSE='#' -else - GL_COND_OBJ_STDIO_READ_TRUE='#' - GL_COND_OBJ_STDIO_READ_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STDIO_READ_TRUE}" && test -z "${GL_COND_OBJ_STDIO_READ_FALSE}"; then - GL_COND_OBJ_STDIO_READ_TRUE='#' - GL_COND_OBJ_STDIO_READ_FALSE='#' - fi - - - if test $REPLACE_STDIO_WRITE_FUNCS = 1; then - GL_COND_OBJ_STDIO_WRITE_TRUE= - GL_COND_OBJ_STDIO_WRITE_FALSE='#' -else - GL_COND_OBJ_STDIO_WRITE_TRUE='#' - GL_COND_OBJ_STDIO_WRITE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STDIO_WRITE_TRUE}" && test -z "${GL_COND_OBJ_STDIO_WRITE_FALSE}"; then - GL_COND_OBJ_STDIO_WRITE_TRUE='#' - GL_COND_OBJ_STDIO_WRITE_FALSE='#' - fi - - - - - - - - - - - GL_GNULIB_FSCANF=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FSCANF 1" >>confdefs.h - - - + GNULIB_FSCANF=1 printf "%s\n" "#define GNULIB_FSCANF 1" >>confdefs.h - - - - - - - - - - GL_GNULIB_SCANF=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_SCANF 1" >>confdefs.h - - - + GNULIB_SCANF=1 printf "%s\n" "#define GNULIB_SCANF 1" >>confdefs.h - - - - - - - - - - GL_GNULIB_FGETC=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FGETC 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_GETC=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_GETC 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_GETCHAR=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_GETCHAR 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_FGETS=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FGETS 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_FREAD=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FREAD 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_FPRINTF=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FPRINTF 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_PRINTF=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_PRINTF 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_VFPRINTF=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_VFPRINTF 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_VPRINTF=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_VPRINTF 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_FPUTC=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FPUTC 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_PUTC=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_PUTC 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_PUTCHAR=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_PUTCHAR 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_FPUTS=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FPUTS 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_PUTS=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_PUTS 1" >>confdefs.h - - - - - - - - - - - - - GL_GNULIB_FWRITE=1 - - - - - -printf "%s\n" "#define GNULIB_TEST_FWRITE 1" >>confdefs.h - - - - - - - - + GNULIB_FGETC=1 + GNULIB_GETC=1 + GNULIB_GETCHAR=1 + GNULIB_FGETS=1 + GNULIB_FREAD=1 + + + GNULIB_FPRINTF=1 + GNULIB_PRINTF=1 + GNULIB_VFPRINTF=1 + GNULIB_VPRINTF=1 + GNULIB_FPUTC=1 + GNULIB_PUTC=1 + GNULIB_PUTCHAR=1 + GNULIB_FPUTS=1 + GNULIB_PUTS=1 + GNULIB_FWRITE=1 + + + + + for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stdlib_h='<'stdlib.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_stdlib_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'stdlib.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 +printf "%s\n" "$gl_cv_next_stdlib_h" >&6; } + fi + NEXT_STDLIB_H=$gl_cv_next_stdlib_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdlib.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdlib_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive + + + + + + + for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#if HAVE_SYS_LOADAVG_H +# include +#endif +#if HAVE_RANDOM_H +# include +#endif + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -50216,48 +39911,36 @@ printf "%s\n" "#define HAVE_DECL_STRNCASECMP $ac_have_decl" >>confdefs.h fi + if test $HAVE_STRCASECMP = 0; then - if test $HAVE_STRCASECMP = 0; then - GL_COND_OBJ_STRCASECMP_TRUE= - GL_COND_OBJ_STRCASECMP_FALSE='#' -else - GL_COND_OBJ_STRCASECMP_TRUE='#' - GL_COND_OBJ_STRCASECMP_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STRCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRCASECMP_FALSE}"; then - GL_COND_OBJ_STRCASECMP_TRUE='#' - GL_COND_OBJ_STRCASECMP_FALSE='#' - fi - if test -z "$GL_COND_OBJ_STRCASECMP_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext" : - -fi - - if test $HAVE_STRNCASECMP = 0; then - GL_COND_OBJ_STRNCASECMP_TRUE= - GL_COND_OBJ_STRNCASECMP_FALSE='#' -else - GL_COND_OBJ_STRNCASECMP_TRUE='#' - GL_COND_OBJ_STRNCASECMP_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STRNCASECMP_TRUE}" && test -z "${GL_COND_OBJ_STRNCASECMP_FALSE}"; then - GL_COND_OBJ_STRNCASECMP_TRUE='#' - GL_COND_OBJ_STRNCASECMP_FALSE='#' fi + if test $HAVE_STRNCASECMP = 0; then - if test -z "$GL_COND_OBJ_STRNCASECMP_TRUE"; then : + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strncasecmp.$ac_objext" : - -fi + fi if test $HAVE_STRCASESTR = 1 && test $REPLACE_STRCASESTR = 0; then @@ -50292,7 +39975,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | then : gl_cv_func_strcasestr_linear="guessing yes" else $as_nop - gl_cv_func_strcasestr_linear="$gl_cross_guess_normal" + gl_cv_func_strcasestr_linear="guessing no" fi rm -rf conftest* @@ -50305,7 +39988,7 @@ else $as_nop #include /* for strcasestr */ #include /* for malloc */ #include /* for alarm */ -static void quit (int sig) { _exit (sig + 128); } +static void quit (int sig) { exit (sig + 128); } int main (void) @@ -50331,9 +40014,6 @@ main (void) if (!strcasestr (haystack, needle)) result |= 1; } - /* Free allocated memory, in case some sanitizer is watching. */ - free (haystack); - free (needle); return result; ; @@ -50393,10 +40073,10 @@ fi if test $ac_cv_func_strcasestr = no; then HAVE_STRCASESTR=0 else - if test $REPLACE_MEMCHR = 1; then + if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRCASESTR=1 else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 printf %s "checking whether strcasestr works... " >&6; } if test ${gl_cv_func_strcasestr_works_always+y} then : @@ -50404,10 +40084,9 @@ then : else $as_nop if test "$cross_compiling" = yes then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include /* for __GNU_LIBRARY__ */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ @@ -50429,7 +40108,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | then : gl_cv_func_strcasestr_works_always="guessing yes" else $as_nop - gl_cv_func_strcasestr_works_always="$gl_cross_guess_normal" + gl_cv_func_strcasestr_works_always="guessing no" fi rm -rf conftest* @@ -50438,13 +40117,7 @@ else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include /* for __GNU_LIBRARY__, strcasestr */ -#ifdef __GNU_LIBRARY__ - #include - #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 - Unlucky user - #endif -#endif +#include /* for strcasestr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P @@ -50501,16 +40174,7 @@ printf "%s\n" "$gl_cv_func_strcasestr_works_always" >&6; } - - - - - - - - - - GL_GNULIB_STRCASESTR=1 + GNULIB_STRCASESTR=1 @@ -50525,7 +40189,7 @@ printf "%s\n" "#define GNULIB_TEST_STRCASESTR 1" >>confdefs.h - if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then + if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 printf %s "checking for working strerror function... " >&6; } if test ${gl_cv_func_working_strerror+y} @@ -50535,12 +40199,10 @@ else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_working_strerror="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_working_strerror="guessing no" ;; esac else $as_nop @@ -50581,22 +40243,20 @@ printf "%s\n" "$gl_cv_func_working_strerror" >&6; } REPLACE_STRERROR=1 fi + if test $REPLACE_STRERROR = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" - if test $REPLACE_STRERROR = 1; then - GL_COND_OBJ_STRERROR_TRUE= - GL_COND_OBJ_STRERROR_FALSE='#' -else - GL_COND_OBJ_STRERROR_TRUE='#' - GL_COND_OBJ_STRERROR_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STRERROR_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_FALSE}"; then - GL_COND_OBJ_STRERROR_TRUE='#' - GL_COND_OBJ_STRERROR_FALSE='#' fi - printf "%s\n" "#define GNULIB_STRERROR 1" >>confdefs.h @@ -50605,16 +40265,7 @@ printf "%s\n" "#define GNULIB_STRERROR 1" >>confdefs.h - - - - - - - - - - GL_GNULIB_STRERROR=1 + GNULIB_STRERROR=1 @@ -50626,21 +40277,22 @@ printf "%s\n" "#define GNULIB_TEST_STRERROR 1" >>confdefs.h + if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then - if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then - GL_COND_OBJ_STRERROR_OVERRIDE_TRUE= - GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' -else - GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' - GL_COND_OBJ_STRERROR_OVERRIDE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_TRUE}" && test -z "${GL_COND_OBJ_STRERROR_OVERRIDE_FALSE}"; then - GL_COND_OBJ_STRERROR_OVERRIDE_TRUE='#' - GL_COND_OBJ_STRERROR_OVERRIDE_FALSE='#' - fi - if test -z "$GL_COND_OBJ_STRERROR_OVERRIDE_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext" + + + + + + : @@ -50664,9 +40316,122 @@ fi fi + fi + + + + + + + + + + + : + + + + + + + : + + + + + + if test $ac_cv_have_decl_strndup = no; then + HAVE_DECL_STRNDUP=0 + fi + + if test $ac_cv_func_strndup = yes; then + HAVE_STRNDUP=1 + # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5 +printf %s "checking for working strndup... " >&6; } +if test ${gl_cv_func_strndup_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + + case $host_os in + aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; + *) gl_cv_func_strndup_works="guessing yes";; + esac + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include +int +main (void) +{ + +#if !HAVE_DECL_STRNDUP + extern + #ifdef __cplusplus + "C" + #endif + char *strndup (const char *, size_t); +#endif + char *s; + s = strndup ("some longer string", 15); + free (s); + s = strndup ("shorter string", 13); + return s[13] != '\0'; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_strndup_works=yes +else $as_nop + gl_cv_func_strndup_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strndup_works" >&5 +printf "%s\n" "$gl_cv_func_strndup_works" >&6; } + case $gl_cv_func_strndup_works in + *no) REPLACE_STRNDUP=1 ;; + esac + else + HAVE_STRNDUP=0 + fi + + if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext" + + fi + + + + + + GNULIB_STRNDUP=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRNDUP 1" >>confdefs.h @@ -50676,6 +40441,78 @@ fi + : + + + + + + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5 +printf %s "checking for working strnlen... " >&6; } +if test ${ac_cv_func_strnlen_working+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : + # Guess no on AIX systems, yes otherwise. + case "$host_os" in + aix*) ac_cv_func_strnlen_working=no;; + *) ac_cv_func_strnlen_working=yes;; + esac +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + +#define S "foobar" +#define S_LEN (sizeof S - 1) + + /* At least one implementation is buggy: that of AIX 4.3 would + give strnlen (S, 1) == 3. */ + + int i; + for (i = 0; i < S_LEN + 1; ++i) + { + int expected = i <= S_LEN ? i : S_LEN; + if (strnlen (S, i) != expected) + return 1; + } + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_func_strnlen_working=yes +else $as_nop + ac_cv_func_strnlen_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5 +printf "%s\n" "$ac_cv_func_strnlen_working" >&6; } +test $ac_cv_func_strnlen_working = no && : + + + if test $ac_cv_func_strnlen_working = no; then + REPLACE_STRNLEN=1 + fi + fi + + if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then @@ -50684,6 +40521,24 @@ fi + gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext" + + : + fi + + + + + + GNULIB_STRNLEN=1 + + + + + +printf "%s\n" "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h + + @@ -50702,40 +40557,25 @@ fi HAVE_STRSEP=0 fi + if test $HAVE_STRSEP = 0; then - if test $HAVE_STRSEP = 0; then - GL_COND_OBJ_STRSEP_TRUE= - GL_COND_OBJ_STRSEP_FALSE='#' -else - GL_COND_OBJ_STRSEP_TRUE='#' - GL_COND_OBJ_STRSEP_FALSE= -fi -: - if test -z "${GL_COND_OBJ_STRSEP_TRUE}" && test -z "${GL_COND_OBJ_STRSEP_FALSE}"; then - GL_COND_OBJ_STRSEP_TRUE='#' - GL_COND_OBJ_STRSEP_FALSE='#' - fi - if test -z "$GL_COND_OBJ_STRSEP_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strsep.$ac_objext" : - -fi + fi - - - - - - - - - - GL_GNULIB_STRSEP=1 + GNULIB_STRSEP=1 @@ -50748,10 +40588,10 @@ printf "%s\n" "#define GNULIB_TEST_STRSEP 1" >>confdefs.h - if test $REPLACE_MEMCHR = 1; then + if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRSTR=1 else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5 printf %s "checking whether strstr works... " >&6; } if test ${gl_cv_func_strstr_works_always+y} then : @@ -50759,10 +40599,9 @@ then : else $as_nop if test "$cross_compiling" = yes then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include /* for __GNU_LIBRARY__ */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ @@ -50784,7 +40623,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | then : gl_cv_func_strstr_works_always="guessing yes" else $as_nop - gl_cv_func_strstr_works_always="$gl_cross_guess_normal" + gl_cv_func_strstr_works_always="guessing no" fi rm -rf conftest* @@ -50793,13 +40632,7 @@ else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include /* for __GNU_LIBRARY__, strstr */ -#ifdef __GNU_LIBRARY__ - #include - #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 - Unlucky user - #endif -#endif +#include /* for strstr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P @@ -50852,16 +40685,7 @@ printf "%s\n" "$gl_cv_func_strstr_works_always" >&6; } - - - - - - - - - - GL_GNULIB_STRSTR=1 + GNULIB_STRSTR=1 @@ -50875,6 +40699,423 @@ printf "%s\n" "#define GNULIB_TEST_STRSTR 1" >>confdefs.h + case "$host_os" in + osf*) + +printf "%s\n" "#define _POSIX_PII_SOCKET 1" >>confdefs.h + + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 +printf %s "checking whether is self-contained... " >&6; } +if test ${gl_cv_header_sys_socket_h_selfcontained+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_sys_socket_h_selfcontained=yes +else $as_nop + gl_cv_header_sys_socket_h_selfcontained=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 +printf "%s\n" "$gl_cv_header_sys_socket_h_selfcontained" >&6; } + if test $gl_cv_header_sys_socket_h_selfcontained = yes; then + ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" +if test "x$ac_cv_func_shutdown" = xyes +then : + printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h + +fi + + if test $ac_cv_func_shutdown = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 +printf %s "checking whether defines the SHUT_* macros... " >&6; } +if test ${gl_cv_header_sys_socket_h_shut+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_sys_socket_h_shut=yes +else $as_nop + gl_cv_header_sys_socket_h_shut=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5 +printf "%s\n" "$gl_cv_header_sys_socket_h_shut" >&6; } + if test $gl_cv_header_sys_socket_h_shut = no; then + SYS_SOCKET_H='sys/socket.h' + fi + fi + fi + # We need to check for ws2tcpip.h now. + + + + + + + + + : + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_socket_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_socket_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'sys/socket.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_sys_socket_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_sys_socket_h='<'sys/socket.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5 +printf "%s\n" "$gl_cv_next_sys_socket_h" >&6; } + fi + NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/socket.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_socket_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + HAVE_WS2TCPIP_H=0 + else + HAVE_SYS_SOCKET_H=0 + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + + + + ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " + /* sys/types.h is not needed according to POSIX, but the + sys/socket.h in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_type_struct_sockaddr_storage" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h + + +fi +ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" " + /* sys/types.h is not needed according to POSIX, but the + sys/socket.h in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +" +if test "x$ac_cv_type_sa_family_t" = xyes +then : + +printf "%s\n" "#define HAVE_SA_FAMILY_T 1" >>confdefs.h + + +fi + + if test $ac_cv_type_struct_sockaddr_storage = no; then + HAVE_STRUCT_SOCKADDR_STORAGE=0 + fi + if test $ac_cv_type_sa_family_t = no; then + HAVE_SA_FAMILY_T=0 + fi + if test $ac_cv_type_struct_sockaddr_storage != no; then + ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_WS2TCPIP_H + #include + #endif + +" +if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h + + +else $as_nop + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 +fi + + fi + if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ + || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then + SYS_SOCKET_H='sys/socket.h' + fi + + + + + : + + + + + + if test $ac_cv_header_sys_socket_h != yes; then + ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = xyes +then : + printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + +fi + + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + + + + + for gl_func in socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Some systems require prerequisite headers. */ +#include +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done + + + + + + + + + + + + + + : + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_sys_uio_h='<'sys/uio.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_sys_uio_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_sys_uio_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'sys/uio.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_sys_uio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_sys_uio_h='<'sys/uio.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5 +printf "%s\n" "$gl_cv_next_sys_uio_h" >&6; } + fi + NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/uio.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_uio_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_sys_uio_h = yes; then + HAVE_SYS_UIO_H=1 + else + HAVE_SYS_UIO_H=0 + fi @@ -50891,36 +41132,7 @@ printf "%s\n" "#define GNULIB_TEST_STRSTR 1" >>confdefs.h - - - - - - - - - - - - - - - - - - - - - - - ac_fn_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "/* mingw's provides the functions asctime_r, ctime_r, - gmtime_r, localtime_r only if or has - been included before. */ - #if defined __MINGW32__ - # include - #endif - #include - + ac_fn_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_localtime_r" = xyes then : @@ -50935,6 +41147,12 @@ printf "%s\n" "#define HAVE_DECL_LOCALTIME_R $ac_have_decl" >>confdefs.h fi + : + + + + + if test $ac_cv_func_localtime_r = yes; then HAVE_LOCALTIME_R=1 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether localtime_r is compatible with its POSIX signature" >&5 @@ -50945,14 +41163,7 @@ then : else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* mingw's provides the functions asctime_r, ctime_r, - gmtime_r, localtime_r only if or has - been included before. */ - #if defined __MINGW32__ - # include - #endif - #include - +#include int main (void) { @@ -50987,82 +41198,29 @@ printf "%s\n" "$gl_cv_time_r_posix" >&6; } fi else HAVE_LOCALTIME_R=0 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether localtime_r exists as an inline function" >&5 -printf %s "checking whether localtime_r exists as an inline function... " >&6; } -if test ${gl_cv_func_localtime_r_inline+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* mingw's provides the functions asctime_r, ctime_r, - gmtime_r, localtime_r only if or has - been included before. */ - #if defined __MINGW32__ - # include - #endif - #include - -int -main (void) -{ -time_t a; - struct tm r; - localtime_r (&a, &r); - - ; - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - gl_cv_func_localtime_r_inline=yes -else $as_nop - gl_cv_func_localtime_r_inline=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_localtime_r_inline" >&5 -printf "%s\n" "$gl_cv_func_localtime_r_inline" >&6; } - if test $gl_cv_func_localtime_r_inline = yes; then - REPLACE_LOCALTIME_R=1 - fi fi + if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then - if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then - GL_COND_OBJ_TIME_R_TRUE= - GL_COND_OBJ_TIME_R_FALSE='#' -else - GL_COND_OBJ_TIME_R_TRUE='#' - GL_COND_OBJ_TIME_R_FALSE= -fi -: - if test -z "${GL_COND_OBJ_TIME_R_TRUE}" && test -z "${GL_COND_OBJ_TIME_R_FALSE}"; then - GL_COND_OBJ_TIME_R_TRUE='#' - GL_COND_OBJ_TIME_R_FALSE='#' - fi - if test -z "$GL_COND_OBJ_TIME_R_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS time_r.$ac_objext" : - -fi + fi - - - - - GL_GNULIB_TIME_R=1 + GNULIB_TIME_R=1 @@ -51077,8 +41235,14 @@ printf "%s\n" "#define GNULIB_TEST_TIME_R 1" >>confdefs.h REPLACE_TIMEGM=0 + : + + + + + if test $ac_cv_func_timegm = yes; then - if test "$gl_cv_func_working_mktime" != yes; then + if test $gl_cv_func_working_mktime = no; then # Assume that timegm is buggy if mktime is. REPLACE_TIMEGM=1 fi @@ -51086,37 +41250,27 @@ printf "%s\n" "#define GNULIB_TEST_TIME_R 1" >>confdefs.h HAVE_TIMEGM=0 fi + if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then - if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then - GL_COND_OBJ_TIMEGM_TRUE= - GL_COND_OBJ_TIMEGM_FALSE='#' -else - GL_COND_OBJ_TIMEGM_TRUE='#' - GL_COND_OBJ_TIMEGM_FALSE= -fi -: - if test -z "${GL_COND_OBJ_TIMEGM_TRUE}" && test -z "${GL_COND_OBJ_TIMEGM_FALSE}"; then - GL_COND_OBJ_TIMEGM_TRUE='#' - GL_COND_OBJ_TIMEGM_FALSE='#' - fi - if test -z "$GL_COND_OBJ_TIMEGM_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS timegm.$ac_objext" : - -fi + fi - - - - - GL_GNULIB_TIMEGM=1 + GNULIB_TIMEGM=1 @@ -51135,6 +41289,7 @@ printf "%s\n" "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h + : @@ -51143,6 +41298,77 @@ printf "%s\n" "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h + if test $gl_cv_have_include_next = yes; then + gl_cv_next_unistd_h='<'unistd.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_unistd_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_unistd_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'unistd.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_unistd_h='<'unistd.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 +printf "%s\n" "$gl_cv_next_unistd_h" >&6; } + fi + NEXT_UNISTD_H=$gl_cv_next_unistd_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'unistd.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_unistd_h + fi + NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_unistd_h = yes; then + HAVE_UNISTD_H=1 + else + HAVE_UNISTD_H=0 + fi @@ -51150,6 +41376,67 @@ printf "%s\n" "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h + for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if HAVE_UNISTD_H +# include +#endif +/* Some systems declare various items in the wrong headers. */ +#if !(defined __GLIBC__ && !defined __UCLIBC__) +# include +# include +# include +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# include +# endif +#endif + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done + + + + + + : + + @@ -51219,42 +41506,39 @@ else $as_nop if test "$cross_compiling" = yes then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_unsetenv_works="$gl_cross_guess_normal" ;; - esac + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_unsetenv_works="guessing no" ;; + esac else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include - extern char **environ; - - -$gl_mda_defines + #include + #include + extern char **environ; int main (void) { - char entry1[] = "a=1"; - char entry2[] = "b=2"; - char *env[] = { entry1, entry2, NULL }; - if (putenv ((char *) "a=1")) return 1; - if (putenv (entry2)) return 2; - entry2[0] = 'a'; - unsetenv ("a"); - if (getenv ("a")) return 3; - if (!unsetenv ("") || errno != EINVAL) return 4; - entry2[0] = 'b'; - environ = env; - if (!getenv ("a")) return 5; - entry2[0] = 'a'; - unsetenv ("a"); - if (getenv ("a")) return 6; + char entry1[] = "a=1"; + char entry2[] = "b=2"; + char *env[] = { entry1, entry2, NULL }; + if (putenv ((char *) "a=1")) return 1; + if (putenv (entry2)) return 2; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 3; + if (!unsetenv ("") || errno != EINVAL) return 4; + entry2[0] = 'b'; + environ = env; + if (!getenv ("a")) return 5; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 6; ; return 0; @@ -51270,7 +41554,6 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5 printf "%s\n" "$gl_cv_func_unsetenv_works" >&6; } @@ -51282,38 +41565,34 @@ printf "%s\n" "$gl_cv_func_unsetenv_works" >&6; } esac fi + if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext" + + + + + : + + + + + - if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then - GL_COND_OBJ_UNSETENV_TRUE= - GL_COND_OBJ_UNSETENV_FALSE='#' -else - GL_COND_OBJ_UNSETENV_TRUE='#' - GL_COND_OBJ_UNSETENV_FALSE= -fi -: - if test -z "${GL_COND_OBJ_UNSETENV_TRUE}" && test -z "${GL_COND_OBJ_UNSETENV_FALSE}"; then - GL_COND_OBJ_UNSETENV_TRUE='#' - GL_COND_OBJ_UNSETENV_FALSE='#' fi - if test -z "$GL_COND_OBJ_UNSETENV_TRUE"; then : - - -fi - - - - - - - - - - GL_GNULIB_UNSETENV=1 + GNULIB_UNSETENV=1 @@ -51324,86 +41603,9 @@ printf "%s\n" "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable-length arrays" >&5 -printf %s "checking for variable-length arrays... " >&6; } -if test ${ac_cv_c_vararrays+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC_NO_VLA__ - defined - #endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "defined" >/dev/null 2>&1 -then : - ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined' -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Test for VLA support. This test is partly inspired - from examples in the C standard. Use at least two VLA - functions to detect the GCC 3.4.3 bug described in: - https://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html - */ - #ifdef __STDC_NO_VLA__ - syntax error; - #else - extern int n; - int B[100]; - int fvla (int m, int C[m][m]); + : - int - simple (int count, int all[static count]) - { - return all[count - 1]; - } - - int - fvla (int m, int C[m][m]) - { - typedef int VLA[m][m]; - VLA x; - int D[m]; - static int (*q)[m] = &B; - int (*s)[n] = q; - return C && &x[0][0] == &D[0] && &D[0] == s[0]; - } - #endif - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_c_vararrays=yes -else $as_nop - ac_cv_c_vararrays=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -rf conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_vararrays" >&5 -printf "%s\n" "$ac_cv_c_vararrays" >&6; } - if test "$ac_cv_c_vararrays" = yes; then - -printf "%s\n" "#define HAVE_C_VARARRAYS 1" >>confdefs.h - - elif test "$ac_cv_c_vararrays" = no; then - -printf "%s\n" "#define __STDC_NO_VLA__ 1" >>confdefs.h - - fi @@ -51411,6 +41613,12 @@ printf "%s\n" "#define __STDC_NO_VLA__ 1" >>confdefs.h if test $ac_cv_func_vasnprintf = no; then + : + + + + + @@ -51465,6 +41673,8 @@ printf "%s\n" "#define REPLACE_VASNPRINTF 1" >>confdefs.h + + ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes then : @@ -51535,11 +41745,7 @@ fi - - - - - GL_GNULIB_VASPRINTF=1 + GNULIB_VASPRINTF=1 @@ -51580,14 +41786,7 @@ else $as_nop if test "$cross_compiling" = yes then : - case "$host_os" in - # Guess yes on Android. - linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; - *) gl_cv_func_snprintf_size1="guessing yes" ;; - esac - + gl_cv_func_snprintf_size1="guessing yes" else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -51648,13 +41847,10 @@ then : case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) - gl_cv_func_printf_positions="guessing no";; - beos*) gl_cv_func_printf_positions="guessing no";; - # Guess yes on Android. - linux*-android*) gl_cv_func_printf_positions="guessing yes";; - # Guess no on native Windows. - mingw* | pw*) gl_cv_func_printf_positions="guessing no";; - *) gl_cv_func_printf_positions="guessing yes";; + gl_cv_func_printf_positions="guessing no";; + beos*) gl_cv_func_printf_positions="guessing no";; + mingw* | pw*) gl_cv_func_printf_positions="guessing no";; + *) gl_cv_func_printf_positions="guessing yes";; esac else $as_nop @@ -51713,16 +41909,17 @@ printf "%s\n" "$gl_cv_func_printf_positions" >&6; } if test $ac_cv_func_vsnprintf = yes; then REPLACE_VSNPRINTF=1 - else - - if test $ac_cv_have_decl_vsnprintf = yes; then - REPLACE_VSNPRINTF=1 - fi fi : fi + : + + + + + if test $ac_cv_have_decl_vsnprintf = no; then HAVE_DECL_VSNPRINTF=0 fi @@ -51732,11 +41929,7 @@ printf "%s\n" "$gl_cv_func_printf_positions" >&6; } - - - - - GL_GNULIB_VSNPRINTF=1 + GNULIB_VSNPRINTF=1 @@ -51755,6 +41948,150 @@ printf "%s\n" "#define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h + : + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wchar_h='<'wchar.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_wchar_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_wchar_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'wchar.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_wchar_h='<'wchar.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 +printf "%s\n" "$gl_cv_next_wchar_h" >&6; } + fi + NEXT_WCHAR_H=$gl_cv_next_wchar_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wchar.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wchar_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + + + + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + + + + for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#if !(defined __GLIBC__ && !defined __UCLIBC__) +# include +# include +# include +#endif +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done @@ -51766,17 +42103,22 @@ printf "%s\n" "#define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h + : - if case "$host_os" in - mingw*) true ;; - *) test $ac_cv_func_mbsinit = yes ;; - esac \ - && test $ac_cv_func_mbrtowc = yes; then + : + + + + + + if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 printf %s "checking whether mbrtowc handles incomplete characters... " >&6; } @@ -51801,6 +42143,13 @@ else $as_nop #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -51813,7 +42162,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) - return 2; + return 1; } return 0; } @@ -51828,45 +42177,6 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - else - if test $LOCALE_FR_UTF8 != none; then - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -int main () -{ - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) - { - const char input[] = "B\303\274\303\237er"; /* "Büßer" */ - mbstate_t state; - wchar_t wc; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) - if (mbsinit (&state)) - return 2; - } - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_mbrtowc_incomplete_state=yes -else $as_nop - gl_cv_func_mbrtowc_incomplete_state=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi fi fi @@ -51900,6 +42210,13 @@ else $as_nop #include #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -51915,7 +42232,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) - return 2; + return 1; } return 0; } @@ -51951,10 +42268,23 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + : + + + + + if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 ac_fn_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" " - #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_wcrtomb" = xyes @@ -51969,69 +42299,15 @@ printf "%s\n" "#define HAVE_DECL_WCRTOMB $ac_have_decl" >>confdefs.h REPLACE_WCRTOMB=1 fi else - if test $REPLACE_WCRTOMB = 0; then + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_WCRTOMB=1 + else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb works in the C locale" >&5 -printf %s "checking whether wcrtomb works in the C locale... " >&6; } -if test ${gl_cv_func_wcrtomb_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - case "$host_os" in - # Guess no on Android. - linux*-android*) gl_cv_func_wcrtomb_works="guessing no";; - # Guess yes otherwise. - *) gl_cv_func_wcrtomb_works="guessing yes";; - esac - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -int main () -{ - mbstate_t state; - char out[64]; - int count; - memset (&state, 0, sizeof (state)); - out[0] = 'x'; - count = wcrtomb (out, L'a', &state); - return !(count == 1 && out[0] == 'a'); -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - gl_cv_func_wcrtomb_works=yes -else $as_nop - gl_cv_func_wcrtomb_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_works" >&5 -printf "%s\n" "$gl_cv_func_wcrtomb_works" >&6; } - case "$gl_cv_func_wcrtomb_works" in - *yes) ;; - *) -printf "%s\n" "#define WCRTOMB_C_LOCALE_BUG 1" >>confdefs.h - - REPLACE_WCRTOMB=1 ;; - esac - fi - if test $REPLACE_WCRTOMB = 0; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 printf %s "checking whether wcrtomb return value is correct... " >&6; } if test ${gl_cv_func_wcrtomb_retval+y} then : @@ -52039,10 +42315,10 @@ then : else $as_nop case "$host_os" in - # Guess no on AIX 4, OSF/1, Solaris, native Windows. - aix4* | osf* | solaris* | mingw*) gl_cv_func_wcrtomb_retval="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_wcrtomb_retval="guessing yes" ;; + # Guess no on AIX 4, OSF/1 and Solaris. + aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes @@ -52054,8 +42330,14 @@ else $as_nop #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include -#include int main () { int result = 0; @@ -52068,12 +42350,6 @@ int main () { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; - { - wchar_t wc = (wchar_t) 0xBADFACE; - if (mbtowc (&wc, "\303\274", 2) == 2) - if (wcrtomb (NULL, wc, NULL) != 1) - result |= 2; - } } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { @@ -52105,50 +42381,32 @@ fi printf "%s\n" "$gl_cv_func_wcrtomb_retval" >&6; } case "$gl_cv_func_wcrtomb_retval" in *yes) ;; - *) -printf "%s\n" "#define WCRTOMB_RETVAL_BUG 1" >>confdefs.h - - REPLACE_WCRTOMB=1 ;; + *) REPLACE_WCRTOMB=1 ;; esac fi fi + if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then - if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then - GL_COND_OBJ_WCRTOMB_TRUE= - GL_COND_OBJ_WCRTOMB_FALSE='#' -else - GL_COND_OBJ_WCRTOMB_TRUE='#' - GL_COND_OBJ_WCRTOMB_FALSE= -fi -: - if test -z "${GL_COND_OBJ_WCRTOMB_TRUE}" && test -z "${GL_COND_OBJ_WCRTOMB_FALSE}"; then - GL_COND_OBJ_WCRTOMB_TRUE='#' - GL_COND_OBJ_WCRTOMB_FALSE='#' - fi - if test -z "$GL_COND_OBJ_WCRTOMB_TRUE"; then : + + + + + + + gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext" : - -fi + fi - - - - - - - - - - GL_GNULIB_WCRTOMB=1 + GNULIB_WCRTOMB=1 @@ -52163,79 +42421,377 @@ printf "%s\n" "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h + : - if case "$host_os" in mingw*) true;; *) false;; esac; then - GL_COND_OBJ_WINDOWS_MUTEX_TRUE= - GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#' -else - GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#' - GL_COND_OBJ_WINDOWS_MUTEX_FALSE= -fi -: - if test -z "${GL_COND_OBJ_WINDOWS_MUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_MUTEX_FALSE}"; then - GL_COND_OBJ_WINDOWS_MUTEX_TRUE='#' - GL_COND_OBJ_WINDOWS_MUTEX_FALSE='#' + + if test $ac_cv_func_iswcntrl = yes; then + HAVE_ISWCNTRL=1 + else + HAVE_ISWCNTRL=0 fi - if case "$host_os" in mingw*) true;; *) false;; esac; then - GL_COND_OBJ_WINDOWS_ONCE_TRUE= - GL_COND_OBJ_WINDOWS_ONCE_FALSE='#' -else - GL_COND_OBJ_WINDOWS_ONCE_TRUE='#' - GL_COND_OBJ_WINDOWS_ONCE_FALSE= -fi -: - if test -z "${GL_COND_OBJ_WINDOWS_ONCE_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_ONCE_FALSE}"; then - GL_COND_OBJ_WINDOWS_ONCE_TRUE='#' - GL_COND_OBJ_WINDOWS_ONCE_FALSE='#' + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 fi - if case "$host_os" in mingw*) true;; *) false;; esac; then - GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE= - GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#' -else - GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#' - GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE= -fi -: - if test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE}"; then - GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE='#' - GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE='#' - fi - if case "$host_os" in mingw*) true;; *) false;; esac; then - GL_COND_OBJ_WINDOWS_RWLOCK_TRUE= - GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#' -else - GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#' - GL_COND_OBJ_WINDOWS_RWLOCK_FALSE= -fi -: - if test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_TRUE}" && test -z "${GL_COND_OBJ_WINDOWS_RWLOCK_FALSE}"; then - GL_COND_OBJ_WINDOWS_RWLOCK_TRUE='#' - GL_COND_OBJ_WINDOWS_RWLOCK_FALSE='#' - fi + : -printf "%s\n" "#define GNULIB_XALLOC 1" >>confdefs.h -printf "%s\n" "#define GNULIB_XALLOC_DIE 1" >>confdefs.h + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wctype_h='<'wctype.h'>' + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 +printf %s "checking absolute name of ... " >&6; } +if test ${gl_cv_next_wctype_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test $ac_cv_header_wctype_h = yes; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + + case "$host_os" in + mingw*) + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + + gl_header_literal_regex=`echo 'wctype.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"`'"' + else + gl_cv_next_wctype_h='<'wctype.h'>' + fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 +printf "%s\n" "$gl_cv_next_wctype_h" >&6; } + fi + NEXT_WCTYPE_H=$gl_cv_next_wctype_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wctype.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wctype_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive + + + + + if test $ac_cv_header_wctype_h = yes; then + if test $ac_cv_func_iswcntrl = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 +printf %s "checking whether iswcntrl works... " >&6; } +if test ${gl_cv_func_iswcntrl_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if __GNU_LIBRARY__ == 1 + Linux libc5 i18n is broken. + #endif +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_func_iswcntrl_works="guessing yes" +else $as_nop + gl_cv_func_iswcntrl_works="guessing no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #include + int main () { return iswprint ('x') == 0; } + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + gl_cv_func_iswcntrl_works=yes +else $as_nop + gl_cv_func_iswcntrl_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 +printf "%s\n" "$gl_cv_func_iswcntrl_works" >&6; } + fi + HAVE_WCTYPE_H=1 + else + HAVE_WCTYPE_H=0 + fi + + + case "$gl_cv_func_iswcntrl_works" in + *yes) REPLACE_ISWCNTRL=0 ;; + *) REPLACE_ISWCNTRL=1 ;; + esac + + + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then + : + fi + + if test $REPLACE_ISWCNTRL = 1; then + REPLACE_TOWLOWER=1 + else + ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" +if test "x$ac_cv_func_towlower" = xyes +then : + printf "%s\n" "#define HAVE_TOWLOWER 1" >>confdefs.h + +fi + + if test $ac_cv_func_towlower = yes; then + REPLACE_TOWLOWER=0 + else + ac_fn_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #if HAVE_WCTYPE_H + # include + #endif + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_towlower" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_TOWLOWER $ac_have_decl" >>confdefs.h + + if test $ac_cv_have_decl_towlower = yes; then + REPLACE_TOWLOWER=1 + else + REPLACE_TOWLOWER=0 + fi + fi + fi + + + if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then + : + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 +printf %s "checking for wctype_t... " >&6; } +if test ${gl_cv_type_wctype_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #if HAVE_WCTYPE_H + # include + #endif + wctype_t a; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_wctype_t=yes +else $as_nop + gl_cv_type_wctype_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 +printf "%s\n" "$gl_cv_type_wctype_t" >&6; } + if test $gl_cv_type_wctype_t = no; then + HAVE_WCTYPE_T=0 + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 +printf %s "checking for wctrans_t... " >&6; } +if test ${gl_cv_type_wctrans_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include + #include + wctrans_t a; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_type_wctrans_t=yes +else $as_nop + gl_cv_type_wctrans_t=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 +printf "%s\n" "$gl_cv_type_wctrans_t" >&6; } + if test $gl_cv_type_wctrans_t = no; then + HAVE_WCTRANS_T=0 + fi + + + for gl_func in wctype iswctype wctrans towctrans ; do + as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 +printf %s "checking whether $gl_func is declared without a macro... " >&6; } +if eval test \${$as_gl_Symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#if !(defined __GLIBC__ && !defined __UCLIBC__) +# include +# include +# include +# include +#endif +#include + +int +main (void) +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_gl_Symbol=yes" +else $as_nop + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_gl_Symbol + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_gl_Symbol"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done + + + : ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" @@ -52246,6 +42802,11 @@ then : fi + + + : + + # End of code from modules @@ -52256,8 +42817,6 @@ fi - - gltests_libdeps= gltests_ltlibdeps= @@ -52269,11 +42828,7 @@ fi - - - gl_source_base='tests' - gl_source_base_prefix= gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$gltests_WITNESS @@ -52286,9 +42841,6 @@ fi - - - LIBGNU_LIBDEPS="$gl_libdeps" LIBGNU_LTLIBDEPS="$gl_ltlibdeps" @@ -52299,7 +42851,7 @@ if test "$ac_cv_uname_s" = 'SunOS' -a \( "x$ac_cv_prog_ac_ct_AR" = "x" -o "$ac_c as_fn_error $? "No ar found for Solaris - is /usr/ccs/bin in PATH?" "$LINENO" 5 fi -ac_config_files="$ac_config_files Makefile tap/Makefile lib/Makefile plugins/Makefile lib/tests/Makefile plugins-root/Makefile plugins-scripts/Makefile plugins-scripts/utils.pm plugins-scripts/utils.sh test.pl pkg/solaris/pkginfo" +ac_config_files="$ac_config_files Makefile tap/Makefile lib/Makefile plugins/Makefile lib/tests/Makefile plugins-root/Makefile plugins-scripts/Makefile plugins-scripts/utils.pm plugins-scripts/utils.sh test.pl pkg/solaris/pkginfo po/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -52438,18 +42990,6 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -# Check whether --enable-year2038 was given. -if test ${enable_year2038+y} -then : - enableval=$enable_year2038; -fi - -# Check whether --enable-largefile was given. -if test ${enable_largefile+y} -then : - enableval=$enable_largefile; -fi - if test -z "${RELEASE_PRESENT_TRUE}" && test -z "${RELEASE_PRESENT_FALSE}"; then as_fn_error $? "conditional \"RELEASE_PRESENT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -52474,61 +43014,75 @@ if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_NETINET_IN_H_TRUE}" && test -z "${GL_GENERATE_NETINET_IN_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_NETINET_IN_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi gl_libobjs= gl_ltlibobjs= - gl_libobjdeps= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' - sed_dirname1='s,//*,/,g' - sed_dirname2='s,\(.\)/$,\1,' - sed_dirname3='s,^[^/]*$,.,' - sed_dirname4='s,\(.\)/[^/]*$,\1,' - sed_basename1='s,.*/,,' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" - i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` - i_base=`echo "$i" | sed -e "$sed_basename1"` - gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" done fi gl_LIBOBJS=$gl_libobjs gl_LTLIBOBJS=$gl_ltlibobjs - gl_LIBOBJDEPS=$gl_libobjdeps - gltests_libobjs= gltests_ltlibobjs= - gltests_libobjdeps= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' - sed_dirname1='s,//*,/,g' - sed_dirname2='s,\(.\)/$,\1,' - sed_dirname3='s,^[^/]*$,.,' - sed_dirname4='s,\(.\)/[^/]*$,\1,' - sed_basename1='s,.*/,,' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" - i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` - i_base=`echo "$i" | sed -e "$sed_basename1"` - gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" done fi gltests_LIBOBJS=$gltests_libobjs gltests_LTLIBOBJS=$gltests_ltlibobjs - gltests_LIBOBJDEPS=$gltests_libobjdeps - : "${CONFIG_STATUS=./config.status}" @@ -52920,7 +43474,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by monitoring-plugins $as_me 2.4.0, which was +This file was extended by monitoring-plugins $as_me 2.3.3, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -52988,7 +43542,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -monitoring-plugins config.status 2.4.0 +monitoring-plugins config.status 2.3.3 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -53386,8 +43940,9 @@ fi # Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. - OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" @@ -53417,6 +43972,7 @@ do "plugins-scripts/utils.sh") CONFIG_FILES="$CONFIG_FILES plugins-scripts/utils.sh" ;; "test.pl") CONFIG_FILES="$CONFIG_FILES test.pl" ;; "pkg/solaris/pkginfo") CONFIG_FILES="$CONFIG_FILES pkg/solaris/pkginfo" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -54776,11 +45332,14 @@ fi if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi - ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. - ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) @@ -54822,9 +45381,7 @@ fi # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in - "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*) - useit=yes - ;; + "$presentlang"*) useit=yes;; esac done if test $useit = yes; then diff --git a/configure.ac b/configure.ac index 10ef688..272a0f4 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.64) -AC_INIT(monitoring-plugins,2.4.0) +AC_PREREQ(2.59) +AC_INIT(monitoring-plugins,2.3.3) AC_CONFIG_SRCDIR(NPTest.pm) AC_CONFIG_FILES([gl/Makefile]) AC_CONFIG_AUX_DIR(build-aux) @@ -328,25 +328,6 @@ AS_IF([test "x$with_ldap" != "xno"], [ LIBS="$_SAVEDLIBS" ]) - -AC_ARG_WITH([systemd], [AS_HELP_STRING([--without-systemd], [Skips systemd support])]) - -dnl Check for libsystemd -AS_IF([test "x$with_systemd" != "xno"], [ - _SAVEDLIBS="$LIBS" - AC_CHECK_LIB(systemd,sd_get_sessions,,,-lsystemd) - if test "$ac_cv_lib_systemd_sd_get_sessions" = "yes"; then - SYSTEMDLIBS="-lsystemd" - SYSTEMDINCLUDE="" - AC_SUBST(SYSTEMDLIBS) - AC_SUBST(SYSTEMDINCLUDE) - else - AC_MSG_WARN([Skipping systemd support]) - fi - LIBS="$_SAVEDLIBS" -]) - - dnl Check for headers used by check_ide_smart case $host in *linux*) @@ -621,6 +602,7 @@ AC_C_CONST AC_STRUCT_TM AC_TYPE_PID_T AC_TYPE_SIZE_T +AC_TYPE_SIGNAL AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[ AC_TRY_LINK([#include @@ -644,16 +626,12 @@ AC_TRY_COMPILE([#include ], [struct timeval *tv; struct timezone *tz;], AC_DEFINE(HAVE_STRUCT_TIMEVAL,1,[Define if we have a timeval structure]) - FOUND_STRUCT_TIMEVAL="yes") - -if test x"$FOUND_STRUCT_TIMEVAL" = x"yes"; then - AC_TRY_COMPILE([#include ], - [struct timeval *tv; - struct timezone *tz; - gettimeofday(tv, tz);], - AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]), - AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed])) -fi + AC_TRY_COMPILE([#include ], + [struct timeval *tv; + struct timezone *tz; + gettimeofday(tv, tz);], + AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define if gettimeofday is found]), + AC_DEFINE(NEED_GETTIMEOFDAY,1,[Define if gettimeofday is needed]))) dnl Checks for library functions. AC_CHECK_FUNCS(memmove select socket strdup strstr strtol strtoul floor) @@ -954,7 +932,7 @@ elif ps -Ao 's comm vsz rss uid user pid ppid args' 2>/dev/null | \ then ac_cv_ps_varlist="[procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]" ac_cv_ps_command="$PATH_TO_PS -Ao 's uid pid ppid vsz rss pcpu comm args'" - # There must be no space between the %s and %n due to a weird problem in sscanf where + # There must be no space between the %s and %n due to a wierd problem in sscanf where # it will return %n as longer than the line length ac_cv_ps_format="%s %d %d %d %d %d %f %s%n" ac_cv_ps_cols=9 @@ -1574,7 +1552,7 @@ if test -n "$PATH_TO_SUDO" then AC_DEFINE_UNQUOTED(PATH_TO_SUDO,"$PATH_TO_SUDO",[path to sudo]) else - AC_MSG_WARN([Could not find sudo or equivalent]) + AC_MSG_WARN([Could not find sudo or eqivalent]) fi AC_PATH_PROG(PATH_TO_MAILQ,mailq) @@ -1585,7 +1563,7 @@ if test -n "$PATH_TO_MAILQ" then AC_DEFINE_UNQUOTED(PATH_TO_MAILQ,"$PATH_TO_MAILQ",[path to mailq]) else - AC_MSG_WARN([Could not find mailq or equivalent]) + AC_MSG_WARN([Could not find mailq or eqivalent]) fi AC_PATH_PROG(PATH_TO_QMAIL_QSTAT,qmail-qstat) @@ -1596,7 +1574,7 @@ if test -n "$PATH_TO_QMAIL_QSTAT" then AC_DEFINE_UNQUOTED(PATH_TO_QMAIL_QSTAT,"$PATH_TO_QMAIL_QSTAT",[path to qmail-qstat]) else - AC_MSG_WARN([Could not find qmail-qstat or equivalent]) + AC_MSG_WARN([Could not find qmail-qstat or eqivalent]) fi dnl SWAP info required is amount allocated/available and amount free @@ -1614,13 +1592,13 @@ then grep -E -i "^lswap +path +pri +swaplo +blocks +free +maxswap" \ >/dev/null] then - ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %lu %lu"] + ac_cv_swap_format=[" %*d %*s %*d,%*d %*d %*d %f %f"] ac_cv_swap_conv=2048 AC_MSG_RESULT([using IRIX format swap]) elif [$PATH_TO_SWAP -l 2>/dev/null | grep -E -i "^path +dev +swaplo +blocks +free" >/dev/null] then - ac_cv_swap_format=["%*s %*[0-9,-] %*d %lu %lu"] + ac_cv_swap_format=["%*s %*[0-9,-] %*d %f %f"] ac_cv_swap_conv=2048 AC_MSG_RESULT([using Unixware format swap]) else @@ -1644,7 +1622,7 @@ then if [$PATH_TO_SWAPINFO -k 2>/dev/null | grep -E -i "^Device +1K-blocks +Used +Avail" >/dev/null] then - ac_cv_swap_format=["%*s %lu %*d %lu"] + ac_cv_swap_format=["%*s %f %*d %f"] ac_cv_swap_conv=1024 AC_MSG_RESULT([using FreeBSD format swapinfo]) fi @@ -1653,7 +1631,7 @@ elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | grep -E -i "^TYPE +AVAIL +USED +FREE" then ac_cv_have_swap=yes ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM" - ac_cv_swap_format=["%*s %lu %*d %lu"] + ac_cv_swap_format=["%*s %f %*d %f"] ac_cv_swap_conv=1024 AC_MSG_RESULT([using HP-UX format swapinfo]) fi @@ -1668,7 +1646,7 @@ if [$PATH_TO_LSPS -a 2>/dev/null | grep -E -i "^Page Space" > /dev/null] then ac_cv_have_swap=yes ac_cv_swap_command="$PATH_TO_LSPS -a" - ac_cv_swap_format=["%*s %*s %*s %lu%*s %lu %*s"] + ac_cv_swap_format=["%*s %*s %*s %f%*s %f %*s"] ac_cv_swap_conv=1 AC_MSG_RESULT([using AIX lsps]) fi @@ -1854,7 +1832,7 @@ AM_GNU_GETTEXT([external], [need-ngettext]) AM_GNU_GETTEXT_VERSION(0.15) dnl Check for Redhat spopen problem -dnl Weird problem where ECHILD is returned from a wait call in error +dnl Wierd problem where ECHILD is returned from a wait call in error dnl Only appears to affect nslookup and dig calls. Only affects redhat around dnl 2.6.9-11 (okay in 2.6.9-5). Redhat investigating root cause dnl We patch plugins/popen.c @@ -1923,6 +1901,7 @@ AC_OUTPUT( plugins-scripts/utils.sh test.pl pkg/solaris/pkginfo + po/Makefile.in ) diff --git a/debian/.gitlab-ci.yml b/debian/.gitlab-ci.yml index c957a74..62767c1 100644 --- a/debian/.gitlab-ci.yml +++ b/debian/.gitlab-ci.yml @@ -1,14 +1,14 @@ ---- include: - - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml variables: - RELEASE: 'unstable' - SALSA_CI_DISABLE_APTLY: 0 - SALSA_CI_DISABLE_AUTOPKGTEST: 0 - SALSA_CI_DISABLE_BLHC: 1 - SALSA_CI_DISABLE_LINTIAN: 0 - SALSA_CI_DISABLE_PIUPARTS: 0 - SALSA_CI_DISABLE_DEBREBUILD: 0 - SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 0 - SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 0 + RELEASE: 'unstable' + SALSA_CI_DISABLE_APTLY: 0 + SALSA_CI_DISABLE_AUTOPKGTEST: 0 + SALSA_CI_DISABLE_BLHC: 0 + SALSA_CI_DISABLE_LINTIAN: 0 + SALSA_CI_DISABLE_PIUPARTS: 0 + SALSA_CI_DISABLE_REPROTEST: 0 + SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 0 + SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 0 diff --git a/debian/NEWS b/debian/NEWS index 93e4a41..c783dc0 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,28 +1,7 @@ -monitoring-plugins (2.4.0-5) unstable; urgency=medium - - Priority of check_curl alternative for check_http is now higher - then check_http.deprecated, which means calling check_http is now - check_curl. You can change that by: update-alternatives --config check_http - Removed also deprecated check_ntp from package. - - -- Jan Wagner Thu, 2 Dec 2025 12:49:36 +0100 - -monitoring-plugins (2.4.0-3) unstable; urgency=medium - - The check_http plugin was deprecated. Please migrate the check command - definitions over to the drop-in replacement check_curl. It should be - sufficient to replace check_http with check_curl in your command definitions. - The check_curl plugin was moved to the monitoring-plugins-basic package for - a smoother migration path. For making things easy, update-alternatives can - be used to change the check_http alternative. This can be done with the - command: update-alternatives --config check_http - - -- Jan Wagner Mon, 21 Apr 2025 11:00:59 +0200 - monitoring-plugins (2.1.2-3) unstable; urgency=medium We switched again over to another radius library. This time radcli - to fix #822337. This makes it again necessary to migrate your radius + to fix #822337. This makes it again necessary to migrate you radius credentials from /etc/radiusclient/servers to /etc/radcli/servers in case you are using check_radius. Please install the new dependencies in this case if you don't install diff --git a/debian/changelog b/debian/changelog index c76f2d6..23f07aa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,147 +1,8 @@ -monitoring-plugins (2.4.0-6) UNRELEASED; urgency=medium +monitoring-plugins (2.3.3-6) UNRELEASED; urgency=medium * - -- Jan Wagner Wed, 03 Dec 2025 07:15:41 +0100 - -monitoring-plugins (2.4.0-5) unstable; urgency=medium - - [ Jan Wagner ] - * [2bd6e61] d/control: Drop libsystemd0 from build-deps, pulled by - libsystemd-dev - * [dfe02ab] Adding d/p/27_check_mysql_fix_replica, Fixes reported regression - for MariaDB 10.11.14-0+deb12u2 (Closes: #1116027) - * [9a01042] Raising alternative of check_curl over check_http. check_curl is - prefered - * [20257df] d/control: Remove deprecated check_ntp - - [ Bas Couwenberg ] - * [52d9fc3] Use test-build-validate-cleanup instead of test-build-twice. - * [f047b05] Use debrebuild instead of reprotest. - * [861c613] Don't use test-build-validate-cleanup, fails where pbuilder - --twice succeeds. - - -- Jan Wagner Tue, 02 Dec 2025 14:06:48 +0000 - -monitoring-plugins (2.4.0-4) unstable; urgency=medium - - [ Jan Wagner ] - * [bee01b8] d/control: Remove Alexander Wirt from Uploaders - * [7236330] d/control: Adding libsystemd-dev and libsystemd0 as build-dep - (Closes: #1110265) - * [8cd52e3] Adding d/patches/25_check_users_sd_get_uids to fix user count - - [ Bas Couwenberg ] - * [4770fe3] Update lintian overrides. - * [294841c] Drop Priority: optional, default since dpkg 1.22.13. - * [97009f5] Revert "Drop Priority: optional, default since dpkg 1.22.13." - - [ Jan Wagner ] - * [3f438f9] Adding d/p/26_check_mysql_replica from upstream (Closes: #1116027) - - -- Jan Wagner Mon, 06 Oct 2025 11:29:35 +0200 - -monitoring-plugins (2.4.0-3) unstable; urgency=medium - - * Upload to unstable - - -- Jan Wagner Tue, 22 Apr 2025 16:25:21 +0200 - -monitoring-plugins (2.4.0-3~exp1) experimental; urgency=medium - - * [7e8c776] Adding d/p/24_check_http_deprecation from upstream - * [baad659] Add d/monitoring-plugins-basic.alternatives - * [6bb8580] Adjust debian/rules for check_http rename - * [ddaa81f] check_curl: move to monitoring-plugins-basic package - * [b724e41] d/NEWS: Add information about check_http deprecation - - -- Jan Wagner Mon, 21 Apr 2025 16:29:02 +0200 - -monitoring-plugins (2.4.0-2) unstable; urgency=medium - - [ Bas Couwenberg ] - * [2d414bd] Bump Standards-Version to 4.7.0, no changes. - - [ Jan Wagner ] - * [672d37c] Adding d/p/10_check_curl_fix_redirects from upstream - * [15760ad] Adding d/p/11_check_curl_raise_ssl_issue from upstream - * [a6b1db0] Adding d/p/12_check_curl_add_docu from upstream - * [8b17915] Adding d/p/13_check_mysql_fix_variables from upstream - * [01e11f9] Adding d/p/14_check_curl_remove_experimental_state from upstream - * [1b018b3] Adding d/p/15_check_curl_fix_regex from upstream - * [9c49b6f] Adding d/p/16_check_curl_openssl_error from upstream - * [f3e1279] Adding d/p/17_check_fping_dontfrag_random from upstream - - [ Bas Couwenberg ] - * [3c5882d] Add check_curl to monitoring-plugins-standard description. - - [ Jan Wagner ] - * [043d328] Adding d/p/18_check_curl_fix_TLS_notes from upstream - * [bf60013] Adding d/p/19_check_curl_cookie_handling from upstream - - [ Bas Couwenberg ] - * [9cb7fae] Bump Standards-Version to 4.7.2, no changes. - * [af69fcf] Fix old FSF address in copyright file. - - [ Jan Wagner ] - * [38aec8e] Adding d/p/20_check_icmp_fix_rtmin from upstream - * [e817fec] Adding d/p/21_check_http_state_regex from upstream - * [45f91e2] Adding d/p/22_check_by_ssh_missing_options from upstream - * [b6a58eb] Adding d/p/23_sslutils_fix_error_message from upstream - * [3a5f250] debian/NEWS: Fix spelling error - * [55f87b7] Changing check_httpname to the intended check_http_hostname - definition (Closes: #1099028) - * [2f5d025] Adding d/p/04_lmstat_path (Closes: #1053687) - - -- Jan Wagner Sun, 20 Apr 2025 21:09:27 +0200 - -monitoring-plugins (2.4.0-1) unstable; urgency=medium - - * [600e193] New upstream version 2.4.0 - (Closes: #928752) - - -- Jan Wagner Tue, 23 Jul 2024 20:28:15 +0000 - -monitoring-plugins (2.3.5-1) unstable; urgency=medium - - [ Jan Wagner ] - * [a20810f] Adding d/p/36_check_smtp_adding_proxy_header from upstream - * [0250eb9] Adding d/p/37_check_smtp_Adding_SNI from upstream - * [1381a20] Remove left over d/p/31_checl_mailq_separate_submission_queue - - [ Bas Couwenberg ] - * [7c86d65] Explicitly enable test-build-twice job. - - [ Jan Wagner ] - * [de72f6f] New upstream version 2.3.4 - * [5956793] New upstream version 2.3.5 - * [f07f4db] Drop patches integrated by upstream - - -- Jan Wagner Wed, 18 Oct 2023 12:04:05 +0200 - -monitoring-plugins (2.3.3-6) unstable; urgency=medium - - * [e1f9786] Adding d/p/14_check_curl_fix_SSL_with_multiple_IPs from upstream - * [534d0c8] Adding d/p/30_check_radius_radcli_1.3.1_support from upstream - * [bd72df2] Adding d/p/31_checl_mailq_separate_submission_queue from upstream - * [567890c] Adding d/p/32_check_disk_add_ignore_missing from upstream - (Closes: #516097) - * [47b7589] Adding d/p/15_check_swap_remove_includes from upstream - * [6f89be8] Adding d/p/33_check_procs_exclude-process from upstream - * [983507a] Adding d/p/34_check_curl_fix_compare_warning from upstream - * [9225592] Adding d/p/17_fix_exit_codes from upstream - * [3a0d875] Adding d/p/18_check_mysql_fix_typo from upstream - * [17688c7] Adding d/p/19_check_nwstat_fix_typo from upstream - * [e0cfe77] Adding d/p/20_chech_nt_fix_encoding from upstream - * [3da2163] Adding d/p/21_check_pgsql_extra_output from upstream - * [7cbe4b6] Adding d/p/22_check_disk_avoid_mount from upstream - * [01be8ce] d/p/series: Fix typo - * [85d9e03] Adding d/p/23_check_mysql_fix_error_handling from upstream - * [555d643] CI: Disable BLHC job - * [85a271e] Adding d/p/24_check_disk_fix_SI_units from upstream - * [02c716f] d/p/31_check_mailq_separate_submission_queue: Fix filename - - -- Jan Wagner Mon, 12 Jun 2023 21:46:29 +0200 + -- Jan Wagner Thu, 30 Mar 2023 09:33:25 +0000 monitoring-plugins (2.3.3-5) unstable; urgency=medium diff --git a/debian/control b/debian/control index 2326dfd..90f3129 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: monitoring-plugins Section: net Priority: optional Maintainer: Debian Nagios Maintainer Group -Uploaders: Jan Wagner +Uploaders: Jan Wagner , Alexander Wirt Build-Depends: debhelper-compat (= 13), libcurl4-openssl-dev | libcurl4-nss-dev | libcurl4-gnutls-dev, libdbi-dev, @@ -13,12 +13,11 @@ Build-Depends: debhelper-compat (= 13), libnet-snmp-perl, libpq-dev, libssl-dev, - libsystemd-dev, liburiparser-dev, mawk | awk, perl, procps -Standards-Version: 4.7.2 +Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/nagios-team/monitoring-plugins Vcs-Git: https://salsa.debian.org/nagios-team/monitoring-plugins.git Homepage: https://www.monitoring-plugins.org @@ -59,24 +58,22 @@ Depends: inetutils-ping [kfreebsd-any hurd-any], ${shlibs:Depends} Recommends: libcap2-bin [linux-any] Suggests: icinga2 -Breaks: monitoring-plugins-standard (<< 2.4.0-3~) -Replaces: monitoring-plugins-standard (<< 2.4.0-3~) Provides: nagios-plugins-basic Description: Plugins for nagios compatible monitoring systems (basic) Plugins for nagios compatible monitoring systems like Naemon and Icinga. It contains the following plugins: . check_apt, check_by_ssh, check_clamd, check_cluster, - check_curl, check_dhcp, check_disk, check_dummy, - check_file_age, check_ftp, check_host, check_http, - check_icmp, check_ide_smart, check_imap, check_ircd, - check_jabber, check_load, check_log, check_mrtg, - check_mrtgtraf, check_nagios, check_nntp, check_nntps, - check_nt, check_ntp, check_ntp_peer, check_ntp_time, - check_nwstat, check_overcr, check_ping, check_pop, - check_procs, check_real, check_rta_multi, check_sensors, - check_simap, check_smtp, check_spop, check_ssh, - check_ssmtp, check_swap, check_tcp, check_time, check_udp, + check_dhcp, check_disk, check_dummy, check_file_age, + check_ftp, check_host, check_http, check_icmp, + check_ide_smart, check_imap, check_ircd, check_jabber, + check_load, check_log, check_mrtg, check_mrtgtraf, + check_nagios, check_nntp, check_nntps, check_nt, + check_ntp, check_ntp_peer, check_ntp_time, check_nwstat, + check_overcr, check_ping, check_pop, check_procs, + check_real, check_rta_multi, check_sensors, check_simap, + check_smtp, check_spop, check_ssh, check_ssmtp, + check_swap, check_tcp, check_time, check_udp, check_ups, check_users . This package provides a basic set of plugins with minimal external diff --git a/debian/copyright b/debian/copyright index 844fb6b..7f42374 100644 --- a/debian/copyright +++ b/debian/copyright @@ -82,7 +82,9 @@ Files with different Licenses: GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. gl/alloca.in.h gl/as* @@ -151,8 +153,9 @@ Files with different Licenses: General Public License for more details. You should have received a copy of the GNU General Public - License along with this program; if not, see - . + License along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. gl/reg* gl/mktime.c diff --git a/debian/monitoring-plugins-basic.alternatives b/debian/monitoring-plugins-basic.alternatives deleted file mode 100644 index 2803be9..0000000 --- a/debian/monitoring-plugins-basic.alternatives +++ /dev/null @@ -1,12 +0,0 @@ -Name: check_http -Link: /usr/lib/nagios/plugins/check_http -Status: auto -Best: /usr/lib/nagios/plugins/check_http.deprecated -Value: /usr/lib/nagios/plugins/check_http.deprecated -Alternative: /usr/lib/nagios/plugins/check_http.deprecated -Priority: 50 - -Name: check_http -Link: /usr/lib/nagios/plugins/check_http -Alternative: /usr/lib/nagios/plugins/check_curl -Priority: 100 diff --git a/debian/patches/04_lmstat_path b/debian/patches/04_lmstat_path deleted file mode 100644 index 89b1d23..0000000 --- a/debian/patches/04_lmstat_path +++ /dev/null @@ -1,11 +0,0 @@ ---- a/plugins-scripts/utils.pm.in -+++ b/plugins-scripts/utils.pm.in -@@ -19,7 +19,7 @@ - ## updated by autoconf - $PATH_TO_SUDO = "@PATH_TO_SUDO@"; - $PATH_TO_RPCINFO = "@PATH_TO_RPCINFO@" ; --$PATH_TO_LMSTAT = "@PATH_TO_LMSTAT@" ; -+$PATH_TO_LMSTAT = "/usr/local/bin/lmstat" ; - $PATH_TO_SMBCLIENT = "@PATH_TO_SMBCLIENT@" ; - $PATH_TO_MAILQ = "@PATH_TO_MAILQ@"; - $PATH_TO_QMAIL_QSTAT = "@PATH_TO_QMAIL_QSTAT@"; diff --git a/debian/patches/10_check_curl_fix_redirects b/debian/patches/10_check_curl_fix_redirects deleted file mode 100644 index 03321f4..0000000 --- a/debian/patches/10_check_curl_fix_redirects +++ /dev/null @@ -1,164 +0,0 @@ -From 17549189ae6864203a48a2b2488db35a9e020e0e Mon Sep 17 00:00:00 2001 -From: Sven Nierlein -Date: Mon, 29 Jul 2024 20:53:32 +0200 -Subject: [PATCH] check_curl: fix relative redirects on non-standard port - -Having a webserver respond with a relative redirect as for ex. in `Location: /path/to.html` -check_curl would use the wrong standard http/https port instead -of crafting the absolute url using the given scheme/hostname and port. - -Adding a new test case for this for check_http and check_curl. check_http did -it correct already, so no fix necessary there. - -before: - - %>./check_curl -H 127.0.0.1 -p 50493 -f follow -u /redirect_rel -s redirected -vvv - **** HEADER **** - HTTP/1.1 302 Found - ... - Location: /redirect2 - - ... - * Seen redirect location /redirect2 - ** scheme: (null) - ** host: (null) - ** port: (null) - ** path: /redirect2 - Redirection to http://127.0.0.1:80/redirect2 - -fixed: - - %>./check_curl -H 127.0.0.1 -p 50493 -f follow -u /redirect_rel -s redirected -vvv - **** HEADER **** - HTTP/1.1 302 Found - ... - Location: /redirect2 - - ... - * Seen redirect location /redirect2 - ** scheme: (null) - ** host: (null) - ** port: (null) - ** path: /redirect2 - Redirection to http://127.0.0.1:50493/redirect2 - -Signed-off-by: Sven Nierlein ---- - plugins/check_curl.c | 15 ++++++++++----- - plugins/tests/check_curl.t | 14 +++++++++++--- - plugins/tests/check_http.t | 12 +++++++++++- - 3 files changed, 32 insertions(+), 9 deletions(-) - -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index c54be5e4f..01e2770e3 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -1285,10 +1285,12 @@ redir (curlhelp_write_curlbuf* header_buf) - } - } - -- if (!uri_strcmp (uri.scheme, "https")) -- use_ssl = true; -- else -- use_ssl = false; -+ if (uri.scheme.first) { -+ if (!uri_strcmp (uri.scheme, "https")) -+ use_ssl = true; -+ else -+ use_ssl = false; -+ } - - /* we do a sloppy test here only, because uriparser would have failed - * above, if the port would be invalid, we just check for MAX_PORT -@@ -1306,10 +1308,13 @@ redir (curlhelp_write_curlbuf* header_buf) - MAX_PORT, location, display_html ? "" : ""); - - /* by RFC 7231 relative URLs in Location should be taken relative to -- * the original URL, so wy try to form a new absolute URL here -+ * the original URL, so we try to form a new absolute URL here - */ - if (!uri.scheme.first && !uri.hostText.first) { - new_host = strdup (host_name ? host_name : server_address); -+ new_port = server_port; -+ if(use_ssl) -+ uri_string (uri.scheme, "https", DEFAULT_BUFFER_SIZE); - } else { - new_host = strdup (uri_string (uri.hostText, buf, DEFAULT_BUFFER_SIZE)); - } -diff --git a/plugins/tests/check_curl.t b/plugins/tests/check_curl.t -index 3c9148308..eaa9f5183 100755 ---- a/plugins/tests/check_curl.t -+++ b/plugins/tests/check_curl.t -@@ -21,7 +21,7 @@ use FindBin qw($Bin); - - $ENV{'LC_TIME'} = "C"; - --my $common_tests = 73; -+my $common_tests = 75; - my $ssl_only_tests = 8; - # Check that all dependent modules are available - eval "use HTTP::Daemon 6.01;"; -@@ -178,6 +178,11 @@ sub run_server { - $c->send_basic_header; - $c->send_crlf; - $c->send_response(HTTP::Response->new( 200, 'OK', undef, 'redirected' )); -+ } elsif ($r->url->path eq "/redirect_rel") { -+ $c->send_basic_header(302); -+ $c->send_header("Location", "/redirect2" ); -+ $c->send_crlf; -+ $c->send_response('moved to /redirect2'); - } elsif ($r->url->path eq "/redir_timeout") { - $c->send_redirect( "/timeout" ); - } elsif ($r->url->path eq "/timeout") { -@@ -471,9 +476,12 @@ sub run_common_tests { - is( $result->return_code, 0, $cmd); - like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); - -- # These tests may block -- print "ALRM\n"; -+ $cmd = "$command -f follow -u /redirect_rel -s redirected"; -+ $result = NPTest->testCmd( $cmd ); -+ is( $result->return_code, 0, $cmd); -+ like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); - -+ # These tests may block - # stickyport - on full urlS port is set back to 80 otherwise - $cmd = "$command -f stickyport -u /redir_external -t 5 -s redirected"; - eval { -diff --git a/plugins/tests/check_http.t b/plugins/tests/check_http.t -index 6078b2745..6eaf85b29 100755 ---- a/plugins/tests/check_http.t -+++ b/plugins/tests/check_http.t -@@ -13,7 +13,7 @@ use IO::Socket::INET; - - $ENV{'LC_TIME'} = "C"; - --my $common_tests = 71; -+my $common_tests = 73; - my $virtual_port_tests = 8; - my $ssl_only_tests = 12; - my $chunked_encoding_special_tests = 1; -@@ -199,6 +199,11 @@ sub run_server { - $c->send_basic_header; - $c->send_crlf; - $c->send_response(HTTP::Response->new( 200, 'OK', undef, 'redirected' )); -+ } elsif ($r->url->path eq "/redirect_rel") { -+ $c->send_basic_header(302); -+ $c->send_header("Location", "/redirect2" ); -+ $c->send_crlf; -+ $c->send_response('moved to /redirect2'); - } elsif ($r->url->path eq "/redir_timeout") { - $c->send_redirect( "/timeout" ); - } elsif ($r->url->path eq "/timeout") { -@@ -515,6 +520,11 @@ sub run_common_tests { - is( $result->return_code, 0, $cmd); - like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); - -+ $cmd = "$command -f follow -u /redirect_rel -s redirected"; -+ $result = NPTest->testCmd( $cmd ); -+ is( $result->return_code, 0, $cmd); -+ like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); -+ - # These tests may block - print "ALRM\n"; - diff --git a/debian/patches/10_check_http_chunked_wo_actual_content b/debian/patches/10_check_http_chunked_wo_actual_content new file mode 100644 index 0000000..3ba0c13 --- /dev/null +++ b/debian/patches/10_check_http_chunked_wo_actual_content @@ -0,0 +1,166 @@ +From 6d3e44d2d8395076060e9c741e9b173dc5d57b76 Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Mon, 6 Feb 2023 11:39:44 +0100 +Subject: [PATCH 1/2] check_http: Handle chunked encoding without actual + content correctly + +--- + plugins/check_http.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/plugins/check_http.c b/plugins/check_http.c +index 5fa310f5d..8dda046ff 100644 +--- a/plugins/check_http.c ++++ b/plugins/check_http.c +@@ -1462,7 +1462,13 @@ char *unchunk_content(const char *content) { + memcpy(result + (overall_size - size_of_chunk), start_of_chunk, size_of_chunk); + } + +- result[overall_size] = '\0'; ++ if (overall_size == 0 && result == NULL) { ++ // We might just have received the end chunk without previous content, so result is never allocated ++ result = calloc(1, sizeof(char)); ++ // No error handling here, we can only return NULL anyway ++ } else { ++ result[overall_size] = '\0'; ++ } + return result; + } + + +From 03efbb8e4f736bf2df5d9477dd4191501fe035ea Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Mon, 6 Feb 2023 12:15:46 +0100 +Subject: [PATCH 2/2] check_http: Implement special case test for zero size + chunk only + +--- + plugins/tests/check_http.t | 70 +++++++++++++++++++++++++++++++++++++- + 1 file changed, 69 insertions(+), 1 deletion(-) + +diff --git a/plugins/tests/check_http.t b/plugins/tests/check_http.t +index d766ac372..6078b2745 100755 +--- a/plugins/tests/check_http.t ++++ b/plugins/tests/check_http.t +@@ -9,12 +9,14 @@ use strict; + use Test::More; + use NPTest; + use FindBin qw($Bin); ++use IO::Socket::INET; + + $ENV{'LC_TIME'} = "C"; + + my $common_tests = 71; + my $virtual_port_tests = 8; + my $ssl_only_tests = 12; ++my $chunked_encoding_special_tests = 1; + # Check that all dependent modules are available + eval "use HTTP::Daemon 6.01;"; + plan skip_all => 'HTTP::Daemon >= 6.01 required' if $@; +@@ -30,7 +32,7 @@ if ($@) { + plan skip_all => "Missing required module for test: $@"; + } else { + if (-x "./$plugin") { +- plan tests => $common_tests * 2 + $ssl_only_tests + $virtual_port_tests; ++ plan tests => $common_tests * 2 + $ssl_only_tests + $virtual_port_tests + $chunked_encoding_special_tests; + } else { + plan skip_all => "No $plugin compiled"; + } +@@ -51,6 +53,7 @@ my $port_http = 50000 + int(rand(1000)); + my $port_https = $port_http + 1; + my $port_https_expired = $port_http + 2; + my $port_https_clientcert = $port_http + 3; ++my $port_hacked_http = $port_http + 4; + + # This array keeps sockets around for implementing timeouts + my @persist; +@@ -72,6 +75,28 @@ if (!$pid) { + } + push @pids, $pid; + ++# Fork the hacked HTTP server ++undef $pid; ++$pid = fork; ++defined $pid or die "Failed to fork"; ++if (!$pid) { ++ # this is the fork ++ undef @pids; ++ my $socket = new IO::Socket::INET ( ++ LocalHost => '0.0.0.0', ++ LocalPort => $port_hacked_http, ++ Proto => 'tcp', ++ Listen => 5, ++ Reuse => 1 ++ ); ++ die "cannot create socket $!n" unless $socket; ++ my $local_sock = $socket->sockport(); ++ print "server waiting for client connection on port $local_sock\n"; ++ run_hacked_http_server ( $socket ); ++ die "hacked http server stopped"; ++} ++push @pids, $pid; ++ + if (exists $servers->{https}) { + # Fork a normal HTTPS server + $pid = fork; +@@ -207,6 +232,37 @@ sub run_server { + } + } + ++sub run_hacked_http_server { ++ my $socket = shift; ++ ++ # auto-flush on socket ++ $| = 1; ++ ++ ++ while(1) ++ { ++ # waiting for a new client connection ++ my $client_socket = $socket->accept(); ++ ++ # get information about a newly connected client ++ my $client_address = $client_socket->peerhost(); ++ my $client_portn = $client_socket->peerport(); ++ print "connection from $client_address:$client_portn"; ++ ++ # read up to 1024 characters from the connected client ++ my $data = ""; ++ $client_socket->recv($data, 1024); ++ print "received data: $data"; ++ ++ # write response data to the connected client ++ $data = "HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\n"; ++ $client_socket->send($data); ++ ++ # notify client that response has been sent ++ shutdown($client_socket, 1); ++ } ++} ++ + END { + foreach my $pid (@pids) { + if ($pid) { print "Killing $pid\n"; kill "INT", $pid } +@@ -222,6 +278,7 @@ if ($ARGV[0] && $ARGV[0] eq "-d") { + my $result; + my $command = "./$plugin -H 127.0.0.1"; + ++run_chunked_encoding_special_test( {command => "$command -p $port_hacked_http"}); + run_common_tests( { command => "$command -p $port_http" } ); + SKIP: { + skip "HTTP::Daemon::SSL not installed", $common_tests + $ssl_only_tests if ! exists $servers->{https}; +@@ -511,3 +568,14 @@ sub run_common_tests { + }; + is( $@, "", $cmd ); + } ++ ++sub run_chunked_encoding_special_test { ++ my ($opts) = @_; ++ my $command = $opts->{command}; ++ ++ $cmd = "$command -u / -s 'ChunkedEncodingSpecialTest'"; ++ eval { ++ $result = NPTest->testCmd( $cmd, 5 ); ++ }; ++ is( $@, "", $cmd ); ++} diff --git a/debian/patches/11_check_curl_raise_ssl_issue b/debian/patches/11_check_curl_raise_ssl_issue deleted file mode 100644 index 9c8fd8f..0000000 --- a/debian/patches/11_check_curl_raise_ssl_issue +++ /dev/null @@ -1,87 +0,0 @@ -From ca40cf81fb94cf57a82df938ed2aa2843691be3a Mon Sep 17 00:00:00 2001 -From: Yannick Martin -Date: Fri, 9 Aug 2024 12:14:28 +0200 -Subject: [PATCH] check_curl: raise SSL issue when --continue-after-certificate - is used - -This change aims to raise the worst status between the SSL check and the HTTP check. - -before: -check_curl -H www.google.fr -S --continue-after-certificate --certificate 4000,4000 ; echo $? -CRITICAL - Certificate '*.google.fr' expires in 74 day(s) (Tue 22 Oct 2024 12:53:52 PM GMT +0000). -HTTP OK: HTTP/2 200 - 22807 bytes in 0.076 second response time |time=0.075516s;;;0.000000;10.000000 size=22807B;;;0; -0 - -after: -/usr/lib/nagios/ovh/check_curl -H www.google.fr -S --continue-after-certificate --certificate 4000,4000 ; echo $? -CRITICAL - Certificate '*.google.fr' expires in 74 day(s) (Tue 22 Oct 2024 12:53:52 PM GMT +0000). -HTTP OK: HTTP/2 200 - 22840 bytes in 0.090 second response time |time=0.090463s;;;0.000000;10.000000 size=22840B;;;0; -2 ---- - plugins/check_curl.c | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index 01e2770e3..4522e6c9f 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -468,6 +468,7 @@ int - check_http (void) - { - int result = STATE_OK; -+ int result_ssl = STATE_OK; - int page_len = 0; - int i; - char *force_host_header = NULL; -@@ -852,9 +853,9 @@ check_http (void) - /* check certificate with OpenSSL functions, curl has been built against OpenSSL - * and we actually have OpenSSL in the monitoring tools - */ -- result = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); -+ result_ssl = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); - if (!continue_after_check_cert) { -- return result; -+ return result_ssl; - } - #else /* USE_OPENSSL */ - die (STATE_CRITICAL, "HTTP CRITICAL - Cannot retrieve certificates - OpenSSL callback used and not linked against OpenSSL\n"); -@@ -898,17 +899,17 @@ check_http (void) - die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); - } - BIO_free (cert_BIO); -- result = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); -+ result_ssl = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); - if (!continue_after_check_cert) { -- return result; -+ return result_ssl; - } - #else /* USE_OPENSSL */ - /* We assume we don't have OpenSSL and np_net_ssl_check_certificate at our disposal, - * so we use the libcurl CURLINFO data - */ -- result = net_noopenssl_check_certificate(&cert_ptr, days_till_exp_warn, days_till_exp_crit); -+ result_ssl = net_noopenssl_check_certificate(&cert_ptr, days_till_exp_warn, days_till_exp_crit); - if (!continue_after_check_cert) { -- return result; -+ return result_ssl; - } - #endif /* USE_OPENSSL */ - } else { -@@ -1176,7 +1177,7 @@ check_http (void) - } - - /* TODO: separate _() msg and status code: die (result, "HTTP %s: %s\n", state_text(result), msg); */ -- die (result, "HTTP %s: %s %d %s%s%s - %d bytes in %.3f second response time %s|%s\n%s%s", -+ die (max_state_alt(result, result_ssl), "HTTP %s: %s %d %s%s%s - %d bytes in %.3f second response time %s|%s\n%s%s", - state_text(result), string_statuscode (status_line.http_major, status_line.http_minor), - status_line.http_code, status_line.msg, - strlen(msg) > 0 ? " - " : "", -@@ -1186,7 +1187,7 @@ check_http (void) - (show_body ? body_buf.buf : ""), - (show_body ? "\n" : "") ); - -- return result; -+ return max_state_alt(result, result_ssl); - } - - int diff --git a/debian/patches/11_fallback_for_gnutls b/debian/patches/11_fallback_for_gnutls new file mode 100644 index 0000000..0b1970f --- /dev/null +++ b/debian/patches/11_fallback_for_gnutls @@ -0,0 +1,62 @@ +From 6f0ce3804a396ce89c09f50123e5f31b5b525b31 Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sat, 4 Feb 2023 16:19:46 +0100 +Subject: [PATCH 1/2] fallback to SSL_CTX_use_certificate_file for gnutls + +--- + plugins/sslutils.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/plugins/sslutils.c b/plugins/sslutils.c +index 286273f61..d542c499f 100644 +--- a/plugins/sslutils.c ++++ b/plugins/sslutils.c +@@ -134,7 +134,18 @@ int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int + return STATE_CRITICAL; + } + if (cert && privkey) { +- SSL_CTX_use_certificate_chain_file(c, cert); ++#ifdef USE_OPENSSL ++ if (!SSL_CTX_use_certificate_chain_file(c, cert)) { ++#else ++#if USE_GNUTLS ++ if (!SSL_CTX_use_certificate_file(c, cert, SSL_FILETYPE_PEM)) { ++#else ++#error Unported for unknown SSL library ++#endif ++#endif ++ printf ("%s\n", _("CRITICAL - Unable to open certificate chain file!\n")); ++ return STATE_CRITICAL; ++ } + SSL_CTX_use_PrivateKey_file(c, privkey, SSL_FILETYPE_PEM); + #ifdef USE_OPENSSL + if (!SSL_CTX_check_private_key(c)) { + +From 28b5a1cc454774474b98037acd283a1da4c3f7ad Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= + <12514511+RincewindsHat@users.noreply.github.com> +Date: Thu, 9 Feb 2023 00:35:20 +0100 +Subject: [PATCH 2/2] Make preprocessor fallback for gnutls more readable + +--- + plugins/sslutils.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/plugins/sslutils.c b/plugins/sslutils.c +index d542c499f..a7d801963 100644 +--- a/plugins/sslutils.c ++++ b/plugins/sslutils.c +@@ -136,12 +136,10 @@ int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int + if (cert && privkey) { + #ifdef USE_OPENSSL + if (!SSL_CTX_use_certificate_chain_file(c, cert)) { +-#else +-#if USE_GNUTLS ++#elif USE_GNUTLS + if (!SSL_CTX_use_certificate_file(c, cert, SSL_FILETYPE_PEM)) { + #else + #error Unported for unknown SSL library +-#endif + #endif + printf ("%s\n", _("CRITICAL - Unable to open certificate chain file!\n")); + return STATE_CRITICAL; diff --git a/debian/patches/12_check_curl_add_docu b/debian/patches/12_check_curl_add_docu deleted file mode 100644 index 4716906..0000000 --- a/debian/patches/12_check_curl_add_docu +++ /dev/null @@ -1,42 +0,0 @@ -From 9cdf2aec7fa3277237c078fc9da32f40d0292299 Mon Sep 17 00:00:00 2001 -From: Alvar Penning -Date: Fri, 16 Aug 2024 10:38:02 +0200 -Subject: [PATCH] check_curl: Documentation for --certificate, --cookie-jar - -From the mere help output for -C / --certificate, I was confused about -what its two integer parameters do. Unfortunately, I also missed out on -the explaining examples later. Since I like to have basic documentation -for each flag, I tried to make the arguments as short as possible. - -The other fix was one hyphen too many for the --cookie-jar option. ---- - plugins/check_curl.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index 4522e6c9f..e9c15e648 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -2008,8 +2008,11 @@ print_help (void) - printf (" %s\n", _("Note: SNI is not supported in libcurl before 7.18.1")); - #endif - printf (" %s\n", "-C, --certificate=INTEGER[,INTEGER]"); -- printf (" %s\n", _("Minimum number of days a certificate has to be valid. Port defaults to 443")); -- printf (" %s\n", _("(when this option is used the URL is not checked by default. You can use")); -+ printf (" %s\n", _("Minimum number of days a certificate has to be valid. Port defaults to 443.")); -+ printf (" %s\n", _("A STATE_WARNING is returned if the certificate has a validity less than the")); -+ printf (" %s\n", _("first agument's value. If there is a second argument and the certificate's")); -+ printf (" %s\n", _("validity is less than its value, a STATE_CRITICAL is returned.")); -+ printf (" %s\n", _("(When this option is used the URL is not checked by default. You can use")); - printf (" %s\n", _(" --continue-after-certificate to override this behavior)")); - printf (" %s\n", "--continue-after-certificate"); - printf (" %s\n", _("Allows the HTTP check to continue after performing the certificate check.")); -@@ -2092,7 +2095,7 @@ print_help (void) - printf (" %s\n", _("Enable automatic decompression of body (CURLOPT_ACCEPT_ENCODING).")); - printf(" %s\n", "--haproxy-protocol"); - printf(" %s\n", _("Send HAProxy proxy protocol v1 header (CURLOPT_HAPROXYPROTOCOL).")); -- printf (" %s\n", "---cookie-jar=FILE"); -+ printf (" %s\n", "--cookie-jar=FILE"); - printf (" %s\n", _("Store cookies in the cookie jar and send them out when requested.")); - printf ("\n"); - diff --git a/debian/patches/12_check_curl_improvements b/debian/patches/12_check_curl_improvements new file mode 100644 index 0000000..b0c0d0b --- /dev/null +++ b/debian/patches/12_check_curl_improvements @@ -0,0 +1,906 @@ +From 53f07a468db98247dc4012de0ee678f29cc2bfec Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sun, 5 Feb 2023 20:34:41 +0100 +Subject: [PATCH 1/7] using CURLOPT_REDIR_PROTOCOLS_STR instead of + CURLOPT_REDIR_PROTOCOLS for curl >= 7.85.0 + +--- + plugins/check_curl.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index c6593df1a..7916eb55a 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -688,9 +688,13 @@ check_http (void) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_MAXREDIRS, max_depth+1), "CURLOPT_MAXREDIRS"); + + /* for now allow only http and https (we are a http(s) check plugin in the end) */ ++#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 85, 0) ++ handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_REDIR_PROTOCOLS_STR, "http,https"), "CURLOPT_REDIR_PROTOCOLS_STR"); ++#else + #if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS), "CURLOPT_REDIRECT_PROTOCOLS"); + #endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) */ ++#endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 85, 4) */ + + /* TODO: handle the following aspects of redirection, make them + * command line options too later: + +From 27b0c6964559ba60ff6c7a626d51e62e5256ed62 Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sat, 11 Feb 2023 18:39:24 +0100 +Subject: [PATCH 2/7] fixed regerror is MAX_INPUT_BUFFER writting into too + small errbuf + +--- + plugins/check_curl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index 7916eb55a..406f6f884 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -173,7 +173,7 @@ double time_connect; + double time_appconnect; + double time_headers; + double time_firstbyte; +-char errbuf[CURL_ERROR_SIZE+1]; ++char errbuf[MAX_INPUT_BUFFER]; + CURLcode res; + char url[DEFAULT_BUFFER_SIZE]; + char msg[DEFAULT_BUFFER_SIZE]; + +From f6978deaa1bf7c6a7196363104ebfcef143080ab Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sat, 11 Feb 2023 19:11:07 +0100 +Subject: [PATCH 3/7] added --cookie-jar and doing proper cleanup of libcurl + +--- + plugins/check_curl.c | 47 ++++++++++++++++++++++++++++++++------------ + 1 file changed, 34 insertions(+), 13 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index 406f6f884..35d1237b8 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -214,6 +214,7 @@ int address_family = AF_UNSPEC; + curlhelp_ssl_library ssl_library = CURLHELP_SSL_LIBRARY_UNKNOWN; + int curl_http_version = CURL_HTTP_VERSION_NONE; + int automatic_decompression = FALSE; ++char *cookie_jar_file = NULL; + + int process_arguments (int, char**); + void handle_curl_option_return_code (CURLcode res, const char* option); +@@ -412,6 +413,19 @@ lookup_host (const char *host, char *buf, size_t buflen) + return 0; + } + ++static void ++cleanup (void) ++{ ++ curlhelp_free_statusline(&status_line); ++ curl_easy_cleanup (curl); ++ curl_global_cleanup (); ++ curlhelp_freewritebuffer (&body_buf); ++ curlhelp_freewritebuffer (&header_buf); ++ if (!strcmp (http_method, "PUT")) { ++ curlhelp_freereadbuffer (&put_buf); ++ } ++} ++ + int + check_http (void) + { +@@ -743,7 +757,16 @@ check_http (void) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_INFILESIZE, (curl_off_t)strlen (http_post_data)), "CURLOPT_INFILESIZE"); + } + } ++ ++ /* cookie handling */ ++ if (cookie_jar_file != NULL) { ++ handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEJAR, cookie_jar_file), "CURLOPT_COOKIEJAR"); ++ handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEFILE, cookie_jar_file), "CURLOPT_COOKIEFILE"); ++ } + ++ /* register cleanup function to shut down libcurl properly */ ++ atexit (cleanup); ++ + /* do the request */ + res = curl_easy_perform(curl); + +@@ -1021,7 +1044,7 @@ check_http (void) + else + msg[strlen(msg)-3] = '\0'; + } +- ++ + /* TODO: separate _() msg and status code: die (result, "HTTP %s: %s\n", state_text(result), msg); */ + die (result, "HTTP %s: %s %d %s%s%s - %d bytes in %.3f second response time %s|%s\n%s%s", + state_text(result), string_statuscode (status_line.http_major, status_line.http_minor), +@@ -1033,16 +1056,6 @@ check_http (void) + (show_body ? body_buf.buf : ""), + (show_body ? "\n" : "") ); + +- /* proper cleanup after die? */ +- curlhelp_free_statusline(&status_line); +- curl_easy_cleanup (curl); +- curl_global_cleanup (); +- curlhelp_freewritebuffer (&body_buf); +- curlhelp_freewritebuffer (&header_buf); +- if (!strcmp (http_method, "PUT")) { +- curlhelp_freereadbuffer (&put_buf); +- } +- + return result; + } + +@@ -1239,7 +1252,8 @@ process_arguments (int argc, char **argv) + CONTINUE_AFTER_CHECK_CERT, + CA_CERT_OPTION, + HTTP_VERSION_OPTION, +- AUTOMATIC_DECOMPRESSION ++ AUTOMATIC_DECOMPRESSION, ++ COOKIE_JAR + }; + + int option = 0; +@@ -1285,6 +1299,7 @@ process_arguments (int argc, char **argv) + {"max-redirs", required_argument, 0, MAX_REDIRS_OPTION}, + {"http-version", required_argument, 0, HTTP_VERSION_OPTION}, + {"enable-automatic-decompression", no_argument, 0, AUTOMATIC_DECOMPRESSION}, ++ {"cookie-jar", required_argument, 0, COOKIE_JAR}, + {0, 0, 0, 0} + }; + +@@ -1691,6 +1706,9 @@ process_arguments (int argc, char **argv) + case AUTOMATIC_DECOMPRESSION: + automatic_decompression = TRUE; + break; ++ case COOKIE_JAR: ++ cookie_jar_file = optarg; ++ break; + case '?': + /* print short usage statement if args not parsable */ + usage5 (); +@@ -1910,6 +1928,8 @@ print_help (void) + printf (" %s\n", _("1.0 = HTTP/1.0, 1.1 = HTTP/1.1, 2.0 = HTTP/2 (HTTP/2 will fail without -S)")); + printf (" %s\n", "--enable-automatic-decompression"); + printf (" %s\n", _("Enable automatic decompression of body (CURLOPT_ACCEPT_ENCODING).")); ++ printf (" %s\n", "---cookie-jar=FILE"); ++ printf (" %s\n", _("Store cookies in the cookie jar and send them out when requested.")); + printf ("\n"); + + printf (UT_WARN_CRIT); +@@ -1994,7 +2014,8 @@ print_usage (void) + printf (" [-P string] [-m :] [-4|-6] [-N] [-M ]\n"); + printf (" [-A string] [-k string] [-S ] [--sni]\n"); + printf (" [-T ] [-j method]\n"); +- printf (" [--http-version=]\n"); ++ printf (" [--http-version=] [--enable-automatic-decompression]\n"); ++ printf (" [--cookie-jar=\n"); + printf (" %s -H | -I -C [,]\n",progname); + printf (" [-p ] [-t ] [-4|-6] [--sni]\n"); + printf ("\n"); + +From 40da85e6913ba4898f5a80772c7b3ea0cba0d3eb Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sun, 12 Feb 2023 12:11:38 +0100 +Subject: [PATCH 4/7] better cleanup of curl structures and buffers + +--- + plugins/check_curl.c | 31 ++++++++++++++++++++----------- + 1 file changed, 20 insertions(+), 11 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index 35d1237b8..a49cac8a3 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -161,9 +161,13 @@ char *http_post_data = NULL; + char *http_content_type = NULL; + CURL *curl; + struct curl_slist *header_list = NULL; ++int body_buf_initialized = 0; + curlhelp_write_curlbuf body_buf; ++int header_buf_initialized = 0; + curlhelp_write_curlbuf header_buf; ++int status_line_initialized = 0; + curlhelp_statusline status_line; ++int put_buf_initialized = 0; + curlhelp_read_curlbuf put_buf; + char http_header[DEFAULT_BUFFER_SIZE]; + long code; +@@ -416,14 +420,12 @@ lookup_host (const char *host, char *buf, size_t buflen) + static void + cleanup (void) + { +- curlhelp_free_statusline(&status_line); ++ if (status_line_initialized) curlhelp_free_statusline(&status_line); + curl_easy_cleanup (curl); + curl_global_cleanup (); +- curlhelp_freewritebuffer (&body_buf); +- curlhelp_freewritebuffer (&header_buf); +- if (!strcmp (http_method, "PUT")) { +- curlhelp_freereadbuffer (&put_buf); +- } ++ if (body_buf_initialized) curlhelp_freewritebuffer (&body_buf); ++ if (header_buf_initialized) curlhelp_freewritebuffer (&header_buf); ++ if (put_buf_initialized) curlhelp_freereadbuffer (&put_buf); + } + + int +@@ -441,9 +443,14 @@ check_http (void) + if (curl_global_init (CURL_GLOBAL_DEFAULT) != CURLE_OK) + die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_global_init failed\n"); + +- if ((curl = curl_easy_init()) == NULL) ++ if ((curl = curl_easy_init()) == NULL) { ++ curl_global_cleanup (); + die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_easy_init failed\n"); ++ } + ++ /* register cleanup function to shut down libcurl properly */ ++ atexit (cleanup); ++ + if (verbose >= 1) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_VERBOSE, TRUE), "CURLOPT_VERBOSE"); + +@@ -460,12 +467,14 @@ check_http (void) + /* initialize buffer for body of the answer */ + if (curlhelp_initwritebuffer(&body_buf) < 0) + die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating buffer for body\n"); ++ body_buf_initialized = 1; + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, (curl_write_callback)curlhelp_buffer_write_callback), "CURLOPT_WRITEFUNCTION"); + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEDATA, (void *)&body_buf), "CURLOPT_WRITEDATA"); + + /* initialize buffer for header of the answer */ + if (curlhelp_initwritebuffer( &header_buf ) < 0) + die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating buffer for header\n" ); ++ header_buf_initialized = 1; + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_HEADERFUNCTION, (curl_write_callback)curlhelp_buffer_write_callback), "CURLOPT_HEADERFUNCTION"); + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEHEADER, (void *)&header_buf), "CURLOPT_WRITEHEADER"); + +@@ -752,7 +761,9 @@ check_http (void) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_POSTFIELDS, http_post_data), "CURLOPT_POSTFIELDS"); + } else if (!strcmp(http_method, "PUT")) { + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_READFUNCTION, (curl_read_callback)curlhelp_buffer_read_callback), "CURLOPT_READFUNCTION"); +- curlhelp_initreadbuffer (&put_buf, http_post_data, strlen (http_post_data)); ++ if (curlhelp_initreadbuffer (&put_buf, http_post_data, strlen (http_post_data)) < 0) ++ die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating read buffer for PUT\n"); ++ put_buf_initialized = 1; + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_READDATA, (void *)&put_buf), "CURLOPT_READDATA"); + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_INFILESIZE, (curl_off_t)strlen (http_post_data)), "CURLOPT_INFILESIZE"); + } +@@ -764,9 +775,6 @@ check_http (void) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEFILE, cookie_jar_file), "CURLOPT_COOKIEFILE"); + } + +- /* register cleanup function to shut down libcurl properly */ +- atexit (cleanup); +- + /* do the request */ + res = curl_easy_perform(curl); + +@@ -2159,6 +2167,7 @@ curlhelp_parse_statusline (const char *buf, curlhelp_statusline *status_line) + + first_line_len = (size_t)(first_line_end - buf); + status_line->first_line = (char *)malloc (first_line_len + 1); ++ status_line_initialized = 1; + if (status_line->first_line == NULL) return -1; + memcpy (status_line->first_line, buf, first_line_len); + status_line->first_line[first_line_len] = '\0'; + +From 6563267c3ad84bcc4779d282b5ae20520a4a2a6b Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sun, 12 Feb 2023 13:16:25 +0100 +Subject: [PATCH 5/7] fixed double frees when doing old-style redirects + +--- + plugins/check_curl.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index a49cac8a3..1127d6019 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -160,6 +160,8 @@ char *http_method = NULL; + char *http_post_data = NULL; + char *http_content_type = NULL; + CURL *curl; ++int curl_global_initialized = 0; ++int curl_easy_initialized = 0; + struct curl_slist *header_list = NULL; + int body_buf_initialized = 0; + curlhelp_write_curlbuf body_buf; +@@ -421,11 +423,17 @@ static void + cleanup (void) + { + if (status_line_initialized) curlhelp_free_statusline(&status_line); +- curl_easy_cleanup (curl); +- curl_global_cleanup (); ++ status_line_initialized = 0; ++ if (curl_easy_initialized) curl_easy_cleanup (curl); ++ curl_easy_initialized = 0; ++ if (curl_global_initialized) curl_global_cleanup (); ++ curl_global_initialized = 0; + if (body_buf_initialized) curlhelp_freewritebuffer (&body_buf); ++ body_buf_initialized = 0; + if (header_buf_initialized) curlhelp_freewritebuffer (&header_buf); ++ header_buf_initialized = 0; + if (put_buf_initialized) curlhelp_freereadbuffer (&put_buf); ++ put_buf_initialized = 0; + } + + int +@@ -442,11 +450,12 @@ check_http (void) + /* initialize curl */ + if (curl_global_init (CURL_GLOBAL_DEFAULT) != CURLE_OK) + die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_global_init failed\n"); ++ curl_global_initialized = 1; + + if ((curl = curl_easy_init()) == NULL) { +- curl_global_cleanup (); + die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_easy_init failed\n"); + } ++ curl_easy_initialized = 1; + + /* register cleanup function to shut down libcurl properly */ + atexit (cleanup); +@@ -903,6 +912,7 @@ check_http (void) + /* we cannot know the major/minor version here for sure as we cannot parse the first line */ + die (STATE_CRITICAL, "HTTP CRITICAL HTTP/x.x %ld unknown - %s", code, msg); + } ++ status_line_initialized = 1; + + /* get result code from cURL */ + handle_curl_option_return_code (curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &code), "CURLINFO_RESPONSE_CODE"); +@@ -1234,6 +1244,7 @@ redir (curlhelp_write_curlbuf* header_buf) + * attached to the URL in Location + */ + ++ cleanup (); + check_http (); + } + +@@ -2167,7 +2178,6 @@ curlhelp_parse_statusline (const char *buf, curlhelp_statusline *status_line) + + first_line_len = (size_t)(first_line_end - buf); + status_line->first_line = (char *)malloc (first_line_len + 1); +- status_line_initialized = 1; + if (status_line->first_line == NULL) return -1; + memcpy (status_line->first_line, buf, first_line_len); + status_line->first_line[first_line_len] = '\0'; + +From 8e1bbf5e6ed4069d4256bf549a408bb8759861fa Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sun, 12 Feb 2023 15:09:02 +0100 +Subject: [PATCH 6/7] changed #else/#if to #elif in libcurl library checks + +--- + plugins/check_curl.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index 1127d6019..284cf4eab 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -722,11 +722,9 @@ check_http (void) + /* for now allow only http and https (we are a http(s) check plugin in the end) */ + #if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 85, 0) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_REDIR_PROTOCOLS_STR, "http,https"), "CURLOPT_REDIR_PROTOCOLS_STR"); +-#else +-#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) ++#elif LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS), "CURLOPT_REDIRECT_PROTOCOLS"); +-#endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) */ +-#endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 85, 4) */ ++#endif + + /* TODO: handle the following aspects of redirection, make them + * command line options too later: + +From ad6b638acb420f4416b10cf52fdd6c75c3c8e6fa Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Fri, 17 Feb 2023 14:03:55 +0100 +Subject: [PATCH 7/7] using real boolean in check_curl + +--- + plugins/check_curl.c | 160 ++++++++++++++++++++++--------------------- + 1 file changed, 82 insertions(+), 78 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index 284cf4eab..c37d45d91 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -37,6 +37,7 @@ const char *progname = "check_curl"; + const char *copyright = "2006-2019"; + const char *email = "devel@monitoring-plugins.org"; + ++#include + #include + + #include "common.h" +@@ -131,14 +132,14 @@ regmatch_t pmatch[REGS]; + char regexp[MAX_RE_SIZE]; + int cflags = REG_NOSUB | REG_EXTENDED | REG_NEWLINE; + int errcode; +-int invert_regex = 0; ++bool invert_regex = false; + + char *server_address = NULL; + char *host_name = NULL; + char *server_url = 0; + char server_ip[DEFAULT_BUFFER_SIZE]; + struct curl_slist *server_ips = NULL; +-int specify_port = FALSE; ++bool specify_port = false; + unsigned short server_port = HTTP_PORT; + unsigned short virtual_port = 0; + int host_name_length; +@@ -150,8 +151,8 @@ int days_till_exp_warn, days_till_exp_crit; + thresholds *thlds; + char user_agent[DEFAULT_BUFFER_SIZE]; + int verbose = 0; +-int show_extended_perfdata = FALSE; +-int show_body = FALSE; ++bool show_extended_perfdata = false; ++bool show_body = false; + int min_page_len = 0; + int max_page_len = 0; + int redir_depth = 0; +@@ -160,16 +161,16 @@ char *http_method = NULL; + char *http_post_data = NULL; + char *http_content_type = NULL; + CURL *curl; +-int curl_global_initialized = 0; +-int curl_easy_initialized = 0; ++bool curl_global_initialized = false; ++bool curl_easy_initialized = false; + struct curl_slist *header_list = NULL; +-int body_buf_initialized = 0; ++bool body_buf_initialized = false; + curlhelp_write_curlbuf body_buf; +-int header_buf_initialized = 0; ++bool header_buf_initialized = false; + curlhelp_write_curlbuf header_buf; +-int status_line_initialized = 0; ++bool status_line_initialized = false; + curlhelp_statusline status_line; +-int put_buf_initialized = 0; ++bool put_buf_initialized = false; + curlhelp_read_curlbuf put_buf; + char http_header[DEFAULT_BUFFER_SIZE]; + long code; +@@ -192,14 +193,14 @@ char user_auth[MAX_INPUT_BUFFER] = ""; + char proxy_auth[MAX_INPUT_BUFFER] = ""; + char **http_opt_headers; + int http_opt_headers_count = 0; +-int display_html = FALSE; ++bool display_html = false; + int onredirect = STATE_OK; + int followmethod = FOLLOW_HTTP_CURL; + int followsticky = STICKY_NONE; +-int use_ssl = FALSE; +-int use_sni = TRUE; +-int check_cert = FALSE; +-int continue_after_check_cert = FALSE; ++bool use_ssl = false; ++bool use_sni = true; ++bool check_cert = false; ++bool continue_after_check_cert = false; + typedef union { + struct curl_slist* to_info; + struct curl_certinfo* to_certinfo; +@@ -209,20 +210,20 @@ int ssl_version = CURL_SSLVERSION_DEFAULT; + char *client_cert = NULL; + char *client_privkey = NULL; + char *ca_cert = NULL; +-int verify_peer_and_host = FALSE; +-int is_openssl_callback = FALSE; ++bool verify_peer_and_host = false; ++bool is_openssl_callback = false; + #if defined(HAVE_SSL) && defined(USE_OPENSSL) + X509 *cert = NULL; + #endif /* defined(HAVE_SSL) && defined(USE_OPENSSL) */ +-int no_body = FALSE; ++bool no_body = false; + int maximum_age = -1; + int address_family = AF_UNSPEC; + curlhelp_ssl_library ssl_library = CURLHELP_SSL_LIBRARY_UNKNOWN; + int curl_http_version = CURL_HTTP_VERSION_NONE; +-int automatic_decompression = FALSE; ++bool automatic_decompression = false; + char *cookie_jar_file = NULL; + +-int process_arguments (int, char**); ++bool process_arguments (int, char**); + void handle_curl_option_return_code (CURLcode res, const char* option); + int check_http (void); + void redir (curlhelp_write_curlbuf*); +@@ -276,10 +277,10 @@ main (int argc, char **argv) + progname, NP_VERSION, VERSION, curl_version()); + + /* parse arguments */ +- if (process_arguments (argc, argv) == ERROR) ++ if (process_arguments (argc, argv) == false) + usage4 (_("Could not parse arguments")); + +- if (display_html == TRUE) ++ if (display_html) + printf ("", + use_ssl ? "https" : "http", + host_name ? host_name : server_address, +@@ -423,17 +424,17 @@ static void + cleanup (void) + { + if (status_line_initialized) curlhelp_free_statusline(&status_line); +- status_line_initialized = 0; ++ status_line_initialized = false; + if (curl_easy_initialized) curl_easy_cleanup (curl); +- curl_easy_initialized = 0; ++ curl_easy_initialized = false; + if (curl_global_initialized) curl_global_cleanup (); +- curl_global_initialized = 0; ++ curl_global_initialized = false; + if (body_buf_initialized) curlhelp_freewritebuffer (&body_buf); +- body_buf_initialized = 0; ++ body_buf_initialized = false; + if (header_buf_initialized) curlhelp_freewritebuffer (&header_buf); +- header_buf_initialized = 0; ++ header_buf_initialized = false; + if (put_buf_initialized) curlhelp_freereadbuffer (&put_buf); +- put_buf_initialized = 0; ++ put_buf_initialized = false; + } + + int +@@ -450,18 +451,18 @@ check_http (void) + /* initialize curl */ + if (curl_global_init (CURL_GLOBAL_DEFAULT) != CURLE_OK) + die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_global_init failed\n"); +- curl_global_initialized = 1; ++ curl_global_initialized = true; + + if ((curl = curl_easy_init()) == NULL) { + die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_easy_init failed\n"); + } +- curl_easy_initialized = 1; ++ curl_easy_initialized = true; + + /* register cleanup function to shut down libcurl properly */ + atexit (cleanup); + + if (verbose >= 1) +- handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_VERBOSE, TRUE), "CURLOPT_VERBOSE"); ++ handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_VERBOSE, 1), "CURLOPT_VERBOSE"); + + /* print everything on stdout like check_http would do */ + handle_curl_option_return_code (curl_easy_setopt(curl, CURLOPT_STDERR, stdout), "CURLOPT_STDERR"); +@@ -476,14 +477,14 @@ check_http (void) + /* initialize buffer for body of the answer */ + if (curlhelp_initwritebuffer(&body_buf) < 0) + die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating buffer for body\n"); +- body_buf_initialized = 1; ++ body_buf_initialized = true; + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, (curl_write_callback)curlhelp_buffer_write_callback), "CURLOPT_WRITEFUNCTION"); + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEDATA, (void *)&body_buf), "CURLOPT_WRITEDATA"); + + /* initialize buffer for header of the answer */ + if (curlhelp_initwritebuffer( &header_buf ) < 0) + die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating buffer for header\n" ); +- header_buf_initialized = 1; ++ header_buf_initialized = true; + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_HEADERFUNCTION, (curl_write_callback)curlhelp_buffer_write_callback), "CURLOPT_HEADERFUNCTION"); + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEHEADER, (void *)&header_buf), "CURLOPT_WRITEHEADER"); + +@@ -544,7 +545,7 @@ check_http (void) + + /* disable body for HEAD request */ + if (http_method && !strcmp (http_method, "HEAD" )) { +- no_body = TRUE; ++ no_body = true; + } + + /* set HTTP protocol version */ +@@ -641,7 +642,7 @@ check_http (void) + #ifdef USE_OPENSSL + /* libcurl and monitoring plugins built with OpenSSL, good */ + handle_curl_option_return_code (curl_easy_setopt(curl, CURLOPT_SSL_CTX_FUNCTION, sslctxfun), "CURLOPT_SSL_CTX_FUNCTION"); +- is_openssl_callback = TRUE; ++ is_openssl_callback = true; + #else /* USE_OPENSSL */ + #endif /* USE_OPENSSL */ + /* libcurl is built with OpenSSL, monitoring plugins, so falling +@@ -770,7 +771,7 @@ check_http (void) + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_READFUNCTION, (curl_read_callback)curlhelp_buffer_read_callback), "CURLOPT_READFUNCTION"); + if (curlhelp_initreadbuffer (&put_buf, http_post_data, strlen (http_post_data)) < 0) + die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating read buffer for PUT\n"); +- put_buf_initialized = 1; ++ put_buf_initialized = true; + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_READDATA, (void *)&put_buf), "CURLOPT_READDATA"); + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_INFILESIZE, (curl_off_t)strlen (http_post_data)), "CURLOPT_INFILESIZE"); + } +@@ -801,15 +802,15 @@ check_http (void) + + /* certificate checks */ + #ifdef LIBCURL_FEATURE_SSL +- if (use_ssl == TRUE) { +- if (check_cert == TRUE) { ++ if (use_ssl) { ++ if (check_cert) { + if (is_openssl_callback) { + #ifdef USE_OPENSSL + /* check certificate with OpenSSL functions, curl has been built against OpenSSL + * and we actually have OpenSSL in the monitoring tools + */ + result = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); +- if (continue_after_check_cert == FALSE) { ++ if (!continue_after_check_cert) { + return result; + } + #else /* USE_OPENSSL */ +@@ -851,7 +852,7 @@ check_http (void) + } + BIO_free (cert_BIO); + result = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); +- if (continue_after_check_cert == FALSE) { ++ if (!continue_after_check_cert) { + return result; + } + #else /* USE_OPENSSL */ +@@ -859,7 +860,7 @@ check_http (void) + * so we use the libcurl CURLINFO data + */ + result = net_noopenssl_check_certificate(&cert_ptr, days_till_exp_warn, days_till_exp_crit); +- if (continue_after_check_cert == FALSE) { ++ if (!continue_after_check_cert) { + return result; + } + #endif /* USE_OPENSSL */ +@@ -887,7 +888,7 @@ check_http (void) + perfd_time(total_time), + perfd_size(page_len), + perfd_time_connect(time_connect), +- use_ssl == TRUE ? perfd_time_ssl (time_appconnect-time_connect) : "", ++ use_ssl ? perfd_time_ssl (time_appconnect-time_connect) : "", + perfd_time_headers(time_headers - time_appconnect), + perfd_time_firstbyte(time_firstbyte - time_headers), + perfd_time_transfer(total_time-time_firstbyte) +@@ -910,7 +911,7 @@ check_http (void) + /* we cannot know the major/minor version here for sure as we cannot parse the first line */ + die (STATE_CRITICAL, "HTTP CRITICAL HTTP/x.x %ld unknown - %s", code, msg); + } +- status_line_initialized = 1; ++ status_line_initialized = true; + + /* get result code from cURL */ + handle_curl_option_return_code (curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &code), "CURLINFO_RESPONSE_CODE"); +@@ -1023,12 +1024,12 @@ check_http (void) + + if (strlen (regexp)) { + errcode = regexec (&preg, body_buf.buf, REGS, pmatch, 0); +- if ((errcode == 0 && invert_regex == 0) || (errcode == REG_NOMATCH && invert_regex == 1)) { ++ if ((errcode == 0 && !invert_regex) || (errcode == REG_NOMATCH && invert_regex)) { + /* OK - No-op to avoid changing the logic around it */ + result = max_state_alt(STATE_OK, result); + } +- else if ((errcode == REG_NOMATCH && invert_regex == 0) || (errcode == 0 && invert_regex == 1)) { +- if (invert_regex == 0) ++ else if ((errcode == REG_NOMATCH && !invert_regex) || (errcode == 0 && invert_regex)) { ++ if (!invert_regex) + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%spattern not found, "), msg); + else + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%spattern found, "), msg); +@@ -1167,7 +1168,10 @@ redir (curlhelp_write_curlbuf* header_buf) + } + } + +- use_ssl = !uri_strcmp (uri.scheme, "https"); ++ if (!uri_strcmp (uri.scheme, "https")) ++ use_ssl = true; ++ else ++ use_ssl = false; + + /* we do a sloppy test here only, because uriparser would have failed + * above, if the port would be invalid, we just check for MAX_PORT +@@ -1255,7 +1259,7 @@ test_file (char *path) + usage2 (_("file does not exist or is not readable"), path); + } + +-int ++bool + process_arguments (int argc, char **argv) + { + char *p; +@@ -1321,7 +1325,7 @@ process_arguments (int argc, char **argv) + }; + + if (argc < 2) +- return ERROR; ++ return false; + + /* support check_http compatible arguments */ + for (c = 1; c < argc; c++) { +@@ -1401,7 +1405,7 @@ process_arguments (int argc, char **argv) + if( strtol(optarg, NULL, 10) > MAX_PORT) + usage2 (_("Invalid port number, supplied port number is too big"), optarg); + server_port = (unsigned short)strtol(optarg, NULL, 10); +- specify_port = TRUE; ++ specify_port = true; + } + break; + case 'a': /* authorization info */ +@@ -1435,10 +1439,10 @@ process_arguments (int argc, char **argv) + http_opt_headers[http_opt_headers_count - 1] = optarg; + break; + case 'L': /* show html link */ +- display_html = TRUE; ++ display_html = true; + break; + case 'n': /* do not show html link */ +- display_html = FALSE; ++ display_html = false; + break; + case 'C': /* Check SSL cert validity */ + #ifdef LIBCURL_FEATURE_SSL +@@ -1459,12 +1463,12 @@ process_arguments (int argc, char **argv) + usage2 (_("Invalid certificate expiration period"), optarg); + days_till_exp_warn = atoi (optarg); + } +- check_cert = TRUE; ++ check_cert = true; + goto enable_ssl; + #endif + case CONTINUE_AFTER_CHECK_CERT: /* don't stop after the certificate is checked */ + #ifdef HAVE_SSL +- continue_after_check_cert = TRUE; ++ continue_after_check_cert = true; + break; + #endif + case 'J': /* use client certificate */ +@@ -1487,13 +1491,13 @@ process_arguments (int argc, char **argv) + #endif + #ifdef LIBCURL_FEATURE_SSL + case 'D': /* verify peer certificate & host */ +- verify_peer_and_host = TRUE; ++ verify_peer_and_host = true; + break; + #endif + case 'S': /* use SSL */ + #ifdef LIBCURL_FEATURE_SSL + enable_ssl: +- use_ssl = TRUE; ++ use_ssl = true; + /* ssl_version initialized to CURL_SSLVERSION_DEFAULT as a default. + * Only set if it's non-zero. This helps when we include multiple + * parameters, like -S and -C combinations */ +@@ -1567,15 +1571,15 @@ process_arguments (int argc, char **argv) + #endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 54, 0) */ + if (verbose >= 2) + printf(_("* Set SSL/TLS version to %d\n"), ssl_version); +- if (specify_port == FALSE) ++ if (!specify_port) + server_port = HTTPS_PORT; + break; + #else /* LIBCURL_FEATURE_SSL */ + /* -C -J and -K fall through to here without SSL */ + usage4 (_("Invalid option - SSL is not available")); + break; +- case SNI_OPTION: /* --sni is parsed, but ignored, the default is TRUE with libcurl */ +- use_sni = TRUE; ++ case SNI_OPTION: /* --sni is parsed, but ignored, the default is true with libcurl */ ++ use_sni = true; + break; + #endif /* LIBCURL_FEATURE_SSL */ + case MAX_REDIRS_OPTION: +@@ -1636,11 +1640,11 @@ process_arguments (int argc, char **argv) + if (errcode != 0) { + (void) regerror (errcode, &preg, errbuf, MAX_INPUT_BUFFER); + printf (_("Could Not Compile Regular Expression: %s"), errbuf); +- return ERROR; ++ return false; + } + break; + case INVERT_REGEX: +- invert_regex = 1; ++ invert_regex = true; + break; + case '4': + address_family = AF_INET; +@@ -1675,7 +1679,7 @@ process_arguments (int argc, char **argv) + break; + } + case 'N': /* no-body */ +- no_body = TRUE; ++ no_body = true; + break; + case 'M': /* max-age */ + { +@@ -1698,10 +1702,10 @@ process_arguments (int argc, char **argv) + } + break; + case 'E': /* show extended perfdata */ +- show_extended_perfdata = TRUE; ++ show_extended_perfdata = true; + break; + case 'B': /* print body content after status line */ +- show_body = TRUE; ++ show_body = true; + break; + case HTTP_VERSION_OPTION: + curl_http_version = CURL_HTTP_VERSION_NONE; +@@ -1721,7 +1725,7 @@ process_arguments (int argc, char **argv) + } + break; + case AUTOMATIC_DECOMPRESSION: +- automatic_decompression = TRUE; ++ automatic_decompression = true; + break; + case COOKIE_JAR: + cookie_jar_file = optarg; +@@ -1765,52 +1769,52 @@ process_arguments (int argc, char **argv) + virtual_port = server_port; + else { + if ((use_ssl && server_port == HTTPS_PORT) || (!use_ssl && server_port == HTTP_PORT)) +- if(specify_port == FALSE) ++ if(!specify_port) + server_port = virtual_port; + } + +- return TRUE; ++ return true; + } + + char *perfd_time (double elapsed_time) + { + return fperfdata ("time", elapsed_time, "s", +- thlds->warning?TRUE:FALSE, thlds->warning?thlds->warning->end:0, +- thlds->critical?TRUE:FALSE, thlds->critical?thlds->critical->end:0, +- TRUE, 0, TRUE, socket_timeout); ++ thlds->warning?true:false, thlds->warning?thlds->warning->end:0, ++ thlds->critical?true:false, thlds->critical?thlds->critical->end:0, ++ true, 0, true, socket_timeout); + } + + char *perfd_time_connect (double elapsed_time_connect) + { +- return fperfdata ("time_connect", elapsed_time_connect, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); ++ return fperfdata ("time_connect", elapsed_time_connect, "s", false, 0, false, 0, false, 0, true, socket_timeout); + } + + char *perfd_time_ssl (double elapsed_time_ssl) + { +- return fperfdata ("time_ssl", elapsed_time_ssl, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); ++ return fperfdata ("time_ssl", elapsed_time_ssl, "s", false, 0, false, 0, false, 0, true, socket_timeout); + } + + char *perfd_time_headers (double elapsed_time_headers) + { +- return fperfdata ("time_headers", elapsed_time_headers, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); ++ return fperfdata ("time_headers", elapsed_time_headers, "s", false, 0, false, 0, false, 0, true, socket_timeout); + } + + char *perfd_time_firstbyte (double elapsed_time_firstbyte) + { +- return fperfdata ("time_firstbyte", elapsed_time_firstbyte, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); ++ return fperfdata ("time_firstbyte", elapsed_time_firstbyte, "s", false, 0, false, 0, false, 0, true, socket_timeout); + } + + char *perfd_time_transfer (double elapsed_time_transfer) + { +- return fperfdata ("time_transfer", elapsed_time_transfer, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); ++ return fperfdata ("time_transfer", elapsed_time_transfer, "s", false, 0, false, 0, false, 0, true, socket_timeout); + } + + char *perfd_size (int page_len) + { + return perfdata ("size", page_len, "B", +- (min_page_len>0?TRUE:FALSE), min_page_len, +- (min_page_len>0?TRUE:FALSE), 0, +- TRUE, 0, FALSE, 0); ++ (min_page_len>0?true:false), min_page_len, ++ (min_page_len>0?true:false), 0, ++ true, 0, false, 0); + } + + void diff --git a/debian/patches/13_check_icmp_improvements b/debian/patches/13_check_icmp_improvements new file mode 100644 index 0000000..0eb2748 --- /dev/null +++ b/debian/patches/13_check_icmp_improvements @@ -0,0 +1,200 @@ +From 413af1955538b06803458c628099f1ba9da1966b Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Fri, 4 Nov 2022 16:51:32 +0100 +Subject: [PATCH 1/5] Remove trailing whitespaces + +--- + plugins-root/check_icmp.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c +index f8f153512..abd88c4e7 100644 +--- a/plugins-root/check_icmp.c ++++ b/plugins-root/check_icmp.c +@@ -1,39 +1,39 @@ + /***************************************************************************** +-* ++* + * Monitoring check_icmp plugin +-* ++* + * License: GPL + * Copyright (c) 2005-2008 Monitoring Plugins Development Team + * Original Author : Andreas Ericsson +-* ++* + * Description: +-* ++* + * This file contains the check_icmp plugin +-* ++* + * Relevant RFC's: 792 (ICMP), 791 (IP) +-* ++* + * This program was modeled somewhat after the check_icmp program, + * which was in turn a hack of fping (www.fping.org) but has been + * completely rewritten since to generate higher precision rta values, + * and support several different modes as well as setting ttl to control. + * redundant routes. The only remainders of fping is currently a few + * function names. +-* +-* ++* ++* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. +-* ++* + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. +-* ++* + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +-* +-* ++* ++* + *****************************************************************************/ + + /* progname may change */ + +From 7d074091dba8c1d4081971bf62e694d0b1a03d41 Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Fri, 4 Nov 2022 16:53:57 +0100 +Subject: [PATCH 2/5] Remove hardcoded DBL_MAX definition + +--- + plugins-root/check_icmp.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c +index abd88c4e7..0d10d22db 100644 +--- a/plugins-root/check_icmp.c ++++ b/plugins-root/check_icmp.c +@@ -95,10 +95,6 @@ const char *email = "devel@monitoring-plugins.org"; + # define ICMP_UNREACH_PRECEDENCE_CUTOFF 15 + #endif + +-#ifndef DBL_MAX +-# define DBL_MAX 9.9999999999e999 +-#endif +- + typedef unsigned short range_t; /* type for get_range() -- unimplemented */ + + typedef struct rta_host { + +From 9a73a94258689cd9337fe7a7937fe85e4670aaeb Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Fri, 4 Nov 2022 17:08:36 +0100 +Subject: [PATCH 3/5] Replace DBL_MAX with INFITY to check if value was set + +--- + plugins-root/check_icmp.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c +index 0d10d22db..7f3c4b5ba 100644 +--- a/plugins-root/check_icmp.c ++++ b/plugins-root/check_icmp.c +@@ -55,6 +55,7 @@ const char *email = "devel@monitoring-plugins.org"; + #include + #include + #include ++#include + #include + #include + #include +@@ -1220,7 +1221,7 @@ finish(int sig) + host->rta / 1000, (float)warn.rta / 1000, (float)crit.rta / 1000, + (targets > 1) ? host->name : "", host->pl, warn.pl, crit.pl, + (targets > 1) ? host->name : "", (float)host->rtmax / 1000, +- (targets > 1) ? host->name : "", (host->rtmin < DBL_MAX) ? (float)host->rtmin / 1000 : (float)0); ++ (targets > 1) ? host->name : "", (host->rtmin < INFINITY) ? (float)host->rtmin / 1000 : (float)0); + + host = host->next; + } +@@ -1323,7 +1324,7 @@ add_target_ip(char *arg, struct sockaddr_storage *in) + memcpy(host_sin6->sin6_addr.s6_addr, sin6->sin6_addr.s6_addr, sizeof host_sin6->sin6_addr.s6_addr); + } + +- host->rtmin = DBL_MAX; ++ host->rtmin = INFINITY; + + if(!list) list = cursor = host; + else cursor->next = host; + +From d3a4bad51d72a3c5bcc06ceb5e0a823dcc24bf49 Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Sun, 19 Feb 2023 14:31:21 +0100 +Subject: [PATCH 4/5] check_icmp: Fix compiler warning + +This fixes a compiler warning with no real world impact. +The compiler complains about a missing return, which is correct, but +in that scenario the program would crash anyways, so this has no impact. +--- + plugins-root/check_icmp.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c +index 7f3c4b5ba..317cd5357 100644 +--- a/plugins-root/check_icmp.c ++++ b/plugins-root/check_icmp.c +@@ -1430,20 +1430,21 @@ set_source_ip(char *arg) + static in_addr_t + get_ip_address(const char *ifname) + { ++ // TODO: Rewrite this so the function return an error and we exit somewhere else ++ struct sockaddr_in ip; + #if defined(SIOCGIFADDR) + struct ifreq ifr; +- struct sockaddr_in ip; + + strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1); + ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; + if(ioctl(icmp_sock, SIOCGIFADDR, &ifr) == -1) + crash("Cannot determine IP address of interface %s", ifname); + memcpy(&ip, &ifr.ifr_addr, sizeof(ip)); +- return ip.sin_addr.s_addr; + #else + errno = 0; + crash("Cannot get interface IP address on this platform."); + #endif ++ return ip.sin_addr.s_addr; + } + + /* + +From 423284edfa980fc3fdb51ab20af96685a988ba97 Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Sun, 19 Feb 2023 14:34:29 +0100 +Subject: [PATCH 5/5] check_icmp: Fix compiler warning + +This fixes a compiler warning which complains about an uninitialized +value for a variable which is then returned. +This had no real world impact, since the program would crash in the +branch where result is not set. +The variable is initialized to "-1" which would be the error for +inet_pton. +--- + plugins-root/check_icmp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c +index 317cd5357..e59e92d33 100644 +--- a/plugins-root/check_icmp.c ++++ b/plugins-root/check_icmp.c +@@ -1339,7 +1339,7 @@ add_target_ip(char *arg, struct sockaddr_storage *in) + static int + add_target(char *arg) + { +- int error, result; ++ int error, result = -1; + struct sockaddr_storage ip; + struct addrinfo hints, *res, *p; + struct sockaddr_in *sin; diff --git a/debian/patches/13_check_mysql_fix_variables b/debian/patches/13_check_mysql_fix_variables deleted file mode 100644 index 2f85e77..0000000 --- a/debian/patches/13_check_mysql_fix_variables +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c -index 6a7daf11a..15ec04c04 100644 ---- a/plugins/check_mysql.c -+++ b/plugins/check_mysql.c -@@ -59,8 +59,8 @@ bool ssl = false; - char *opt_file = NULL; - char *opt_group = NULL; - unsigned int db_port = MYSQL_PORT; --int check_slave = 0, warn_sec = 0, crit_sec = 0; --int ignore_auth = 0; -+bool check_slave = false; -+bool ignore_auth = false; - int verbose = 0; - - static double warning_time = 0; -@@ -456,10 +456,10 @@ process_arguments (int argc, char **argv) - db_port = atoi (optarg); - break; - case 'S': -- check_slave = 1; /* check-slave */ -+ check_slave = true; /* check-slave */ - break; - case 'n': -- ignore_auth = 1; /* ignore-auth */ -+ ignore_auth = true; /* ignore-auth */ - break; - case 'w': - warning = optarg; diff --git a/debian/patches/14_check_curl_fix_SSL_with_multiple_IPs b/debian/patches/14_check_curl_fix_SSL_with_multiple_IPs new file mode 100644 index 0000000..7d1418a --- /dev/null +++ b/debian/patches/14_check_curl_fix_SSL_with_multiple_IPs @@ -0,0 +1,211 @@ +From 03f86b5d0809967855fbaafb4d600dc5b82081fa Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Tue, 7 Mar 2023 19:51:33 +0100 +Subject: [PATCH 1/4] check_curl: in SSL host caching mode try to connect and + bind and take the first getaddrinfo result which succeeds + +--- + plugins/check_curl.c | 22 +++++++++++++++------- + 1 file changed, 15 insertions(+), 7 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index c37d45d91..e1bc98dc9 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -386,6 +386,7 @@ lookup_host (const char *host, char *buf, size_t buflen) + struct addrinfo hints, *res, *result; + int errcode; + void *ptr; ++ int s; + + memset (&hints, 0, sizeof (hints)); + hints.ai_family = address_family; +@@ -399,19 +400,26 @@ lookup_host (const char *host, char *buf, size_t buflen) + res = result; + + while (res) { +- inet_ntop (res->ai_family, res->ai_addr->sa_data, buf, buflen); +- switch (res->ai_family) { +- case AF_INET: +- ptr = &((struct sockaddr_in *) res->ai_addr)->sin_addr; ++ inet_ntop (res->ai_family, res->ai_addr->sa_data, buf, buflen); ++ switch (res->ai_family) { ++ case AF_INET: ++ ptr = &((struct sockaddr_in *) res->ai_addr)->sin_addr; ++ break; ++ case AF_INET6: ++ ptr = &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr; + break; +- case AF_INET6: +- ptr = &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr; +- break; + } ++ + inet_ntop (res->ai_family, ptr, buf, buflen); + if (verbose >= 1) + printf ("* getaddrinfo IPv%d address: %s\n", + res->ai_family == PF_INET6 ? 6 : 4, buf); ++ ++ if (s = socket (res->ai_family, res->ai_socktype, res->ai_protocol) == -1) ++ continue; ++ if (bind (s, res->ai_addr, res->ai_addrlen == 0) ) ++ break; ++ + res = res->ai_next; + } + + +From 2902381c5de01f69d61569b0c8dae6a92e2b9843 Mon Sep 17 00:00:00 2001 +From: Barak Shohat +Date: Wed, 8 Mar 2023 11:56:43 +0200 +Subject: [PATCH 2/4] check_curl.c: Include all IPs from getaddrinfo() in curl + DNS cache + +--- + plugins/check_curl.c | 39 ++++++++++++++++++++++++++------------- + 1 file changed, 26 insertions(+), 13 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index e1bc98dc9..512fb88a6 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -384,9 +384,12 @@ int + lookup_host (const char *host, char *buf, size_t buflen) + { + struct addrinfo hints, *res, *result; ++ char addrstr[100]; ++ size_t addrstr_len; + int errcode; + void *ptr; + int s; ++ size_t buflen_remaining = buflen - 1; + + memset (&hints, 0, sizeof (hints)); + hints.ai_family = address_family; +@@ -396,33 +399,40 @@ lookup_host (const char *host, char *buf, size_t buflen) + errcode = getaddrinfo (host, NULL, &hints, &result); + if (errcode != 0) + return errcode; +- ++ ++ strcpy(buf, ""); + res = result; + + while (res) { +- inet_ntop (res->ai_family, res->ai_addr->sa_data, buf, buflen); + switch (res->ai_family) { + case AF_INET: + ptr = &((struct sockaddr_in *) res->ai_addr)->sin_addr; + break; + case AF_INET6: + ptr = &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr; +- break; ++ break; + } + +- inet_ntop (res->ai_family, ptr, buf, buflen); +- if (verbose >= 1) ++ inet_ntop (res->ai_family, ptr, addrstr, 100); ++ if (verbose >= 1) { + printf ("* getaddrinfo IPv%d address: %s\n", +- res->ai_family == PF_INET6 ? 6 : 4, buf); ++ res->ai_family == PF_INET6 ? 6 : 4, addrstr); ++ } + +- if (s = socket (res->ai_family, res->ai_socktype, res->ai_protocol) == -1) +- continue; +- if (bind (s, res->ai_addr, res->ai_addrlen == 0) ) +- break; ++ // Append all IPs to buf as a comma-separated string ++ addrstr_len = strlen(addrstr); ++ if (buflen_remaining > addrstr_len + 1) { ++ if (buf[0] != NULL) { ++ strncat(buf, ",", 1); ++ buflen_remaining -= 1; ++ } ++ strncat(buf, addrstr, buflen_remaining); ++ buflen_remaining -= addrstr_len; ++ } + + res = res->ai_next; + } +- ++ + freeaddrinfo(result); + + return 0; +@@ -453,7 +463,7 @@ check_http (void) + int i; + char *force_host_header = NULL; + struct curl_slist *host = NULL; +- char addrstr[100]; ++ char addrstr[DEFAULT_BUFFER_SIZE/2]; + char dnscache[DEFAULT_BUFFER_SIZE]; + + /* initialize curl */ +@@ -505,7 +515,7 @@ check_http (void) + + // fill dns resolve cache to make curl connect to the given server_address instead of the host_name, only required for ssl, because we use the host_name later on to make SNI happy + if(use_ssl && host_name != NULL) { +- if ( (res=lookup_host (server_address, addrstr, 100)) != 0) { ++ if ( (res=lookup_host (server_address, addrstr, DEFAULT_BUFFER_SIZE/2)) != 0) { + snprintf (msg, DEFAULT_BUFFER_SIZE, _("Unable to lookup IP address for '%s': getaddrinfo returned %d - %s"), + server_address, res, gai_strerror (res)); + die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); +@@ -800,6 +810,9 @@ check_http (void) + /* free header and server IP resolve lists, we don't need it anymore */ + curl_slist_free_all (header_list); header_list = NULL; + curl_slist_free_all (server_ips); server_ips = NULL; ++ if (host) { ++ curl_slist_free_all (host); host = NULL; ++ } + + /* Curl errors, result in critical Nagios state */ + if (res != CURLE_OK) { + +From fc927e98db73850e760f490117ed36f2de20270c Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Wed, 8 Mar 2023 16:10:45 +0100 +Subject: [PATCH 3/4] fixed a wrong compare and a wrong size in strncat + +--- + plugins/check_curl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index 512fb88a6..cc17ef58a 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -422,8 +422,8 @@ lookup_host (const char *host, char *buf, size_t buflen) + // Append all IPs to buf as a comma-separated string + addrstr_len = strlen(addrstr); + if (buflen_remaining > addrstr_len + 1) { +- if (buf[0] != NULL) { +- strncat(buf, ",", 1); ++ if (buf[0] != '\0') { ++ strncat(buf, ",", buflen_remaining); + buflen_remaining -= 1; + } + strncat(buf, addrstr, buflen_remaining); + +From ea53555f2d6254da5fec0c1061899a01dd5321ec Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Sat, 11 Mar 2023 11:40:00 +0100 +Subject: [PATCH 4/4] check_curl: removed a superflous variable + +--- + plugins/check_curl.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index cc17ef58a..e5be1ad56 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -388,7 +388,6 @@ lookup_host (const char *host, char *buf, size_t buflen) + size_t addrstr_len; + int errcode; + void *ptr; +- int s; + size_t buflen_remaining = buflen - 1; + + memset (&hints, 0, sizeof (hints)); diff --git a/debian/patches/14_check_curl_remove_experimental_state b/debian/patches/14_check_curl_remove_experimental_state deleted file mode 100644 index 62862fb..0000000 --- a/debian/patches/14_check_curl_remove_experimental_state +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index e9c15e648..e25d7a79a 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -2190,8 +2190,6 @@ print_usage (void) - printf ("%s\n", _("In the first form, make an HTTP request.")); - printf ("%s\n\n", _("In the second form, connect to the server and check the TLS certificate.")); - #endif -- printf ("%s\n", _("WARNING: check_curl is experimental. Please use")); -- printf ("%s\n\n", _("check_http if you need a stable version.")); - } - - void diff --git a/debian/patches/15_check_curl_fix_regex b/debian/patches/15_check_curl_fix_regex deleted file mode 100644 index fdfce45..0000000 --- a/debian/patches/15_check_curl_fix_regex +++ /dev/null @@ -1,82 +0,0 @@ -From 46efe803cf8e7b769ca112afc158b76510b01e46 Mon Sep 17 00:00:00 2001 -From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> -Date: Mon, 19 Aug 2024 15:23:41 +0200 -Subject: [PATCH 1/3] check_curl: Fix help for state regex option - -The help output of `check-curl` contained a typo, -the real option is `state-regex` and not `regex-state` as -the help suggests. -Also added the two possible options to avoid confusion. ---- - plugins/check_curl.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index e9c15e648..bf46b2261 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -2061,8 +2061,8 @@ print_help (void) - printf (" %s\n", "--invert-regex"); - printf (" %s\n", _("Return STATE if found, OK if not (STATE is CRITICAL, per default)")); - printf (" %s\n", _("can be changed with --state--regex)")); -- printf (" %s\n", "--regex-state=STATE"); -- printf (" %s\n", _("Return STATE if regex is found, OK if not\n")); -+ printf (" %s\n", "--state-regex=STATE"); -+ printf (" %s\n", _("Return STATE if regex is found, OK if not\nSTATE can be one of \"critical\",\"warning\"")); - printf (" %s\n", "-a, --authorization=AUTH_PAIR"); - printf (" %s\n", _("Username:password on sites with basic authentication")); - printf (" %s\n", "-b, --proxy-authorization=AUTH_PAIR"); - -From b6c72064a53da8b173b7406a0a535922dc0cc1b3 Mon Sep 17 00:00:00 2001 -From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> -Date: Mon, 19 Aug 2024 15:26:52 +0200 -Subject: [PATCH 2/3] check_curl: Parse state-regex option ignoring case - -Previously the --state-regex option accepted only "critical" and -"warning" as values. -This commit changes the strcmp there to strcasecmp to be more tolerant -regarding the input. ---- - plugins/check_curl.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index bf46b2261..38c971093 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -1775,9 +1775,9 @@ process_arguments (int argc, char **argv) - invert_regex = true; - break; - case STATE_REGEX: -- if (!strcmp (optarg, "critical")) -+ if (!strcasecmp (optarg, "critical")) - state_regex = STATE_CRITICAL; -- else if (!strcmp (optarg, "warning")) -+ else if (!strcasecmp (optarg, "warning")) - state_regex = STATE_WARNING; - else usage2 (_("Invalid state-regex option"), optarg); - break; - -From af097aa3642174a2111f0bbcbc8236fff0901e17 Mon Sep 17 00:00:00 2001 -From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> -Date: Mon, 19 Aug 2024 15:33:17 +0200 -Subject: [PATCH 3/3] check_curl: change help for --state-regex again to fix - formatting - ---- - plugins/check_curl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index 38c971093..214ba74f9 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -2062,7 +2062,7 @@ print_help (void) - printf (" %s\n", _("Return STATE if found, OK if not (STATE is CRITICAL, per default)")); - printf (" %s\n", _("can be changed with --state--regex)")); - printf (" %s\n", "--state-regex=STATE"); -- printf (" %s\n", _("Return STATE if regex is found, OK if not\nSTATE can be one of \"critical\",\"warning\"")); -+ printf (" %s\n", _("Return STATE if regex is found, OK if not. STATE can be one of \"critical\",\"warning\"")); - printf (" %s\n", "-a, --authorization=AUTH_PAIR"); - printf (" %s\n", _("Username:password on sites with basic authentication")); - printf (" %s\n", "-b, --proxy-authorization=AUTH_PAIR"); diff --git a/debian/patches/15_check_swap_remove_includes b/debian/patches/15_check_swap_remove_includes new file mode 100644 index 0000000..fb65026 --- /dev/null +++ b/debian/patches/15_check_swap_remove_includes @@ -0,0 +1,23 @@ +From 8a8ee58e8925019b7532e7d14ebe488bb21fb3e6 Mon Sep 17 00:00:00 2001 +From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> +Date: Thu, 16 Mar 2023 15:26:52 +0100 +Subject: [PATCH] check_swap: Remove unnecessary and problematic includes + +--- + plugins/check_swap.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/plugins/check_swap.c b/plugins/check_swap.c +index a607da1e9..25d5f21d0 100644 +--- a/plugins/check_swap.c ++++ b/plugins/check_swap.c +@@ -34,9 +34,6 @@ const char *email = "devel@monitoring-plugins.org"; + #include "common.h" + #include "popen.h" + #include "utils.h" +-#include +-#include +-#include + + #ifdef HAVE_DECL_SWAPCTL + # ifdef HAVE_SYS_PARAM_H diff --git a/debian/patches/16_check_curl_openssl_error b/debian/patches/16_check_curl_openssl_error deleted file mode 100644 index 9b91761..0000000 --- a/debian/patches/16_check_curl_openssl_error +++ /dev/null @@ -1,115 +0,0 @@ -From 528e92c180148703ee2cb90d7291f4edbfc270d4 Mon Sep 17 00:00:00 2001 -From: Sven Nierlein -Date: Wed, 9 Oct 2024 09:50:39 +0200 -Subject: [PATCH] fix check_curl: OpenSSL SSL_read: error:0A000126:SSL - routines::unexpected eof while reading, errno 0 - -using check_curl on a probably embedded device responding as 'Server: GoAhead-Webs' - - %> check_curl -H ... -S -vvv - - > GET / HTTP/1.1 - Host: ... - User-Agent: check_curl/v2.4.0 (monitoring-plugins 2.4.0, libcurl/7.76.1 OpenSSL/3.0.7 zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) libssh/0.10.4/openssl/zlib nghttp2/1.43.0) - Accept: */* - Connection: close - - * Mark bundle as not supporting multiuse - * HTTP 1.0, assume close after body - < HTTP/1.0 302 Redirect - < Server: GoAhead-Webs - < Date: Tue Mar 26 17:57:16 2019 - < Cache-Control: no-cache, no-store, must-revalidate,private - < Pragma: no-cache - < Expires: 0 - < Content-Type: text/html - < X-Frame-Options: sameorigin - < X-XSS-Protection: 1; mode=block - < X-Content-Type-Options: nosniff - < Location: https://... - < - * OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0 - * Closing connection 0 - -reading the discussion on https://github.com/openssl/openssl/discussions/22690 suggest to set the option SSL_OP_IGNORE_UNEXPECTED_EOF -which makes check_curl behave like check_http at this point. -Since this is a rather new flag, fencing it in ifdefs. -And since there can only be one ssl ctx function, we need to move both tasks into one function. ---- - plugins/check_curl.c | 29 ++++++++++++++++++++++------- - 1 file changed, 22 insertions(+), 7 deletions(-) - -diff --git a/plugins/check_curl.c b/plugins/check_curl.c -index 7f45b5a79..d3bddacd2 100644 ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -214,6 +214,7 @@ char *client_privkey = NULL; - char *ca_cert = NULL; - bool verify_peer_and_host = false; - bool is_openssl_callback = false; -+bool add_sslctx_verify_fun = false; - #if defined(HAVE_SSL) && defined(USE_OPENSSL) - X509 *cert = NULL; - #endif /* defined(HAVE_SSL) && defined(USE_OPENSSL) */ -@@ -299,7 +300,7 @@ main (int argc, char **argv) - - int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) - { -- (void) preverify_ok; -+ (void) preverify_ok; - /* TODO: we get all certificates of the chain, so which ones - * should we test? - * TODO: is the last certificate always the server certificate? -@@ -324,9 +325,18 @@ int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) - - CURLcode sslctxfun(CURL *curl, SSL_CTX *sslctx, void *parm) - { -- (void) curl; // ignore unused parameter -- (void) parm; // ignore unused parameter -- SSL_CTX_set_verify(sslctx, SSL_VERIFY_PEER, verify_callback); -+ (void) curl; // ignore unused parameter -+ (void) parm; // ignore unused parameter -+ if(add_sslctx_verify_fun) { -+ SSL_CTX_set_verify(sslctx, SSL_VERIFY_PEER, verify_callback); -+ } -+ -+ // workaround for issue: -+ // OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0 -+ // see discussion https://github.com/openssl/openssl/discussions/22690 -+#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF -+ SSL_CTX_set_options(sslctx, SSL_OP_IGNORE_UNEXPECTED_EOF); -+#endif - - return CURLE_OK; - } -@@ -678,9 +688,8 @@ check_http (void) - * OpenSSL-style libraries only!) */ - #ifdef USE_OPENSSL - /* libcurl and monitoring plugins built with OpenSSL, good */ -- handle_curl_option_return_code (curl_easy_setopt(curl, CURLOPT_SSL_CTX_FUNCTION, sslctxfun), "CURLOPT_SSL_CTX_FUNCTION"); -+ add_sslctx_verify_fun = true; - is_openssl_callback = true; --#else /* USE_OPENSSL */ - #endif /* USE_OPENSSL */ - /* libcurl is built with OpenSSL, monitoring plugins, so falling - * back to manually extracting certificate information */ -@@ -713,12 +722,18 @@ check_http (void) - #else /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 1) */ - /* old libcurl, our only hope is OpenSSL, otherwise we are out of luck */ - if (ssl_library == CURLHELP_SSL_LIBRARY_OPENSSL || ssl_library == CURLHELP_SSL_LIBRARY_LIBRESSL) -- handle_curl_option_return_code (curl_easy_setopt(curl, CURLOPT_SSL_CTX_FUNCTION, sslctxfun), "CURLOPT_SSL_CTX_FUNCTION"); -+ add_sslctx_verify_fun = true; - else - die (STATE_CRITICAL, "HTTP CRITICAL - Cannot retrieve certificates (no CURLOPT_SSL_CTX_FUNCTION, no OpenSSL library or libcurl too old and has no CURLOPT_CERTINFO)\n"); - #endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 1) */ - } - -+#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 10, 6) /* required for CURLOPT_SSL_CTX_FUNCTION */ -+ // ssl ctx function is not available with all ssl backends -+ if (curl_easy_setopt(curl, CURLOPT_SSL_CTX_FUNCTION, NULL) != CURLE_UNKNOWN_OPTION) -+ handle_curl_option_return_code (curl_easy_setopt(curl, CURLOPT_SSL_CTX_FUNCTION, sslctxfun), "CURLOPT_SSL_CTX_FUNCTION"); -+#endif -+ - #endif /* LIBCURL_FEATURE_SSL */ - - /* set default or user-given user agent identification */ diff --git a/debian/patches/16_check_snmp_disable_multiplier_when_unused b/debian/patches/16_check_snmp_disable_multiplier_when_unused new file mode 100644 index 0000000..9863c92 --- /dev/null +++ b/debian/patches/16_check_snmp_disable_multiplier_when_unused @@ -0,0 +1,90 @@ +From c874f950e8e5b6a805d8adf759d521501b22c7ce Mon Sep 17 00:00:00 2001 +From: Sven Nierlein +Date: Wed, 15 Mar 2023 09:51:18 +0100 +Subject: [PATCH 1/2] check_snmp: disable multiplier when unused + + - if no multiplier is set, simply return the given string. Otherwise we would strip off the unit. + - if used, allocate new space to hold the result which might be larger than the initial input + +Signed-off-by: Sven Nierlein +--- + plugins/check_snmp.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c +index d3968a27d..c4ddd0edd 100644 +--- a/plugins/check_snmp.c ++++ b/plugins/check_snmp.c +@@ -46,6 +46,7 @@ const char *email = "devel@monitoring-plugins.org"; + #define DEFAULT_PRIV_PROTOCOL "DES" + #define DEFAULT_DELIMITER "=" + #define DEFAULT_OUTPUT_DELIMITER " " ++#define DEFAULT_BUFFER_SIZE 100 + + #define mark(a) ((a)!=0?"*":"") + +@@ -157,6 +158,7 @@ int perf_labels = 1; + char* ip_version = ""; + double multiplier = 1.0; + char *fmtstr = ""; ++char buffer[DEFAULT_BUFFER_SIZE]; + + static char *fix_snmp_range(char *th) + { +@@ -1169,6 +1171,9 @@ multiply (char *str) + double val; + char *conv = "%f"; + ++ if(multiplier == 1) ++ return(str); ++ + if(verbose>2) + printf(" multiply input: %s\n", str); + +@@ -1187,15 +1192,15 @@ multiply (char *str) + conv = fmtstr; + } + if (val == (int)val) { +- sprintf(str, "%.0f", val); ++ snprintf(buffer, DEFAULT_BUFFER_SIZE, "%.0f", val); + } else { + if(verbose>2) + printf(" multiply using format: %s\n", conv); +- sprintf(str, conv, val); ++ snprintf(buffer, DEFAULT_BUFFER_SIZE, conv, val); + } + if(verbose>2) +- printf(" multiply result: %s\n", str); +- return str; ++ printf(" multiply result: %s\n", buffer); ++ return buffer; + } + + + +From 6e64973a4486248ff6c3de7d72637e44b6474c3e Mon Sep 17 00:00:00 2001 +From: Sven Nierlein +Date: Mon, 27 Mar 2023 12:59:53 +0200 +Subject: [PATCH 2/2] simplify code + +if statement is always true at this point, so remove it. +--- + plugins/check_snmp.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c +index c4ddd0edd..aefda3d29 100644 +--- a/plugins/check_snmp.c ++++ b/plugins/check_snmp.c +@@ -1179,10 +1179,7 @@ multiply (char *str) + + val = strtod (str, &endptr); + if ((val == 0.0) && (endptr == str)) { +- if(multiplier != 1) { +- die(STATE_UNKNOWN, _("multiplier set (%.1f), but input is not a number: %s"), multiplier, str); +- } +- return str; ++ die(STATE_UNKNOWN, _("multiplier set (%.1f), but input is not a number: %s"), multiplier, str); + } + + if(verbose>2) diff --git a/debian/patches/17_check_fping_dontfrag_random b/debian/patches/17_check_fping_dontfrag_random deleted file mode 100644 index e62a548..0000000 --- a/debian/patches/17_check_fping_dontfrag_random +++ /dev/null @@ -1,83 +0,0 @@ -From 88d991773b6d8ac416ad2931ea8debc949555c7a Mon Sep 17 00:00:00 2001 -From: William -Date: Wed, 6 Nov 2024 14:00:23 +1000 -Subject: [PATCH] Add dontfrag/random for fping - -Support the dont fragment and randomise packet data options for check_fping ---- - plugins/check_fping.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - ---- a/plugins/check_fping.c -+++ b/plugins/check_fping.c -@@ -7,7 +7,7 @@ - * - * Description: - * --* This file contains the check_disk plugin -+* This file contains the check_fping plugin - * - * This plugin will use the fping command to ping the specified host for a - * fast check -@@ -60,6 +60,8 @@ - int target_timeout = 0; - int packet_interval = 0; - bool verbose = false; -+bool dontfrag = false; -+bool randomize_packet_data = false; - int cpl; - int wpl; - double crta; -@@ -105,6 +107,10 @@ - xasprintf(&option_string, "%s-S %s ", option_string, sourceip); - if (sourceif) - xasprintf(&option_string, "%s-I %s ", option_string, sourceif); -+ if (dontfrag) -+ xasprintf(&option_string, "%s-M ", option_string); -+ if (randomize_packet_data) -+ xasprintf(&option_string, "%s-R ", option_string); - - #ifdef PATH_TO_FPING6 - if (address_family != AF_INET && is_inet6_addr(server)) -@@ -303,6 +309,8 @@ - {"help", no_argument, 0, 'h'}, - {"use-ipv4", no_argument, 0, '4'}, - {"use-ipv6", no_argument, 0, '6'}, -+ {"dontfrag", no_argument, 0, 'M'}, -+ {"random", no_argument, 0, 'R'}, - {0, 0, 0, 0} - }; - -@@ -320,7 +328,7 @@ - } - - while (1) { -- c = getopt_long (argc, argv, "+hVvaH:S:c:w:b:n:T:i:I:46", longopts, &option); -+ c = getopt_long (argc, argv, "+hVvaH:S:c:w:b:n:T:i:I:M:R:46", longopts, &option); - - if (c == -1 || c == EOF || c == 1) - break; -@@ -415,6 +423,12 @@ - else - usage (_("Interval must be a positive integer")); - break; -+ case 'R': -+ randomize_packet_data = true; -+ break; -+ case 'M': -+ dontfrag = true; -+ break; - } - } - -@@ -506,6 +520,10 @@ - printf (" %s\n", _("name or IP Address of sourceip")); - printf (" %s\n", "-I, --sourceif=IF"); - printf (" %s\n", _("source interface name")); -+ printf(" %s\n", "-M, --dontfrag"); -+ printf(" %s\n", _("set the Don't Fragment flag")); -+ printf(" %s\n", "-R, --random"); -+ printf(" %s\n", _("random packet data (to foil link data compression)")); - printf (UT_VERBOSE); - printf ("\n"); - printf (" %s\n", _("THRESHOLD is ,%% where is the round trip average travel time (ms)")); diff --git a/debian/patches/17_fix_exit_codes b/debian/patches/17_fix_exit_codes new file mode 100644 index 0000000..5374530 --- /dev/null +++ b/debian/patches/17_fix_exit_codes @@ -0,0 +1,166 @@ +From 5af4db7b4169acee20bfa2d637ce3f3eb5bdef47 Mon Sep 17 00:00:00 2001 +From: MisterMountain +Date: Tue, 11 Apr 2023 16:26:12 +0200 +Subject: [PATCH 1/3] fixed the outputs of the --versions options on 3 scripts + +--- + plugins-scripts/check_log.sh | 2 +- + plugins-scripts/check_oracle.sh | 2 +- + plugins-scripts/check_sensors.sh | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh +index c623a8d6b..10c56f14b 100755 +--- a/plugins-scripts/check_log.sh ++++ b/plugins-scripts/check_log.sh +@@ -109,7 +109,7 @@ while test -n "$1"; do + ;; + -V | --version) + print_revision "$PROGNAME" "$REVISION" +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + -F | --filename) + logfile=$2 +diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh +index b14ec50ed..f340b97c4 100755 +--- a/plugins-scripts/check_oracle.sh ++++ b/plugins-scripts/check_oracle.sh +@@ -95,7 +95,7 @@ case "$cmd" in + ;; + --version) + print_revision "$PROGNAME" "$REVISION" +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + -V) + print_revision "$PROGNAME" "$REVISION" +diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh +index 921e7b365..3c4cf01bf 100755 +--- a/plugins-scripts/check_sensors.sh ++++ b/plugins-scripts/check_sensors.sh +@@ -34,7 +34,7 @@ case "$1" in + ;; + --version) + print_revision "$PROGNAME" "$REVISION" +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + -V) + print_revision "$PROGNAME" "$REVISION" + +From 3dc677e4f1f990e7b26bc714a02608070379cf85 Mon Sep 17 00:00:00 2001 +From: MisterMountain +Date: Tue, 11 Apr 2023 17:11:06 +0200 +Subject: [PATCH 2/3] fixed the identation (and also patched -V on check_oracle + to behave exactly like --version again) + +--- + plugins-scripts/check_oracle.sh | 10 +++++----- + plugins-scripts/check_sensors.sh | 2 +- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh +index f340b97c4..d58cfbea3 100755 +--- a/plugins-scripts/check_oracle.sh ++++ b/plugins-scripts/check_oracle.sh +@@ -86,20 +86,20 @@ esac + # Information options + case "$cmd" in + --help) +- print_help ++ print_help + exit "$STATE_OK" + ;; + -h) +- print_help ++ print_help + exit "$STATE_OK" + ;; + --version) +- print_revision "$PROGNAME" "$REVISION" ++ print_revision "$PROGNAME" "$REVISION" + exit "$STATE_UNKNOWN" + ;; + -V) +- print_revision "$PROGNAME" "$REVISION" +- exit "$STATE_OK" ++ print_revision "$PROGNAME" "$REVISION" ++ exit "$STATE_UNKNOWN" + ;; + esac + +diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh +index 3c4cf01bf..adbfc533f 100755 +--- a/plugins-scripts/check_sensors.sh ++++ b/plugins-scripts/check_sensors.sh +@@ -38,7 +38,7 @@ case "$1" in + ;; + -V) + print_revision "$PROGNAME" "$REVISION" +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + *) + sensordata=$(sensors 2>&1) + +From 21885d85d54ce2afe7b9bf962348dc60e31442e0 Mon Sep 17 00:00:00 2001 +From: MisterMountain +Date: Tue, 2 May 2023 09:40:35 +0200 +Subject: [PATCH 3/3] also fixed the --help returns + +--- + plugins-scripts/check_log.sh | 2 +- + plugins-scripts/check_oracle.sh | 4 ++-- + plugins-scripts/check_sensors.sh | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh +index 10c56f14b..8ecdd3164 100755 +--- a/plugins-scripts/check_log.sh ++++ b/plugins-scripts/check_log.sh +@@ -105,7 +105,7 @@ while test -n "$1"; do + case "$1" in + -h | --help) + print_help +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + -V | --version) + print_revision "$PROGNAME" "$REVISION" +diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh +index d58cfbea3..599813865 100755 +--- a/plugins-scripts/check_oracle.sh ++++ b/plugins-scripts/check_oracle.sh +@@ -87,11 +87,11 @@ esac + case "$cmd" in + --help) + print_help +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + -h) + print_help +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + --version) + print_revision "$PROGNAME" "$REVISION" +diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh +index adbfc533f..866e0e0f0 100755 +--- a/plugins-scripts/check_sensors.sh ++++ b/plugins-scripts/check_sensors.sh +@@ -26,11 +26,11 @@ print_help() { + case "$1" in + --help) + print_help +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + -h) + print_help +- exit "$STATE_OK" ++ exit "$STATE_UNKNOWN" + ;; + --version) + print_revision "$PROGNAME" "$REVISION" diff --git a/debian/patches/18_check_curl_fix_TLS_notes b/debian/patches/18_check_curl_fix_TLS_notes deleted file mode 100644 index 5de8b45..0000000 --- a/debian/patches/18_check_curl_fix_TLS_notes +++ /dev/null @@ -1,21 +0,0 @@ -From 8de299308c52d083b893a87e6924405b652f1f7b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= - <12514511+RincewindsHat@users.noreply.github.com> -Date: Wed, 27 Nov 2024 14:22:02 +0100 -Subject: [PATCH] check_curl: update TLS notification notes - ---- - plugins/check_curl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -2013,7 +2013,7 @@ - printf (" %s\n", _("Connect via SSL. Port defaults to 443. VERSION is optional, and prevents")); - printf (" %s\n", _("auto-negotiation (2 = SSLv2, 3 = SSLv3, 1 = TLSv1, 1.1 = TLSv1.1,")); - printf (" %s\n", _("1.2 = TLSv1.2, 1.3 = TLSv1.3). With a '+' suffix, newer versions are also accepted.")); -- printf (" %s\n", _("Note: SSLv2 and SSLv3 are deprecated and are usually disabled in libcurl")); -+ printf (" %s\n", _("Note: SSLv2, SSLv3, TLSv1.0 and TLSv1.1 are deprecated and are usually disabled in libcurl")); - printf (" %s\n", "--sni"); - printf (" %s\n", _("Enable SSL/TLS hostname extension support (SNI)")); - #if LIBCURL_VERSION_NUM >= 0x071801 diff --git a/debian/patches/18_check_mysql_fix_typo b/debian/patches/18_check_mysql_fix_typo new file mode 100644 index 0000000..1d39df4 --- /dev/null +++ b/debian/patches/18_check_mysql_fix_typo @@ -0,0 +1,22 @@ +From d10ee31d89c2c599ee4c502e82d632aef8554020 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= +Date: Fri, 28 Apr 2023 16:51:39 +0200 +Subject: [PATCH] Typo in check_mysql + +--- + plugins/check_mysql.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c +index 0cba50e6d..6cfa70edb 100644 +--- a/plugins/check_mysql.c ++++ b/plugins/check_mysql.c +@@ -551,7 +551,7 @@ print_help (void) + printf (" %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds")); + printf (" %s\n", _("behind master")); + printf (" %s\n", "-l, --ssl"); +- printf (" %s\n", _("Use ssl encryptation")); ++ printf (" %s\n", _("Use ssl encryption")); + printf (" %s\n", "-C, --ca-cert=STRING"); + printf (" %s\n", _("Path to CA signing the cert")); + printf (" %s\n", "-a, --cert=STRING"); diff --git a/debian/patches/19_check_curl_cookie_handling b/debian/patches/19_check_curl_cookie_handling deleted file mode 100644 index 29f5cce..0000000 --- a/debian/patches/19_check_curl_cookie_handling +++ /dev/null @@ -1,46 +0,0 @@ -From 191d15354ba32a483fd4f8017595c7eb82ee5650 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= -Date: Fri, 29 Nov 2024 10:34:16 +0100 -Subject: [PATCH] check_curl: enable internal cookie handling - -This enables us to enable curl cookie engine by specifying an empty -filename as the cookie jar file. - -This works, since curl's CURLOPT_COOKIEFILE option allows passing an -empty string as filename, which it interprets as a request to enable the -cookie processing. But since CURLOPT_COOKIEJAR would now attempt to -write to a file named by an empty filename, it would break again (or at -least produce a warning in verbose output). - -Overall this is allows to handle checking URLs with cookie based -sessions without persisting the cookies to disk, by using the -curl-internal redirect following. ---- - plugins/check_curl.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - ---- a/plugins/check_curl.c -+++ b/plugins/check_curl.c -@@ -831,8 +831,11 @@ - - /* cookie handling */ - if (cookie_jar_file != NULL) { -- handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEJAR, cookie_jar_file), "CURLOPT_COOKIEJAR"); -+ /* enable reading cookies from a file, and if the filename is an empty string, only enable the curl cookie engine */ - handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEFILE, cookie_jar_file), "CURLOPT_COOKIEFILE"); -+ /* now enable saving cookies to a file, but only if the filename is not an empty string, since writing it would fail */ -+ if (*cookie_jar_file) -+ handle_curl_option_return_code(curl_easy_setopt(curl, CURLOPT_COOKIEJAR, cookie_jar_file), "CURLOPT_COOKIEJAR"); - } - - /* do the request */ -@@ -2111,6 +2114,9 @@ - printf(" %s\n", "--haproxy-protocol"); - printf(" %s\n", _("Send HAProxy proxy protocol v1 header (CURLOPT_HAPROXYPROTOCOL).")); - printf (" %s\n", "--cookie-jar=FILE"); -+ printf (" %s\n", _("Specify an empty string as FILE to enable curl's cookie engine without saving")); -+ printf (" %s\n", _("the cookies to disk. Only enabling the engine without saving to disk requires")); -+ printf (" %s\n", _("handling multiple requests internally to curl, so use it with --onredirect=curl")); - printf (" %s\n", _("Store cookies in the cookie jar and send them out when requested.")); - printf ("\n"); - diff --git a/debian/patches/19_check_nwstat_fix_typo b/debian/patches/19_check_nwstat_fix_typo new file mode 100644 index 0000000..c718335 --- /dev/null +++ b/debian/patches/19_check_nwstat_fix_typo @@ -0,0 +1,64 @@ +From cc69e8f76bcde8f75b5828b920bb937682673f49 Mon Sep 17 00:00:00 2001 +From: donien +Date: Thu, 13 Apr 2023 17:15:16 +0200 +Subject: [PATCH] Fix 'requres' typo + +--- + plugins/check_nwstat.c | 2 +- + po/de.po | 2 +- + po/fr.po | 2 +- + po/monitoring-plugins.pot | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c +index e7e8de05b..3c9d23e2e 100644 +--- a/plugins/check_nwstat.c ++++ b/plugins/check_nwstat.c +@@ -1668,7 +1668,7 @@ void print_help(void) + + printf ("\n"); + printf ("%s\n", _("Notes:")); +- printf (" %s\n", _("- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG")); ++ printf (" %s\n", _("- This plugin requires that the MRTGEXT.NLM file from James Drews' MRTG")); + printf (" %s\n", _(" extension for NetWare be loaded on the Novell servers you wish to check.")); + printf (" %s\n", _(" (available from http://www.engr.wisc.edu/~drews/mrtg/)")); + printf (" %s\n", _("- Values for critical thresholds should be lower than warning thresholds")); +diff --git a/po/de.po b/po/de.po +index 919fae32b..c29cbbbac 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -3315,7 +3315,7 @@ msgid "Include server version string in results" + msgstr "" + + #: plugins/check_nwstat.c:1671 +-msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" ++msgid "- This plugin requires that the MRTGEXT.NLM file from James Drews' MRTG" + msgstr "" + + #: plugins/check_nwstat.c:1672 +diff --git a/po/fr.po b/po/fr.po +index e44cf88cb..b4de17ed6 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -3372,7 +3372,7 @@ msgid "Include server version string in results" + msgstr "" + + #: plugins/check_nwstat.c:1671 +-msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" ++msgid "- This plugin requires that the MRTGEXT.NLM file from James Drews' MRTG" + msgstr "" + + #: plugins/check_nwstat.c:1672 +diff --git a/po/monitoring-plugins.pot b/po/monitoring-plugins.pot +index 5bc236373..45f46a899 100644 +--- a/po/monitoring-plugins.pot ++++ b/po/monitoring-plugins.pot +@@ -3225,7 +3225,7 @@ msgid "Include server version string in results" + msgstr "" + + #: plugins/check_nwstat.c:1671 +-msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" ++msgid "- This plugin requires that the MRTGEXT.NLM file from James Drews' MRTG" + msgstr "" + + #: plugins/check_nwstat.c:1672 diff --git a/debian/patches/20_chech_nt_fix_encoding b/debian/patches/20_chech_nt_fix_encoding new file mode 100644 index 0000000..f730df6 --- /dev/null +++ b/debian/patches/20_chech_nt_fix_encoding @@ -0,0 +1,46 @@ +From b2659391aba7e4a79b678aba5cc21b443626f81f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= +Date: Wed, 26 Apr 2023 10:13:51 +0200 +Subject: [PATCH 1/2] check_nt: change encoding from latin1 to utf8 + +--- + plugins/check_nt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/check_nt.c b/plugins/check_nt.c +index 59c135dba..babe3b642 100644 +--- a/plugins/check_nt.c ++++ b/plugins/check_nt.c +@@ -341,7 +341,7 @@ int main(int argc, char **argv){ + + 2) If the counter you're going to measure is percent-based, the code will detect + the percent sign in its name and will attribute minimum (0%) and maximum (100%) +- values automagically, as well the ¨%" sign to graph units. ++ values automagically, as well the ¨%" sign to graph units. + + 3) OTOH, if the counter is "absolute", you'll have to provide the following + the counter unit - that is, the dimensions of the counter you're getting. Examples: + +From fcf68d702e590bd3e58fb7556f420330ddf0a0ae Mon Sep 17 00:00:00 2001 +From: Lorenz <12514511+RincewindsHat@users.noreply.github.com> +Date: Thu, 27 Apr 2023 00:42:30 +0200 +Subject: [PATCH 2/2] Update plugins/check_nt.c + +Co-authored-by: datamuc +--- + plugins/check_nt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/check_nt.c b/plugins/check_nt.c +index babe3b642..d73d83cea 100644 +--- a/plugins/check_nt.c ++++ b/plugins/check_nt.c +@@ -341,7 +341,7 @@ int main(int argc, char **argv){ + + 2) If the counter you're going to measure is percent-based, the code will detect + the percent sign in its name and will attribute minimum (0%) and maximum (100%) +- values automagically, as well the ¨%" sign to graph units. ++ values automagically, as well the "%" sign to graph units. + + 3) OTOH, if the counter is "absolute", you'll have to provide the following + the counter unit - that is, the dimensions of the counter you're getting. Examples: diff --git a/debian/patches/20_check_icmp_fix_rtmin b/debian/patches/20_check_icmp_fix_rtmin deleted file mode 100644 index 310a93d..0000000 --- a/debian/patches/20_check_icmp_fix_rtmin +++ /dev/null @@ -1,29 +0,0 @@ -From e5f35d40556468fcdebccae847cfc19380952ca0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= - <12514511+RincewindsHat@users.noreply.github.com> -Date: Wed, 27 Nov 2024 15:29:19 +0100 -Subject: [PATCH] check_icmp: set rtmin initially - ---- - plugins-root/check_icmp.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/plugins-root/check_icmp.c -+++ b/plugins-root/check_icmp.c -@@ -64,6 +64,7 @@ - #include - #include - #include -+#include - - - /** sometimes undefined system macros (quite a few, actually) **/ -@@ -1051,7 +1052,7 @@ - icmp_recv++; - if (tdiff > (unsigned int)host->rtmax) - host->rtmax = tdiff; -- if (tdiff < (unsigned int)host->rtmin) -+ if ((host->rtmin == INFINITY) || (tdiff < (unsigned int)host->rtmin)) - host->rtmin = tdiff; - - if(debug) { diff --git a/debian/patches/21_check_http_state_regex b/debian/patches/21_check_http_state_regex deleted file mode 100644 index 993791e..0000000 --- a/debian/patches/21_check_http_state_regex +++ /dev/null @@ -1,22 +0,0 @@ -From e445a386f8ad1166b05fcdfdb5b9cde4622a8632 Mon Sep 17 00:00:00 2001 -From: Andreas Baumann -Date: Fri, 27 Dec 2024 15:32:24 +0100 -Subject: [PATCH] check_http: fix documentation for --state-regex - ---- - plugins/check_http.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plugins/check_http.c b/plugins/check_http.c -index 97c0e39ad..baff682a7 100644 ---- a/plugins/check_http.c -+++ b/plugins/check_http.c -@@ -1805,7 +1805,7 @@ print_help (void) - printf (" %s\n", "--invert-regex"); - printf (" %s\n", _("Return STATE if found, OK if not (STATE is CRITICAL, per default)")); - printf (" %s\n", _("can be changed with --state--regex)")); -- printf (" %s\n", "--regex-state=STATE"); -+ printf (" %s\n", "--state-regex=STATE"); - printf (" %s\n", _("Return STATE if regex is found, OK if not\n")); - - printf (" %s\n", "-a, --authorization=AUTH_PAIR"); diff --git a/debian/patches/21_check_pgsql_extra_output b/debian/patches/21_check_pgsql_extra_output new file mode 100644 index 0000000..773443b --- /dev/null +++ b/debian/patches/21_check_pgsql_extra_output @@ -0,0 +1,46 @@ +From 9f15dac8e789a4b13d4f9e8897ee03fee84f494a Mon Sep 17 00:00:00 2001 +From: phowen +Date: Wed, 26 Apr 2017 13:40:27 +0100 +Subject: [PATCH] add extra output to pgsql check + +--- + plugins/check_pgsql.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/plugins/check_pgsql.c b/plugins/check_pgsql.c +index c26cd439c..05fdc1568 100644 +--- a/plugins/check_pgsql.c ++++ b/plugins/check_pgsql.c +@@ -517,7 +517,10 @@ print_help (void) + printf (" %s\n", _("connecting to the server. The result from the query has to be numeric.")); + printf (" %s\n", _("Multiple SQL commands, separated by semicolon, are allowed but the result ")); + printf (" %s\n", _("of the last command is taken into account only. The value of the first")); +- printf (" %s\n\n", _("column in the first row is used as the check result.")); ++ printf (" %s\n", _("column in the first row is used as the check result. If a second column is")); ++ printf (" %s\n", _("present in the result set, this is added to the plugin output with a")); ++ printf (" %s\n", _("prefix of \"Extra Info:\". This information can be displayed in the system")); ++ printf (" %s\n\n", _("executing the plugin.")); + + printf (" %s\n", _("See the chapter \"Monitoring Database Activity\" of the PostgreSQL manual")); + printf (" %s\n\n", _("for details about how to access internal statistics of the database server.")); +@@ -557,6 +560,7 @@ do_query (PGconn *conn, char *query) + PGresult *res; + + char *val_str; ++ char *extra_info; + double value; + + char *endptr = NULL; +@@ -621,6 +625,12 @@ do_query (PGconn *conn, char *query) + printf ("|query=%f;%s;%s;;\n", value, + query_warning ? query_warning : "", + query_critical ? query_critical : ""); ++ if (PQnfields (res) > 1) { ++ extra_info = PQgetvalue (res, 0, 1); ++ if (extra_info != NULL) { ++ printf ("Extra Info: %s\n", extra_info); ++ } ++ } + return my_status; + } + diff --git a/debian/patches/22_check_by_ssh_missing_options b/debian/patches/22_check_by_ssh_missing_options deleted file mode 100644 index 33e2873..0000000 --- a/debian/patches/22_check_by_ssh_missing_options +++ /dev/null @@ -1,20 +0,0 @@ -From 02adcbfa896eb726c59ca647eb4cf6909c690f37 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= - <12514511+RincewindsHat@users.noreply.github.com> -Date: Mon, 24 Feb 2025 20:32:19 +0100 -Subject: [PATCH] check_by_ssh: Remove warning/critical from help - ---- - plugins/check_by_ssh.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/plugins/check_by_ssh.c -+++ b/plugins/check_by_ssh.c -@@ -454,7 +454,6 @@ - printf (" %s\n", _("Tell ssh to use this configfile [optional]")); - printf (" %s\n","-q, --quiet"); - printf (" %s\n", _("Tell ssh to suppress warning and diagnostic messages [optional]")); -- printf (UT_WARN_CRIT); - printf (UT_CONN_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); - printf (" %s\n","-U, --unknown-timeout"); - printf (" %s\n", _("Make connection problems return UNKNOWN instead of CRITICAL")); diff --git a/debian/patches/22_check_disk_avoid_mount b/debian/patches/22_check_disk_avoid_mount new file mode 100644 index 0000000..49a7113 --- /dev/null +++ b/debian/patches/22_check_disk_avoid_mount @@ -0,0 +1,47 @@ +From 0dd11100aa92bab172293ec9615a8a56b0e35ee6 Mon Sep 17 00:00:00 2001 +From: Stefan Taferner +Date: Wed, 10 May 2023 19:28:05 +0200 +Subject: [PATCH] avoid mounting when searching for matching mount points + +--- + lib/utils_disk.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/lib/utils_disk.c b/lib/utils_disk.c +index 468769b19..582d3ea17 100644 +--- a/lib/utils_disk.c ++++ b/lib/utils_disk.c +@@ -147,24 +147,25 @@ np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list + + /* set best match if path name exactly matches a mounted device name */ + for (me = mount_list; me; me = me->me_next) { +- if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) < 0) +- continue; /* skip if permissions do not suffice for accessing device */ +- if (strcmp(me->me_devname, d->name)==0) +- best_match = me; ++ if (strcmp(me->me_devname, d->name)==0) { ++ if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) >= 0) { ++ best_match = me; ++ } ++ } + } + + /* set best match by directory name if no match was found by devname */ + if (! best_match) { + for (me = mount_list; me; me = me->me_next) { +- if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) < 0) +- continue; /* skip if permissions do not suffice for accessing device */ + size_t len = strlen (me->me_mountdir); + if ((exact == FALSE && (best_match_len <= len && len <= name_len && + (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0))) + || (exact == TRUE && strcmp(me->me_mountdir, d->name)==0)) + { +- best_match = me; +- best_match_len = len; ++ if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) >= 0) { ++ best_match = me; ++ best_match_len = len; ++ } + } + } + } diff --git a/debian/patches/23_check_mysql_fix_error_handling b/debian/patches/23_check_mysql_fix_error_handling new file mode 100644 index 0000000..eb16f3f --- /dev/null +++ b/debian/patches/23_check_mysql_fix_error_handling @@ -0,0 +1,28 @@ +From 10863265324a9a9fdf8ce771271af15b7e2f5a4a Mon Sep 17 00:00:00 2001 +From: Platon Pronko +Date: Fri, 19 May 2023 15:05:02 +0800 +Subject: [PATCH] check_mysql: handle ER_ACCESS_DENIED_NO_PASSWORD_ERROR if + ignore_auth=1 + +In some situations MySQL might return ER_ACCESS_DENIED_NO_PASSWORD_ERROR +instead of ER_ACCESS_DENIED_ERROR. Semantically these errors are the same. +--- + plugins/check_mysql.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c +index 6cfa70edb..91e150fbd 100644 +--- a/plugins/check_mysql.c ++++ b/plugins/check_mysql.c +@@ -138,7 +138,10 @@ main (int argc, char **argv) + mysql_ssl_set(&mysql,key,cert,ca_cert,ca_dir,ciphers); + /* establish a connection to the server and error checking */ + if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) { +- if (ignore_auth && mysql_errno (&mysql) == ER_ACCESS_DENIED_ERROR) ++ /* Depending on internally-selected auth plugin MySQL might return */ ++ /* ER_ACCESS_DENIED_NO_PASSWORD_ERROR or ER_ACCESS_DENIED_ERROR. */ ++ /* Semantically these errors are the same. */ ++ if (ignore_auth && (mysql_errno (&mysql) == ER_ACCESS_DENIED_ERROR || mysql_errno (&mysql) == ER_ACCESS_DENIED_NO_PASSWORD_ERROR)) + { + printf("MySQL OK - Version: %s (protocol %d)\n", + mysql_get_server_info(&mysql), diff --git a/debian/patches/23_sslutils_fix_error_message b/debian/patches/23_sslutils_fix_error_message deleted file mode 100644 index c2e5c56..0000000 --- a/debian/patches/23_sslutils_fix_error_message +++ /dev/null @@ -1,23 +0,0 @@ -From ef3045b97eea23a4dec3197277e5ff4e5afc5c71 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andre=20Kl=C3=A4rner?= -Date: Mon, 17 Mar 2025 16:13:46 +0100 -Subject: [PATCH] change error message for missing certificate - -The old error message is quite similar to the openssl `failed to retrieve issuer certificate` and can mislead users to troubleshooting certificate stores. - -The new message should be distinct enough to make it clear to users that this is not a problem raised by the underlying SSL implementation, but a problem inside monitoring-plugins. ---- - plugins/sslutils.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/plugins/sslutils.c -+++ b/plugins/sslutils.c -@@ -208,7 +208,7 @@ - time_t tm_t; - - if (!certificate) { -- printf("%s\n",_("CRITICAL - Cannot retrieve server certificate.")); -+ printf("%s\n",_("CRITICAL - No server certificate present to inspect.")); - return STATE_CRITICAL; - } - diff --git a/debian/patches/24_check_http_deprecation b/debian/patches/24_check_http_deprecation deleted file mode 100644 index 117a28c..0000000 --- a/debian/patches/24_check_http_deprecation +++ /dev/null @@ -1,30 +0,0 @@ -From 14169fe5a11b94a9f9ab44336fdb5170ee98be66 Mon Sep 17 00:00:00 2001 -From: Jan Wagner -Date: Sat, 19 Apr 2025 14:37:46 +0200 -Subject: [PATCH] check_http: Adding deprecation text - ---- - plugins/check_http.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/plugins/check_http.c b/plugins/check_http.c -index baff682a7..8e0c15ec9 100644 ---- a/plugins/check_http.c -+++ b/plugins/check_http.c -@@ -1724,6 +1724,16 @@ print_help (void) - printf ("%s\n", _("strings and regular expressions, check connection times, and report on")); - printf ("%s\n", _("certificate expiration times.")); - -+ printf ("\n"); -+ printf ("%s\n", _("ATTENTION!")); -+ printf ("\n"); -+ printf ("%s\n", _("THIS PLUGIN IS DEPRECATED. The functionality was reimplemented by the")); -+ printf ("%s\n", _("check_curl plugin, which can be used as a drop-in replacement. You should")); -+ printf ("%s\n", _("migrate your checks over to check_curl, because check_http is going to be")); -+ printf ("%s\n", _("removed sooner than later. Just replace check_http with check_curl in your")); -+ printf ("%s\n", _("check command definitions.")); -+ printf ("%s\n", _("Report issues to: https://github.com/monitoring-plugins/monitoring-plugins/issues")); -+ - printf ("\n\n"); - - print_usage (); diff --git a/debian/patches/25_check_users_sd_get_uids b/debian/patches/25_check_users_sd_get_uids deleted file mode 100644 index 9f541ed..0000000 --- a/debian/patches/25_check_users_sd_get_uids +++ /dev/null @@ -1,28 +0,0 @@ -From fb39f96ac6f72bb56d17f3e8694134dfea9186e9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= - <12514511+RincewindsHat@users.noreply.github.com> -Date: Mon, 11 Aug 2025 21:49:20 +0200 -Subject: [PATCH] check_users: Use sd_get_uids instead of sd_get_session - -Previously check_users in combination with systemd used -sd_get_sessions (3) to aquire the number of users, probably -with the idea that every users opens a session. -Turns out, that a user can have multiple sessions and we only really -want to know how many users there are. - -This commit changes to sd_get_uids (3) to achieve that target. ---- - plugins/check_users.d/users.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/plugins/check_users.c -+++ b/plugins/check_users.c -@@ -92,7 +92,7 @@ - - #ifdef HAVE_LIBSYSTEMD - if (sd_booted () > 0) -- users = sd_get_sessions (NULL); -+ users = sd_get_uids(NULL); - else { - #endif - #if HAVE_WTSAPI32_H diff --git a/debian/patches/26_check_mysql_replica b/debian/patches/26_check_mysql_replica deleted file mode 100644 index aeeb45a..0000000 --- a/debian/patches/26_check_mysql_replica +++ /dev/null @@ -1,188 +0,0 @@ -From 4886fa3debf79aa2faac9d0180e8ddb4bb1d4aaa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= - <12514511+RincewindsHat@users.noreply.github.com> -Date: Mon, 24 Feb 2025 19:52:08 +0100 -Subject: [PATCH 1/2] Add MySQL server version dectection and adaptive replica - query - ---- - -Taken from https://github.com/monitoring-plugins/monitoring-plugins/compare/master...maintenance-2.4.0-check_mysql.patch - ---- - plugins/check_mysql.c | 51 +++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 49 insertions(+), 2 deletions(-) - -diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c -index 6a7daf11a..1b7403f7b 100644 ---- a/plugins/check_mysql.c -+++ b/plugins/check_mysql.c -@@ -211,8 +211,55 @@ main (int argc, char **argv) - } - - if(check_slave) { -- /* check the slave status */ -- if (mysql_query (&mysql, "show slave status") != 0) { -+ // Detect which version we are, on older version -+ // "show slave status" should work, on newer ones -+ // "show replica status" -+ // But first we have to find out whether this is -+ // MySQL or MariaDB since the version numbering scheme -+ // is different -+ bool use_deprecated_slave_status = false; -+ const char *server_version = mysql_get_server_info(&mysql); -+ unsigned long server_verion_int = mysql_get_server_version(&mysql); -+ unsigned long major_version = server_verion_int / 10000; -+ unsigned long minor_version = (server_verion_int % 10000) / 100; -+ unsigned long patch_version = (server_verion_int % 100); -+ if (verbose) { -+ printf("Found MariaDB: %s, main version: %lu, minor version: %lu, patch version: %lu\n", server_version, major_version, -+ minor_version, patch_version); -+ } -+ -+ if (strstr(server_version, "MariaDB") != NULL) { -+ // Looks like MariaDB, new commands should be available after 10.5.1 -+ if (major_version < 10) { -+ use_deprecated_slave_status = true; -+ } else if (major_version == 10) { -+ if (minor_version < 5) { -+ use_deprecated_slave_status = true; -+ } else if (minor_version == 5 && patch_version < 1) { -+ use_deprecated_slave_status = true; -+ } -+ } -+ } else if (strstr(server_version, "MySQL") != NULL) { -+ // Looks like MySQL -+ if (major_version < 8) { -+ use_deprecated_slave_status = true; -+ } else if (major_version == 10 && minor_version < 4) { -+ use_deprecated_slave_status = true; -+ } -+ } else { -+ printf("Not a known sever implementation: %s\n", server_version); -+ exit(STATE_UNKNOWN); -+ } -+ -+ char *replica_query = NULL; -+ if (use_deprecated_slave_status) { -+ replica_query = "show slave status"; -+ } else { -+ replica_query = "show replica status"; -+ } -+ -+ /* check the replica status */ -+ if (mysql_query(&mysql, replica_query) != 0) { - error = strdup(mysql_error(&mysql)); - mysql_close (&mysql); - die (STATE_CRITICAL, _("slave query error: %s\n"), error); - -From 291a704bcf738f6ceb7a1f46c69b8332b33dbd70 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= - <12514511+RincewindsHat@users.noreply.github.com> -Date: Fri, 26 Sep 2025 08:57:19 +0200 -Subject: [PATCH 2/2] check_mysql: Assume MySQL server by default (in replica - check) - -In the Debian Bug tracker (and then Github) a person pointed out, -that a MySQL server does not respond with a hint that is indeed the -MySQL software, but only with the version string. -Which makes sense if one assumes to be the only implementation. - -This commit changes the behaviour of the Replica check to assume -that the counterpart is a MySQL server if there are not hints that -it is a MariaDB server. ---- - plugins/check_mysql.c | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c -index 1b7403f7b..951a96f93 100644 ---- a/plugins/check_mysql.c -+++ b/plugins/check_mysql.c -@@ -239,16 +239,13 @@ main (int argc, char **argv) - use_deprecated_slave_status = true; - } - } -- } else if (strstr(server_version, "MySQL") != NULL) { -- // Looks like MySQL -+ } else { -+ // Looks like MySQL (or at least not like MariaDB) - if (major_version < 8) { - use_deprecated_slave_status = true; - } else if (major_version == 10 && minor_version < 4) { - use_deprecated_slave_status = true; - } -- } else { -- printf("Not a known sever implementation: %s\n", server_version); -- exit(STATE_UNKNOWN); - } - - char *replica_query = NULL; -From 392c945966d96d1dba9c68ac7a73450c2ad72d85 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lorenz=20K=C3=A4stle?= -Date: Tue, 30 Sep 2025 14:51:39 +0200 -Subject: [PATCH] More renaming due to MySQL name chances - -Due to MySQL changing several term in Version 8.0.22 the way to -determine the status of replicas has changed. -To adapt to these changes in a517dc614e44650a7e9204c4202feec7a40fd37f -check_mysql was modified to adapt to different versions. -Some parts were missed though which results in failures to detect -the replica status properly. - -This parts should be contained in this commit. - ---- - -Taken from https://patch-diff.githubusercontent.com/raw/monitoring-plugins/monitoring-plugins/pull/2163.patch - ---- - plugins/check_mysql.c | 37 ++++++++++++++++++++++++++----------- - 1 file changed, 26 insertions(+), 11 deletions(-) - ---- a/plugins/check_mysql.c -+++ b/plugins/check_mysql.c -@@ -300,17 +300,32 @@ - num_fields = mysql_num_fields(res); - fields = mysql_fetch_fields(res); - for(i = 0; i < num_fields; i++) { -- if (strcmp(fields[i].name, "Slave_IO_Running") == 0) { -- slave_io_field = i; -- continue; -- } -- if (strcmp(fields[i].name, "Slave_SQL_Running") == 0) { -- slave_sql_field = i; -- continue; -- } -- if (strcmp(fields[i].name, "Seconds_Behind_Master") == 0) { -- seconds_behind_field = i; -- continue; -+ if (use_deprecated_slave_status) { -+ if (strcmp(fields[i].name, "Slave_IO_Running") == 0) { -+ slave_io_field = i; -+ continue; -+ } -+ if (strcmp(fields[i].name, "Slave_SQL_Running") == 0) { -+ slave_sql_field = i; -+ continue; -+ } -+ if (strcmp(fields[i].name, "Seconds_Behind_Master") == 0) { -+ seconds_behind_field = i; -+ continue; -+ } -+ } else { -+ if (strcmp(fields[i].name, "Replica_IO_Running") == 0) { -+ slave_io_field = i; -+ continue; -+ } -+ if (strcmp(fields[i].name, "Replica_SQL_Running") == 0) { -+ slave_sql_field = i; -+ continue; -+ } -+ if (strcmp(fields[i].name, "Seconds_Behind_Source") == 0) { -+ seconds_behind_field = i; -+ continue; -+ } - } - } - diff --git a/debian/patches/27_check_mysql_fix_replica b/debian/patches/27_check_mysql_fix_replica deleted file mode 100644 index 3cce88f..0000000 --- a/debian/patches/27_check_mysql_fix_replica +++ /dev/null @@ -1,51 +0,0 @@ -Backport of https://patch-diff.githubusercontent.com/raw/monitoring-plugins/monitoring-plugins/pull/2184.patch - ---- a/plugins/check_mysql.c -+++ b/plugins/check_mysql.c -@@ -300,32 +300,20 @@ - num_fields = mysql_num_fields(res); - fields = mysql_fetch_fields(res); - for(i = 0; i < num_fields; i++) { -- if (use_deprecated_slave_status) { -- if (strcmp(fields[i].name, "Slave_IO_Running") == 0) { -- slave_io_field = i; -- continue; -- } -- if (strcmp(fields[i].name, "Slave_SQL_Running") == 0) { -- slave_sql_field = i; -- continue; -- } -- if (strcmp(fields[i].name, "Seconds_Behind_Master") == 0) { -- seconds_behind_field = i; -- continue; -- } -- } else { -- if (strcmp(fields[i].name, "Replica_IO_Running") == 0) { -- slave_io_field = i; -- continue; -- } -- if (strcmp(fields[i].name, "Replica_SQL_Running") == 0) { -- slave_sql_field = i; -- continue; -- } -- if (strcmp(fields[i].name, "Seconds_Behind_Source") == 0) { -- seconds_behind_field = i; -- continue; -- } -+ if ((strcmp(fields[i].name, "Slave_IO_Running") == 0) || -+ (strcmp(fields[i].name, "Replica_IO_Running") == 0)) { -+ slave_io_field = i; -+ continue; -+ } -+ if ((strcmp(fields[i].name, "Slave_SQL_Running") == 0) || -+ (strcmp(fields[i].name, "Replica_SQL_Running") == 0)) { -+ slave_sql_field = i; -+ continue; -+ } -+ if ((strcmp(fields[i].name, "Seconds_Behind_Master") == 0) || -+ (strcmp(fields[i].name, "Seconds_Behind_Source") == 0)) { -+ seconds_behind_field = i; -+ continue; - } - } - diff --git a/debian/patches/30_check_radius_radcli_1.3.1_support b/debian/patches/30_check_radius_radcli_1.3.1_support new file mode 100644 index 0000000..4e07da2 --- /dev/null +++ b/debian/patches/30_check_radius_radcli_1.3.1_support @@ -0,0 +1,26 @@ +From 6bbe0b7b0f609ecab831dec9be7690842bf0a0fc Mon Sep 17 00:00:00 2001 +From: Stuart Henderson +Date: Wed, 8 Feb 2023 16:35:22 +0000 +Subject: [PATCH] cope with radcli-1.3.1 RC_BUFFER_LEN + +radcli 1.3.1 now uses RC_BUFFER_LEN instead of BUFFER_LEN. Add an #ifdef to allow working with either. +--- + plugins/check_radius.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/plugins/check_radius.c b/plugins/check_radius.c +index be1001b4d..96a955536 100644 +--- a/plugins/check_radius.c ++++ b/plugins/check_radius.c +@@ -155,7 +155,11 @@ main (int argc, char **argv) + { + struct sockaddr_storage ss; + char name[HOST_NAME_MAX]; ++#ifdef RC_BUFFER_LEN ++ char msg[RC_BUFFER_LEN]; ++#else + char msg[BUFFER_LEN]; ++#endif + SEND_DATA data; + int result = STATE_UNKNOWN; + uint32_t client_id, service; diff --git a/debian/patches/31_checl_mailq_separate_submission_queue b/debian/patches/31_checl_mailq_separate_submission_queue new file mode 100644 index 0000000..51bdd78 --- /dev/null +++ b/debian/patches/31_checl_mailq_separate_submission_queue @@ -0,0 +1,77 @@ +From 12ae1fb6627bfef419fb4571a7189909107f5e6e Mon Sep 17 00:00:00 2001 +From: Jan Wagner +Date: Tue, 1 Oct 2013 15:06:51 +0200 +Subject: [PATCH] check_mailq.pl: separate submission queue + +check_mailq.pl ignores the separate submission queue used in (modern?) sendmail +implementations. + +For the queue output below with one message in the submission queue and no +messages in the transport queue, check_mailq.pl reports zero messages in the +queue because the request count from the last queue always overwrites previous +queues. If the sendmail MTA isn't running or has become wedged, messages will +sit in the submission queue forever. + +The attached patch fixes this in a backwards compatible way (i.e., it shouldn't +break any of the currently supported formats). +-- +Just turning attached patch of github issue #972 into a push request. +(Closes #972) +--- + +diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl +index 27073d3cc..f02c90fbc 100755 +--- a/plugins-scripts/check_mailq.pl ++++ b/plugins-scripts/check_mailq.pl +@@ -149,7 +149,26 @@ + ##/var/spool/mqueue/qF/df is empty + ## Total Requests: 1 + +- ++# separate submission/transport queues, empty ++## MSP Queue status... ++## /var/spool/mqueue-client is empty ++## Total requests: 0 ++## MTA Queue status... ++## /var/spool/mqueue is empty ++## Total requests: 0 ++# separate submission/transport queues: 1 ++## MSP Queue status... ++## /var/spool/mqueue-client (1 request) ++## -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- ++## oAJEfhdW014123 5 Fri Nov 19 14:41 jwm ++## (Deferred: Connection refused by [127.0.0.1]) ++## root ++## Total requests: 1 ++## MTA Queue status... ++## /var/spool/mqueue is empty ++## Total requests: 0 ++ ++ my $this_msg_q = 0; + while () { + + # match email addr on queue listing +@@ -189,13 +208,18 @@ + # + # single queue: first line + # multi queue: one for each queue. overwrite on multi queue below +- $msg_q = $1 ; ++ $this_msg_q = $1 ; ++ $msg_q += $1 ; + } + } elsif (/^\s+Total\sRequests:\s(\d+)$/i) { +- print "$utils::PATH_TO_MAILQ = $_ \n" if $verbose ; +- # +- # multi queue: last line +- $msg_q = $1 ; ++ if ($this_msg_q) { ++ $this_msg_q = 0 ; ++ } else { ++ print "$utils::PATH_TO_MAILQ = $_ \n" if $verbose ; ++ # ++ # multi queue: last line ++ $msg_q += $1 ; ++ } + } + + } diff --git a/debian/patches/32_check_disk_add_ignore_missing b/debian/patches/32_check_disk_add_ignore_missing new file mode 100644 index 0000000..caed27e --- /dev/null +++ b/debian/patches/32_check_disk_add_ignore_missing @@ -0,0 +1,839 @@ +From 8cf31437e99167ad9c260e6677b4d1ed31a34d56 Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Mon, 24 Oct 2022 17:29:53 +0200 +Subject: [PATCH 1/9] check_disk: add ignore-missing option to return OK for + missing fs There a situations where UNKNOWN or CRITICAL services are not + wanted when a filesystem is missing, a regex does not match or the filesystem + is inaccessible on a system. This new option helps to have the service in + state OK. + +--- + plugins/check_disk.c | 29 ++++++++++++++++++++++++----- + 1 file changed, 24 insertions(+), 5 deletions(-) + +diff --git a/plugins/check_disk.c b/plugins/check_disk.c +index 7018c6fd5..8df9e7ec8 100644 +--- a/plugins/check_disk.c ++++ b/plugins/check_disk.c +@@ -112,7 +112,8 @@ enum + { + SYNC_OPTION = CHAR_MAX + 1, + NO_SYNC_OPTION, +- BLOCK_SIZE_OPTION ++ BLOCK_SIZE_OPTION, ++ IGNORE_MISSING + }; + + #ifdef _AIX +@@ -140,6 +141,7 @@ int verbose = 0; + int erronly = FALSE; + int display_mntp = FALSE; + int exact_match = FALSE; ++int ignore_missing = FALSE; + int freespace_ignore_reserved = FALSE; + int display_inodes_perfdata = FALSE; + char *warn_freespace_units = NULL; +@@ -219,7 +221,9 @@ main (int argc, char **argv) + temp_list = path_select_list; + + while (temp_list) { +- if (! temp_list->best_match) { ++ if (! temp_list->best_match && ignore_missing == 1) { ++ die (STATE_OK, _("DISK %s: %s not found (ignoring)\n"), _("OK"), temp_list->name); ++ } else if (! temp_list->best_match) { + die (STATE_CRITICAL, _("DISK %s: %s not found\n"), _("CRITICAL"), temp_list->name); + } + +@@ -481,6 +485,7 @@ process_arguments (int argc, char **argv) + {"ignore-ereg-partition", required_argument, 0, 'i'}, + {"ignore-eregi-path", required_argument, 0, 'I'}, + {"ignore-eregi-partition", required_argument, 0, 'I'}, ++ {"ignore-missing", no_argument, 0, IGNORE_MISSING}, + {"local", no_argument, 0, 'l'}, + {"stat-remote-fs", no_argument, 0, 'L'}, + {"iperfdata", no_argument, 0, 'P'}, +@@ -718,6 +723,9 @@ process_arguments (int argc, char **argv) + cflags = default_cflags; + break; + ++ case IGNORE_MISSING: ++ ignore_missing = 1; ++ break; + case 'A': + optarg = strdup(".*"); + // Intentional fallthrough +@@ -753,7 +761,10 @@ process_arguments (int argc, char **argv) + } + } + +- if (!fnd) ++ if (!fnd && ignore_missing == 1) ++ die (STATE_OK, "DISK %s: %s - %s\n",_("OK"), ++ _("Regular expression did not match any path or disk (ignoring)"), optarg); ++ else if (!fnd) + die (STATE_UNKNOWN, "DISK %s: %s - %s\n",_("UNKNOWN"), + _("Regular expression did not match any path or disk"), optarg); + +@@ -923,6 +934,9 @@ print_help (void) + printf (" %s\n", _("Regular expression to ignore selected path/partition (case insensitive) (may be repeated)")); + printf (" %s\n", "-i, --ignore-ereg-path=PATH, --ignore-ereg-partition=PARTITION"); + printf (" %s\n", _("Regular expression to ignore selected path or partition (may be repeated)")); ++ printf (" %s\n", "--ignore-missing"); ++ printf (" %s\n", _("Return OK if no filesystem matches, filesystem does not exist or is inaccessible.")); ++ printf (" %s\n", _("(Provide this option before -r / --ereg-path if used)")); + printf (UT_PLUG_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); + printf (" %s\n", "-u, --units=STRING"); + printf (" %s\n", _("Choose bytes, kB, MB, GB, TB (default: MB)")); +@@ -965,8 +979,13 @@ stat_path (struct parameter_list *p) + if (stat (p->name, &stat_buf[0])) { + if (verbose >= 3) + printf("stat failed on %s\n", p->name); +- printf("DISK %s - ", _("CRITICAL")); +- die (STATE_CRITICAL, _("%s %s: %s\n"), p->name, _("is not accessible"), strerror(errno)); ++ if (ignore_missing == 1) { ++ printf("DISK %s - ", _("OK")); ++ die (STATE_OK, _("%s %s: %s\n"), p->name, _("is not accessible (ignoring)"), strerror(errno)); ++ } else { ++ printf("DISK %s - ", _("CRITICAL")); ++ die (STATE_CRITICAL, _("%s %s: %s\n"), p->name, _("is not accessible"), strerror(errno)); ++ } + } + } + + +From 0d562a356f45f645014c3908178fc13876006f6e Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Tue, 25 Oct 2022 20:49:51 +0200 +Subject: [PATCH 2/9] check_disk: add tests for new option --ignore-missing + +--- + plugins/t/check_disk.t | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t +index ec527e7f6..bea34a4c9 100644 +--- a/plugins/t/check_disk.t ++++ b/plugins/t/check_disk.t +@@ -351,3 +351,18 @@ unlike( $result->output, qr/$mountpoint2_valid/, "output data does not have $mou + $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p $mountpoint_valid -p $mountpoint2_valid -i '^barbazJodsf\$'"); + like( $result->output, qr/$mountpoint_valid/, "ignore: output data does have $mountpoint_valid when regex doesn't match"); + like( $result->output, qr/$mountpoint2_valid/,"ignore: output data does have $mountpoint2_valid when regex doesn't match"); ++ ++# ignore-missing: exit okay, when fs is not accessible ++$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p /bob"); ++cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for not existing filesystem /bob"); ++like( $result->output, '/^DISK OK - /bob is not accessible .*$/', 'Output OK'); ++ ++# ignore-missing: exit okay, when regex does not match ++$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r /bob"); ++cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); ++like( $result->output, '/^DISK OK: Regular expression did not match any path or disk.*$/', 'Output OK'); ++ ++# ignore-missing: exit okay, when fs with exact match (-E) is not found ++$result = NPTest->testCmd( "./check_disk --ignore-missing -E -w 0% -c 0% -p /etc"); ++cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay when exact match does not find fs"); ++like( $result->output, '/^DISK OK: /etc not found.*$/', 'Output OK'); + +From bacacd2cb38c7d7a695a6f75f699168d9df0132d Mon Sep 17 00:00:00 2001 +From: Sven Nierlein +Date: Wed, 26 Oct 2022 14:03:22 +0200 +Subject: [PATCH 3/9] check_disk: adjust test plan + +--- + plugins/t/check_disk.t | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t +index bea34a4c9..a534fd4a5 100644 +--- a/plugins/t/check_disk.t ++++ b/plugins/t/check_disk.t +@@ -23,7 +23,7 @@ my $mountpoint2_valid = getTestParameter( "NP_MOUNTPOINT2_VALID", "Path to anoth + if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { + plan skip_all => "Need 2 mountpoints to test"; + } else { +- plan tests => 78; ++ plan tests => 84; + } + + $result = NPTest->testCmd( + +From 9898a8ad7dabfabfe80785585a5bbc30b678bdb0 Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Sun, 19 Feb 2023 13:44:04 +0100 +Subject: [PATCH 4/9] utils_disk: add name_prev pointer to struct + parameter_list + +Also added handling of name_prev in np_add_parameter and np_delete_parameter. +This make calling the np_delete_parameter function easier, because it requires +the previous element as second argument. +--- + lib/utils_disk.c | 19 +++++++++++++++++-- + lib/utils_disk.h | 1 + + 2 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/lib/utils_disk.c b/lib/utils_disk.c +index c7c9126e4..a1181d37b 100644 +--- a/lib/utils_disk.c ++++ b/lib/utils_disk.c +@@ -46,9 +46,10 @@ np_add_parameter(struct parameter_list **list, const char *name) + struct parameter_list *current = *list; + struct parameter_list *new_path; + new_path = (struct parameter_list *) malloc (sizeof *new_path); +- new_path->name = (char *) name; ++ new_path->name = (char *) malloc(strlen(name) + 1); + new_path->best_match = NULL; + new_path->name_next = NULL; ++ new_path->name_prev = NULL; + new_path->freespace_bytes = NULL; + new_path->freespace_units = NULL; + new_path->freespace_percent = NULL; +@@ -74,13 +75,17 @@ np_add_parameter(struct parameter_list **list, const char *name) + new_path->dused_inodes_percent = 0; + new_path->dfree_inodes_percent = 0; + ++ strcpy(new_path->name, name); ++ + if (current == NULL) { + *list = new_path; ++ new_path->name_prev = NULL; + } else { + while (current->name_next) { + current = current->name_next; + } + current->name_next = new_path; ++ new_path->name_prev = current; + } + return new_path; + } +@@ -89,6 +94,9 @@ np_add_parameter(struct parameter_list **list, const char *name) + struct parameter_list * + np_del_parameter(struct parameter_list *item, struct parameter_list *prev) + { ++ if (item == NULL) { ++ return NULL; ++ } + struct parameter_list *next; + + if (item->name_next) +@@ -96,10 +104,17 @@ np_del_parameter(struct parameter_list *item, struct parameter_list *prev) + else + next = NULL; + +- free(item); ++ if (next) ++ next->name_prev = prev; ++ + if (prev) + prev->name_next = next; + ++ if (item->name) { ++ free(item->name); ++ } ++ free(item); ++ + return next; + } + +diff --git a/lib/utils_disk.h b/lib/utils_disk.h +index bf52e4ce9..3b5a45f86 100644 +--- a/lib/utils_disk.h ++++ b/lib/utils_disk.h +@@ -24,6 +24,7 @@ struct parameter_list + char *group; + struct mount_entry *best_match; + struct parameter_list *name_next; ++ struct parameter_list *name_prev; + uintmax_t total, available, available_to_root, used, + inodes_free, inodes_free_to_root, inodes_used, inodes_total; + double dfree_pct, dused_pct; + +From ba78c32018658608a31c293beef89ec82b9ba9d3 Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Sun, 19 Feb 2023 22:49:30 +0100 +Subject: [PATCH 5/9] check_disk: still allow check of available disks with + ignore-missing param used + +Also add reporting of ignored paths. When paths are provided by -p and/ or -r and +one path does not match a mounted disk, checking available disks is still +possible. Paths provided by -p are reported as ignored, when not available. Due +to code structure, this is not possible for -r unfortunately. +--- + plugins/check_disk.c | 103 ++++++++++++++++++++++++++++++++----------- + 1 file changed, 78 insertions(+), 25 deletions(-) + +diff --git a/plugins/check_disk.c b/plugins/check_disk.c +index 8df9e7ec8..c1cfb13c0 100644 +--- a/plugins/check_disk.c ++++ b/plugins/check_disk.c +@@ -117,7 +117,7 @@ enum + }; + + #ifdef _AIX +- #pragma alloca ++#pragma alloca + #endif + + int process_arguments (int, char **); +@@ -127,7 +127,7 @@ int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, ch + void print_help (void); + void print_usage (void); + double calculate_percent(uintmax_t, uintmax_t); +-void stat_path (struct parameter_list *p); ++bool stat_path (struct parameter_list *p); + void get_stats (struct parameter_list *p, struct fs_usage *fsp); + void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); + +@@ -157,6 +157,7 @@ char *crit_usedinodes_percent = NULL; + char *warn_freeinodes_percent = NULL; + char *crit_freeinodes_percent = NULL; + int path_selected = FALSE; ++int path_ignored = FALSE; + char *group = NULL; + struct stat *stat_buf; + struct name_list *seen = NULL; +@@ -168,10 +169,12 @@ main (int argc, char **argv) + int result = STATE_UNKNOWN; + int disk_result = STATE_UNKNOWN; + char *output; ++ char *ignored; + char *details; + char *perf; + char *perf_ilabel; + char *preamble; ++ char *ignored_preamble; + char *flag_header; + int temp_result; + +@@ -183,8 +186,10 @@ main (int argc, char **argv) + char mountdir[32]; + #endif + +- preamble = strdup (" - free space:"); ++ preamble = strdup (" free space:"); ++ ignored_preamble = strdup (" ignored paths:"); + output = strdup (""); ++ ignored = strdup (""); + details = strdup (""); + perf = strdup (""); + perf_ilabel = strdup (""); +@@ -205,7 +210,7 @@ main (int argc, char **argv) + /* If a list of paths has not been selected, find entire + mount list and create list of paths + */ +- if (path_selected == FALSE) { ++ if (path_selected == FALSE && path_ignored == FALSE) { + for (me = mount_list; me; me = me->me_next) { + if (! (path = np_find_parameter(path_select_list, me->me_mountdir))) { + path = np_add_parameter(&path_select_list, me->me_mountdir); +@@ -215,19 +220,40 @@ main (int argc, char **argv) + set_all_thresholds(path); + } + } +- np_set_best_match(path_select_list, mount_list, exact_match); ++ ++ if (path_ignored == FALSE) { ++ np_set_best_match(path_select_list, mount_list, exact_match); ++ } + + /* Error if no match found for specified paths */ + temp_list = path_select_list; + +- while (temp_list) { +- if (! temp_list->best_match && ignore_missing == 1) { +- die (STATE_OK, _("DISK %s: %s not found (ignoring)\n"), _("OK"), temp_list->name); +- } else if (! temp_list->best_match) { +- die (STATE_CRITICAL, _("DISK %s: %s not found\n"), _("CRITICAL"), temp_list->name); ++ while (path_select_list) { ++ if (! path_select_list->best_match && ignore_missing == 1) { ++ /* If the first element will be deleted, the temp_list must be updated with the new start address as well */ ++ if (path_select_list == temp_list) { ++ temp_list = path_select_list->name_next; ++ } ++ /* Add path argument to list of ignored paths to inform about missing paths being ignored and not alerted */ ++ xasprintf (&ignored, "%s %s;", ignored, path_select_list->name); ++ /* Delete the path from the list so that it is not stat-checked later in the code. */ ++ path_select_list = np_del_parameter(path_select_list, path_select_list->name_prev); ++ } else if (! path_select_list->best_match) { ++ /* Without --ignore-missing option, exit with Critical state. */ ++ die (STATE_CRITICAL, _("DISK %s: %s not found\n"), _("CRITICAL"), path_select_list->name); ++ } else { ++ /* Continue jumping through the list */ ++ path_select_list = path_select_list->name_next; + } ++ } ++ ++ path_select_list = temp_list; + +- temp_list = temp_list->name_next; ++ if (! path_select_list && ignore_missing == 1) { ++ result = STATE_OK; ++ if (verbose >= 2) { ++ printf ("None of the provided paths were found\n"); ++ } + } + + /* Process for every path in list */ +@@ -246,6 +272,10 @@ main (int argc, char **argv) + + me = path->best_match; + ++ if (!me) { ++ continue; ++ } ++ + #ifdef __CYGWIN__ + if (strncmp(path->name, "/cygdrive/", 10) != 0 || strlen(path->name) > 11) + continue; +@@ -264,8 +294,12 @@ main (int argc, char **argv) + if (path->group == NULL) { + /* Skip remote filesystems if we're not interested in them */ + if (me->me_remote && show_local_fs) { +- if (stat_remote_fs) +- stat_path(path); ++ if (stat_remote_fs) { ++ if (!stat_path(path) && ignore_missing == 1) { ++ result = STATE_OK; ++ xasprintf (&ignored, "%s %s;", ignored, path->name); ++ } ++ } + continue; + /* Skip pseudo fs's if we haven't asked for all fs's */ + } else if (me->me_dummy && !show_all_fs) { +@@ -284,7 +318,13 @@ main (int argc, char **argv) + } + } + +- stat_path(path); ++ if (!stat_path(path)) { ++ if (ignore_missing == 1) { ++ result = STATE_OK; ++ xasprintf (&ignored, "%s %s;", ignored, path->name); ++ } ++ continue; ++ } + get_fs_usage (me->me_mountdir, me->me_devname, &fsp); + + if (fsp.fsu_blocks && strcmp ("none", me->me_mountdir)) { +@@ -415,8 +455,12 @@ main (int argc, char **argv) + if (verbose >= 2) + xasprintf (&output, "%s%s", output, details); + ++ if (strcmp(output, "") == 0) { ++ preamble = ""; ++ xasprintf (&output, " No disks were found for provided parameters;"); ++ } + +- printf ("DISK %s%s%s|%s\n", state_text (result), (erronly && result==STATE_OK) ? "" : preamble, output, perf); ++ printf ("DISK %s -%s%s%s%s|%s\n", state_text (result), ((erronly && result==STATE_OK)) ? "" : preamble, output, (strcmp(ignored, "") == 0) ? "" : ignored_preamble, ignored, perf); + return result; + } + +@@ -637,12 +681,19 @@ process_arguments (int argc, char **argv) + /* add parameter if not found. overwrite thresholds if path has already been added */ + if (! (se = np_find_parameter(path_select_list, optarg))) { + se = np_add_parameter(&path_select_list, optarg); ++ ++ if (stat(optarg, &stat_buf[0]) && ignore_missing == 1) { ++ path_ignored = TRUE; ++ break; ++ } + } + se->group = group; + set_all_thresholds(se); + + /* With autofs, it is required to stat() the path before re-populating the mount_list */ +- stat_path(se); ++ if (!stat_path(se)) { ++ break; ++ } + /* NB: We can't free the old mount_list "just like that": both list pointers and struct + * pointers are copied around. One of the reason it wasn't done yet is that other parts + * of check_disk need the same kind of cleanup so it'd better be done as a whole */ +@@ -761,10 +812,11 @@ process_arguments (int argc, char **argv) + } + } + +- if (!fnd && ignore_missing == 1) +- die (STATE_OK, "DISK %s: %s - %s\n",_("OK"), +- _("Regular expression did not match any path or disk (ignoring)"), optarg); +- else if (!fnd) ++ if (!fnd && ignore_missing == 1) { ++ path_ignored = TRUE; ++ /* path_selected = TRUE;*/ ++ break; ++ } else if (!fnd) + die (STATE_UNKNOWN, "DISK %s: %s - %s\n",_("UNKNOWN"), + _("Regular expression did not match any path or disk"), optarg); + +@@ -936,7 +988,7 @@ print_help (void) + printf (" %s\n", _("Regular expression to ignore selected path or partition (may be repeated)")); + printf (" %s\n", "--ignore-missing"); + printf (" %s\n", _("Return OK if no filesystem matches, filesystem does not exist or is inaccessible.")); +- printf (" %s\n", _("(Provide this option before -r / --ereg-path if used)")); ++ printf (" %s\n", _("(Provide this option before -p / -r / --ereg-path if used)")); + printf (UT_PLUG_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); + printf (" %s\n", "-u, --units=STRING"); + printf (" %s\n", _("Choose bytes, kB, MB, GB, TB (default: MB)")); +@@ -970,7 +1022,7 @@ print_usage (void) + printf ("[-t timeout] [-u unit] [-v] [-X type] [-N type]\n"); + } + +-void ++bool + stat_path (struct parameter_list *p) + { + /* Stat entry to check that dir exists and is accessible */ +@@ -980,13 +1032,13 @@ stat_path (struct parameter_list *p) + if (verbose >= 3) + printf("stat failed on %s\n", p->name); + if (ignore_missing == 1) { +- printf("DISK %s - ", _("OK")); +- die (STATE_OK, _("%s %s: %s\n"), p->name, _("is not accessible (ignoring)"), strerror(errno)); ++ return false; + } else { + printf("DISK %s - ", _("CRITICAL")); + die (STATE_CRITICAL, _("%s %s: %s\n"), p->name, _("is not accessible"), strerror(errno)); + } + } ++ return true; + } + + +@@ -1006,7 +1058,8 @@ get_stats (struct parameter_list *p, struct fs_usage *fsp) { + continue; + #endif + if (p_list->group && ! (strcmp(p_list->group, p->group))) { +- stat_path(p_list); ++ if (! stat_path(p_list)) ++ continue; + get_fs_usage (p_list->best_match->me_mountdir, p_list->best_match->me_devname, &tmpfsp); + get_path_stats(p_list, &tmpfsp); + if (verbose >= 3) + +From ca3d59cd6918c9e2739e783b721d4c1122640fd3 Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Sun, 19 Feb 2023 23:00:21 +0100 +Subject: [PATCH 6/9] check_disk: add new tests for new ignore-missing feature + +--- + plugins/t/check_disk.t | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t +index a534fd4a5..275db70d8 100644 +--- a/plugins/t/check_disk.t ++++ b/plugins/t/check_disk.t +@@ -23,7 +23,7 @@ my $mountpoint2_valid = getTestParameter( "NP_MOUNTPOINT2_VALID", "Path to anoth + if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { + plan skip_all => "Need 2 mountpoints to test"; + } else { +- plan tests => 84; ++ plan tests => 86; + } + + $result = NPTest->testCmd( +@@ -355,14 +355,24 @@ like( $result->output, qr/$mountpoint2_valid/,"ignore: output data does have $mo + # ignore-missing: exit okay, when fs is not accessible + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p /bob"); + cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for not existing filesystem /bob"); +-like( $result->output, '/^DISK OK - /bob is not accessible .*$/', 'Output OK'); ++like( $result->output, '/^DISK OK - No disks were found for provided parameters; ignored paths: /bob;.*$/', 'Output OK'); + + # ignore-missing: exit okay, when regex does not match + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r /bob"); + cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); +-like( $result->output, '/^DISK OK: Regular expression did not match any path or disk.*$/', 'Output OK'); ++like( $result->output, '/^DISK OK - No disks were found for provided parameters;.*$/', 'Output OK'); + + # ignore-missing: exit okay, when fs with exact match (-E) is not found +-$result = NPTest->testCmd( "./check_disk --ignore-missing -E -w 0% -c 0% -p /etc"); ++$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -E -p /etc"); + cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay when exact match does not find fs"); +-like( $result->output, '/^DISK OK: /etc not found.*$/', 'Output OK'); ++like( $result->output, '/^DISK OK - No disks were found for provided parameters; ignored paths: /etc;.*$/', 'Output OK'); ++ ++# ignore-missing: exit okay, when checking one existing fs and one non-existing fs (regex) ++$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r '/bob' -r '^/$'"); ++cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); ++like( $result->output, '/^DISK OK - free space: / .*$/', 'Output OK'); ++ ++# ignore-missing: exit okay, when checking one existing fs and one non-existing fs (path) ++$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p '/bob' -p '/'"); ++cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); ++like( $result->output, '/^DISK OK - free space: / .*; ignored paths: /bob;.*$/', 'Output OK'); +\ No newline at end of file + +From a58293a0c288ee0e050c79715073da9fbdfc4c58 Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Mon, 20 Feb 2023 01:27:23 +0100 +Subject: [PATCH 7/9] check_disk: fix tests by setting correct test number and + escaping line end regex + +--- + plugins/t/check_disk.t | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t +index 275db70d8..73f1e3748 100644 +--- a/plugins/t/check_disk.t ++++ b/plugins/t/check_disk.t +@@ -23,7 +23,7 @@ my $mountpoint2_valid = getTestParameter( "NP_MOUNTPOINT2_VALID", "Path to anoth + if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { + plan skip_all => "Need 2 mountpoints to test"; + } else { +- plan tests => 86; ++ plan tests => 88; + } + + $result = NPTest->testCmd( +@@ -126,7 +126,7 @@ my $free_mb_on_all = $free_mb_on_mp1 + $free_mb_on_mp2; + + + $result = NPTest->testCmd( "./check_disk -e -w 1 -c 1 -p $more_free" ); +-is( $result->only_output, "DISK OK", "No print out of disks with -e for OKs"); ++is( $result->only_output, "DISK OK - No disks were found for provided parameters;", "No print out of disks with -e for OKs"); + + $result = NPTest->testCmd( "./check_disk 100 100 $more_free" ); + cmp_ok( $result->return_code, '==', 0, "Old syntax okay" ); +@@ -368,9 +368,9 @@ cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay when exact m + like( $result->output, '/^DISK OK - No disks were found for provided parameters; ignored paths: /etc;.*$/', 'Output OK'); + + # ignore-missing: exit okay, when checking one existing fs and one non-existing fs (regex) +-$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r '/bob' -r '^/$'"); ++$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r '/bob' -r '^/\$'"); + cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); +-like( $result->output, '/^DISK OK - free space: / .*$/', 'Output OK'); ++like( $result->output, '/^DISK OK - free space: \/ .*$/', 'Output OK'); + + # ignore-missing: exit okay, when checking one existing fs and one non-existing fs (path) + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p '/bob' -p '/'"); + +From e102b8a49e857a474db516455d2e871e6834ae34 Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Mon, 20 Feb 2023 02:03:01 +0100 +Subject: [PATCH 8/9] check_disk: fix ugly output with -e option and adapt + tests accordingly + +--- + plugins/check_disk.c | 10 +++++----- + plugins/t/check_disk.t | 8 ++++---- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/plugins/check_disk.c b/plugins/check_disk.c +index d32841d8e..c52d1df48 100644 +--- a/plugins/check_disk.c ++++ b/plugins/check_disk.c +@@ -186,8 +186,8 @@ main (int argc, char **argv) + char mountdir[32]; + #endif + +- preamble = strdup (" free space:"); +- ignored_preamble = strdup (" ignored paths:"); ++ preamble = strdup (" - free space:"); ++ ignored_preamble = strdup (" - ignored paths:"); + output = strdup (""); + ignored = strdup (""); + details = strdup (""); +@@ -455,12 +455,12 @@ main (int argc, char **argv) + if (verbose >= 2) + xasprintf (&output, "%s%s", output, details); + +- if (strcmp(output, "") == 0) { ++ if (strcmp(output, "") == 0 && ! erronly) { + preamble = ""; +- xasprintf (&output, " No disks were found for provided parameters;"); ++ xasprintf (&output, " - No disks were found for provided parameters;"); + } + +- printf ("DISK %s -%s%s%s%s|%s\n", state_text (result), ((erronly && result==STATE_OK)) ? "" : preamble, output, (strcmp(ignored, "") == 0) ? "" : ignored_preamble, ignored, perf); ++ printf ("DISK %s%s%s%s%s|%s\n", state_text (result), ((erronly && result==STATE_OK)) ? "" : preamble, output, (strcmp(ignored, "") == 0) ? "" : ignored_preamble, ignored, perf); + return result; + } + +diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t +index 73f1e3748..c8f08f515 100644 +--- a/plugins/t/check_disk.t ++++ b/plugins/t/check_disk.t +@@ -126,7 +126,7 @@ my $free_mb_on_all = $free_mb_on_mp1 + $free_mb_on_mp2; + + + $result = NPTest->testCmd( "./check_disk -e -w 1 -c 1 -p $more_free" ); +-is( $result->only_output, "DISK OK - No disks were found for provided parameters;", "No print out of disks with -e for OKs"); ++is( $result->only_output, "DISK OK", "No print out of disks with -e for OKs"); + + $result = NPTest->testCmd( "./check_disk 100 100 $more_free" ); + cmp_ok( $result->return_code, '==', 0, "Old syntax okay" ); +@@ -355,7 +355,7 @@ like( $result->output, qr/$mountpoint2_valid/,"ignore: output data does have $mo + # ignore-missing: exit okay, when fs is not accessible + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p /bob"); + cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for not existing filesystem /bob"); +-like( $result->output, '/^DISK OK - No disks were found for provided parameters; ignored paths: /bob;.*$/', 'Output OK'); ++like( $result->output, '/^DISK OK - No disks were found for provided parameters; - ignored paths: /bob;.*$/', 'Output OK'); + + # ignore-missing: exit okay, when regex does not match + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r /bob"); +@@ -365,7 +365,7 @@ like( $result->output, '/^DISK OK - No disks were found for provided parameters; + # ignore-missing: exit okay, when fs with exact match (-E) is not found + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -E -p /etc"); + cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay when exact match does not find fs"); +-like( $result->output, '/^DISK OK - No disks were found for provided parameters; ignored paths: /etc;.*$/', 'Output OK'); ++like( $result->output, '/^DISK OK - No disks were found for provided parameters; - ignored paths: /etc;.*$/', 'Output OK'); + + # ignore-missing: exit okay, when checking one existing fs and one non-existing fs (regex) + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r '/bob' -r '^/\$'"); +@@ -375,4 +375,4 @@ like( $result->output, '/^DISK OK - free space: \/ .*$/', 'Output OK'); + # ignore-missing: exit okay, when checking one existing fs and one non-existing fs (path) + $result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p '/bob' -p '/'"); + cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); +-like( $result->output, '/^DISK OK - free space: / .*; ignored paths: /bob;.*$/', 'Output OK'); +\ No newline at end of file ++like( $result->output, '/^DISK OK - free space: / .*; - ignored paths: /bob;.*$/', 'Output OK'); +\ No newline at end of file + +From 3e7da5f970d73df91fad32f4dce259d30cdbbd65 Mon Sep 17 00:00:00 2001 +From: Kristian Schuster <116557017+KriSchu@users.noreply.github.com> +Date: Mon, 6 Mar 2023 14:03:10 +0100 +Subject: [PATCH 9/9] check_disk: use cleaner code for ignore-missing option - + use datatype bool for new vars ignore_missing and path_ignored instead of int + - directly initialize preamble and ignored_preamble with their strings + +--- + plugins/check_disk.c | 34 ++++++++++++++++------------------ + 1 file changed, 16 insertions(+), 18 deletions(-) + +diff --git a/plugins/check_disk.c b/plugins/check_disk.c +index c52d1df48..bd84c8257 100644 +--- a/plugins/check_disk.c ++++ b/plugins/check_disk.c +@@ -141,7 +141,7 @@ int verbose = 0; + int erronly = FALSE; + int display_mntp = FALSE; + int exact_match = FALSE; +-int ignore_missing = FALSE; ++bool ignore_missing = false; + int freespace_ignore_reserved = FALSE; + int display_inodes_perfdata = FALSE; + char *warn_freespace_units = NULL; +@@ -157,7 +157,7 @@ char *crit_usedinodes_percent = NULL; + char *warn_freeinodes_percent = NULL; + char *crit_freeinodes_percent = NULL; + int path_selected = FALSE; +-int path_ignored = FALSE; ++bool path_ignored = false; + char *group = NULL; + struct stat *stat_buf; + struct name_list *seen = NULL; +@@ -173,8 +173,8 @@ main (int argc, char **argv) + char *details; + char *perf; + char *perf_ilabel; +- char *preamble; +- char *ignored_preamble; ++ char *preamble = " - free space:"; ++ char *ignored_preamble = " - ignored paths:"; + char *flag_header; + int temp_result; + +@@ -186,8 +186,6 @@ main (int argc, char **argv) + char mountdir[32]; + #endif + +- preamble = strdup (" - free space:"); +- ignored_preamble = strdup (" - ignored paths:"); + output = strdup (""); + ignored = strdup (""); + details = strdup (""); +@@ -210,7 +208,7 @@ main (int argc, char **argv) + /* If a list of paths has not been selected, find entire + mount list and create list of paths + */ +- if (path_selected == FALSE && path_ignored == FALSE) { ++ if (path_selected == FALSE && path_ignored == false) { + for (me = mount_list; me; me = me->me_next) { + if (! (path = np_find_parameter(path_select_list, me->me_mountdir))) { + path = np_add_parameter(&path_select_list, me->me_mountdir); +@@ -221,7 +219,7 @@ main (int argc, char **argv) + } + } + +- if (path_ignored == FALSE) { ++ if (path_ignored == false) { + np_set_best_match(path_select_list, mount_list, exact_match); + } + +@@ -229,7 +227,7 @@ main (int argc, char **argv) + temp_list = path_select_list; + + while (path_select_list) { +- if (! path_select_list->best_match && ignore_missing == 1) { ++ if (! path_select_list->best_match && ignore_missing == true) { + /* If the first element will be deleted, the temp_list must be updated with the new start address as well */ + if (path_select_list == temp_list) { + temp_list = path_select_list->name_next; +@@ -249,7 +247,7 @@ main (int argc, char **argv) + + path_select_list = temp_list; + +- if (! path_select_list && ignore_missing == 1) { ++ if (! path_select_list && ignore_missing == true) { + result = STATE_OK; + if (verbose >= 2) { + printf ("None of the provided paths were found\n"); +@@ -295,7 +293,7 @@ main (int argc, char **argv) + /* Skip remote filesystems if we're not interested in them */ + if (me->me_remote && show_local_fs) { + if (stat_remote_fs) { +- if (!stat_path(path) && ignore_missing == 1) { ++ if (!stat_path(path) && ignore_missing == true) { + result = STATE_OK; + xasprintf (&ignored, "%s %s;", ignored, path->name); + } +@@ -319,7 +317,7 @@ main (int argc, char **argv) + } + + if (!stat_path(path)) { +- if (ignore_missing == 1) { ++ if (ignore_missing == true) { + result = STATE_OK; + xasprintf (&ignored, "%s %s;", ignored, path->name); + } +@@ -682,8 +680,8 @@ process_arguments (int argc, char **argv) + if (! (se = np_find_parameter(path_select_list, optarg))) { + se = np_add_parameter(&path_select_list, optarg); + +- if (stat(optarg, &stat_buf[0]) && ignore_missing == 1) { +- path_ignored = TRUE; ++ if (stat(optarg, &stat_buf[0]) && ignore_missing == true) { ++ path_ignored = true; + break; + } + } +@@ -775,7 +773,7 @@ process_arguments (int argc, char **argv) + break; + + case IGNORE_MISSING: +- ignore_missing = 1; ++ ignore_missing = true; + break; + case 'A': + optarg = strdup(".*"); +@@ -812,8 +810,8 @@ process_arguments (int argc, char **argv) + } + } + +- if (!fnd && ignore_missing == 1) { +- path_ignored = TRUE; ++ if (!fnd && ignore_missing == true) { ++ path_ignored = true; + /* path_selected = TRUE;*/ + break; + } else if (!fnd) +@@ -1031,7 +1029,7 @@ stat_path (struct parameter_list *p) + if (stat (p->name, &stat_buf[0])) { + if (verbose >= 3) + printf("stat failed on %s\n", p->name); +- if (ignore_missing == 1) { ++ if (ignore_missing == true) { + return false; + } else { + printf("DISK %s - ", _("CRITICAL")); diff --git a/debian/patches/33_check_procs_exclude-process b/debian/patches/33_check_procs_exclude-process new file mode 100644 index 0000000..84db491 --- /dev/null +++ b/debian/patches/33_check_procs_exclude-process @@ -0,0 +1,168 @@ +From 691376d3a16da06e34740593d9a1de0e00cbffb8 Mon Sep 17 00:00:00 2001 +From: Christian Kujau +Date: Mon, 20 Mar 2023 11:35:01 +0100 +Subject: [PATCH 1/2] check_procs: Implement --exclude-process to exclude + specific processes. + +Signed-off-by: Christian Kujau +--- + plugins/check_procs.c | 47 +++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 45 insertions(+), 2 deletions(-) + +diff --git a/plugins/check_procs.c b/plugins/check_procs.c +index a025ee891..d672dd44e 100644 +--- a/plugins/check_procs.c ++++ b/plugins/check_procs.c +@@ -70,6 +70,7 @@ int options = 0; /* bitmask of filter criteria to test against */ + #define PCPU 256 + #define ELAPSED 512 + #define EREG_ARGS 1024 ++#define EXCLUDE_PROGS 2048 + + #define KTHREAD_PARENT "kthreadd" /* the parent process of kernel threads: + ppid of procs are compared to pid of this proc*/ +@@ -93,6 +94,9 @@ int rss; + float pcpu; + char *statopts; + char *prog; ++char *exclude_progs; ++char **exclude_progs_arr = NULL; ++char exclude_progs_counter = 0; + char *args; + char *input_filename = NULL; + regex_t re_args; +@@ -250,6 +254,25 @@ main (int argc, char **argv) + continue; + } + ++ /* Ignore excluded processes by name */ ++ if(options & EXCLUDE_PROGS) { ++ int found = 0; ++ int i = 0; ++ ++ for(i=0; i < (exclude_progs_counter); i++) { ++ if(!strcmp(procprog, exclude_progs_arr[i])) { ++ found = 1; ++ } ++ } ++ if(found == 0) { ++ resultsum |= EXCLUDE_PROGS; ++ } else ++ { ++ if(verbose >= 3) ++ printf("excluding - by ignorelist\n"); ++ } ++ } ++ + /* filter kernel threads (childs of KTHREAD_PARENT)*/ + /* TODO adapt for other OSes than GNU/Linux + sorry for not doing that, but I've no other OSes to test :-( */ +@@ -409,6 +432,7 @@ process_arguments (int argc, char **argv) + {"input-file", required_argument, 0, CHAR_MAX+2}, + {"no-kthreads", required_argument, 0, 'k'}, + {"traditional-filter", no_argument, 0, 'T'}, ++ {"exclude-process", required_argument, 0, 'X'}, + {0, 0, 0, 0} + }; + +@@ -417,7 +441,7 @@ process_arguments (int argc, char **argv) + strcpy (argv[c], "-t"); + + while (1) { +- c = getopt_long (argc, argv, "Vvhkt:c:w:p:s:u:C:a:z:r:m:P:T", ++ c = getopt_long (argc, argv, "Vvhkt:c:w:p:s:u:C:a:z:r:m:P:T:X:", + longopts, &option); + + if (c == -1 || c == EOF) +@@ -490,6 +514,23 @@ process_arguments (int argc, char **argv) + prog); + options |= PROG; + break; ++ case 'X': ++ if(exclude_progs) ++ break; ++ else ++ exclude_progs = optarg; ++ xasprintf (&fmt, _("%s%sexclude progs '%s'"), (fmt ? fmt : ""), (options ? ", " : ""), ++ exclude_progs); ++ char *p = strtok(exclude_progs, ","); ++ ++ while(p){ ++ exclude_progs_arr = realloc(exclude_progs_arr, sizeof(char*) * ++exclude_progs_counter); ++ exclude_progs_arr[exclude_progs_counter-1] = p; ++ p = strtok(NULL, ","); ++ } ++ ++ options |= EXCLUDE_PROGS; ++ break; + case 'a': /* args (full path name with args) */ + /* TODO: allow this to be passed in with --metric */ + if (args) +@@ -745,6 +786,8 @@ print_help (void) + printf (" %s\n", _("Only scan for processes with args that contain the regex STRING.")); + printf (" %s\n", "-C, --command=COMMAND"); + printf (" %s\n", _("Only scan for exact matches of COMMAND (without path).")); ++ printf (" %s\n", "-X, --exclude-process"); ++ printf (" %s\n", _("Exclude processes which match this comma seperated list")); + printf (" %s\n", "-k, --no-kthreads"); + printf (" %s\n", _("Only scan for non kernel threads (works on Linux only).")); + +@@ -786,5 +829,5 @@ print_usage (void) + printf ("%s\n", _("Usage:")); + printf ("%s -w -c [-m metric] [-s state] [-p ppid]\n", progname); + printf (" [-u user] [-r rss] [-z vsz] [-P %%cpu] [-a argument-array]\n"); +- printf (" [-C command] [-k] [-t timeout] [-v]\n"); ++ printf (" [-C command] [-X process_to_exclude] [-k] [-t timeout] [-v]\n"); + } + +From 7b7037280c36279ea51de07f9a4efea10bcfa24c Mon Sep 17 00:00:00 2001 +From: Christian Kujau +Date: Tue, 21 Mar 2023 11:26:03 +0100 +Subject: [PATCH 2/2] check_procs: add a test for the newly added -X option. + +$ make test +[...] +perl -I .. -I .. ../test.pl +No application (check_curl) found for test harness (check_curl.t) +No application (check_snmp) found for test harness (check_snmp.t) +./t/check_procs.t ...... ok +./tests/check_nt.t ..... ok +./tests/check_procs.t .. ok +All tests successful. +Files=4, Tests=73, 8 wallclock secs ( 0.05 usr 0.02 sys + 0.38 cusr +0.22 csys = 0.67 CPU) +Result: PASS + +Signed-off-by: Christian Kujau +--- + plugins/tests/check_procs.t | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/plugins/tests/check_procs.t b/plugins/tests/check_procs.t +index 3af218f50..b3a0a3015 100755 +--- a/plugins/tests/check_procs.t ++++ b/plugins/tests/check_procs.t +@@ -8,7 +8,7 @@ use Test::More; + use NPTest; + + if (-x "./check_procs") { +- plan tests => 52; ++ plan tests => 54; + } else { + plan skip_all => "No check_procs compiled"; + } +@@ -34,9 +34,13 @@ is( $result->return_code, 0, "Checking no threshold breeched" ); + is( $result->output, "PROCS OK: 95 processes | procs=95;100;200;0;", "Output correct" ); + + $result = NPTest->testCmd( "$command -C launchd -c 5" ); +-is( $result->return_code, 2, "Checking processes filtered by command name" ); ++is( $result->return_code, 2, "Checking processes matched by command name" ); + is( $result->output, "PROCS CRITICAL: 6 processes with command name 'launchd' | procs=6;;5;0;", "Output correct" ); + ++$result = NPTest->testCmd( "$command -X bash -c 5" ); ++is( $result->return_code, 2, "Checking processes excluded by command name" ); ++is( $result->output, "PROCS CRITICAL: 95 processes with exclude progs 'bash' | procs=95;;5;0;", "Output correct" ); ++ + SKIP: { + skip 'user with uid 501 required', 4 unless getpwuid(501); + diff --git a/debian/patches/34_check_curl_fix_compare_warning b/debian/patches/34_check_curl_fix_compare_warning new file mode 100644 index 0000000..c6775ee --- /dev/null +++ b/debian/patches/34_check_curl_fix_compare_warning @@ -0,0 +1,31 @@ +From cf90f0de7b3c347a6860b50de6a610bd7132668c Mon Sep 17 00:00:00 2001 +From: Andreas Baumann +Date: Thu, 16 Mar 2023 16:21:46 +0100 +Subject: [PATCH] check_curk: including netinet/in.h (for FreeBSD), fixed an + ambigous compare warning + +--- + plugins/check_curl.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/plugins/check_curl.c b/plugins/check_curl.c +index e5be1ad56..c51914a9a 100644 +--- a/plugins/check_curl.c ++++ b/plugins/check_curl.c +@@ -55,6 +55,7 @@ const char *email = "devel@monitoring-plugins.org"; + #include "uriparser/Uri.h" + + #include ++#include + + #if defined(HAVE_SSL) && defined(USE_OPENSSL) + #include +@@ -541,7 +542,7 @@ check_http (void) + /* compose URL: use the address we want to connect to, set Host: header later */ + snprintf (url, DEFAULT_BUFFER_SIZE, "%s://%s:%d%s", + use_ssl ? "https" : "http", +- use_ssl & host_name != NULL ? host_name : server_address, ++ ( use_ssl & ( host_name != NULL ) ) ? host_name : server_address, + server_port, + server_url + ); diff --git a/debian/patches/series b/debian/patches/series index d3f523d..062b069 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,23 +1,23 @@ 02_check_icmp_links 03_epn -04_lmstat_path # commited upstream -10_check_curl_fix_redirects -11_check_curl_raise_ssl_issue -12_check_curl_add_docu -13_check_mysql_fix_variables -14_check_curl_remove_experimental_state -15_check_curl_fix_regex -16_check_curl_openssl_error -17_check_fping_dontfrag_random -18_check_curl_fix_TLS_notes -19_check_curl_cookie_handling -20_check_icmp_fix_rtmin -21_check_http_state_regex -22_check_by_ssh_missing_options -23_sslutils_fix_error_message -24_check_http_deprecation -25_check_users_sd_get_uids -26_check_mysql_replica +10_check_http_chunked_wo_actual_content +11_fallback_for_gnutls +12_check_curl_improvements +13_check_icmp_improvements +14_check_curl_fix_SSL_with_multiple_IPs +15_check_swap_remove_includes +16_check_snmp_disable_multiplier_when_unused +17_fix_exit_codes +18_check_mysql_fix_typo +19_check_nwstat_fix_typo +20_chech_nt_fix_encoding +21_check_pgsql_extra_output +22_check_disk_avoid_mount +23_check_mysql_fix_error_handling # feature patches -27_check_mysql_fix_replica +30_check_radius_radcli_1.3.1_support +31_checl_mailq_separate_submission_queue +32_check_disk_add_ignore_missing +33_check_procs_exclude-process +34_check_curl_fix_compare_warning diff --git a/debian/pluginconfig/http.cfg b/debian/pluginconfig/http.cfg index 8e67496..16072de 100644 --- a/debian/pluginconfig/http.cfg +++ b/debian/pluginconfig/http.cfg @@ -6,7 +6,7 @@ define command{ # 'check_http_hostname' command definition define command{ - command_name check_http_hostname + command_name check_httpname command_line /usr/lib/nagios/plugins/check_http -H '$HOSTNAME$' -I '$HOSTADDRESS$' '$ARG1$' } @@ -64,7 +64,7 @@ define command{ # 'check_http_hostname_4' command definition define command{ - command_name check_http_hostname_4 + command_name check_httpname_4 command_line /usr/lib/nagios/plugins/check_http -H '$HOSTNAME$' -I '$HOSTADDRESS$' -4 '$ARG1$' } diff --git a/debian/rules b/debian/rules index 6ab0efc..2da585c 100755 --- a/debian/rules +++ b/debian/rules @@ -28,15 +28,15 @@ std_plugins:=check_breeze check_ifoperstatus check_hpjd check_ifstatus \ check_rpc check_snmp check_wave check_fping check_game \ check_radius check_mysql check_mysql_query check_pgsql \ check_disk_smb check_ldap check_ldaps \ - check_mailq \ + check_mailq check_curl \ check_dns check_dig check_flexlm check_oracle \ check_dbi common_files:=negate urlize utils.pm utils.sh -basic_plugin_cfgs:=apt dhcp disk dummy ftp http curl-http load mail news ntp ping procs \ +basic_plugin_cfgs:=apt dhcp disk dummy ftp http load mail news ntp ping procs \ real ssh tcp_udp telnet users -std_plugin_cfgs:=breeze disk-smb dns flexlm fping games hppjd ifstatus ldap \ +std_plugin_cfgs:=breeze curl-http disk-smb dns flexlm fping games hppjd ifstatus ldap \ mailq mrtg mysql netware nt pgsql radius rpc-nfs snmp PATH = /bin:/sbin:/usr/bin:/usr/sbin @@ -156,10 +156,6 @@ install: build for p in ${std_plugins}; do \ mv ${NP_BASIC_DIR}/${NP_LIBEXEC}/$$p ${NP_STD_DIR}/${NP_LIBEXEC}; \ done - # rename check_http to check_http_deprecated for making use of update-alternatives - mv ${NP_BASIC_DIR}/${NP_LIBEXEC}/check_http ${NP_BASIC_DIR}/${NP_LIBEXEC}/check_http.deprecated - # remove deprecated check_ntp - rm ${NP_BASIC_DIR}/${NP_LIBEXEC}/check_ntp # slit out common files for p in ${common_files}; do \ mv ${NP_BASIC_DIR}/${NP_LIBEXEC}/$$p ${NP_COMMON_DIR}/${NP_LIBEXEC}; \ @@ -217,7 +213,6 @@ binary-arch: build install dh_link -a dh_installexamples -a dh_installman -a - dh_installalternatives -a dh_strip -a dh_compress -a dh_fixperms -a -X utils.pm diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides deleted file mode 100644 index f4720ca..0000000 --- a/debian/source/lintian-overrides +++ /dev/null @@ -1,3 +0,0 @@ -# Not supported by devscripts in trixie -older-debian-watch-file-standard 4 * - diff --git a/gl/Makefile.am b/gl/Makefile.am index dcebd4a..15135c8 100644 --- a/gl/Makefile.am +++ b/gl/Makefile.am @@ -1,10 +1,10 @@ ## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. -# Copyright (C) 2002-2023 Free Software Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -21,42 +21,9 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: -# gnulib-tool --import \ -# --lib=libgnu \ -# --source-base=gl \ -# --m4-base=gl/m4 \ -# --doc-base=doc \ -# --tests-base=tests \ -# --aux-dir=build-aux \ -# --no-conditional-dependencies \ -# --no-libtool \ -# --macro-prefix=gl \ -# --no-vc-files \ -# base64 \ -# crypto/sha256 \ -# dirname \ -# environ \ -# floorf \ -# fsusage \ -# getaddrinfo \ -# gethostname \ -# getloadavg \ -# getopt-gnu \ -# gettext-h \ -# idpriv-droptemp \ -# mountlist \ -# regex \ -# setenv \ -# strcase \ -# strcasestr \ -# strsep \ -# timegm \ -# unsetenv \ -# vasprintf \ -# vsnprintf +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname environ floorf fsusage getaddrinfo gethostname getloadavg getopt-gnu gettext idpriv-droptemp mountlist regex setenv strcase strcasestr strsep timegm unsetenv vasprintf vsnprintf -AUTOMAKE_OPTIONS = 1.14 gnits subdir-objects +AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects SUBDIRS = noinst_HEADERS = @@ -70,7 +37,6 @@ MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = -# No GNU Make output. EXTRA_DIST += m4/gnulib-cache.m4 AM_CPPFLAGS = @@ -79,20 +45,10 @@ AM_CFLAGS = noinst_LIBRARIES += libgnu.a libgnu_a_SOURCES = -libgnu_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = -## begin gnulib module absolute-header - -# Use this preprocessor expression to decide whether #include_next works. -# Do not rely on a 'configure'-time test for this, since the expression -# might appear in an installed header, which is used by some other compiler. -HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) - -## end gnulib module absolute-header - ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) @@ -101,10 +57,11 @@ BUILT_SOURCES += $(ALLOCA_H) # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \ - $(srcdir)/alloca.in.h > $@-t - $(AM_V_at)mv $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + cat $(srcdir)/alloca.in.h; \ + } > $@-t && \ + mv -f $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ @@ -122,18 +79,18 @@ BUILT_SOURCES += arpa/inet.h # We need the following in order to create when the system # doesn't have one. arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(AM_V_GEN)$(MKDIR_P) '%reldir%/arpa' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) arpa + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \ -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \ - -e 's/@''GNULIB_INET_NTOP''@/$(GL_GNULIB_INET_NTOP)/g' \ - -e 's/@''GNULIB_INET_PTON''@/$(GL_GNULIB_INET_PTON)/g' \ - -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ + -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \ + -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \ -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \ -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \ -e 's|@''REPLACE_INET_NTOP''@|$(REPLACE_INET_NTOP)|g' \ @@ -141,8 +98,9 @@ arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/arpa_inet.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/arpa_inet.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += arpa/inet.h arpa/inet.h-t MOSTLYCLEANDIRS += arpa @@ -150,141 +108,72 @@ EXTRA_DIST += arpa_inet.in.h ## end gnulib module arpa_inet -## begin gnulib module assert-h - -BUILT_SOURCES += $(ASSERT_H) - -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -if GL_GENERATE_ASSERT_H -assert.h: assert.in.h verify.h $(top_builddir)/config.status - $(gl_V_at){ $(SED_HEADER_STDOUT) \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \ - < $(srcdir)/assert.in.h && \ - sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \ - -e 's|_gl_verify|_gl_static_assert|g' \ - -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \ - -e 's|_GL\(_STATIC_ASSERT_H\)|_GL\1|g' \ - < $(srcdir)/verify.h; \ - } > $@-t - $(AM_V_at)mv $@-t $@ -else -assert.h: $(top_builddir)/config.status - rm -f $@ -endif -MOSTLYCLEANFILES += assert.h assert.h-t - -EXTRA_DIST += assert.in.h verify.h - -## end gnulib module assert-h - -## begin gnulib module attribute - - -EXTRA_DIST += attribute.h - -## end gnulib module attribute - ## begin gnulib module base64 libgnu_a_SOURCES += base64.h base64.c ## end gnulib module base64 -## begin gnulib module basename-lgpl - -libgnu_a_SOURCES += basename-lgpl.c - -EXTRA_DIST += basename-lgpl.h - -## end gnulib module basename-lgpl - ## begin gnulib module btowc -if GL_COND_OBJ_BTOWC -libgnu_a_SOURCES += btowc.c -endif + +EXTRA_DIST += btowc.c + +EXTRA_libgnu_a_SOURCES += btowc.c ## end gnulib module btowc -## begin gnulib module byteswap +## begin gnulib module configmake -BUILT_SOURCES += $(BYTESWAP_H) +# Listed in the same order as the GNU makefile conventions, and +# provided by autoconf 2.59c+. +# The Automake-defined pkg* macros are appended, in the order +# listed in the Automake 1.10a+ documentation. +configmake.h: Makefile + $(AM_V_GEN)rm -f $@-t && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + echo '#define PREFIX "$(prefix)"'; \ + echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ + echo '#define BINDIR "$(bindir)"'; \ + echo '#define SBINDIR "$(sbindir)"'; \ + echo '#define LIBEXECDIR "$(libexecdir)"'; \ + echo '#define DATAROOTDIR "$(datarootdir)"'; \ + echo '#define DATADIR "$(datadir)"'; \ + echo '#define SYSCONFDIR "$(sysconfdir)"'; \ + echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ + echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ + echo '#define INCLUDEDIR "$(includedir)"'; \ + echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ + echo '#define DOCDIR "$(docdir)"'; \ + echo '#define INFODIR "$(infodir)"'; \ + echo '#define HTMLDIR "$(htmldir)"'; \ + echo '#define DVIDIR "$(dvidir)"'; \ + echo '#define PDFDIR "$(pdfdir)"'; \ + echo '#define PSDIR "$(psdir)"'; \ + echo '#define LIBDIR "$(libdir)"'; \ + echo '#define LISPDIR "$(lispdir)"'; \ + echo '#define LOCALEDIR "$(localedir)"'; \ + echo '#define MANDIR "$(mandir)"'; \ + echo '#define MANEXT "$(manext)"'; \ + echo '#define PKGDATADIR "$(pkgdatadir)"'; \ + echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ + echo '#define PKGLIBDIR "$(pkglibdir)"'; \ + echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ + } | sed '/""/d' > $@-t && \ + mv -f $@-t $@ -# We need the following in order to create when the system -# doesn't have one. -if GL_GENERATE_BYTESWAP_H -byteswap.h: byteswap.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/byteswap.in.h - $(AM_V_at)mv $@-t $@ -else -byteswap.h: $(top_builddir)/config.status - rm -f $@ -endif -MOSTLYCLEANFILES += byteswap.h byteswap.h-t +BUILT_SOURCES += configmake.h +CLEANFILES += configmake.h configmake.h-t -EXTRA_DIST += byteswap.in.h +## end gnulib module configmake -## end gnulib module byteswap +## begin gnulib module crypto/sha1 -## begin gnulib module calloc-gnu +libgnu_a_SOURCES += sha1.c +EXTRA_DIST += sha1.h -EXTRA_DIST += calloc.c - -EXTRA_libgnu_a_SOURCES += calloc.c - -## end gnulib module calloc-gnu - -## begin gnulib module calloc-posix - - -EXTRA_DIST += calloc.c - -EXTRA_libgnu_a_SOURCES += calloc.c - -## end gnulib module calloc-posix - -## begin gnulib module cloexec - -libgnu_a_SOURCES += cloexec.c - -EXTRA_DIST += cloexec.h - -## end gnulib module cloexec - -## begin gnulib module close - -if GL_COND_OBJ_CLOSE -libgnu_a_SOURCES += close.c -endif - -## end gnulib module close - -## begin gnulib module crypto/af_alg - -libgnu_a_SOURCES += af_alg.c - -EXTRA_DIST += af_alg.h sys-limits.h - -## end gnulib module crypto/af_alg - -## begin gnulib module crypto/sha256 - -libgnu_a_SOURCES += sha256-stream.c - -## end gnulib module crypto/sha256 - -## begin gnulib module crypto/sha256-buffer - -libgnu_a_SOURCES += sha256.c - -EXTRA_DIST += gl_openssl.h sha256.h - -## end gnulib module crypto/sha256-buffer +## end gnulib module crypto/sha1 ## begin gnulib module dirname @@ -298,19 +187,18 @@ EXTRA_libgnu_a_SOURCES += stripslash.c ## begin gnulib module dirname-lgpl -libgnu_a_SOURCES += dirname-lgpl.c stripslash.c +libgnu_a_SOURCES += dirname-lgpl.c basename-lgpl.c stripslash.c EXTRA_DIST += dirname.h ## end gnulib module dirname-lgpl -## begin gnulib module dup2 +## begin gnulib module dosname -if GL_COND_OBJ_DUP2 -libgnu_a_SOURCES += dup2.c -endif -## end gnulib module dup2 +EXTRA_DIST += dosname.h + +## end gnulib module dosname ## begin gnulib module errno @@ -320,8 +208,9 @@ BUILT_SOURCES += $(ERRNO_H) # doesn't have one that is POSIX compliant. if GL_GENERATE_ERRNO_H errno.h: errno.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @@ -332,8 +221,9 @@ errno.h: errno.in.h $(top_builddir)/config.status -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ - $(srcdir)/errno.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/errno.in.h; \ + } > $@-t && \ + mv $@-t $@ else errno.h: $(top_builddir)/config.status rm -f $@ @@ -346,11 +236,10 @@ EXTRA_DIST += errno.in.h ## begin gnulib module error -if GL_COND_OBJ_ERROR -libgnu_a_SOURCES += error.c -endif -EXTRA_DIST += error.h +EXTRA_DIST += error.c error.h + +EXTRA_libgnu_a_SOURCES += error.c ## end gnulib module error @@ -362,51 +251,6 @@ EXTRA_DIST += exitfail.h ## end gnulib module exitfail -## begin gnulib module fcntl - -if GL_COND_OBJ_FCNTL -libgnu_a_SOURCES += fcntl.c -endif - -## end gnulib module fcntl - -## begin gnulib module fcntl-h - -BUILT_SOURCES += fcntl.h - -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ - -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ - -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ - -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ - -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ - -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ - -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ - -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ - -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ - -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ - -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ - -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ - -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ - -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ - -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/fcntl.in.h > $@-t - $(AM_V_at)mv $@-t $@ -MOSTLYCLEANFILES += fcntl.h fcntl.h-t - -EXTRA_DIST += fcntl.in.h - -## end gnulib module fcntl-h - ## begin gnulib module fd-hook libgnu_a_SOURCES += fd-hook.c @@ -415,23 +259,6 @@ EXTRA_DIST += fd-hook.h ## end gnulib module fd-hook -## begin gnulib module fflush - -if GL_COND_OBJ_FFLUSH -libgnu_a_SOURCES += fflush.c -endif - -EXTRA_DIST += stdio-impl.h - -## end gnulib module fflush - -## begin gnulib module filename - - -EXTRA_DIST += filename.h - -## end gnulib module filename - ## begin gnulib module float BUILT_SOURCES += $(FLOAT_H) @@ -440,267 +267,127 @@ BUILT_SOURCES += $(FLOAT_H) # doesn't have one that works with the given compiler. if GL_GENERATE_FLOAT_H float.h: float.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ - $(srcdir)/float.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/float.in.h; \ + } > $@-t && \ + mv $@-t $@ else float.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += float.h float.h-t -if GL_COND_OBJ_FLOAT -libgnu_a_SOURCES += float.c -endif -if GL_COND_OBJ_ITOLD -libgnu_a_SOURCES += itold.c -endif +EXTRA_DIST += float.c float.in.h itold.c -EXTRA_DIST += float.in.h +EXTRA_libgnu_a_SOURCES += float.c itold.c ## end gnulib module float ## begin gnulib module floorf -if GL_COND_OBJ_FLOORF -libgnu_a_SOURCES += floorf.c -endif -EXTRA_DIST += floor.c +EXTRA_DIST += floor.c floorf.c -EXTRA_libgnu_a_SOURCES += floor.c +EXTRA_libgnu_a_SOURCES += floor.c floorf.c ## end gnulib module floorf -## begin gnulib module fopen - - -EXTRA_DIST += fopen.c - -EXTRA_libgnu_a_SOURCES += fopen.c - -## end gnulib module fopen - -## begin gnulib module fopen-gnu - - -EXTRA_DIST += fopen.c - -EXTRA_libgnu_a_SOURCES += fopen.c - -## end gnulib module fopen-gnu - -## begin gnulib module fpurge - -if GL_COND_OBJ_FPURGE -libgnu_a_SOURCES += fpurge.c -endif - -EXTRA_DIST += stdio-impl.h - -## end gnulib module fpurge - -## begin gnulib module freading - -libgnu_a_SOURCES += freading.c - -EXTRA_DIST += freading.h stdio-impl.h - -## end gnulib module freading - -## begin gnulib module free-posix - -if GL_COND_OBJ_FREE -libgnu_a_SOURCES += free.c -endif - -## end gnulib module free-posix - -## begin gnulib module fseek - -if GL_COND_OBJ_FSEEK -libgnu_a_SOURCES += fseek.c -endif - -## end gnulib module fseek - -## begin gnulib module fseeko - -if GL_COND_OBJ_FSEEKO -libgnu_a_SOURCES += fseeko.c -endif - -EXTRA_DIST += stdio-impl.h - -## end gnulib module fseeko - -## begin gnulib module fstat - -if GL_COND_OBJ_FSTAT -libgnu_a_SOURCES += fstat.c -endif - -EXTRA_DIST += stat-w32.c stat-w32.h - -EXTRA_libgnu_a_SOURCES += stat-w32.c - -## end gnulib module fstat - ## begin gnulib module fsusage -if GL_COND_OBJ_FSUSAGE -libgnu_a_SOURCES += fsusage.c -endif -EXTRA_DIST += fsusage.h +EXTRA_DIST += fsusage.c fsusage.h + +EXTRA_libgnu_a_SOURCES += fsusage.c ## end gnulib module fsusage -## begin gnulib module ftell +## begin gnulib module full-read -if GL_COND_OBJ_FTELL -libgnu_a_SOURCES += ftell.c -endif +libgnu_a_SOURCES += full-read.h full-read.c -## end gnulib module ftell +EXTRA_DIST += full-write.c -## begin gnulib module ftello +EXTRA_libgnu_a_SOURCES += full-write.c -if GL_COND_OBJ_FTELLO -libgnu_a_SOURCES += ftello.c -endif - -EXTRA_DIST += stdio-impl.h - -## end gnulib module ftello - -## begin gnulib module gen-header - -# In 'sed', replace the pattern space with a "DO NOT EDIT" comment. -SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */, - -# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT". -SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G - -# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading -# "DO_NOT_EDIT". Although this could be done more simply via: -# SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t -# the -n and 'w' avoid a fork+exec, at least when GNU Make is used. -SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t' - -# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that -gl_V_at = $(AM_V_GEN) - -## end gnulib module gen-header +## end gnulib module full-read ## begin gnulib module getaddrinfo -if GL_COND_OBJ_GETADDRINFO -libgnu_a_SOURCES += getaddrinfo.c -endif -if GL_COND_OBJ_GAI_STRERROR -libgnu_a_SOURCES += gai_strerror.c -endif + +EXTRA_DIST += gai_strerror.c getaddrinfo.c + +EXTRA_libgnu_a_SOURCES += gai_strerror.c getaddrinfo.c ## end gnulib module getaddrinfo -## begin gnulib module getdelim - -if GL_COND_OBJ_GETDELIM -libgnu_a_SOURCES += getdelim.c -endif - -## end gnulib module getdelim - -## begin gnulib module getdtablesize - -if GL_COND_OBJ_GETDTABLESIZE -libgnu_a_SOURCES += getdtablesize.c -endif - -## end gnulib module getdtablesize - ## begin gnulib module gethostname -if GL_COND_OBJ_GETHOSTNAME -libgnu_a_SOURCES += gethostname.c -endif -EXTRA_DIST += w32sock.h +EXTRA_DIST += gethostname.c w32sock.h + +EXTRA_libgnu_a_SOURCES += gethostname.c ## end gnulib module gethostname -## begin gnulib module getline - -if GL_COND_OBJ_GETLINE -libgnu_a_SOURCES += getline.c -endif - -## end gnulib module getline - ## begin gnulib module getloadavg -if GL_COND_OBJ_GETLOADAVG -libgnu_a_SOURCES += getloadavg.c -endif + +EXTRA_DIST += getloadavg.c + +EXTRA_libgnu_a_SOURCES += getloadavg.c ## end gnulib module getloadavg ## begin gnulib module getopt-posix -BUILT_SOURCES += $(GETOPT_H) $(GETOPT_CDEFS_H) +BUILT_SOURCES += $(GETOPT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. -if GL_GENERATE_GETOPT_H getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - $(srcdir)/getopt.in.h > $@-t - $(AM_V_at)mv $@-t $@ -else -getopt.h: $(top_builddir)/config.status - rm -f $@ -endif + < $(srcdir)/getopt.in.h; \ + } > $@-t && \ + mv -f $@-t $@ +MOSTLYCLEANFILES += getopt.h getopt.h-t -if GL_GENERATE_GETOPT_CDEFS_H -getopt-cdefs.h: getopt-cdefs.in.h $(top_builddir)/config.status - $(AM_V_GEN)$(SED_HEADER_STDOUT) \ - -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ - $(srcdir)/getopt-cdefs.in.h > $@-t - $(AM_V_at)mv $@-t $@ -else -getopt-cdefs.h: $(top_builddir)/config.status - rm -f $@ -endif +EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h -MOSTLYCLEANFILES += getopt.h getopt.h-t getopt-cdefs.h getopt-cdefs.h-t - -if GL_COND_OBJ_GETOPT -libgnu_a_SOURCES += getopt.c getopt1.c -endif - -EXTRA_DIST += getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.in.h getopt_int.h +EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c ## end gnulib module getopt-posix -## begin gnulib module getprogname +## begin gnulib module gettext -libgnu_a_SOURCES += getprogname.h getprogname.c +# If your project uses "gettextize --intl" to put a source-code +# copy of libintl into the package, every Makefile.am needs +# -I$(top_builddir)/intl, so that can be found in this directory. +# Here's one way to do this: +#AM_CPPFLAGS += -I$(top_builddir)/intl +# This option has no effect when the user disables NLS (because then +# the intl directory contains no libintl.h file). This option is not +# enabled by default because the intl directory might not exist if +# your project does not use "gettext --intl", and some compilers +# complain about -I options applied to nonexistent directories. -## end gnulib module getprogname +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath + +## end gnulib module gettext ## begin gnulib module gettext-h @@ -708,54 +395,12 @@ libgnu_a_SOURCES += gettext.h ## end gnulib module gettext-h -## begin gnulib module glibc-internal/dynarray +## begin gnulib module havelib -BUILT_SOURCES += malloc/dynarray.gl.h malloc/dynarray-skeleton.gl.h -malloc/dynarray.gl.h: malloc/dynarray.h - $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e '/libc_hidden_proto/d' \ - $(srcdir)/malloc/dynarray.h > $@-t - $(AM_V_at)mv $@-t $@ -MOSTLYCLEANFILES += malloc/dynarray.gl.h malloc/dynarray.gl.h-t +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath -malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c - $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|||g' \ - -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \ - -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \ - -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \ - -e 's|__glibc_likely|_GL_LIKELY|g' \ - -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \ - $(srcdir)/malloc/dynarray-skeleton.c > $@-t - $(AM_V_at)mv $@-t $@ -MOSTLYCLEANFILES += malloc/dynarray-skeleton.gl.h malloc/dynarray-skeleton.gl.h-t - -libgnu_a_SOURCES += malloc/dynarray_at_failure.c malloc/dynarray_emplace_enlarge.c malloc/dynarray_finalize.c malloc/dynarray_resize.c malloc/dynarray_resize_clear.c - -EXTRA_DIST += dynarray.h malloc/dynarray-skeleton.c malloc/dynarray.h - -EXTRA_libgnu_a_SOURCES += malloc/dynarray-skeleton.c - -## end gnulib module glibc-internal/dynarray - -## begin gnulib module hard-locale - -libgnu_a_SOURCES += hard-locale.c - -EXTRA_DIST += hard-locale.h - -## end gnulib module hard-locale - -## begin gnulib module ialloc - -libgnu_a_SOURCES += ialloc.c - -EXTRA_DIST += ialloc.h - -## end gnulib module ialloc +## end gnulib module havelib ## begin gnulib module idpriv-droptemp @@ -765,68 +410,22 @@ EXTRA_DIST += idpriv.h ## end gnulib module idpriv-droptemp -## begin gnulib module idx - -libgnu_a_SOURCES += idx.h - -## end gnulib module idx - ## begin gnulib module inet_ntop -if GL_COND_OBJ_INET_NTOP -libgnu_a_SOURCES += inet_ntop.c -endif + +EXTRA_DIST += inet_ntop.c + +EXTRA_libgnu_a_SOURCES += inet_ntop.c ## end gnulib module inet_ntop ## begin gnulib module intprops -EXTRA_DIST += intprops-internal.h intprops.h +EXTRA_DIST += intprops.h ## end gnulib module intprops -## begin gnulib module inttypes-incomplete - -BUILT_SOURCES += inttypes.h - -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ - -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ - -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ - -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \ - -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \ - -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \ - -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \ - -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ - -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ - -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ - -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ - -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/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' \ - -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ - -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/inttypes.in.h > $@-t - $(AM_V_at)mv $@-t $@ -MOSTLYCLEANFILES += inttypes.h inttypes.h-t - -EXTRA_DIST += inttypes.in.h - -## end gnulib module inttypes-incomplete - ## begin gnulib module langinfo BUILT_SOURCES += langinfo.h @@ -834,69 +433,103 @@ BUILT_SOURCES += langinfo.h # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ - -e 's/@''GNULIB_NL_LANGINFO''@/$(GL_GNULIB_NL_LANGINFO)/g' \ + -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ - -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/langinfo.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/langinfo.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += langinfo.h langinfo.h-t EXTRA_DIST += langinfo.in.h ## end gnulib module langinfo -## begin gnulib module libc-config - - -EXTRA_DIST += cdefs.h libc-config.h - -## end gnulib module libc-config - -## begin gnulib module limits-h - -BUILT_SOURCES += $(LIMITS_H) - -# We need the following in order to create when the system -# doesn't have one that is compatible with GNU. -if GL_GENERATE_LIMITS_H -limits.h: limits.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ - $(srcdir)/limits.in.h > $@-t - $(AM_V_at)mv $@-t $@ -else -limits.h: $(top_builddir)/config.status - rm -f $@ -endif -MOSTLYCLEANFILES += limits.h limits.h-t - -EXTRA_DIST += limits.in.h - -## end gnulib module limits-h - ## begin gnulib module localcharset -libgnu_a_SOURCES += localcharset.c +libgnu_a_SOURCES += localcharset.h localcharset.c -EXTRA_DIST += localcharset.h +# We need the following in order to install a simple file in $(libdir) +# which is shared with other installed packages. We use a list of referencing +# packages so that "make uninstall" will remove the file if and only if it +# is not used by another installed package. +# On systems with glibc-2.1 or newer, the file is redundant, therefore we +# avoid installing it. + +all-local: charset.alias ref-add.sed ref-del.sed + +charset_alias = $(DESTDIR)$(libdir)/charset.alias +charset_tmp = $(DESTDIR)$(libdir)/charset.tmp +install-exec-local: install-exec-localcharset +install-exec-localcharset: all-local + if test $(GLIBC21) = no; then \ + case '$(host_os)' in \ + darwin[56]*) \ + need_charset_alias=true ;; \ + darwin* | cygwin* | mingw* | pw32* | cegcc*) \ + need_charset_alias=false ;; \ + *) \ + need_charset_alias=true ;; \ + esac ; \ + else \ + need_charset_alias=false ; \ + fi ; \ + if $$need_charset_alias; then \ + $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ + fi ; \ + if test -f $(charset_alias); then \ + sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + else \ + if $$need_charset_alias; then \ + sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + fi ; \ + fi + +uninstall-local: uninstall-localcharset +uninstall-localcharset: all-local + if test -f $(charset_alias); then \ + sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ + if grep '^# Packages using this file: $$' $(charset_tmp) \ + > /dev/null; then \ + rm -f $(charset_alias); \ + else \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ + fi; \ + rm -f $(charset_tmp); \ + fi + +charset.alias: config.charset + $(AM_V_GEN)rm -f t-$@ $@ && \ + $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ + mv t-$@ $@ + +SUFFIXES += .sed .sin +.sin.sed: + $(AM_V_GEN)rm -f t-$@ $@ && \ + sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ + mv t-$@ $@ + +CLEANFILES += charset.alias ref-add.sed ref-del.sed + +EXTRA_DIST += config.charset ref-add.sin ref-del.sin ## end gnulib module localcharset @@ -907,33 +540,28 @@ BUILT_SOURCES += locale.h # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ - -e 's/@''GNULIB_LOCALECONV''@/$(GL_GNULIB_LOCALECONV)/g' \ - -e 's/@''GNULIB_SETLOCALE''@/$(GL_GNULIB_SETLOCALE)/g' \ - -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GL_GNULIB_SETLOCALE_NULL)/g' \ - -e 's/@''GNULIB_DUPLOCALE''@/$(GL_GNULIB_DUPLOCALE)/g' \ - -e 's/@''GNULIB_LOCALENAME''@/$(GL_GNULIB_LOCALENAME)/g' \ - -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ + -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ + -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ + -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ - -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ - -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ - -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ - -e 's|@''LOCALENAME_ENHANCE_LOCALE_FUNCS''@|$(LOCALENAME_ENHANCE_LOCALE_FUNCS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/locale.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/locale.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += locale.h locale.h-t EXTRA_DIST += locale.in.h @@ -942,9 +570,10 @@ EXTRA_DIST += locale.in.h ## begin gnulib module localeconv -if GL_COND_OBJ_LOCALECONV -libgnu_a_SOURCES += localeconv.c -endif + +EXTRA_DIST += localeconv.c + +EXTRA_libgnu_a_SOURCES += localeconv.c ## end gnulib module localeconv @@ -954,14 +583,6 @@ libgnu_a_SOURCES += glthread/lock.h glthread/lock.c ## end gnulib module lock -## begin gnulib module lseek - -if GL_COND_OBJ_LSEEK -libgnu_a_SOURCES += lseek.c -endif - -## end gnulib module lseek - ## begin gnulib module malloc-gnu @@ -984,7 +605,7 @@ EXTRA_libgnu_a_SOURCES += malloc.c libgnu_a_SOURCES += malloca.c -EXTRA_DIST += malloca.h +EXTRA_DIST += malloca.h malloca.valgrind ## end gnulib module malloca @@ -996,114 +617,109 @@ libgnu_a_SOURCES += math.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ - -e 's/@''GNULIB_ACOSF''@/$(GL_GNULIB_ACOSF)/g' \ - -e 's/@''GNULIB_ACOSL''@/$(GL_GNULIB_ACOSL)/g' \ - -e 's/@''GNULIB_ASINF''@/$(GL_GNULIB_ASINF)/g' \ - -e 's/@''GNULIB_ASINL''@/$(GL_GNULIB_ASINL)/g' \ - -e 's/@''GNULIB_ATANF''@/$(GL_GNULIB_ATANF)/g' \ - -e 's/@''GNULIB_ATANL''@/$(GL_GNULIB_ATANL)/g' \ - -e 's/@''GNULIB_ATAN2F''@/$(GL_GNULIB_ATAN2F)/g' \ - -e 's/@''GNULIB_CBRT''@/$(GL_GNULIB_CBRT)/g' \ - -e 's/@''GNULIB_CBRTF''@/$(GL_GNULIB_CBRTF)/g' \ - -e 's/@''GNULIB_CBRTL''@/$(GL_GNULIB_CBRTL)/g' \ - -e 's/@''GNULIB_CEIL''@/$(GL_GNULIB_CEIL)/g' \ - -e 's/@''GNULIB_CEILF''@/$(GL_GNULIB_CEILF)/g' \ - -e 's/@''GNULIB_CEILL''@/$(GL_GNULIB_CEILL)/g' \ - -e 's/@''GNULIB_COPYSIGN''@/$(GL_GNULIB_COPYSIGN)/g' \ - -e 's/@''GNULIB_COPYSIGNF''@/$(GL_GNULIB_COPYSIGNF)/g' \ - -e 's/@''GNULIB_COPYSIGNL''@/$(GL_GNULIB_COPYSIGNL)/g' \ - -e 's/@''GNULIB_COSF''@/$(GL_GNULIB_COSF)/g' \ - -e 's/@''GNULIB_COSL''@/$(GL_GNULIB_COSL)/g' \ - -e 's/@''GNULIB_COSHF''@/$(GL_GNULIB_COSHF)/g' \ - -e 's/@''GNULIB_EXPF''@/$(GL_GNULIB_EXPF)/g' \ - -e 's/@''GNULIB_EXPL''@/$(GL_GNULIB_EXPL)/g' \ - -e 's/@''GNULIB_EXP2''@/$(GL_GNULIB_EXP2)/g' \ - -e 's/@''GNULIB_EXP2F''@/$(GL_GNULIB_EXP2F)/g' \ - -e 's/@''GNULIB_EXP2L''@/$(GL_GNULIB_EXP2L)/g' \ - -e 's/@''GNULIB_EXPM1''@/$(GL_GNULIB_EXPM1)/g' \ - -e 's/@''GNULIB_EXPM1F''@/$(GL_GNULIB_EXPM1F)/g' \ - -e 's/@''GNULIB_EXPM1L''@/$(GL_GNULIB_EXPM1L)/g' \ - -e 's/@''GNULIB_FABSF''@/$(GL_GNULIB_FABSF)/g' \ - -e 's/@''GNULIB_FABSL''@/$(GL_GNULIB_FABSL)/g' \ - -e 's/@''GNULIB_FLOOR''@/$(GL_GNULIB_FLOOR)/g' \ - -e 's/@''GNULIB_FLOORF''@/$(GL_GNULIB_FLOORF)/g' \ - -e 's/@''GNULIB_FLOORL''@/$(GL_GNULIB_FLOORL)/g' \ - -e 's/@''GNULIB_FMA''@/$(GL_GNULIB_FMA)/g' \ - -e 's/@''GNULIB_FMAF''@/$(GL_GNULIB_FMAF)/g' \ - -e 's/@''GNULIB_FMAL''@/$(GL_GNULIB_FMAL)/g' \ - -e 's/@''GNULIB_FMOD''@/$(GL_GNULIB_FMOD)/g' \ - -e 's/@''GNULIB_FMODF''@/$(GL_GNULIB_FMODF)/g' \ - -e 's/@''GNULIB_FMODL''@/$(GL_GNULIB_FMODL)/g' \ - -e 's/@''GNULIB_FREXPF''@/$(GL_GNULIB_FREXPF)/g' \ - -e 's/@''GNULIB_FREXP''@/$(GL_GNULIB_FREXP)/g' \ - -e 's/@''GNULIB_FREXPL''@/$(GL_GNULIB_FREXPL)/g' \ - -e 's/@''GNULIB_HYPOT''@/$(GL_GNULIB_HYPOT)/g' \ - -e 's/@''GNULIB_HYPOTF''@/$(GL_GNULIB_HYPOTF)/g' \ - -e 's/@''GNULIB_HYPOTL''@/$(GL_GNULIB_HYPOTL)/g' \ + -e 's/@''GNULIB_ACOSF''@/$(GNULIB_ACOSF)/g' \ + -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \ + -e 's/@''GNULIB_ASINF''@/$(GNULIB_ASINF)/g' \ + -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \ + -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \ + -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \ + -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \ + -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \ + -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \ + -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \ + -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \ + -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \ + -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \ + -e 's/@''GNULIB_COPYSIGN''@/$(GNULIB_COPYSIGN)/g' \ + -e 's/@''GNULIB_COPYSIGNF''@/$(GNULIB_COPYSIGNF)/g' \ + -e 's/@''GNULIB_COPYSIGNL''@/$(GNULIB_COPYSIGNL)/g' \ + -e 's/@''GNULIB_COSF''@/$(GNULIB_COSF)/g' \ + -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \ + -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \ + -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \ + -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \ + -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \ + -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \ + -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \ + -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \ + -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \ + -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \ + -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \ + -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \ + -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \ + -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \ + -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \ + -e 's/@''GNULIB_FMA''@/$(GNULIB_FMA)/g' \ + -e 's/@''GNULIB_FMAF''@/$(GNULIB_FMAF)/g' \ + -e 's/@''GNULIB_FMAL''@/$(GNULIB_FMAL)/g' \ + -e 's/@''GNULIB_FMOD''@/$(GNULIB_FMOD)/g' \ + -e 's/@''GNULIB_FMODF''@/$(GNULIB_FMODF)/g' \ + -e 's/@''GNULIB_FMODL''@/$(GNULIB_FMODL)/g' \ + -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \ + -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \ + -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \ + -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \ + -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \ + -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \ < $(srcdir)/math.in.h | \ - sed -e 's/@''GNULIB_ILOGB''@/$(GL_GNULIB_ILOGB)/g' \ - -e 's/@''GNULIB_ILOGBF''@/$(GL_GNULIB_ILOGBF)/g' \ - -e 's/@''GNULIB_ILOGBL''@/$(GL_GNULIB_ILOGBL)/g' \ - -e 's/@''GNULIB_ISFINITE''@/$(GL_GNULIB_ISFINITE)/g' \ - -e 's/@''GNULIB_ISINF''@/$(GL_GNULIB_ISINF)/g' \ - -e 's/@''GNULIB_ISNAN''@/$(GL_GNULIB_ISNAN)/g' \ - -e 's/@''GNULIB_ISNANF''@/$(GL_GNULIB_ISNANF)/g' \ - -e 's/@''GNULIB_ISNAND''@/$(GL_GNULIB_ISNAND)/g' \ - -e 's/@''GNULIB_ISNANL''@/$(GL_GNULIB_ISNANL)/g' \ - -e 's/@''GNULIB_LDEXPF''@/$(GL_GNULIB_LDEXPF)/g' \ - -e 's/@''GNULIB_LDEXPL''@/$(GL_GNULIB_LDEXPL)/g' \ - -e 's/@''GNULIB_LOG''@/$(GL_GNULIB_LOG)/g' \ - -e 's/@''GNULIB_LOGF''@/$(GL_GNULIB_LOGF)/g' \ - -e 's/@''GNULIB_LOGL''@/$(GL_GNULIB_LOGL)/g' \ - -e 's/@''GNULIB_LOG10''@/$(GL_GNULIB_LOG10)/g' \ - -e 's/@''GNULIB_LOG10F''@/$(GL_GNULIB_LOG10F)/g' \ - -e 's/@''GNULIB_LOG10L''@/$(GL_GNULIB_LOG10L)/g' \ - -e 's/@''GNULIB_LOG1P''@/$(GL_GNULIB_LOG1P)/g' \ - -e 's/@''GNULIB_LOG1PF''@/$(GL_GNULIB_LOG1PF)/g' \ - -e 's/@''GNULIB_LOG1PL''@/$(GL_GNULIB_LOG1PL)/g' \ - -e 's/@''GNULIB_LOG2''@/$(GL_GNULIB_LOG2)/g' \ - -e 's/@''GNULIB_LOG2F''@/$(GL_GNULIB_LOG2F)/g' \ - -e 's/@''GNULIB_LOG2L''@/$(GL_GNULIB_LOG2L)/g' \ - -e 's/@''GNULIB_LOGB''@/$(GL_GNULIB_LOGB)/g' \ - -e 's/@''GNULIB_LOGBF''@/$(GL_GNULIB_LOGBF)/g' \ - -e 's/@''GNULIB_LOGBL''@/$(GL_GNULIB_LOGBL)/g' \ - -e 's/@''GNULIB_MODF''@/$(GL_GNULIB_MODF)/g' \ - -e 's/@''GNULIB_MODFF''@/$(GL_GNULIB_MODFF)/g' \ - -e 's/@''GNULIB_MODFL''@/$(GL_GNULIB_MODFL)/g' \ - -e 's/@''GNULIB_POWF''@/$(GL_GNULIB_POWF)/g' \ - -e 's/@''GNULIB_REMAINDER''@/$(GL_GNULIB_REMAINDER)/g' \ - -e 's/@''GNULIB_REMAINDERF''@/$(GL_GNULIB_REMAINDERF)/g' \ - -e 's/@''GNULIB_REMAINDERL''@/$(GL_GNULIB_REMAINDERL)/g' \ - -e 's/@''GNULIB_RINT''@/$(GL_GNULIB_RINT)/g' \ - -e 's/@''GNULIB_RINTF''@/$(GL_GNULIB_RINTF)/g' \ - -e 's/@''GNULIB_RINTL''@/$(GL_GNULIB_RINTL)/g' \ - -e 's/@''GNULIB_ROUND''@/$(GL_GNULIB_ROUND)/g' \ - -e 's/@''GNULIB_ROUNDF''@/$(GL_GNULIB_ROUNDF)/g' \ - -e 's/@''GNULIB_ROUNDL''@/$(GL_GNULIB_ROUNDL)/g' \ - -e 's/@''GNULIB_SIGNBIT''@/$(GL_GNULIB_SIGNBIT)/g' \ - -e 's/@''GNULIB_SINF''@/$(GL_GNULIB_SINF)/g' \ - -e 's/@''GNULIB_SINL''@/$(GL_GNULIB_SINL)/g' \ - -e 's/@''GNULIB_SINHF''@/$(GL_GNULIB_SINHF)/g' \ - -e 's/@''GNULIB_SQRTF''@/$(GL_GNULIB_SQRTF)/g' \ - -e 's/@''GNULIB_SQRTL''@/$(GL_GNULIB_SQRTL)/g' \ - -e 's/@''GNULIB_TANF''@/$(GL_GNULIB_TANF)/g' \ - -e 's/@''GNULIB_TANL''@/$(GL_GNULIB_TANL)/g' \ - -e 's/@''GNULIB_TANHF''@/$(GL_GNULIB_TANHF)/g' \ - -e 's/@''GNULIB_TRUNC''@/$(GL_GNULIB_TRUNC)/g' \ - -e 's/@''GNULIB_TRUNCF''@/$(GL_GNULIB_TRUNCF)/g' \ - -e 's/@''GNULIB_TRUNCL''@/$(GL_GNULIB_TRUNCL)/g' \ - -e 's/@''GNULIB_MDA_J0''@/$(GL_GNULIB_MDA_J0)/g' \ - -e 's/@''GNULIB_MDA_J1''@/$(GL_GNULIB_MDA_J1)/g' \ - -e 's/@''GNULIB_MDA_JN''@/$(GL_GNULIB_MDA_JN)/g' \ - -e 's/@''GNULIB_MDA_Y0''@/$(GL_GNULIB_MDA_Y0)/g' \ - -e 's/@''GNULIB_MDA_Y1''@/$(GL_GNULIB_MDA_Y1)/g' \ - -e 's/@''GNULIB_MDA_YN''@/$(GL_GNULIB_MDA_YN)/g' \ + sed -e 's/@''GNULIB_ILOGB''@/$(GNULIB_ILOGB)/g' \ + -e 's/@''GNULIB_ILOGBF''@/$(GNULIB_ILOGBF)/g' \ + -e 's/@''GNULIB_ILOGBL''@/$(GNULIB_ILOGBL)/g' \ + -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \ + -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \ + -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \ + -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \ + -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \ + -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \ + -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \ + -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \ + -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \ + -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \ + -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \ + -e 's/@''GNULIB_LOG10''@/$(GNULIB_LOG10)/g' \ + -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \ + -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \ + -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \ + -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \ + -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \ + -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \ + -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \ + -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \ + -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \ + -e 's/@''GNULIB_LOGBF''@/$(GNULIB_LOGBF)/g' \ + -e 's/@''GNULIB_LOGBL''@/$(GNULIB_LOGBL)/g' \ + -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \ + -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \ + -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \ + -e 's/@''GNULIB_POWF''@/$(GNULIB_POWF)/g' \ + -e 's/@''GNULIB_REMAINDER''@/$(GNULIB_REMAINDER)/g' \ + -e 's/@''GNULIB_REMAINDERF''@/$(GNULIB_REMAINDERF)/g' \ + -e 's/@''GNULIB_REMAINDERL''@/$(GNULIB_REMAINDERL)/g' \ + -e 's/@''GNULIB_RINT''@/$(GNULIB_RINT)/g' \ + -e 's/@''GNULIB_RINTF''@/$(GNULIB_RINTF)/g' \ + -e 's/@''GNULIB_RINTL''@/$(GNULIB_RINTL)/g' \ + -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \ + -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \ + -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \ + -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \ + -e 's/@''GNULIB_SINF''@/$(GNULIB_SINF)/g' \ + -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \ + -e 's/@''GNULIB_SINHF''@/$(GNULIB_SINHF)/g' \ + -e 's/@''GNULIB_SQRTF''@/$(GNULIB_SQRTF)/g' \ + -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \ + -e 's/@''GNULIB_TANF''@/$(GNULIB_TANF)/g' \ + -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \ + -e 's/@''GNULIB_TANHF''@/$(GNULIB_TANHF)/g' \ + -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \ + -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \ + -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \ | \ sed -e 's|@''HAVE_ACOSF''@|$(HAVE_ACOSF)|g' \ -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ @@ -1202,22 +818,13 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $( -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ | \ - sed -e 's|@''REPLACE_ACOSF''@|$(REPLACE_ACOSF)|g' \ - -e 's|@''REPLACE_ASINF''@|$(REPLACE_ASINF)|g' \ - -e 's|@''REPLACE_ATANF''@|$(REPLACE_ATANF)|g' \ - -e 's|@''REPLACE_ATAN2F''@|$(REPLACE_ATAN2F)|g' \ - -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \ + sed -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \ -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \ -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ - -e 's|@''REPLACE_COSF''@|$(REPLACE_COSF)|g' \ - -e 's|@''REPLACE_COSHF''@|$(REPLACE_COSHF)|g' \ - -e 's|@''REPLACE_EXPF''@|$(REPLACE_EXPF)|g' \ - -e 's|@''REPLACE_EXPL''@|$(REPLACE_EXPL)|g' \ -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \ -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \ - -e 's|@''REPLACE_EXPM1L''@|$(REPLACE_EXPM1L)|g' \ -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \ -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \ -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \ @@ -1239,7 +846,6 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $( -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \ -e 's|@''REPLACE_ILOGB''@|$(REPLACE_ILOGB)|g' \ -e 's|@''REPLACE_ILOGBF''@|$(REPLACE_ILOGBF)|g' \ - -e 's|@''REPLACE_ILOGBL''@|$(REPLACE_ILOGBL)|g' \ -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \ -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \ -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \ @@ -1267,26 +873,20 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $( -e 's|@''REPLACE_REMAINDER''@|$(REPLACE_REMAINDER)|g' \ -e 's|@''REPLACE_REMAINDERF''@|$(REPLACE_REMAINDERF)|g' \ -e 's|@''REPLACE_REMAINDERL''@|$(REPLACE_REMAINDERL)|g' \ - -e 's|@''REPLACE_RINTL''@|$(REPLACE_RINTL)|g' \ -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \ -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \ -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \ -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \ - -e 's|@''REPLACE_SIGNBIT_USING_BUILTINS''@|$(REPLACE_SIGNBIT_USING_BUILTINS)|g' \ - -e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \ - -e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \ - -e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \ + -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \ -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \ - -e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \ - -e 's|@''REPLACE_TANHF''@|$(REPLACE_TANHF)|g' \ -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \ -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \ -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += math.h math.h-t EXTRA_DIST += math.in.h @@ -1295,50 +895,40 @@ EXTRA_DIST += math.in.h ## begin gnulib module mbrtowc -if GL_COND_OBJ_MBRTOWC -libgnu_a_SOURCES += mbrtowc.c -endif -EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h windows-initguard.h +EXTRA_DIST += mbrtowc.c -EXTRA_libgnu_a_SOURCES += lc-charset-dispatch.c mbtowc-lock.c +EXTRA_libgnu_a_SOURCES += mbrtowc.c ## end gnulib module mbrtowc ## begin gnulib module mbsinit -if GL_COND_OBJ_MBSINIT -libgnu_a_SOURCES += mbsinit.c -endif + +EXTRA_DIST += mbsinit.c + +EXTRA_libgnu_a_SOURCES += mbsinit.c ## end gnulib module mbsinit ## begin gnulib module mbtowc -if GL_COND_OBJ_MBTOWC -libgnu_a_SOURCES += mbtowc.c -endif -EXTRA_DIST += mbtowc-impl.h +EXTRA_DIST += mbtowc-impl.h mbtowc.c + +EXTRA_libgnu_a_SOURCES += mbtowc.c ## end gnulib module mbtowc ## begin gnulib module memchr -if GL_COND_OBJ_MEMCHR -libgnu_a_SOURCES += memchr.c -endif -EXTRA_DIST += memchr.valgrind +EXTRA_DIST += memchr.c memchr.valgrind + +EXTRA_libgnu_a_SOURCES += memchr.c ## end gnulib module memchr -## begin gnulib module minmax - -libgnu_a_SOURCES += minmax.h - -## end gnulib module minmax - ## begin gnulib module mktime @@ -1359,31 +949,28 @@ EXTRA_libgnu_a_SOURCES += mktime.c ## begin gnulib module mountlist -if GL_COND_OBJ_MOUNTLIST -libgnu_a_SOURCES += mountlist.c -endif -EXTRA_DIST += mountlist.h +EXTRA_DIST += mountlist.c mountlist.h + +EXTRA_libgnu_a_SOURCES += mountlist.c ## end gnulib module mountlist ## begin gnulib module msvc-inval -if GL_COND_OBJ_MSVC_INVAL -libgnu_a_SOURCES += msvc-inval.c -endif -EXTRA_DIST += msvc-inval.h +EXTRA_DIST += msvc-inval.c msvc-inval.h + +EXTRA_libgnu_a_SOURCES += msvc-inval.c ## end gnulib module msvc-inval ## begin gnulib module msvc-nothrow -if GL_COND_OBJ_MSVC_NOTHROW -libgnu_a_SOURCES += msvc-nothrow.c -endif -EXTRA_DIST += msvc-nothrow.h +EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h + +EXTRA_libgnu_a_SOURCES += msvc-nothrow.c ## end gnulib module msvc-nothrow @@ -1394,26 +981,27 @@ BUILT_SOURCES += netdb.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. netdb.h: netdb.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_NETDB_H''@|$(NEXT_NETDB_H)|g' \ -e 's|@''HAVE_NETDB_H''@|$(HAVE_NETDB_H)|g' \ - -e 's/@''GNULIB_GETADDRINFO''@/$(GL_GNULIB_GETADDRINFO)/g' \ + -e 's/@''GNULIB_GETADDRINFO''@/$(GNULIB_GETADDRINFO)/g' \ -e 's|@''HAVE_STRUCT_ADDRINFO''@|$(HAVE_STRUCT_ADDRINFO)|g' \ -e 's|@''HAVE_DECL_FREEADDRINFO''@|$(HAVE_DECL_FREEADDRINFO)|g' \ -e 's|@''HAVE_DECL_GAI_STRERROR''@|$(HAVE_DECL_GAI_STRERROR)|g' \ -e 's|@''HAVE_DECL_GETADDRINFO''@|$(HAVE_DECL_GETADDRINFO)|g' \ -e 's|@''HAVE_DECL_GETNAMEINFO''@|$(HAVE_DECL_GETNAMEINFO)|g' \ -e 's|@''REPLACE_GAI_STRERROR''@|$(REPLACE_GAI_STRERROR)|g' \ - -e 's|@''REPLACE_GETADDRINFO''@|$(REPLACE_GETADDRINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/netdb.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/netdb.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += netdb.h netdb.h-t EXTRA_DIST += netdb.in.h @@ -1428,16 +1016,18 @@ BUILT_SOURCES += $(NETINET_IN_H) # doesn't have one. if GL_GENERATE_NETINET_IN_H netinet/in.h: netinet_in.in.h $(top_builddir)/config.status - $(AM_V_GEN)$(MKDIR_P) '%reldir%/netinet' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) netinet + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \ -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \ - $(srcdir)/netinet_in.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/netinet_in.in.h; \ + } > $@-t && \ + mv $@-t $@ else netinet/in.h: $(top_builddir)/config.status rm -f $@ @@ -1451,89 +1041,48 @@ EXTRA_DIST += netinet_in.in.h ## begin gnulib module nl_langinfo -if GL_COND_OBJ_NL_LANGINFO -libgnu_a_SOURCES += nl_langinfo.c -endif -if GL_COND_OBJ_NL_LANGINFO_LOCK -libgnu_a_SOURCES += nl_langinfo-lock.c -endif -EXTRA_DIST += windows-initguard.h +EXTRA_DIST += nl_langinfo.c + +EXTRA_libgnu_a_SOURCES += nl_langinfo.c ## end gnulib module nl_langinfo -## begin gnulib module open - -if GL_COND_OBJ_OPEN -libgnu_a_SOURCES += open.c -endif - -## end gnulib module open - -## begin gnulib module pathmax +## begin gnulib module read -EXTRA_DIST += pathmax.h +EXTRA_DIST += read.c -## end gnulib module pathmax +EXTRA_libgnu_a_SOURCES += read.c -## begin gnulib module realloc-gnu - - -EXTRA_DIST += realloc.c - -EXTRA_libgnu_a_SOURCES += realloc.c - -## end gnulib module realloc-gnu - -## begin gnulib module realloc-posix - - -EXTRA_DIST += realloc.c - -EXTRA_libgnu_a_SOURCES += realloc.c - -## end gnulib module realloc-posix - -## begin gnulib module reallocarray - -if GL_COND_OBJ_REALLOCARRAY -libgnu_a_SOURCES += reallocarray.c -endif - -## end gnulib module reallocarray +## end gnulib module read ## begin gnulib module regex -if GL_COND_OBJ_REGEX -libgnu_a_SOURCES += regex.c -endif -EXTRA_DIST += regcomp.c regex.h regex_internal.c regex_internal.h regexec.c +EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c -EXTRA_libgnu_a_SOURCES += regcomp.c regex_internal.c regexec.c +EXTRA_libgnu_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c ## end gnulib module regex +## begin gnulib module safe-read + +libgnu_a_SOURCES += safe-read.c + +EXTRA_DIST += safe-read.h + +## end gnulib module safe-read + ## begin gnulib module setenv -if GL_COND_OBJ_SETENV -libgnu_a_SOURCES += setenv.c -endif + +EXTRA_DIST += setenv.c + +EXTRA_libgnu_a_SOURCES += setenv.c ## end gnulib module setenv -## begin gnulib module setlocale-null - -libgnu_a_SOURCES += setlocale_null.c -if GL_COND_OBJ_SETLOCALE_LOCK -libgnu_a_SOURCES += setlocale-lock.c -endif - -EXTRA_DIST += setlocale_null.h windows-initguard.h - -## end gnulib module setlocale-null - ## begin gnulib module size_max libgnu_a_SOURCES += size_max.h @@ -1543,48 +1092,81 @@ libgnu_a_SOURCES += size_max.h ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that +# gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. -_NORETURN_H=$(srcdir)/_Noreturn.h +_NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h -EXTRA_DIST += _Noreturn.h +EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull -# Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that -# need it. This is ensured by the applicability 'all' defined above. +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. -ARG_NONNULL_H=$(srcdir)/arg-nonnull.h +BUILT_SOURCES += arg-nonnull.h +# The arg-nonnull.h that gets inserted into generated .h files is the same as +# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut +# off. +arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/GL_ARG_NONNULL/,$$p' \ + < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t -EXTRA_DIST += arg-nonnull.h +ARG_NONNULL_H=arg-nonnull.h + +EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs -# Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that -# need it. This is ensured by the applicability 'all' defined above. +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. -CXXDEFS_H=$(srcdir)/c++defs.h +BUILT_SOURCES += c++defs.h +# The c++defs.h that gets inserted into generated .h files is the same as +# build-aux/snippet/c++defs.h, except that it has the copyright header cut off. +c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/_GL_CXXDEFS/,$$p' \ + < $(top_srcdir)/build-aux/snippet/c++defs.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += c++defs.h c++defs.h-t -EXTRA_DIST += c++defs.h +CXXDEFS_H=c++defs.h + +EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/warn-on-use -# Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that -# need it. This is ensured by the applicability 'all' defined above. +BUILT_SOURCES += warn-on-use.h +# The warn-on-use.h that gets inserted into generated .h files is the same as +# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut +# off. +warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/^.ifndef/,$$p' \ + < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t -WARN_ON_USE_H=$(srcdir)/warn-on-use.h +WARN_ON_USE_H=warn-on-use.h -EXTRA_DIST += warn-on-use.h +EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h ## end gnulib module snippet/warn-on-use @@ -1605,26 +1187,6 @@ EXTRA_DIST += w32sock.h ## end gnulib module sockets -## begin gnulib module stat - -if GL_COND_OBJ_STAT -libgnu_a_SOURCES += stat.c -endif - -EXTRA_DIST += stat-w32.c stat-w32.h - -EXTRA_libgnu_a_SOURCES += stat-w32.c - -## end gnulib module stat - -## begin gnulib module stat-time - -libgnu_a_SOURCES += stat-time.c - -EXTRA_DIST += stat-time.h - -## end gnulib module stat-time - ## begin gnulib module stdalign BUILT_SOURCES += $(STDALIGN_H) @@ -1633,8 +1195,11 @@ BUILT_SOURCES += $(STDALIGN_H) # doesn't have one that works. if GL_GENERATE_STDALIGN_H stdalign.h: stdalign.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/stdalign.in.h - $(AM_V_at)mv $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + cat $(srcdir)/stdalign.in.h; \ + } > $@-t && \ + mv $@-t $@ else stdalign.h: $(top_builddir)/config.status rm -f $@ @@ -1645,26 +1210,28 @@ EXTRA_DIST += stdalign.in.h ## end gnulib module stdalign -## begin gnulib module stdckdint +## begin gnulib module stdbool -BUILT_SOURCES += $(STDCKDINT_H) +BUILT_SOURCES += $(STDBOOL_H) -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -if GL_GENERATE_STDCKDINT_H -stdckdint.h: stdckdint.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_STDOUT) \ - $(srcdir)/stdckdint.in.h > $@-t - $(AM_V_at)mv $@-t $@ +# We need the following in order to create when the system +# doesn't have one that works. +if GL_GENERATE_STDBOOL_H +stdbool.h: stdbool.in.h $(top_builddir)/config.status + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ + } > $@-t && \ + mv $@-t $@ else -stdckdint.h: $(top_builddir)/config.status +stdbool.h: $(top_builddir)/config.status rm -f $@ endif -MOSTLYCLEANFILES += stdckdint.h stdckdint.h-t +MOSTLYCLEANFILES += stdbool.h stdbool.h-t -EXTRA_DIST += intprops-internal.h stdckdint.in.h +EXTRA_DIST += stdbool.in.h -## end gnulib module stdckdint +## end gnulib module stdbool ## begin gnulib module stddef @@ -1674,17 +1241,18 @@ BUILT_SOURCES += $(STDDEF_H) # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ - -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ - $(srcdir)/stddef.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/stddef.in.h; \ + } > $@-t && \ + mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ @@ -1703,19 +1271,21 @@ BUILT_SOURCES += $(STDINT_H) # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ - -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ + -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ + -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @@ -1730,9 +1300,9 @@ stdint.h: stdint.in.h $(top_builddir)/config.status -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ - -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ - $(srcdir)/stdint.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/stdint.in.h; \ + } > $@-t && \ + mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ @@ -1750,75 +1320,68 @@ BUILT_SOURCES += stdio.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ - -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ - -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ - -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ - -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ - -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ - -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ - -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ - -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \ - -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ - -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ - -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ - -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ - -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ - -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ - -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ - -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ - -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ - -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ - -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ - -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ - -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ - -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ - -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ - -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ - -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ - -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ - -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ - -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ - -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ - -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ - -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ - -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ - -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ - -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ - -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ - -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ - -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ - -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ - -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ - -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ - -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ - -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ - -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ - -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ - -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ - -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ - -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ - -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ - -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ - -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ - -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ - -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ - -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ - -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ - -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ + -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ + -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ + -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ + -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ + -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ + -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ + -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ + -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ + -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ + -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ + -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ + -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ + -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ + -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ + -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ + -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ + -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ + -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ + -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ + -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ + -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ + -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ + -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ + -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ + -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ + -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ + -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ + -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ + -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ + -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ + -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ + -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ + -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ + -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ + -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ + -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ + -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ + -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ + -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ + -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ + -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ - sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ - -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ + sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ @@ -1839,7 +1402,6 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ - -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ @@ -1870,18 +1432,11 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t -if GL_COND_OBJ_STDIO_READ -libgnu_a_SOURCES += stdio-read.c -endif -if GL_COND_OBJ_STDIO_WRITE -libgnu_a_SOURCES += stdio-write.c -endif - EXTRA_DIST += stdio.in.h ## end gnulib module stdio @@ -1894,141 +1449,95 @@ BUILT_SOURCES += stdlib.h # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ - -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \ - -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \ - -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \ - -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \ - -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \ - -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ - -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ - -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ - -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ - -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ - -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \ - -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \ - -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \ - -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \ - -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \ - -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \ - -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \ - -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \ - -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \ - -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \ - -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \ - -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \ - -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \ - -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \ - -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \ - -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \ - -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \ - -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \ - -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \ - -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \ - -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \ - -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \ - -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \ - -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \ - -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \ - -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \ - -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \ - -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \ - -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \ - -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \ - -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \ - -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \ - -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \ - -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \ - -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \ - -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \ - -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \ - -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \ + -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ + -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ + -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ + -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ + -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ + -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ + -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ + -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ + -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ + -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ + -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ + -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ + -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ + -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ + -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ + -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ + -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ + -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ + -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ + -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ + -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ + -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ + -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ + -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ + -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ + -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ + -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ + -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ + -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ + -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ - -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ - -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ - -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ - -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ - -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ - -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ - -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ - -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ - -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ - -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ - -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ - -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ - -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ - -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ - -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ - -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ - -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \ - -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \ + -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ - -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ - -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ - -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \ - -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \ + -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ - -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ - -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ - -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ - -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \ - -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \ - -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ + -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ - -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ - -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ - -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ - -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ - -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ - -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h @@ -2037,24 +1546,13 @@ EXTRA_DIST += stdlib.in.h ## begin gnulib module strcase -if GL_COND_OBJ_STRCASECMP -libgnu_a_SOURCES += strcasecmp.c -endif -if GL_COND_OBJ_STRNCASECMP -libgnu_a_SOURCES += strncasecmp.c -endif + +EXTRA_DIST += strcasecmp.c strncasecmp.c + +EXTRA_libgnu_a_SOURCES += strcasecmp.c strncasecmp.c ## end gnulib module strcase -## begin gnulib module strcasestr - - -EXTRA_DIST += strcasestr.c - -EXTRA_libgnu_a_SOURCES += strcasestr.c - -## end gnulib module strcasestr - ## begin gnulib module strcasestr-simple @@ -2073,19 +1571,19 @@ EXTRA_DIST += streq.h ## begin gnulib module strerror -if GL_COND_OBJ_STRERROR -libgnu_a_SOURCES += strerror.c -endif + +EXTRA_DIST += strerror.c + +EXTRA_libgnu_a_SOURCES += strerror.c ## end gnulib module strerror ## begin gnulib module strerror-override -if GL_COND_OBJ_STRERROR_OVERRIDE -libgnu_a_SOURCES += strerror-override.c -endif -EXTRA_DIST += strerror-override.h +EXTRA_DIST += strerror-override.c strerror-override.h + +EXTRA_libgnu_a_SOURCES += strerror-override.c ## end gnulib module strerror-override @@ -2096,66 +1594,58 @@ BUILT_SOURCES += string.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ - -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ - -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ - -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ - -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ - -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ - -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ - -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ - -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ - -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ - -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ - -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ - -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ - -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ - -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ - -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ - -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ - -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ - -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ - -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ - -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ - -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ - -e 's/@''GNULIB_MEMSET_EXPLICIT''@/$(GL_GNULIB_MEMSET_EXPLICIT)/g' \ - -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ - -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ - -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ - -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ - -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ - -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ - -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ - -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ - -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ - -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ - -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ - -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ - -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ - -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ - -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ - -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ - -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ - -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ - -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ - -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ - -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ - -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ - -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ + -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ + -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ + -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ + -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ + -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ + -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ + -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ + -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ + -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ + -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ + -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ + -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ + -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ + -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ + -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ + -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ + -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ + -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ + -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ + -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ + -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ + -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ + -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ + -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ + -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ + -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ + -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ + -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ + -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ + -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ + -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ + -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_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ + -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ - sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ - -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ + sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ + -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ - -e 's|@''HAVE_MEMSET_EXPLICIT''@|$(HAVE_MEMSET_EXPLICIT)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ @@ -2168,34 +1658,29 @@ 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' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ - -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ + -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ - -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ - -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ - -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ - -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ - -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|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + < $(srcdir)/string.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h @@ -2209,33 +1694,54 @@ BUILT_SOURCES += strings.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ - -e 's/@''GNULIB_FFS''@/$(GL_GNULIB_FFS)/g' \ + -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/strings.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/strings.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += strings.h strings.h-t EXTRA_DIST += strings.in.h ## end gnulib module strings +## begin gnulib module strndup + + +EXTRA_DIST += strndup.c + +EXTRA_libgnu_a_SOURCES += strndup.c + +## end gnulib module strndup + +## begin gnulib module strnlen + + +EXTRA_DIST += strnlen.c + +EXTRA_libgnu_a_SOURCES += strnlen.c + +## end gnulib module strnlen + ## begin gnulib module strsep -if GL_COND_OBJ_STRSEP -libgnu_a_SOURCES += strsep.c -endif + +EXTRA_DIST += strsep.c + +EXTRA_libgnu_a_SOURCES += strsep.c ## end gnulib module strsep @@ -2256,30 +1762,31 @@ libgnu_a_SOURCES += sys_socket.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ - -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ - -e 's/@''GNULIB_SOCKET''@/$(GL_GNULIB_SOCKET)/g' \ - -e 's/@''GNULIB_CONNECT''@/$(GL_GNULIB_CONNECT)/g' \ - -e 's/@''GNULIB_ACCEPT''@/$(GL_GNULIB_ACCEPT)/g' \ - -e 's/@''GNULIB_BIND''@/$(GL_GNULIB_BIND)/g' \ - -e 's/@''GNULIB_GETPEERNAME''@/$(GL_GNULIB_GETPEERNAME)/g' \ - -e 's/@''GNULIB_GETSOCKNAME''@/$(GL_GNULIB_GETSOCKNAME)/g' \ - -e 's/@''GNULIB_GETSOCKOPT''@/$(GL_GNULIB_GETSOCKOPT)/g' \ - -e 's/@''GNULIB_LISTEN''@/$(GL_GNULIB_LISTEN)/g' \ - -e 's/@''GNULIB_RECV''@/$(GL_GNULIB_RECV)/g' \ - -e 's/@''GNULIB_SEND''@/$(GL_GNULIB_SEND)/g' \ - -e 's/@''GNULIB_RECVFROM''@/$(GL_GNULIB_RECVFROM)/g' \ - -e 's/@''GNULIB_SENDTO''@/$(GL_GNULIB_SENDTO)/g' \ - -e 's/@''GNULIB_SETSOCKOPT''@/$(GL_GNULIB_SETSOCKOPT)/g' \ - -e 's/@''GNULIB_SHUTDOWN''@/$(GL_GNULIB_SHUTDOWN)/g' \ - -e 's/@''GNULIB_ACCEPT4''@/$(GL_GNULIB_ACCEPT4)/g' \ + -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ + -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ + -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ + -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ + -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ + -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ + -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ + -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ + -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ + -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ + -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ + -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ + -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ + -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ + -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ @@ -2289,8 +1796,9 @@ sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/sys_socket.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/sys_socket.in.h; \ + } > $@-t && \ + mv -f $@-t $@ MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t MOSTLYCLEANDIRS += sys @@ -2298,79 +1806,6 @@ EXTRA_DIST += sys_socket.in.h ## end gnulib module sys_socket -## begin gnulib module sys_stat - -BUILT_SOURCES += sys/stat.h - -# We need the following in order to create when the system -# has one that is incomplete. -sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ - -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ - -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ - -e 's/@''GNULIB_CHMOD''@/$(GL_GNULIB_CHMOD)/g' \ - -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ - -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ - -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ - -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ - -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ - -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ - -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ - -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ - -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ - -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ - -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ - -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ - -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ - -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ - -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ - -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ - -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ - -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ - -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ - -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ - -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ - -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ - -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ - -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ - -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ - -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ - -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ - -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ - -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ - -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ - -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ - -e 's|@''REPLACE_CHMOD''@|$(REPLACE_CHMOD)|g' \ - -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ - -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ - -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ - -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ - -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ - -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ - -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ - -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ - -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ - -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ - -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ - -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ - -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/sys_stat.in.h > $@-t - $(AM_V_at)mv $@-t $@ -MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t -MOSTLYCLEANDIRS += sys - -EXTRA_DIST += sys_stat.in.h - -## end gnulib module sys_stat - ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h @@ -2378,17 +1813,18 @@ BUILT_SOURCES += sys/types.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status - $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ - -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ - $(srcdir)/sys_types.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/sys_types.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h @@ -2402,16 +1838,18 @@ BUILT_SOURCES += sys/uio.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status - $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ - $(srcdir)/sys_uio.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/sys_uio.in.h; \ + } > $@-t && \ + mv -f $@-t $@ MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t MOSTLYCLEANDIRS += sys @@ -2423,6 +1861,8 @@ EXTRA_DIST += sys_uio.in.h libgnu_a_SOURCES += glthread/threadlib.c +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath + ## end gnulib module threadlib ## begin gnulib module time @@ -2432,51 +1872,35 @@ BUILT_SOURCES += time.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ - -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ - -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ - -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ - -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ - -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ - -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ - -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ - -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ - -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \ - -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ - -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ - -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ - -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ + -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ + -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ + -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ + -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ + -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ - -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ - -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \ - -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ - -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ - -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ - -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ - -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ - -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ - -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ - -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/time.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/time.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t EXTRA_DIST += time.in.h @@ -2485,19 +1909,19 @@ EXTRA_DIST += time.in.h ## begin gnulib module time_r -if GL_COND_OBJ_TIME_R -libgnu_a_SOURCES += time_r.c -endif + +EXTRA_DIST += time_r.c + +EXTRA_libgnu_a_SOURCES += time_r.c ## end gnulib module time_r ## begin gnulib module timegm -if GL_COND_OBJ_TIMEGM -libgnu_a_SOURCES += timegm.c -endif -EXTRA_DIST += mktime-internal.h +EXTRA_DIST += mktime-internal.h timegm.c + +EXTRA_libgnu_a_SOURCES += timegm.c ## end gnulib module timegm @@ -2509,104 +1933,69 @@ libgnu_a_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ - -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ - -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ - -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ - -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ - -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ - -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ - -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ - -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ - -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ - -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ - -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ - -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ - -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ - -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ - -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ - -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ - -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ - -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ - -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ - -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ - -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ - -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ - -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ - -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ - -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ - -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ - -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ - -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ - -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ - -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ - -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ - -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ - -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ - -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ - -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \ - -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ - -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ - -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ - -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ - -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ - -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ - -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ - -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ - -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ - -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ - -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ - -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ - -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ - -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ - -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ - -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ - -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ - -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ - -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ - -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ - -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ - -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ - -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ - -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ - -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ - -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ - -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ - -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ - -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ - -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ - -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ - -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ - -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ - -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ - -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ - -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ - -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ - -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ - -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ - -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ - -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ - -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ - -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ - -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ - -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ - -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ - -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ - -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ - -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ + -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ + -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ + -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ + -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ + -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ + -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ + -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ + -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ + -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ + -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ + -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ + -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ + -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ + -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ + -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ + -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ + -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ + -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ + -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ + -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ + -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ + -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ + -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ + -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ + -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ + -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ + -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ + -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ + -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ + -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ + -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ + -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ + -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ + -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ + -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ + -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ + -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ + -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ + -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ + -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ + -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ + -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ + -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ + -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ + -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ + -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ - -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ + -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ - -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ @@ -2614,11 +2003,10 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ - -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ + -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ - -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ @@ -2636,44 +2024,28 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ - -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ - -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ - -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ - sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ - -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ - -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ - -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ - -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ - -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ - -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ - -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ - -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ - -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ - -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ - -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ - -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ - -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ @@ -2683,43 +2055,33 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ - -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ - -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ - -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ - -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd -## begin gnulib module unlocked-io-internal - - -EXTRA_DIST += unlocked-io.h - -## end gnulib module unlocked-io-internal - ## begin gnulib module unsetenv -if GL_COND_OBJ_UNSETENV -libgnu_a_SOURCES += unsetenv.c -endif + +EXTRA_DIST += unsetenv.c + +EXTRA_libgnu_a_SOURCES += unsetenv.c ## end gnulib module unsetenv @@ -2764,59 +2126,54 @@ BUILT_SOURCES += wchar.h # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ - -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ - -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ - -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \ - -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \ - -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \ - -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \ - -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \ - -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \ - -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \ - -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \ - -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \ - -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \ - -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \ - -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \ - -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \ - -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \ - -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \ - -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \ - -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \ - -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \ - -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \ - -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \ - -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \ - -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \ - -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \ - -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \ - -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \ - -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \ - -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \ - -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \ - -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \ - -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \ - -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \ - -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \ - -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \ - -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \ - -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \ - -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \ - -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \ - -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \ - -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \ - -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \ - -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \ - -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \ - -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ + -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ + -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ + -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ + -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ + -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ + -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ + -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ + -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ + -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ + -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ + -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ + -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ + -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ + -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ + -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ + -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ + -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ + -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ + -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ + -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ + -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ + -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ + -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ + -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ + -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ + -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ + -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ + -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ + -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ + -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ + -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ + -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ + -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ + -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ + -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ + -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ + -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ + -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ @@ -2832,7 +2189,6 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ - -e 's|@''HAVE_WMEMPCPY''@|$(HAVE_WMEMPCPY)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ @@ -2857,15 +2213,12 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ - -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ - -e 's|@''HAVE_DECL_WCSDUP''@|$(HAVE_DECL_WCSDUP)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ - -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ @@ -2876,13 +2229,11 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ - -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ - -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t EXTRA_DIST += wchar.in.h @@ -2891,9 +2242,10 @@ EXTRA_DIST += wchar.in.h ## begin gnulib module wcrtomb -if GL_COND_OBJ_WCRTOMB -libgnu_a_SOURCES += wcrtomb.c -endif + +EXTRA_DIST += wcrtomb.c + +EXTRA_libgnu_a_SOURCES += wcrtomb.c ## end gnulib module wcrtomb @@ -2905,82 +2257,38 @@ libgnu_a_SOURCES += wctype-h.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ - -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ - -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ - -e 's/@''GNULIB_ISWBLANK''@/$(GL_GNULIB_ISWBLANK)/g' \ - -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \ - -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \ - -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \ - -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \ - -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \ - -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \ + -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ + -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ + -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ + -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ + -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ - -e 's/@''REPLACE_ISWDIGIT''@/$(REPLACE_ISWDIGIT)/g' \ - -e 's/@''REPLACE_ISWXDIGIT''@/$(REPLACE_ISWXDIGIT)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/wctype.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/wctype.in.h; \ + } > $@-t && \ + mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t EXTRA_DIST += wctype.in.h ## end gnulib module wctype-h -## begin gnulib module windows-mutex - -if GL_COND_OBJ_WINDOWS_MUTEX -libgnu_a_SOURCES += windows-mutex.c -endif - -EXTRA_DIST += windows-initguard.h windows-mutex.h - -## end gnulib module windows-mutex - -## begin gnulib module windows-once - -if GL_COND_OBJ_WINDOWS_ONCE -libgnu_a_SOURCES += windows-once.c -endif - -EXTRA_DIST += windows-once.h - -## end gnulib module windows-once - -## begin gnulib module windows-recmutex - -if GL_COND_OBJ_WINDOWS_RECMUTEX -libgnu_a_SOURCES += windows-recmutex.c -endif - -EXTRA_DIST += windows-initguard.h windows-recmutex.h - -## end gnulib module windows-recmutex - -## begin gnulib module windows-rwlock - -if GL_COND_OBJ_WINDOWS_RWLOCK -libgnu_a_SOURCES += windows-rwlock.c -endif - -EXTRA_DIST += windows-initguard.h windows-rwlock.h - -## end gnulib module windows-rwlock - ## begin gnulib module xalloc libgnu_a_SOURCES += xmalloc.c @@ -2993,8 +2301,6 @@ EXTRA_DIST += xalloc.h libgnu_a_SOURCES += xalloc-die.c -EXTRA_DIST += xalloc.h - ## end gnulib module xalloc-die ## begin gnulib module xalloc-oversized @@ -3010,6 +2316,12 @@ libgnu_a_SOURCES += xsize.h xsize.c ## end gnulib module xsize +## begin gnulib module xstrndup + +libgnu_a_SOURCES += xstrndup.h xstrndup.c + +## end gnulib module xstrndup + mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ @@ -3018,7 +2330,3 @@ mostlyclean-local: mostlyclean-generic fi; \ done; \ : -distclean-local: distclean-gnulib-libobjs -distclean-gnulib-libobjs: - -rm -f @gl_LIBOBJDEPS@ -maintainer-clean-local: distclean-gnulib-libobjs diff --git a/gl/Makefile.in b/gl/Makefile.in index 71fd6f3..5fc1d32 100644 --- a/gl/Makefile.in +++ b/gl/Makefile.in @@ -14,11 +14,11 @@ @SET_MAKE@ -# Copyright (C) 2002-2023 Free Software Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, @@ -27,7 +27,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -35,40 +35,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: -# gnulib-tool --import \ -# --lib=libgnu \ -# --source-base=gl \ -# --m4-base=gl/m4 \ -# --doc-base=doc \ -# --tests-base=tests \ -# --aux-dir=build-aux \ -# --no-conditional-dependencies \ -# --no-libtool \ -# --macro-prefix=gl \ -# --no-vc-files \ -# base64 \ -# crypto/sha256 \ -# dirname \ -# environ \ -# floorf \ -# fsusage \ -# getaddrinfo \ -# gethostname \ -# getloadavg \ -# getopt-gnu \ -# gettext-h \ -# idpriv-droptemp \ -# mountlist \ -# regex \ -# setenv \ -# strcase \ -# strcasestr \ -# strsep \ -# timegm \ -# unsetenv \ -# vasprintf \ -# vsnprintf +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname environ floorf fsusage getaddrinfo gethostname getloadavg getopt-gnu gettext idpriv-droptemp mountlist regex setenv strcase strcasestr strsep timegm unsetenv vasprintf vsnprintf @@ -131,7 +98,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -146,121 +112,55 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@GL_COND_OBJ_BTOWC_TRUE@am__append_1 = btowc.c -@GL_COND_OBJ_CLOSE_TRUE@am__append_2 = close.c -@GL_COND_OBJ_DUP2_TRUE@am__append_3 = dup2.c -@GL_COND_OBJ_ERROR_TRUE@am__append_4 = error.c -@GL_COND_OBJ_FCNTL_TRUE@am__append_5 = fcntl.c -@GL_COND_OBJ_FFLUSH_TRUE@am__append_6 = fflush.c -@GL_COND_OBJ_FLOAT_TRUE@am__append_7 = float.c -@GL_COND_OBJ_ITOLD_TRUE@am__append_8 = itold.c -@GL_COND_OBJ_FLOORF_TRUE@am__append_9 = floorf.c -@GL_COND_OBJ_FPURGE_TRUE@am__append_10 = fpurge.c -@GL_COND_OBJ_FREE_TRUE@am__append_11 = free.c -@GL_COND_OBJ_FSEEK_TRUE@am__append_12 = fseek.c -@GL_COND_OBJ_FSEEKO_TRUE@am__append_13 = fseeko.c -@GL_COND_OBJ_FSTAT_TRUE@am__append_14 = fstat.c -@GL_COND_OBJ_FSUSAGE_TRUE@am__append_15 = fsusage.c -@GL_COND_OBJ_FTELL_TRUE@am__append_16 = ftell.c -@GL_COND_OBJ_FTELLO_TRUE@am__append_17 = ftello.c -@GL_COND_OBJ_GETADDRINFO_TRUE@am__append_18 = getaddrinfo.c -@GL_COND_OBJ_GAI_STRERROR_TRUE@am__append_19 = gai_strerror.c -@GL_COND_OBJ_GETDELIM_TRUE@am__append_20 = getdelim.c -@GL_COND_OBJ_GETDTABLESIZE_TRUE@am__append_21 = getdtablesize.c -@GL_COND_OBJ_GETHOSTNAME_TRUE@am__append_22 = gethostname.c -@GL_COND_OBJ_GETLINE_TRUE@am__append_23 = getline.c -@GL_COND_OBJ_GETLOADAVG_TRUE@am__append_24 = getloadavg.c -@GL_COND_OBJ_GETOPT_TRUE@am__append_25 = getopt.c getopt1.c -@GL_COND_OBJ_INET_NTOP_TRUE@am__append_26 = inet_ntop.c -@GL_COND_OBJ_LOCALECONV_TRUE@am__append_27 = localeconv.c -@GL_COND_OBJ_LSEEK_TRUE@am__append_28 = lseek.c -@GL_COND_OBJ_MBRTOWC_TRUE@am__append_29 = mbrtowc.c -@GL_COND_OBJ_MBSINIT_TRUE@am__append_30 = mbsinit.c -@GL_COND_OBJ_MBTOWC_TRUE@am__append_31 = mbtowc.c -@GL_COND_OBJ_MEMCHR_TRUE@am__append_32 = memchr.c -@GL_COND_OBJ_MOUNTLIST_TRUE@am__append_33 = mountlist.c -@GL_COND_OBJ_MSVC_INVAL_TRUE@am__append_34 = msvc-inval.c -@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__append_35 = msvc-nothrow.c -@GL_COND_OBJ_NL_LANGINFO_TRUE@am__append_36 = nl_langinfo.c -@GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE@am__append_37 = nl_langinfo-lock.c -@GL_COND_OBJ_OPEN_TRUE@am__append_38 = open.c -@GL_COND_OBJ_REALLOCARRAY_TRUE@am__append_39 = reallocarray.c -@GL_COND_OBJ_REGEX_TRUE@am__append_40 = regex.c -@GL_COND_OBJ_SETENV_TRUE@am__append_41 = setenv.c -@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__append_42 = setlocale-lock.c -@GL_COND_OBJ_STAT_TRUE@am__append_43 = stat.c -@GL_COND_OBJ_STDIO_READ_TRUE@am__append_44 = stdio-read.c -@GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_45 = stdio-write.c -@GL_COND_OBJ_STRCASECMP_TRUE@am__append_46 = strcasecmp.c -@GL_COND_OBJ_STRNCASECMP_TRUE@am__append_47 = strncasecmp.c -@GL_COND_OBJ_STRERROR_TRUE@am__append_48 = strerror.c -@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__append_49 = strerror-override.c -@GL_COND_OBJ_STRSEP_TRUE@am__append_50 = strsep.c -@GL_COND_OBJ_TIME_R_TRUE@am__append_51 = time_r.c -@GL_COND_OBJ_TIMEGM_TRUE@am__append_52 = timegm.c -@GL_COND_OBJ_UNSETENV_TRUE@am__append_53 = unsetenv.c -@GL_COND_OBJ_WCRTOMB_TRUE@am__append_54 = wcrtomb.c -@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_55 = windows-mutex.c -@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_56 = windows-once.c -@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_57 = windows-recmutex.c -@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_58 = windows-rwlock.c subdir = gl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -268,57 +168,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -336,147 +229,17 @@ am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = -am__libgnu_a_SOURCES_DIST = base64.h base64.c basename-lgpl.c btowc.c \ - cloexec.c close.c af_alg.c sha256-stream.c sha256.c dirname.c \ - basename.c dirname-lgpl.c stripslash.c dup2.c error.c \ - exitfail.c fcntl.c fd-hook.c fflush.c float.c itold.c floorf.c \ - fpurge.c freading.c free.c fseek.c fseeko.c fstat.c fsusage.c \ - ftell.c ftello.c getaddrinfo.c gai_strerror.c getdelim.c \ - getdtablesize.c gethostname.c getline.c getloadavg.c getopt.c \ - getopt1.c getprogname.h getprogname.c gettext.h \ - malloc/dynarray_at_failure.c malloc/dynarray_emplace_enlarge.c \ - malloc/dynarray_finalize.c malloc/dynarray_resize.c \ - malloc/dynarray_resize_clear.c hard-locale.c ialloc.c \ - idpriv-droptemp.c idx.h inet_ntop.c localcharset.c \ - localeconv.c glthread/lock.h glthread/lock.c lseek.c malloca.c \ - math.c mbrtowc.c mbsinit.c mbtowc.c memchr.c minmax.h \ - mountlist.c msvc-inval.c msvc-nothrow.c nl_langinfo.c \ - nl_langinfo-lock.c open.c reallocarray.c regex.c setenv.c \ - setlocale_null.c setlocale-lock.c size_max.h sockets.h \ - sockets.c stat.c stat-time.c stdio-read.c stdio-write.c \ - strcasecmp.c strncasecmp.c strerror.c strerror-override.c \ - strsep.c sys_socket.c glthread/threadlib.c time_r.c timegm.c \ - unistd.c unsetenv.c wcrtomb.c wctype-h.c windows-mutex.c \ - windows-once.c windows-recmutex.c windows-rwlock.c xmalloc.c \ - xalloc-die.c xsize.h xsize.c -@GL_COND_OBJ_BTOWC_TRUE@am__objects_1 = libgnu_a-btowc.$(OBJEXT) -@GL_COND_OBJ_CLOSE_TRUE@am__objects_2 = libgnu_a-close.$(OBJEXT) -@GL_COND_OBJ_DUP2_TRUE@am__objects_3 = libgnu_a-dup2.$(OBJEXT) -@GL_COND_OBJ_ERROR_TRUE@am__objects_4 = libgnu_a-error.$(OBJEXT) -@GL_COND_OBJ_FCNTL_TRUE@am__objects_5 = libgnu_a-fcntl.$(OBJEXT) -@GL_COND_OBJ_FFLUSH_TRUE@am__objects_6 = libgnu_a-fflush.$(OBJEXT) -@GL_COND_OBJ_FLOAT_TRUE@am__objects_7 = libgnu_a-float.$(OBJEXT) -@GL_COND_OBJ_ITOLD_TRUE@am__objects_8 = libgnu_a-itold.$(OBJEXT) -@GL_COND_OBJ_FLOORF_TRUE@am__objects_9 = libgnu_a-floorf.$(OBJEXT) -@GL_COND_OBJ_FPURGE_TRUE@am__objects_10 = libgnu_a-fpurge.$(OBJEXT) -@GL_COND_OBJ_FREE_TRUE@am__objects_11 = libgnu_a-free.$(OBJEXT) -@GL_COND_OBJ_FSEEK_TRUE@am__objects_12 = libgnu_a-fseek.$(OBJEXT) -@GL_COND_OBJ_FSEEKO_TRUE@am__objects_13 = libgnu_a-fseeko.$(OBJEXT) -@GL_COND_OBJ_FSTAT_TRUE@am__objects_14 = libgnu_a-fstat.$(OBJEXT) -@GL_COND_OBJ_FSUSAGE_TRUE@am__objects_15 = libgnu_a-fsusage.$(OBJEXT) -@GL_COND_OBJ_FTELL_TRUE@am__objects_16 = libgnu_a-ftell.$(OBJEXT) -@GL_COND_OBJ_FTELLO_TRUE@am__objects_17 = libgnu_a-ftello.$(OBJEXT) -@GL_COND_OBJ_GETADDRINFO_TRUE@am__objects_18 = \ -@GL_COND_OBJ_GETADDRINFO_TRUE@ libgnu_a-getaddrinfo.$(OBJEXT) -@GL_COND_OBJ_GAI_STRERROR_TRUE@am__objects_19 = libgnu_a-gai_strerror.$(OBJEXT) -@GL_COND_OBJ_GETDELIM_TRUE@am__objects_20 = \ -@GL_COND_OBJ_GETDELIM_TRUE@ libgnu_a-getdelim.$(OBJEXT) -@GL_COND_OBJ_GETDTABLESIZE_TRUE@am__objects_21 = libgnu_a-getdtablesize.$(OBJEXT) -@GL_COND_OBJ_GETHOSTNAME_TRUE@am__objects_22 = \ -@GL_COND_OBJ_GETHOSTNAME_TRUE@ libgnu_a-gethostname.$(OBJEXT) -@GL_COND_OBJ_GETLINE_TRUE@am__objects_23 = libgnu_a-getline.$(OBJEXT) -@GL_COND_OBJ_GETLOADAVG_TRUE@am__objects_24 = \ -@GL_COND_OBJ_GETLOADAVG_TRUE@ libgnu_a-getloadavg.$(OBJEXT) -@GL_COND_OBJ_GETOPT_TRUE@am__objects_25 = libgnu_a-getopt.$(OBJEXT) \ -@GL_COND_OBJ_GETOPT_TRUE@ libgnu_a-getopt1.$(OBJEXT) am__dirstamp = $(am__leading_dot)dirstamp -@GL_COND_OBJ_INET_NTOP_TRUE@am__objects_26 = \ -@GL_COND_OBJ_INET_NTOP_TRUE@ libgnu_a-inet_ntop.$(OBJEXT) -@GL_COND_OBJ_LOCALECONV_TRUE@am__objects_27 = \ -@GL_COND_OBJ_LOCALECONV_TRUE@ libgnu_a-localeconv.$(OBJEXT) -@GL_COND_OBJ_LSEEK_TRUE@am__objects_28 = libgnu_a-lseek.$(OBJEXT) -@GL_COND_OBJ_MBRTOWC_TRUE@am__objects_29 = libgnu_a-mbrtowc.$(OBJEXT) -@GL_COND_OBJ_MBSINIT_TRUE@am__objects_30 = libgnu_a-mbsinit.$(OBJEXT) -@GL_COND_OBJ_MBTOWC_TRUE@am__objects_31 = libgnu_a-mbtowc.$(OBJEXT) -@GL_COND_OBJ_MEMCHR_TRUE@am__objects_32 = libgnu_a-memchr.$(OBJEXT) -@GL_COND_OBJ_MOUNTLIST_TRUE@am__objects_33 = \ -@GL_COND_OBJ_MOUNTLIST_TRUE@ libgnu_a-mountlist.$(OBJEXT) -@GL_COND_OBJ_MSVC_INVAL_TRUE@am__objects_34 = \ -@GL_COND_OBJ_MSVC_INVAL_TRUE@ libgnu_a-msvc-inval.$(OBJEXT) -@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__objects_35 = libgnu_a-msvc-nothrow.$(OBJEXT) -@GL_COND_OBJ_NL_LANGINFO_TRUE@am__objects_36 = \ -@GL_COND_OBJ_NL_LANGINFO_TRUE@ libgnu_a-nl_langinfo.$(OBJEXT) -@GL_COND_OBJ_NL_LANGINFO_LOCK_TRUE@am__objects_37 = libgnu_a-nl_langinfo-lock.$(OBJEXT) -@GL_COND_OBJ_OPEN_TRUE@am__objects_38 = libgnu_a-open.$(OBJEXT) -@GL_COND_OBJ_REALLOCARRAY_TRUE@am__objects_39 = libgnu_a-reallocarray.$(OBJEXT) -@GL_COND_OBJ_REGEX_TRUE@am__objects_40 = libgnu_a-regex.$(OBJEXT) -@GL_COND_OBJ_SETENV_TRUE@am__objects_41 = libgnu_a-setenv.$(OBJEXT) -@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__objects_42 = libgnu_a-setlocale-lock.$(OBJEXT) -@GL_COND_OBJ_STAT_TRUE@am__objects_43 = libgnu_a-stat.$(OBJEXT) -@GL_COND_OBJ_STDIO_READ_TRUE@am__objects_44 = \ -@GL_COND_OBJ_STDIO_READ_TRUE@ libgnu_a-stdio-read.$(OBJEXT) -@GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_45 = \ -@GL_COND_OBJ_STDIO_WRITE_TRUE@ libgnu_a-stdio-write.$(OBJEXT) -@GL_COND_OBJ_STRCASECMP_TRUE@am__objects_46 = \ -@GL_COND_OBJ_STRCASECMP_TRUE@ libgnu_a-strcasecmp.$(OBJEXT) -@GL_COND_OBJ_STRNCASECMP_TRUE@am__objects_47 = \ -@GL_COND_OBJ_STRNCASECMP_TRUE@ libgnu_a-strncasecmp.$(OBJEXT) -@GL_COND_OBJ_STRERROR_TRUE@am__objects_48 = \ -@GL_COND_OBJ_STRERROR_TRUE@ libgnu_a-strerror.$(OBJEXT) -@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__objects_49 = libgnu_a-strerror-override.$(OBJEXT) -@GL_COND_OBJ_STRSEP_TRUE@am__objects_50 = libgnu_a-strsep.$(OBJEXT) -@GL_COND_OBJ_TIME_R_TRUE@am__objects_51 = libgnu_a-time_r.$(OBJEXT) -@GL_COND_OBJ_TIMEGM_TRUE@am__objects_52 = libgnu_a-timegm.$(OBJEXT) -@GL_COND_OBJ_UNSETENV_TRUE@am__objects_53 = \ -@GL_COND_OBJ_UNSETENV_TRUE@ libgnu_a-unsetenv.$(OBJEXT) -@GL_COND_OBJ_WCRTOMB_TRUE@am__objects_54 = libgnu_a-wcrtomb.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_55 = libgnu_a-windows-mutex.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_56 = libgnu_a-windows-once.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_57 = libgnu_a-windows-recmutex.$(OBJEXT) -@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_58 = libgnu_a-windows-rwlock.$(OBJEXT) -am_libgnu_a_OBJECTS = libgnu_a-base64.$(OBJEXT) \ - libgnu_a-basename-lgpl.$(OBJEXT) $(am__objects_1) \ - libgnu_a-cloexec.$(OBJEXT) $(am__objects_2) \ - libgnu_a-af_alg.$(OBJEXT) libgnu_a-sha256-stream.$(OBJEXT) \ - libgnu_a-sha256.$(OBJEXT) libgnu_a-dirname.$(OBJEXT) \ - libgnu_a-basename.$(OBJEXT) libgnu_a-dirname-lgpl.$(OBJEXT) \ - libgnu_a-stripslash.$(OBJEXT) $(am__objects_3) \ - $(am__objects_4) libgnu_a-exitfail.$(OBJEXT) $(am__objects_5) \ - libgnu_a-fd-hook.$(OBJEXT) $(am__objects_6) $(am__objects_7) \ - $(am__objects_8) $(am__objects_9) $(am__objects_10) \ - libgnu_a-freading.$(OBJEXT) $(am__objects_11) \ - $(am__objects_12) $(am__objects_13) $(am__objects_14) \ - $(am__objects_15) $(am__objects_16) $(am__objects_17) \ - $(am__objects_18) $(am__objects_19) $(am__objects_20) \ - $(am__objects_21) $(am__objects_22) $(am__objects_23) \ - $(am__objects_24) $(am__objects_25) \ - libgnu_a-getprogname.$(OBJEXT) \ - malloc/libgnu_a-dynarray_at_failure.$(OBJEXT) \ - malloc/libgnu_a-dynarray_emplace_enlarge.$(OBJEXT) \ - malloc/libgnu_a-dynarray_finalize.$(OBJEXT) \ - malloc/libgnu_a-dynarray_resize.$(OBJEXT) \ - malloc/libgnu_a-dynarray_resize_clear.$(OBJEXT) \ - libgnu_a-hard-locale.$(OBJEXT) libgnu_a-ialloc.$(OBJEXT) \ - libgnu_a-idpriv-droptemp.$(OBJEXT) $(am__objects_26) \ - libgnu_a-localcharset.$(OBJEXT) $(am__objects_27) \ - glthread/libgnu_a-lock.$(OBJEXT) $(am__objects_28) \ - libgnu_a-malloca.$(OBJEXT) libgnu_a-math.$(OBJEXT) \ - $(am__objects_29) $(am__objects_30) $(am__objects_31) \ - $(am__objects_32) $(am__objects_33) $(am__objects_34) \ - $(am__objects_35) $(am__objects_36) $(am__objects_37) \ - $(am__objects_38) $(am__objects_39) $(am__objects_40) \ - $(am__objects_41) libgnu_a-setlocale_null.$(OBJEXT) \ - $(am__objects_42) libgnu_a-sockets.$(OBJEXT) $(am__objects_43) \ - libgnu_a-stat-time.$(OBJEXT) $(am__objects_44) \ - $(am__objects_45) $(am__objects_46) $(am__objects_47) \ - $(am__objects_48) $(am__objects_49) $(am__objects_50) \ - libgnu_a-sys_socket.$(OBJEXT) \ - glthread/libgnu_a-threadlib.$(OBJEXT) $(am__objects_51) \ - $(am__objects_52) libgnu_a-unistd.$(OBJEXT) $(am__objects_53) \ - $(am__objects_54) libgnu_a-wctype-h.$(OBJEXT) \ - $(am__objects_55) $(am__objects_56) $(am__objects_57) \ - $(am__objects_58) libgnu_a-xmalloc.$(OBJEXT) \ - libgnu_a-xalloc-die.$(OBJEXT) libgnu_a-xsize.$(OBJEXT) +am_libgnu_a_OBJECTS = base64.$(OBJEXT) sha1.$(OBJEXT) \ + dirname.$(OBJEXT) basename.$(OBJEXT) dirname-lgpl.$(OBJEXT) \ + basename-lgpl.$(OBJEXT) stripslash.$(OBJEXT) \ + exitfail.$(OBJEXT) fd-hook.$(OBJEXT) full-read.$(OBJEXT) \ + idpriv-droptemp.$(OBJEXT) localcharset.$(OBJEXT) \ + glthread/lock.$(OBJEXT) malloca.$(OBJEXT) math.$(OBJEXT) \ + safe-read.$(OBJEXT) sockets.$(OBJEXT) sys_socket.$(OBJEXT) \ + glthread/threadlib.$(OBJEXT) unistd.$(OBJEXT) \ + wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) xalloc-die.$(OBJEXT) \ + xsize.$(OBJEXT) xstrndup.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -493,109 +256,52 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/libgnu_a-af_alg.Po \ - ./$(DEPDIR)/libgnu_a-asnprintf.Po \ - ./$(DEPDIR)/libgnu_a-asprintf.Po \ - ./$(DEPDIR)/libgnu_a-base64.Po \ - ./$(DEPDIR)/libgnu_a-basename-lgpl.Po \ - ./$(DEPDIR)/libgnu_a-basename.Po ./$(DEPDIR)/libgnu_a-btowc.Po \ - ./$(DEPDIR)/libgnu_a-calloc.Po ./$(DEPDIR)/libgnu_a-cloexec.Po \ - ./$(DEPDIR)/libgnu_a-close.Po \ - ./$(DEPDIR)/libgnu_a-dirname-lgpl.Po \ - ./$(DEPDIR)/libgnu_a-dirname.Po ./$(DEPDIR)/libgnu_a-dup2.Po \ - ./$(DEPDIR)/libgnu_a-error.Po ./$(DEPDIR)/libgnu_a-exitfail.Po \ - ./$(DEPDIR)/libgnu_a-fcntl.Po ./$(DEPDIR)/libgnu_a-fd-hook.Po \ - ./$(DEPDIR)/libgnu_a-fflush.Po ./$(DEPDIR)/libgnu_a-float.Po \ - ./$(DEPDIR)/libgnu_a-floor.Po ./$(DEPDIR)/libgnu_a-floorf.Po \ - ./$(DEPDIR)/libgnu_a-fopen.Po ./$(DEPDIR)/libgnu_a-fpurge.Po \ - ./$(DEPDIR)/libgnu_a-freading.Po ./$(DEPDIR)/libgnu_a-free.Po \ - ./$(DEPDIR)/libgnu_a-fseek.Po ./$(DEPDIR)/libgnu_a-fseeko.Po \ - ./$(DEPDIR)/libgnu_a-fstat.Po ./$(DEPDIR)/libgnu_a-fsusage.Po \ - ./$(DEPDIR)/libgnu_a-ftell.Po ./$(DEPDIR)/libgnu_a-ftello.Po \ - ./$(DEPDIR)/libgnu_a-gai_strerror.Po \ - ./$(DEPDIR)/libgnu_a-getaddrinfo.Po \ - ./$(DEPDIR)/libgnu_a-getdelim.Po \ - ./$(DEPDIR)/libgnu_a-getdtablesize.Po \ - ./$(DEPDIR)/libgnu_a-gethostname.Po \ - ./$(DEPDIR)/libgnu_a-getline.Po \ - ./$(DEPDIR)/libgnu_a-getloadavg.Po \ - ./$(DEPDIR)/libgnu_a-getopt.Po ./$(DEPDIR)/libgnu_a-getopt1.Po \ - ./$(DEPDIR)/libgnu_a-getprogname.Po \ - ./$(DEPDIR)/libgnu_a-hard-locale.Po \ - ./$(DEPDIR)/libgnu_a-ialloc.Po \ - ./$(DEPDIR)/libgnu_a-idpriv-droptemp.Po \ - ./$(DEPDIR)/libgnu_a-inet_ntop.Po \ - ./$(DEPDIR)/libgnu_a-itold.Po \ - ./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po \ - ./$(DEPDIR)/libgnu_a-localcharset.Po \ - ./$(DEPDIR)/libgnu_a-localeconv.Po \ - ./$(DEPDIR)/libgnu_a-lseek.Po ./$(DEPDIR)/libgnu_a-malloc.Po \ - ./$(DEPDIR)/libgnu_a-malloca.Po ./$(DEPDIR)/libgnu_a-math.Po \ - ./$(DEPDIR)/libgnu_a-mbrtowc.Po \ - ./$(DEPDIR)/libgnu_a-mbsinit.Po \ - ./$(DEPDIR)/libgnu_a-mbtowc-lock.Po \ - ./$(DEPDIR)/libgnu_a-mbtowc.Po ./$(DEPDIR)/libgnu_a-memchr.Po \ - ./$(DEPDIR)/libgnu_a-mktime.Po \ - ./$(DEPDIR)/libgnu_a-mountlist.Po \ - ./$(DEPDIR)/libgnu_a-msvc-inval.Po \ - ./$(DEPDIR)/libgnu_a-msvc-nothrow.Po \ - ./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po \ - ./$(DEPDIR)/libgnu_a-nl_langinfo.Po \ - ./$(DEPDIR)/libgnu_a-open.Po \ - ./$(DEPDIR)/libgnu_a-printf-args.Po \ - ./$(DEPDIR)/libgnu_a-printf-parse.Po \ - ./$(DEPDIR)/libgnu_a-realloc.Po \ - ./$(DEPDIR)/libgnu_a-reallocarray.Po \ - ./$(DEPDIR)/libgnu_a-regcomp.Po ./$(DEPDIR)/libgnu_a-regex.Po \ - ./$(DEPDIR)/libgnu_a-regex_internal.Po \ - ./$(DEPDIR)/libgnu_a-regexec.Po ./$(DEPDIR)/libgnu_a-setenv.Po \ - ./$(DEPDIR)/libgnu_a-setlocale-lock.Po \ - ./$(DEPDIR)/libgnu_a-setlocale_null.Po \ - ./$(DEPDIR)/libgnu_a-sha256-stream.Po \ - ./$(DEPDIR)/libgnu_a-sha256.Po \ - ./$(DEPDIR)/libgnu_a-snprintf.Po \ - ./$(DEPDIR)/libgnu_a-sockets.Po \ - ./$(DEPDIR)/libgnu_a-stat-time.Po \ - ./$(DEPDIR)/libgnu_a-stat-w32.Po ./$(DEPDIR)/libgnu_a-stat.Po \ - ./$(DEPDIR)/libgnu_a-stdio-read.Po \ - ./$(DEPDIR)/libgnu_a-stdio-write.Po \ - ./$(DEPDIR)/libgnu_a-strcasecmp.Po \ - ./$(DEPDIR)/libgnu_a-strcasestr.Po \ - ./$(DEPDIR)/libgnu_a-strerror-override.Po \ - ./$(DEPDIR)/libgnu_a-strerror.Po \ - ./$(DEPDIR)/libgnu_a-stripslash.Po \ - ./$(DEPDIR)/libgnu_a-strncasecmp.Po \ - ./$(DEPDIR)/libgnu_a-strsep.Po ./$(DEPDIR)/libgnu_a-strstr.Po \ - ./$(DEPDIR)/libgnu_a-sys_socket.Po \ - ./$(DEPDIR)/libgnu_a-time_r.Po ./$(DEPDIR)/libgnu_a-timegm.Po \ - ./$(DEPDIR)/libgnu_a-unistd.Po \ - ./$(DEPDIR)/libgnu_a-unsetenv.Po \ - ./$(DEPDIR)/libgnu_a-vasnprintf.Po \ - ./$(DEPDIR)/libgnu_a-vasprintf.Po \ - ./$(DEPDIR)/libgnu_a-vsnprintf.Po \ - ./$(DEPDIR)/libgnu_a-wcrtomb.Po \ - ./$(DEPDIR)/libgnu_a-wctype-h.Po \ - ./$(DEPDIR)/libgnu_a-windows-mutex.Po \ - ./$(DEPDIR)/libgnu_a-windows-once.Po \ - ./$(DEPDIR)/libgnu_a-windows-recmutex.Po \ - ./$(DEPDIR)/libgnu_a-windows-rwlock.Po \ - ./$(DEPDIR)/libgnu_a-xalloc-die.Po \ - ./$(DEPDIR)/libgnu_a-xmalloc.Po ./$(DEPDIR)/libgnu_a-xsize.Po \ - glthread/$(DEPDIR)/libgnu_a-lock.Po \ - glthread/$(DEPDIR)/libgnu_a-threadlib.Po \ - malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po \ - malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po \ - malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po \ - malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po \ - malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po \ - malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po +am__depfiles_remade = ./$(DEPDIR)/asnprintf.Po ./$(DEPDIR)/asprintf.Po \ + ./$(DEPDIR)/base64.Po ./$(DEPDIR)/basename-lgpl.Po \ + ./$(DEPDIR)/basename.Po ./$(DEPDIR)/btowc.Po \ + ./$(DEPDIR)/dirname-lgpl.Po ./$(DEPDIR)/dirname.Po \ + ./$(DEPDIR)/error.Po ./$(DEPDIR)/exitfail.Po \ + ./$(DEPDIR)/fd-hook.Po ./$(DEPDIR)/float.Po \ + ./$(DEPDIR)/floor.Po ./$(DEPDIR)/floorf.Po \ + ./$(DEPDIR)/fsusage.Po ./$(DEPDIR)/full-read.Po \ + ./$(DEPDIR)/full-write.Po ./$(DEPDIR)/gai_strerror.Po \ + ./$(DEPDIR)/getaddrinfo.Po ./$(DEPDIR)/gethostname.Po \ + ./$(DEPDIR)/getloadavg.Po ./$(DEPDIR)/getopt.Po \ + ./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/idpriv-droptemp.Po \ + ./$(DEPDIR)/inet_ntop.Po ./$(DEPDIR)/itold.Po \ + ./$(DEPDIR)/localcharset.Po ./$(DEPDIR)/localeconv.Po \ + ./$(DEPDIR)/malloc.Po ./$(DEPDIR)/malloca.Po \ + ./$(DEPDIR)/math.Po ./$(DEPDIR)/mbrtowc.Po \ + ./$(DEPDIR)/mbsinit.Po ./$(DEPDIR)/mbtowc.Po \ + ./$(DEPDIR)/memchr.Po ./$(DEPDIR)/mktime.Po \ + ./$(DEPDIR)/mountlist.Po ./$(DEPDIR)/msvc-inval.Po \ + ./$(DEPDIR)/msvc-nothrow.Po ./$(DEPDIR)/nl_langinfo.Po \ + ./$(DEPDIR)/printf-args.Po ./$(DEPDIR)/printf-parse.Po \ + ./$(DEPDIR)/read.Po ./$(DEPDIR)/regcomp.Po \ + ./$(DEPDIR)/regex.Po ./$(DEPDIR)/regex_internal.Po \ + ./$(DEPDIR)/regexec.Po ./$(DEPDIR)/safe-read.Po \ + ./$(DEPDIR)/setenv.Po ./$(DEPDIR)/sha1.Po \ + ./$(DEPDIR)/snprintf.Po ./$(DEPDIR)/sockets.Po \ + ./$(DEPDIR)/strcasecmp.Po ./$(DEPDIR)/strcasestr.Po \ + ./$(DEPDIR)/strerror-override.Po ./$(DEPDIR)/strerror.Po \ + ./$(DEPDIR)/stripslash.Po ./$(DEPDIR)/strncasecmp.Po \ + ./$(DEPDIR)/strndup.Po ./$(DEPDIR)/strnlen.Po \ + ./$(DEPDIR)/strsep.Po ./$(DEPDIR)/strstr.Po \ + ./$(DEPDIR)/sys_socket.Po ./$(DEPDIR)/time_r.Po \ + ./$(DEPDIR)/timegm.Po ./$(DEPDIR)/unistd.Po \ + ./$(DEPDIR)/unsetenv.Po ./$(DEPDIR)/vasnprintf.Po \ + ./$(DEPDIR)/vasprintf.Po ./$(DEPDIR)/vsnprintf.Po \ + ./$(DEPDIR)/wcrtomb.Po ./$(DEPDIR)/wctype-h.Po \ + ./$(DEPDIR)/xalloc-die.Po ./$(DEPDIR)/xmalloc.Po \ + ./$(DEPDIR)/xsize.Po ./$(DEPDIR)/xstrndup.Po \ + glthread/$(DEPDIR)/lock.Po glthread/$(DEPDIR)/threadlib.Po am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ @@ -613,7 +319,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) -DIST_SOURCES = $(am__libgnu_a_SOURCES_DIST) $(EXTRA_libgnu_a_SOURCES) +DIST_SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -683,6 +389,7 @@ am__relativize = \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -691,7 +398,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -702,11 +408,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -742,476 +446,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -1220,7 +801,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -1228,11 +808,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -1242,17 +820,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -1262,22 +836,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -1297,7 +866,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -1307,37 +875,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -1348,24 +909,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1373,21 +928,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1401,23 +952,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1428,29 +972,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1462,9 +1001,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1480,16 +1016,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1499,7 +1031,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1510,17 +1041,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1534,7 +1061,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1559,10 +1085,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1574,8 +1100,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1594,24 +1118,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1620,6 +1135,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1627,23 +1143,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1655,7 +1166,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1663,12 +1173,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1680,7 +1187,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1738,63 +1244,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1805,61 +1283,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1877,9 +1339,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1889,11 +1349,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1901,30 +1356,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1932,24 +1378,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1957,42 +1397,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -2000,10 +1425,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -2022,21 +1445,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -2049,9 +1465,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -2083,10 +1496,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -2101,9 +1512,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = @localedir@ -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -2123,161 +1533,125 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ with_trusted_path = @with_trusted_path@ -AUTOMAKE_OPTIONS = 1.14 gnits subdir-objects +AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = libgnu.a noinst_LTLIBRARIES = -# No GNU Make output. -EXTRA_DIST = m4/gnulib-cache.m4 alloca.in.h arpa_inet.in.h assert.in.h \ - verify.h attribute.h basename-lgpl.h byteswap.in.h calloc.c \ - calloc.c cloexec.h af_alg.h sys-limits.h gl_openssl.h sha256.h \ - stripslash.c dirname.h errno.in.h error.h exitfail.h \ - fcntl.in.h fd-hook.h stdio-impl.h filename.h float.in.h \ - floor.c fopen.c fopen.c stdio-impl.h freading.h stdio-impl.h \ - stdio-impl.h stat-w32.c stat-w32.h fsusage.h stdio-impl.h \ - w32sock.h getopt-cdefs.in.h getopt-core.h getopt-ext.h \ - getopt-pfx-core.h getopt-pfx-ext.h getopt.in.h getopt_int.h \ - dynarray.h malloc/dynarray-skeleton.c malloc/dynarray.h \ - hard-locale.h ialloc.h idpriv.h intprops-internal.h intprops.h \ - inttypes.in.h langinfo.in.h cdefs.h libc-config.h limits.in.h \ - localcharset.h locale.in.h malloc.c malloc.c malloca.h \ - math.in.h lc-charset-dispatch.c lc-charset-dispatch.h \ - mbrtowc-impl-utf8.h mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h \ - windows-initguard.h mbtowc-impl.h memchr.valgrind \ + +# If your project uses "gettextize --intl" to put a source-code +# copy of libintl into the package, every Makefile.am needs +# -I$(top_builddir)/intl, so that can be found in this directory. +# Here's one way to do this: +#AM_CPPFLAGS += -I$(top_builddir)/intl +# This option has no effect when the user disables NLS (because then +# the intl directory contains no libintl.h file). This option is not +# enabled by default because the intl directory might not exist if +# your project does not use "gettext --intl", and some compilers +# complain about -I options applied to nonexistent directories. +EXTRA_DIST = m4/gnulib-cache.m4 alloca.in.h arpa_inet.in.h btowc.c \ + sha1.h stripslash.c dirname.h dosname.h errno.in.h error.c \ + error.h exitfail.h fd-hook.h float.c float.in.h itold.c \ + floor.c floorf.c fsusage.c fsusage.h full-write.c \ + gai_strerror.c getaddrinfo.c gethostname.c w32sock.h \ + getloadavg.c getopt.c getopt.in.h getopt1.c getopt_int.h \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.rpath idpriv.h inet_ntop.c \ + intprops.h langinfo.in.h config.charset ref-add.sin \ + ref-del.sin locale.in.h localeconv.c malloc.c malloc.c \ + malloca.h malloca.valgrind math.in.h mbrtowc.c mbsinit.c \ + mbtowc-impl.h mbtowc.c memchr.c memchr.valgrind \ mktime-internal.h mktime.c mktime-internal.h mktime.c \ - mountlist.h msvc-inval.h msvc-nothrow.h netdb.in.h \ - netinet_in.in.h windows-initguard.h pathmax.h realloc.c \ - realloc.c regcomp.c regex.h regex_internal.c regex_internal.h \ - regexec.c setlocale_null.h windows-initguard.h _Noreturn.h \ - arg-nonnull.h c++defs.h warn-on-use.h snprintf.c w32sock.h \ - stat-w32.c stat-w32.h stat-time.h stdalign.in.h \ - intprops-internal.h stdckdint.in.h stddef.in.h stdint.in.h \ - stdio.in.h stdlib.in.h strcasestr.c str-two-way.h strcasestr.c \ - streq.h strerror-override.h string.in.h strings.in.h \ - str-two-way.h strstr.c sys_socket.in.h sys_stat.in.h \ - sys_types.in.h sys_uio.in.h time.in.h mktime-internal.h \ - unistd.in.h unlocked-io.h asnprintf.c float+.h printf-args.c \ - printf-args.h printf-parse.c printf-parse.h vasnprintf.c \ - vasnprintf.h asprintf.c vasprintf.c verify.h vsnprintf.c \ - wchar.in.h wctype.in.h windows-initguard.h windows-mutex.h \ - windows-once.h windows-initguard.h windows-recmutex.h \ - windows-initguard.h windows-rwlock.h xalloc.h xalloc.h \ - xalloc-oversized.h -BUILT_SOURCES = $(ALLOCA_H) arpa/inet.h $(ASSERT_H) $(BYTESWAP_H) \ - $(ERRNO_H) fcntl.h $(FLOAT_H) $(GETOPT_H) $(GETOPT_CDEFS_H) \ - malloc/dynarray.gl.h malloc/dynarray-skeleton.gl.h inttypes.h \ - langinfo.h $(LIMITS_H) locale.h math.h netdb.h $(NETINET_IN_H) \ - $(STDALIGN_H) $(STDCKDINT_H) $(STDDEF_H) $(STDINT_H) stdio.h \ - stdlib.h string.h strings.h sys/socket.h sys/stat.h \ - sys/types.h sys/uio.h time.h unistd.h wchar.h wctype.h -SUFFIXES = + mountlist.c mountlist.h msvc-inval.c msvc-inval.h \ + msvc-nothrow.c msvc-nothrow.h netdb.in.h netinet_in.in.h \ + nl_langinfo.c read.c regcomp.c regex.c regex.h \ + regex_internal.c regex_internal.h regexec.c safe-read.h \ + setenv.c $(top_srcdir)/build-aux/snippet/_Noreturn.h \ + $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ + $(top_srcdir)/build-aux/snippet/c++defs.h \ + $(top_srcdir)/build-aux/snippet/warn-on-use.h snprintf.c \ + w32sock.h stdalign.in.h stdbool.in.h stddef.in.h stdint.in.h \ + stdio.in.h stdlib.in.h strcasecmp.c strncasecmp.c \ + str-two-way.h strcasestr.c streq.h strerror.c \ + strerror-override.c strerror-override.h string.in.h \ + strings.in.h strndup.c strnlen.c strsep.c str-two-way.h \ + strstr.c sys_socket.in.h sys_types.in.h sys_uio.in.h \ + $(top_srcdir)/build-aux/config.rpath time.in.h time_r.c \ + mktime-internal.h timegm.c unistd.in.h unsetenv.c asnprintf.c \ + float+.h printf-args.c printf-args.h printf-parse.c \ + printf-parse.h vasnprintf.c vasnprintf.h asprintf.c \ + vasprintf.c verify.h vsnprintf.c wchar.in.h wcrtomb.c \ + wctype.in.h xalloc.h xalloc-oversized.h + +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. + +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. +BUILT_SOURCES = $(ALLOCA_H) arpa/inet.h configmake.h $(ERRNO_H) \ + $(FLOAT_H) $(GETOPT_H) langinfo.h locale.h math.h netdb.h \ + $(NETINET_IN_H) arg-nonnull.h c++defs.h warn-on-use.h \ + $(STDALIGN_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h \ + stdlib.h string.h strings.h sys/socket.h sys/types.h sys/uio.h \ + time.h unistd.h wchar.h wctype.h +SUFFIXES = .sed .sin MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \ - arpa/inet.h-t assert.h assert.h-t byteswap.h byteswap.h-t \ - errno.h errno.h-t fcntl.h fcntl.h-t float.h float.h-t getopt.h \ - getopt.h-t getopt-cdefs.h getopt-cdefs.h-t \ - malloc/dynarray.gl.h malloc/dynarray.gl.h-t \ - malloc/dynarray-skeleton.gl.h malloc/dynarray-skeleton.gl.h-t \ - inttypes.h inttypes.h-t langinfo.h langinfo.h-t limits.h \ - limits.h-t locale.h locale.h-t math.h math.h-t netdb.h \ - netdb.h-t netinet/in.h netinet/in.h-t stdalign.h stdalign.h-t \ - stdckdint.h stdckdint.h-t stddef.h stddef.h-t stdint.h \ - stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t string.h \ - string.h-t strings.h strings.h-t sys/socket.h sys/socket.h-t \ - sys/stat.h sys/stat.h-t sys/types.h sys/types.h-t sys/uio.h \ - sys/uio.h-t time.h time.h-t unistd.h unistd.h-t wchar.h \ - wchar.h-t wctype.h wctype.h-t -MOSTLYCLEANDIRS = arpa netinet sys sys sys -CLEANFILES = + arpa/inet.h-t errno.h errno.h-t float.h float.h-t getopt.h \ + getopt.h-t langinfo.h langinfo.h-t locale.h locale.h-t math.h \ + math.h-t netdb.h netdb.h-t netinet/in.h netinet/in.h-t \ + arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \ + warn-on-use.h warn-on-use.h-t stdalign.h stdalign.h-t \ + stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \ + stdio.h stdio.h-t stdlib.h stdlib.h-t string.h string.h-t \ + strings.h strings.h-t sys/socket.h sys/socket.h-t sys/types.h \ + sys/types.h-t sys/uio.h sys/uio.h-t time.h time.h-t unistd.h \ + unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t +MOSTLYCLEANDIRS = arpa netinet sys sys +CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ + ref-del.sed DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = AM_CFLAGS = -libgnu_a_SOURCES = base64.h base64.c basename-lgpl.c $(am__append_1) \ - cloexec.c $(am__append_2) af_alg.c sha256-stream.c sha256.c \ - dirname.c basename.c dirname-lgpl.c stripslash.c \ - $(am__append_3) $(am__append_4) exitfail.c $(am__append_5) \ - fd-hook.c $(am__append_6) $(am__append_7) $(am__append_8) \ - $(am__append_9) $(am__append_10) freading.c $(am__append_11) \ - $(am__append_12) $(am__append_13) $(am__append_14) \ - $(am__append_15) $(am__append_16) $(am__append_17) \ - $(am__append_18) $(am__append_19) $(am__append_20) \ - $(am__append_21) $(am__append_22) $(am__append_23) \ - $(am__append_24) $(am__append_25) getprogname.h getprogname.c \ - gettext.h malloc/dynarray_at_failure.c \ - malloc/dynarray_emplace_enlarge.c malloc/dynarray_finalize.c \ - malloc/dynarray_resize.c malloc/dynarray_resize_clear.c \ - hard-locale.c ialloc.c idpriv-droptemp.c idx.h \ - $(am__append_26) localcharset.c $(am__append_27) \ - glthread/lock.h glthread/lock.c $(am__append_28) malloca.c \ - math.c $(am__append_29) $(am__append_30) $(am__append_31) \ - $(am__append_32) minmax.h $(am__append_33) $(am__append_34) \ - $(am__append_35) $(am__append_36) $(am__append_37) \ - $(am__append_38) $(am__append_39) $(am__append_40) \ - $(am__append_41) setlocale_null.c $(am__append_42) size_max.h \ - sockets.h sockets.c $(am__append_43) stat-time.c \ - $(am__append_44) $(am__append_45) $(am__append_46) \ - $(am__append_47) $(am__append_48) $(am__append_49) \ - $(am__append_50) sys_socket.c glthread/threadlib.c \ - $(am__append_51) $(am__append_52) unistd.c $(am__append_53) \ - $(am__append_54) wctype-h.c $(am__append_55) $(am__append_56) \ - $(am__append_57) $(am__append_58) xmalloc.c xalloc-die.c \ - xsize.h xsize.c -libgnu_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) +libgnu_a_SOURCES = base64.h base64.c sha1.c dirname.c basename.c \ + dirname-lgpl.c basename-lgpl.c stripslash.c exitfail.c \ + fd-hook.c full-read.h full-read.c gettext.h idpriv-droptemp.c \ + localcharset.h localcharset.c glthread/lock.h glthread/lock.c \ + malloca.c math.c safe-read.c size_max.h sockets.h sockets.c \ + sys_socket.c glthread/threadlib.c unistd.c wctype-h.c \ + xmalloc.c xalloc-die.c xsize.h xsize.c xstrndup.h xstrndup.c libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) -EXTRA_libgnu_a_SOURCES = calloc.c calloc.c stripslash.c floor.c \ - fopen.c fopen.c stat-w32.c malloc/dynarray-skeleton.c malloc.c \ - malloc.c lc-charset-dispatch.c mbtowc-lock.c mktime.c mktime.c \ - realloc.c realloc.c regcomp.c regex_internal.c regexec.c \ - snprintf.c stat-w32.c strcasestr.c strcasestr.c strstr.c \ - asnprintf.c printf-args.c printf-parse.c vasnprintf.c \ - asprintf.c vasprintf.c vsnprintf.c - -# Use this preprocessor expression to decide whether #include_next works. -# Do not rely on a 'configure'-time test for this, since the expression -# might appear in an installed header, which is used by some other compiler. -HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) - -# In 'sed', replace the pattern space with a "DO NOT EDIT" comment. -SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */, - -# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT". -SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G - -# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading -# "DO_NOT_EDIT". Although this could be done more simply via: -# SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t -# the -n and 'w' avoid a fork+exec, at least when GNU Make is used. -SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t' - -# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that -gl_V_at = $(AM_V_GEN) +EXTRA_libgnu_a_SOURCES = btowc.c stripslash.c error.c float.c itold.c \ + floor.c floorf.c fsusage.c full-write.c gai_strerror.c \ + getaddrinfo.c gethostname.c getloadavg.c getopt.c getopt1.c \ + inet_ntop.c localeconv.c malloc.c malloc.c mbrtowc.c mbsinit.c \ + mbtowc.c memchr.c mktime.c mktime.c mountlist.c msvc-inval.c \ + msvc-nothrow.c nl_langinfo.c read.c regcomp.c regex.c \ + regex_internal.c regexec.c setenv.c snprintf.c strcasecmp.c \ + strncasecmp.c strcasestr.c strerror.c strerror-override.c \ + strndup.c strnlen.c strsep.c strstr.c time_r.c timegm.c \ + unsetenv.c asnprintf.c printf-args.c printf-parse.c \ + vasnprintf.c asprintf.c vasprintf.c vsnprintf.c wcrtomb.c +charset_alias = $(DESTDIR)$(libdir)/charset.alias +charset_tmp = $(DESTDIR)$(libdir)/charset.tmp # Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that +# gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. -_NORETURN_H = $(srcdir)/_Noreturn.h - -# Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that -# need it. This is ensured by the applicability 'all' defined above. -ARG_NONNULL_H = $(srcdir)/arg-nonnull.h - -# Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that -# need it. This is ensured by the applicability 'all' defined above. -CXXDEFS_H = $(srcdir)/c++defs.h - -# Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all makefiles that -# need it. This is ensured by the applicability 'all' defined above. -WARN_ON_USE_H = $(srcdir)/warn-on-use.h +_NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h +ARG_NONNULL_H = arg-nonnull.h +CXXDEFS_H = c++defs.h +WARN_ON_USE_H = warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .sed .sin .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -2321,34 +1695,16 @@ clean-noinstLTLIBRARIES: echo rm -f $${locs}; \ rm -f $${locs}; \ } -malloc/$(am__dirstamp): - @$(MKDIR_P) malloc - @: > malloc/$(am__dirstamp) -malloc/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) malloc/$(DEPDIR) - @: > malloc/$(DEPDIR)/$(am__dirstamp) -malloc/libgnu_a-dynarray_at_failure.$(OBJEXT): malloc/$(am__dirstamp) \ - malloc/$(DEPDIR)/$(am__dirstamp) -malloc/libgnu_a-dynarray_emplace_enlarge.$(OBJEXT): \ - malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp) -malloc/libgnu_a-dynarray_finalize.$(OBJEXT): malloc/$(am__dirstamp) \ - malloc/$(DEPDIR)/$(am__dirstamp) -malloc/libgnu_a-dynarray_resize.$(OBJEXT): malloc/$(am__dirstamp) \ - malloc/$(DEPDIR)/$(am__dirstamp) -malloc/libgnu_a-dynarray_resize_clear.$(OBJEXT): \ - malloc/$(am__dirstamp) malloc/$(DEPDIR)/$(am__dirstamp) glthread/$(am__dirstamp): @$(MKDIR_P) glthread @: > glthread/$(am__dirstamp) glthread/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) glthread/$(DEPDIR) @: > glthread/$(DEPDIR)/$(am__dirstamp) -glthread/libgnu_a-lock.$(OBJEXT): glthread/$(am__dirstamp) \ +glthread/lock.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) -glthread/libgnu_a-threadlib.$(OBJEXT): glthread/$(am__dirstamp) \ +glthread/threadlib.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) -malloc/libgnu_a-dynarray-skeleton.$(OBJEXT): malloc/$(am__dirstamp) \ - malloc/$(DEPDIR)/$(am__dirstamp) libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDENCIES) $(AM_V_at)-rm -f libgnu.a @@ -2358,129 +1714,88 @@ libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDEN mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f glthread/*.$(OBJEXT) - -rm -f malloc/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-af_alg.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-asnprintf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-asprintf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-base64.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-basename-lgpl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-basename.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-btowc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-calloc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-cloexec.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-close.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dirname-lgpl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dirname.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-dup2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-error.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-exitfail.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fcntl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fd-hook.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fflush.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-float.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-floor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-floorf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fopen.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fpurge.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-freading.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-free.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fseek.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fseeko.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fstat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-fsusage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-ftell.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-ftello.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-gai_strerror.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getaddrinfo.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getdelim.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getdtablesize.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-gethostname.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getline.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getloadavg.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getopt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getopt1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-getprogname.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-hard-locale.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-ialloc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-idpriv-droptemp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-inet_ntop.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-itold.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-localcharset.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-localeconv.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-lseek.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-malloc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-malloca.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-math.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbrtowc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbsinit.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbtowc-lock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbtowc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-memchr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mktime.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mountlist.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-inval.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-msvc-nothrow.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-nl_langinfo.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-open.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-printf-args.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-printf-parse.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-realloc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-reallocarray.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regcomp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regex_internal.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-regexec.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-setenv.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-setlocale-lock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-setlocale_null.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sha256-stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sha256.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-snprintf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sockets.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat-time.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat-w32.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stdio-read.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stdio-write.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strcasecmp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strcasestr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strerror-override.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strerror.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-stripslash.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strncasecmp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strsep.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-strstr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sys_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-time_r.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-timegm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-unistd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-unsetenv.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-vasnprintf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-vasprintf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-vsnprintf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wcrtomb.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-wctype-h.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-mutex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-once.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-recmutex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-windows-rwlock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-xalloc-die.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-xmalloc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-xsize.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libgnu_a-lock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/libgnu_a-threadlib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename-lgpl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floorf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsusage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-read.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gai_strerror.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getaddrinfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gethostname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getloadavg.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idpriv-droptemp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_ntop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localeconv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/math.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mountlist.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockets.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasestr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strsep.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strstr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sys_socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timegm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/lock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/threadlib.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -2512,1658 +1827,6 @@ am--depfiles: $(am__depfiles_remade) @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -libgnu_a-base64.o: base64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-base64.o -MD -MP -MF $(DEPDIR)/libgnu_a-base64.Tpo -c -o libgnu_a-base64.o `test -f 'base64.c' || echo '$(srcdir)/'`base64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-base64.Tpo $(DEPDIR)/libgnu_a-base64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='base64.c' object='libgnu_a-base64.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-base64.o `test -f 'base64.c' || echo '$(srcdir)/'`base64.c - -libgnu_a-base64.obj: base64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-base64.obj -MD -MP -MF $(DEPDIR)/libgnu_a-base64.Tpo -c -o libgnu_a-base64.obj `if test -f 'base64.c'; then $(CYGPATH_W) 'base64.c'; else $(CYGPATH_W) '$(srcdir)/base64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-base64.Tpo $(DEPDIR)/libgnu_a-base64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='base64.c' object='libgnu_a-base64.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-base64.obj `if test -f 'base64.c'; then $(CYGPATH_W) 'base64.c'; else $(CYGPATH_W) '$(srcdir)/base64.c'; fi` - -libgnu_a-basename-lgpl.o: basename-lgpl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-basename-lgpl.o -MD -MP -MF $(DEPDIR)/libgnu_a-basename-lgpl.Tpo -c -o libgnu_a-basename-lgpl.o `test -f 'basename-lgpl.c' || echo '$(srcdir)/'`basename-lgpl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-basename-lgpl.Tpo $(DEPDIR)/libgnu_a-basename-lgpl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basename-lgpl.c' object='libgnu_a-basename-lgpl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-basename-lgpl.o `test -f 'basename-lgpl.c' || echo '$(srcdir)/'`basename-lgpl.c - -libgnu_a-basename-lgpl.obj: basename-lgpl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-basename-lgpl.obj -MD -MP -MF $(DEPDIR)/libgnu_a-basename-lgpl.Tpo -c -o libgnu_a-basename-lgpl.obj `if test -f 'basename-lgpl.c'; then $(CYGPATH_W) 'basename-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/basename-lgpl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-basename-lgpl.Tpo $(DEPDIR)/libgnu_a-basename-lgpl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basename-lgpl.c' object='libgnu_a-basename-lgpl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-basename-lgpl.obj `if test -f 'basename-lgpl.c'; then $(CYGPATH_W) 'basename-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/basename-lgpl.c'; fi` - -libgnu_a-btowc.o: btowc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-btowc.o -MD -MP -MF $(DEPDIR)/libgnu_a-btowc.Tpo -c -o libgnu_a-btowc.o `test -f 'btowc.c' || echo '$(srcdir)/'`btowc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-btowc.Tpo $(DEPDIR)/libgnu_a-btowc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='btowc.c' object='libgnu_a-btowc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-btowc.o `test -f 'btowc.c' || echo '$(srcdir)/'`btowc.c - -libgnu_a-btowc.obj: btowc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-btowc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-btowc.Tpo -c -o libgnu_a-btowc.obj `if test -f 'btowc.c'; then $(CYGPATH_W) 'btowc.c'; else $(CYGPATH_W) '$(srcdir)/btowc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-btowc.Tpo $(DEPDIR)/libgnu_a-btowc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='btowc.c' object='libgnu_a-btowc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-btowc.obj `if test -f 'btowc.c'; then $(CYGPATH_W) 'btowc.c'; else $(CYGPATH_W) '$(srcdir)/btowc.c'; fi` - -libgnu_a-cloexec.o: cloexec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-cloexec.o -MD -MP -MF $(DEPDIR)/libgnu_a-cloexec.Tpo -c -o libgnu_a-cloexec.o `test -f 'cloexec.c' || echo '$(srcdir)/'`cloexec.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-cloexec.Tpo $(DEPDIR)/libgnu_a-cloexec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cloexec.c' object='libgnu_a-cloexec.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-cloexec.o `test -f 'cloexec.c' || echo '$(srcdir)/'`cloexec.c - -libgnu_a-cloexec.obj: cloexec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-cloexec.obj -MD -MP -MF $(DEPDIR)/libgnu_a-cloexec.Tpo -c -o libgnu_a-cloexec.obj `if test -f 'cloexec.c'; then $(CYGPATH_W) 'cloexec.c'; else $(CYGPATH_W) '$(srcdir)/cloexec.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-cloexec.Tpo $(DEPDIR)/libgnu_a-cloexec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cloexec.c' object='libgnu_a-cloexec.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-cloexec.obj `if test -f 'cloexec.c'; then $(CYGPATH_W) 'cloexec.c'; else $(CYGPATH_W) '$(srcdir)/cloexec.c'; fi` - -libgnu_a-close.o: close.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-close.o -MD -MP -MF $(DEPDIR)/libgnu_a-close.Tpo -c -o libgnu_a-close.o `test -f 'close.c' || echo '$(srcdir)/'`close.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-close.Tpo $(DEPDIR)/libgnu_a-close.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='close.c' object='libgnu_a-close.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-close.o `test -f 'close.c' || echo '$(srcdir)/'`close.c - -libgnu_a-close.obj: close.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-close.obj -MD -MP -MF $(DEPDIR)/libgnu_a-close.Tpo -c -o libgnu_a-close.obj `if test -f 'close.c'; then $(CYGPATH_W) 'close.c'; else $(CYGPATH_W) '$(srcdir)/close.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-close.Tpo $(DEPDIR)/libgnu_a-close.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='close.c' object='libgnu_a-close.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-close.obj `if test -f 'close.c'; then $(CYGPATH_W) 'close.c'; else $(CYGPATH_W) '$(srcdir)/close.c'; fi` - -libgnu_a-af_alg.o: af_alg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-af_alg.o -MD -MP -MF $(DEPDIR)/libgnu_a-af_alg.Tpo -c -o libgnu_a-af_alg.o `test -f 'af_alg.c' || echo '$(srcdir)/'`af_alg.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-af_alg.Tpo $(DEPDIR)/libgnu_a-af_alg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='af_alg.c' object='libgnu_a-af_alg.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-af_alg.o `test -f 'af_alg.c' || echo '$(srcdir)/'`af_alg.c - -libgnu_a-af_alg.obj: af_alg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-af_alg.obj -MD -MP -MF $(DEPDIR)/libgnu_a-af_alg.Tpo -c -o libgnu_a-af_alg.obj `if test -f 'af_alg.c'; then $(CYGPATH_W) 'af_alg.c'; else $(CYGPATH_W) '$(srcdir)/af_alg.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-af_alg.Tpo $(DEPDIR)/libgnu_a-af_alg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='af_alg.c' object='libgnu_a-af_alg.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-af_alg.obj `if test -f 'af_alg.c'; then $(CYGPATH_W) 'af_alg.c'; else $(CYGPATH_W) '$(srcdir)/af_alg.c'; fi` - -libgnu_a-sha256-stream.o: sha256-stream.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha256-stream.o -MD -MP -MF $(DEPDIR)/libgnu_a-sha256-stream.Tpo -c -o libgnu_a-sha256-stream.o `test -f 'sha256-stream.c' || echo '$(srcdir)/'`sha256-stream.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha256-stream.Tpo $(DEPDIR)/libgnu_a-sha256-stream.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha256-stream.c' object='libgnu_a-sha256-stream.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha256-stream.o `test -f 'sha256-stream.c' || echo '$(srcdir)/'`sha256-stream.c - -libgnu_a-sha256-stream.obj: sha256-stream.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha256-stream.obj -MD -MP -MF $(DEPDIR)/libgnu_a-sha256-stream.Tpo -c -o libgnu_a-sha256-stream.obj `if test -f 'sha256-stream.c'; then $(CYGPATH_W) 'sha256-stream.c'; else $(CYGPATH_W) '$(srcdir)/sha256-stream.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha256-stream.Tpo $(DEPDIR)/libgnu_a-sha256-stream.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha256-stream.c' object='libgnu_a-sha256-stream.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha256-stream.obj `if test -f 'sha256-stream.c'; then $(CYGPATH_W) 'sha256-stream.c'; else $(CYGPATH_W) '$(srcdir)/sha256-stream.c'; fi` - -libgnu_a-sha256.o: sha256.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha256.o -MD -MP -MF $(DEPDIR)/libgnu_a-sha256.Tpo -c -o libgnu_a-sha256.o `test -f 'sha256.c' || echo '$(srcdir)/'`sha256.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha256.Tpo $(DEPDIR)/libgnu_a-sha256.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha256.c' object='libgnu_a-sha256.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha256.o `test -f 'sha256.c' || echo '$(srcdir)/'`sha256.c - -libgnu_a-sha256.obj: sha256.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha256.obj -MD -MP -MF $(DEPDIR)/libgnu_a-sha256.Tpo -c -o libgnu_a-sha256.obj `if test -f 'sha256.c'; then $(CYGPATH_W) 'sha256.c'; else $(CYGPATH_W) '$(srcdir)/sha256.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha256.Tpo $(DEPDIR)/libgnu_a-sha256.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha256.c' object='libgnu_a-sha256.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha256.obj `if test -f 'sha256.c'; then $(CYGPATH_W) 'sha256.c'; else $(CYGPATH_W) '$(srcdir)/sha256.c'; fi` - -libgnu_a-dirname.o: dirname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-dirname.o -MD -MP -MF $(DEPDIR)/libgnu_a-dirname.Tpo -c -o libgnu_a-dirname.o `test -f 'dirname.c' || echo '$(srcdir)/'`dirname.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-dirname.Tpo $(DEPDIR)/libgnu_a-dirname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirname.c' object='libgnu_a-dirname.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-dirname.o `test -f 'dirname.c' || echo '$(srcdir)/'`dirname.c - -libgnu_a-dirname.obj: dirname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-dirname.obj -MD -MP -MF $(DEPDIR)/libgnu_a-dirname.Tpo -c -o libgnu_a-dirname.obj `if test -f 'dirname.c'; then $(CYGPATH_W) 'dirname.c'; else $(CYGPATH_W) '$(srcdir)/dirname.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-dirname.Tpo $(DEPDIR)/libgnu_a-dirname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirname.c' object='libgnu_a-dirname.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-dirname.obj `if test -f 'dirname.c'; then $(CYGPATH_W) 'dirname.c'; else $(CYGPATH_W) '$(srcdir)/dirname.c'; fi` - -libgnu_a-basename.o: basename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-basename.o -MD -MP -MF $(DEPDIR)/libgnu_a-basename.Tpo -c -o libgnu_a-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-basename.Tpo $(DEPDIR)/libgnu_a-basename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basename.c' object='libgnu_a-basename.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c - -libgnu_a-basename.obj: basename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-basename.obj -MD -MP -MF $(DEPDIR)/libgnu_a-basename.Tpo -c -o libgnu_a-basename.obj `if test -f 'basename.c'; then $(CYGPATH_W) 'basename.c'; else $(CYGPATH_W) '$(srcdir)/basename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-basename.Tpo $(DEPDIR)/libgnu_a-basename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basename.c' object='libgnu_a-basename.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-basename.obj `if test -f 'basename.c'; then $(CYGPATH_W) 'basename.c'; else $(CYGPATH_W) '$(srcdir)/basename.c'; fi` - -libgnu_a-dirname-lgpl.o: dirname-lgpl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-dirname-lgpl.o -MD -MP -MF $(DEPDIR)/libgnu_a-dirname-lgpl.Tpo -c -o libgnu_a-dirname-lgpl.o `test -f 'dirname-lgpl.c' || echo '$(srcdir)/'`dirname-lgpl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-dirname-lgpl.Tpo $(DEPDIR)/libgnu_a-dirname-lgpl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirname-lgpl.c' object='libgnu_a-dirname-lgpl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-dirname-lgpl.o `test -f 'dirname-lgpl.c' || echo '$(srcdir)/'`dirname-lgpl.c - -libgnu_a-dirname-lgpl.obj: dirname-lgpl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-dirname-lgpl.obj -MD -MP -MF $(DEPDIR)/libgnu_a-dirname-lgpl.Tpo -c -o libgnu_a-dirname-lgpl.obj `if test -f 'dirname-lgpl.c'; then $(CYGPATH_W) 'dirname-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/dirname-lgpl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-dirname-lgpl.Tpo $(DEPDIR)/libgnu_a-dirname-lgpl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirname-lgpl.c' object='libgnu_a-dirname-lgpl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-dirname-lgpl.obj `if test -f 'dirname-lgpl.c'; then $(CYGPATH_W) 'dirname-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/dirname-lgpl.c'; fi` - -libgnu_a-stripslash.o: stripslash.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stripslash.o -MD -MP -MF $(DEPDIR)/libgnu_a-stripslash.Tpo -c -o libgnu_a-stripslash.o `test -f 'stripslash.c' || echo '$(srcdir)/'`stripslash.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stripslash.Tpo $(DEPDIR)/libgnu_a-stripslash.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stripslash.c' object='libgnu_a-stripslash.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stripslash.o `test -f 'stripslash.c' || echo '$(srcdir)/'`stripslash.c - -libgnu_a-stripslash.obj: stripslash.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stripslash.obj -MD -MP -MF $(DEPDIR)/libgnu_a-stripslash.Tpo -c -o libgnu_a-stripslash.obj `if test -f 'stripslash.c'; then $(CYGPATH_W) 'stripslash.c'; else $(CYGPATH_W) '$(srcdir)/stripslash.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stripslash.Tpo $(DEPDIR)/libgnu_a-stripslash.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stripslash.c' object='libgnu_a-stripslash.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stripslash.obj `if test -f 'stripslash.c'; then $(CYGPATH_W) 'stripslash.c'; else $(CYGPATH_W) '$(srcdir)/stripslash.c'; fi` - -libgnu_a-dup2.o: dup2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-dup2.o -MD -MP -MF $(DEPDIR)/libgnu_a-dup2.Tpo -c -o libgnu_a-dup2.o `test -f 'dup2.c' || echo '$(srcdir)/'`dup2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-dup2.Tpo $(DEPDIR)/libgnu_a-dup2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup2.c' object='libgnu_a-dup2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-dup2.o `test -f 'dup2.c' || echo '$(srcdir)/'`dup2.c - -libgnu_a-dup2.obj: dup2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-dup2.obj -MD -MP -MF $(DEPDIR)/libgnu_a-dup2.Tpo -c -o libgnu_a-dup2.obj `if test -f 'dup2.c'; then $(CYGPATH_W) 'dup2.c'; else $(CYGPATH_W) '$(srcdir)/dup2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-dup2.Tpo $(DEPDIR)/libgnu_a-dup2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup2.c' object='libgnu_a-dup2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-dup2.obj `if test -f 'dup2.c'; then $(CYGPATH_W) 'dup2.c'; else $(CYGPATH_W) '$(srcdir)/dup2.c'; fi` - -libgnu_a-error.o: error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-error.o -MD -MP -MF $(DEPDIR)/libgnu_a-error.Tpo -c -o libgnu_a-error.o `test -f 'error.c' || echo '$(srcdir)/'`error.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-error.Tpo $(DEPDIR)/libgnu_a-error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='error.c' object='libgnu_a-error.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-error.o `test -f 'error.c' || echo '$(srcdir)/'`error.c - -libgnu_a-error.obj: error.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-error.obj -MD -MP -MF $(DEPDIR)/libgnu_a-error.Tpo -c -o libgnu_a-error.obj `if test -f 'error.c'; then $(CYGPATH_W) 'error.c'; else $(CYGPATH_W) '$(srcdir)/error.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-error.Tpo $(DEPDIR)/libgnu_a-error.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='error.c' object='libgnu_a-error.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-error.obj `if test -f 'error.c'; then $(CYGPATH_W) 'error.c'; else $(CYGPATH_W) '$(srcdir)/error.c'; fi` - -libgnu_a-exitfail.o: exitfail.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-exitfail.o -MD -MP -MF $(DEPDIR)/libgnu_a-exitfail.Tpo -c -o libgnu_a-exitfail.o `test -f 'exitfail.c' || echo '$(srcdir)/'`exitfail.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-exitfail.Tpo $(DEPDIR)/libgnu_a-exitfail.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='exitfail.c' object='libgnu_a-exitfail.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-exitfail.o `test -f 'exitfail.c' || echo '$(srcdir)/'`exitfail.c - -libgnu_a-exitfail.obj: exitfail.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-exitfail.obj -MD -MP -MF $(DEPDIR)/libgnu_a-exitfail.Tpo -c -o libgnu_a-exitfail.obj `if test -f 'exitfail.c'; then $(CYGPATH_W) 'exitfail.c'; else $(CYGPATH_W) '$(srcdir)/exitfail.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-exitfail.Tpo $(DEPDIR)/libgnu_a-exitfail.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='exitfail.c' object='libgnu_a-exitfail.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-exitfail.obj `if test -f 'exitfail.c'; then $(CYGPATH_W) 'exitfail.c'; else $(CYGPATH_W) '$(srcdir)/exitfail.c'; fi` - -libgnu_a-fcntl.o: fcntl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fcntl.o -MD -MP -MF $(DEPDIR)/libgnu_a-fcntl.Tpo -c -o libgnu_a-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fcntl.Tpo $(DEPDIR)/libgnu_a-fcntl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fcntl.c' object='libgnu_a-fcntl.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c - -libgnu_a-fcntl.obj: fcntl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fcntl.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fcntl.Tpo -c -o libgnu_a-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fcntl.Tpo $(DEPDIR)/libgnu_a-fcntl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fcntl.c' object='libgnu_a-fcntl.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi` - -libgnu_a-fd-hook.o: fd-hook.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fd-hook.o -MD -MP -MF $(DEPDIR)/libgnu_a-fd-hook.Tpo -c -o libgnu_a-fd-hook.o `test -f 'fd-hook.c' || echo '$(srcdir)/'`fd-hook.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fd-hook.Tpo $(DEPDIR)/libgnu_a-fd-hook.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fd-hook.c' object='libgnu_a-fd-hook.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fd-hook.o `test -f 'fd-hook.c' || echo '$(srcdir)/'`fd-hook.c - -libgnu_a-fd-hook.obj: fd-hook.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fd-hook.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fd-hook.Tpo -c -o libgnu_a-fd-hook.obj `if test -f 'fd-hook.c'; then $(CYGPATH_W) 'fd-hook.c'; else $(CYGPATH_W) '$(srcdir)/fd-hook.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fd-hook.Tpo $(DEPDIR)/libgnu_a-fd-hook.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fd-hook.c' object='libgnu_a-fd-hook.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fd-hook.obj `if test -f 'fd-hook.c'; then $(CYGPATH_W) 'fd-hook.c'; else $(CYGPATH_W) '$(srcdir)/fd-hook.c'; fi` - -libgnu_a-fflush.o: fflush.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fflush.o -MD -MP -MF $(DEPDIR)/libgnu_a-fflush.Tpo -c -o libgnu_a-fflush.o `test -f 'fflush.c' || echo '$(srcdir)/'`fflush.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fflush.Tpo $(DEPDIR)/libgnu_a-fflush.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fflush.c' object='libgnu_a-fflush.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fflush.o `test -f 'fflush.c' || echo '$(srcdir)/'`fflush.c - -libgnu_a-fflush.obj: fflush.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fflush.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fflush.Tpo -c -o libgnu_a-fflush.obj `if test -f 'fflush.c'; then $(CYGPATH_W) 'fflush.c'; else $(CYGPATH_W) '$(srcdir)/fflush.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fflush.Tpo $(DEPDIR)/libgnu_a-fflush.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fflush.c' object='libgnu_a-fflush.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fflush.obj `if test -f 'fflush.c'; then $(CYGPATH_W) 'fflush.c'; else $(CYGPATH_W) '$(srcdir)/fflush.c'; fi` - -libgnu_a-float.o: float.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-float.o -MD -MP -MF $(DEPDIR)/libgnu_a-float.Tpo -c -o libgnu_a-float.o `test -f 'float.c' || echo '$(srcdir)/'`float.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-float.Tpo $(DEPDIR)/libgnu_a-float.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='float.c' object='libgnu_a-float.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-float.o `test -f 'float.c' || echo '$(srcdir)/'`float.c - -libgnu_a-float.obj: float.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-float.obj -MD -MP -MF $(DEPDIR)/libgnu_a-float.Tpo -c -o libgnu_a-float.obj `if test -f 'float.c'; then $(CYGPATH_W) 'float.c'; else $(CYGPATH_W) '$(srcdir)/float.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-float.Tpo $(DEPDIR)/libgnu_a-float.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='float.c' object='libgnu_a-float.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-float.obj `if test -f 'float.c'; then $(CYGPATH_W) 'float.c'; else $(CYGPATH_W) '$(srcdir)/float.c'; fi` - -libgnu_a-itold.o: itold.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-itold.o -MD -MP -MF $(DEPDIR)/libgnu_a-itold.Tpo -c -o libgnu_a-itold.o `test -f 'itold.c' || echo '$(srcdir)/'`itold.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-itold.Tpo $(DEPDIR)/libgnu_a-itold.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='itold.c' object='libgnu_a-itold.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-itold.o `test -f 'itold.c' || echo '$(srcdir)/'`itold.c - -libgnu_a-itold.obj: itold.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-itold.obj -MD -MP -MF $(DEPDIR)/libgnu_a-itold.Tpo -c -o libgnu_a-itold.obj `if test -f 'itold.c'; then $(CYGPATH_W) 'itold.c'; else $(CYGPATH_W) '$(srcdir)/itold.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-itold.Tpo $(DEPDIR)/libgnu_a-itold.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='itold.c' object='libgnu_a-itold.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-itold.obj `if test -f 'itold.c'; then $(CYGPATH_W) 'itold.c'; else $(CYGPATH_W) '$(srcdir)/itold.c'; fi` - -libgnu_a-floorf.o: floorf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-floorf.o -MD -MP -MF $(DEPDIR)/libgnu_a-floorf.Tpo -c -o libgnu_a-floorf.o `test -f 'floorf.c' || echo '$(srcdir)/'`floorf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-floorf.Tpo $(DEPDIR)/libgnu_a-floorf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='floorf.c' object='libgnu_a-floorf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-floorf.o `test -f 'floorf.c' || echo '$(srcdir)/'`floorf.c - -libgnu_a-floorf.obj: floorf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-floorf.obj -MD -MP -MF $(DEPDIR)/libgnu_a-floorf.Tpo -c -o libgnu_a-floorf.obj `if test -f 'floorf.c'; then $(CYGPATH_W) 'floorf.c'; else $(CYGPATH_W) '$(srcdir)/floorf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-floorf.Tpo $(DEPDIR)/libgnu_a-floorf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='floorf.c' object='libgnu_a-floorf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-floorf.obj `if test -f 'floorf.c'; then $(CYGPATH_W) 'floorf.c'; else $(CYGPATH_W) '$(srcdir)/floorf.c'; fi` - -libgnu_a-fpurge.o: fpurge.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fpurge.o -MD -MP -MF $(DEPDIR)/libgnu_a-fpurge.Tpo -c -o libgnu_a-fpurge.o `test -f 'fpurge.c' || echo '$(srcdir)/'`fpurge.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fpurge.Tpo $(DEPDIR)/libgnu_a-fpurge.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fpurge.c' object='libgnu_a-fpurge.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fpurge.o `test -f 'fpurge.c' || echo '$(srcdir)/'`fpurge.c - -libgnu_a-fpurge.obj: fpurge.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fpurge.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fpurge.Tpo -c -o libgnu_a-fpurge.obj `if test -f 'fpurge.c'; then $(CYGPATH_W) 'fpurge.c'; else $(CYGPATH_W) '$(srcdir)/fpurge.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fpurge.Tpo $(DEPDIR)/libgnu_a-fpurge.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fpurge.c' object='libgnu_a-fpurge.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fpurge.obj `if test -f 'fpurge.c'; then $(CYGPATH_W) 'fpurge.c'; else $(CYGPATH_W) '$(srcdir)/fpurge.c'; fi` - -libgnu_a-freading.o: freading.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-freading.o -MD -MP -MF $(DEPDIR)/libgnu_a-freading.Tpo -c -o libgnu_a-freading.o `test -f 'freading.c' || echo '$(srcdir)/'`freading.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-freading.Tpo $(DEPDIR)/libgnu_a-freading.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='freading.c' object='libgnu_a-freading.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-freading.o `test -f 'freading.c' || echo '$(srcdir)/'`freading.c - -libgnu_a-freading.obj: freading.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-freading.obj -MD -MP -MF $(DEPDIR)/libgnu_a-freading.Tpo -c -o libgnu_a-freading.obj `if test -f 'freading.c'; then $(CYGPATH_W) 'freading.c'; else $(CYGPATH_W) '$(srcdir)/freading.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-freading.Tpo $(DEPDIR)/libgnu_a-freading.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='freading.c' object='libgnu_a-freading.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-freading.obj `if test -f 'freading.c'; then $(CYGPATH_W) 'freading.c'; else $(CYGPATH_W) '$(srcdir)/freading.c'; fi` - -libgnu_a-free.o: free.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-free.o -MD -MP -MF $(DEPDIR)/libgnu_a-free.Tpo -c -o libgnu_a-free.o `test -f 'free.c' || echo '$(srcdir)/'`free.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-free.Tpo $(DEPDIR)/libgnu_a-free.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='free.c' object='libgnu_a-free.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-free.o `test -f 'free.c' || echo '$(srcdir)/'`free.c - -libgnu_a-free.obj: free.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-free.obj -MD -MP -MF $(DEPDIR)/libgnu_a-free.Tpo -c -o libgnu_a-free.obj `if test -f 'free.c'; then $(CYGPATH_W) 'free.c'; else $(CYGPATH_W) '$(srcdir)/free.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-free.Tpo $(DEPDIR)/libgnu_a-free.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='free.c' object='libgnu_a-free.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-free.obj `if test -f 'free.c'; then $(CYGPATH_W) 'free.c'; else $(CYGPATH_W) '$(srcdir)/free.c'; fi` - -libgnu_a-fseek.o: fseek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fseek.o -MD -MP -MF $(DEPDIR)/libgnu_a-fseek.Tpo -c -o libgnu_a-fseek.o `test -f 'fseek.c' || echo '$(srcdir)/'`fseek.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fseek.Tpo $(DEPDIR)/libgnu_a-fseek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fseek.c' object='libgnu_a-fseek.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fseek.o `test -f 'fseek.c' || echo '$(srcdir)/'`fseek.c - -libgnu_a-fseek.obj: fseek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fseek.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fseek.Tpo -c -o libgnu_a-fseek.obj `if test -f 'fseek.c'; then $(CYGPATH_W) 'fseek.c'; else $(CYGPATH_W) '$(srcdir)/fseek.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fseek.Tpo $(DEPDIR)/libgnu_a-fseek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fseek.c' object='libgnu_a-fseek.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fseek.obj `if test -f 'fseek.c'; then $(CYGPATH_W) 'fseek.c'; else $(CYGPATH_W) '$(srcdir)/fseek.c'; fi` - -libgnu_a-fseeko.o: fseeko.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fseeko.o -MD -MP -MF $(DEPDIR)/libgnu_a-fseeko.Tpo -c -o libgnu_a-fseeko.o `test -f 'fseeko.c' || echo '$(srcdir)/'`fseeko.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fseeko.Tpo $(DEPDIR)/libgnu_a-fseeko.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fseeko.c' object='libgnu_a-fseeko.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fseeko.o `test -f 'fseeko.c' || echo '$(srcdir)/'`fseeko.c - -libgnu_a-fseeko.obj: fseeko.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fseeko.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fseeko.Tpo -c -o libgnu_a-fseeko.obj `if test -f 'fseeko.c'; then $(CYGPATH_W) 'fseeko.c'; else $(CYGPATH_W) '$(srcdir)/fseeko.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fseeko.Tpo $(DEPDIR)/libgnu_a-fseeko.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fseeko.c' object='libgnu_a-fseeko.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fseeko.obj `if test -f 'fseeko.c'; then $(CYGPATH_W) 'fseeko.c'; else $(CYGPATH_W) '$(srcdir)/fseeko.c'; fi` - -libgnu_a-fstat.o: fstat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fstat.o -MD -MP -MF $(DEPDIR)/libgnu_a-fstat.Tpo -c -o libgnu_a-fstat.o `test -f 'fstat.c' || echo '$(srcdir)/'`fstat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fstat.Tpo $(DEPDIR)/libgnu_a-fstat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstat.c' object='libgnu_a-fstat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fstat.o `test -f 'fstat.c' || echo '$(srcdir)/'`fstat.c - -libgnu_a-fstat.obj: fstat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fstat.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fstat.Tpo -c -o libgnu_a-fstat.obj `if test -f 'fstat.c'; then $(CYGPATH_W) 'fstat.c'; else $(CYGPATH_W) '$(srcdir)/fstat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fstat.Tpo $(DEPDIR)/libgnu_a-fstat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstat.c' object='libgnu_a-fstat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fstat.obj `if test -f 'fstat.c'; then $(CYGPATH_W) 'fstat.c'; else $(CYGPATH_W) '$(srcdir)/fstat.c'; fi` - -libgnu_a-fsusage.o: fsusage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fsusage.o -MD -MP -MF $(DEPDIR)/libgnu_a-fsusage.Tpo -c -o libgnu_a-fsusage.o `test -f 'fsusage.c' || echo '$(srcdir)/'`fsusage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fsusage.Tpo $(DEPDIR)/libgnu_a-fsusage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsusage.c' object='libgnu_a-fsusage.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fsusage.o `test -f 'fsusage.c' || echo '$(srcdir)/'`fsusage.c - -libgnu_a-fsusage.obj: fsusage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fsusage.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fsusage.Tpo -c -o libgnu_a-fsusage.obj `if test -f 'fsusage.c'; then $(CYGPATH_W) 'fsusage.c'; else $(CYGPATH_W) '$(srcdir)/fsusage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fsusage.Tpo $(DEPDIR)/libgnu_a-fsusage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsusage.c' object='libgnu_a-fsusage.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fsusage.obj `if test -f 'fsusage.c'; then $(CYGPATH_W) 'fsusage.c'; else $(CYGPATH_W) '$(srcdir)/fsusage.c'; fi` - -libgnu_a-ftell.o: ftell.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ftell.o -MD -MP -MF $(DEPDIR)/libgnu_a-ftell.Tpo -c -o libgnu_a-ftell.o `test -f 'ftell.c' || echo '$(srcdir)/'`ftell.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ftell.Tpo $(DEPDIR)/libgnu_a-ftell.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ftell.c' object='libgnu_a-ftell.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ftell.o `test -f 'ftell.c' || echo '$(srcdir)/'`ftell.c - -libgnu_a-ftell.obj: ftell.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ftell.obj -MD -MP -MF $(DEPDIR)/libgnu_a-ftell.Tpo -c -o libgnu_a-ftell.obj `if test -f 'ftell.c'; then $(CYGPATH_W) 'ftell.c'; else $(CYGPATH_W) '$(srcdir)/ftell.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ftell.Tpo $(DEPDIR)/libgnu_a-ftell.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ftell.c' object='libgnu_a-ftell.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ftell.obj `if test -f 'ftell.c'; then $(CYGPATH_W) 'ftell.c'; else $(CYGPATH_W) '$(srcdir)/ftell.c'; fi` - -libgnu_a-ftello.o: ftello.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ftello.o -MD -MP -MF $(DEPDIR)/libgnu_a-ftello.Tpo -c -o libgnu_a-ftello.o `test -f 'ftello.c' || echo '$(srcdir)/'`ftello.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ftello.Tpo $(DEPDIR)/libgnu_a-ftello.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ftello.c' object='libgnu_a-ftello.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ftello.o `test -f 'ftello.c' || echo '$(srcdir)/'`ftello.c - -libgnu_a-ftello.obj: ftello.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ftello.obj -MD -MP -MF $(DEPDIR)/libgnu_a-ftello.Tpo -c -o libgnu_a-ftello.obj `if test -f 'ftello.c'; then $(CYGPATH_W) 'ftello.c'; else $(CYGPATH_W) '$(srcdir)/ftello.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ftello.Tpo $(DEPDIR)/libgnu_a-ftello.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ftello.c' object='libgnu_a-ftello.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ftello.obj `if test -f 'ftello.c'; then $(CYGPATH_W) 'ftello.c'; else $(CYGPATH_W) '$(srcdir)/ftello.c'; fi` - -libgnu_a-getaddrinfo.o: getaddrinfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getaddrinfo.o -MD -MP -MF $(DEPDIR)/libgnu_a-getaddrinfo.Tpo -c -o libgnu_a-getaddrinfo.o `test -f 'getaddrinfo.c' || echo '$(srcdir)/'`getaddrinfo.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getaddrinfo.Tpo $(DEPDIR)/libgnu_a-getaddrinfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getaddrinfo.c' object='libgnu_a-getaddrinfo.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getaddrinfo.o `test -f 'getaddrinfo.c' || echo '$(srcdir)/'`getaddrinfo.c - -libgnu_a-getaddrinfo.obj: getaddrinfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getaddrinfo.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getaddrinfo.Tpo -c -o libgnu_a-getaddrinfo.obj `if test -f 'getaddrinfo.c'; then $(CYGPATH_W) 'getaddrinfo.c'; else $(CYGPATH_W) '$(srcdir)/getaddrinfo.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getaddrinfo.Tpo $(DEPDIR)/libgnu_a-getaddrinfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getaddrinfo.c' object='libgnu_a-getaddrinfo.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getaddrinfo.obj `if test -f 'getaddrinfo.c'; then $(CYGPATH_W) 'getaddrinfo.c'; else $(CYGPATH_W) '$(srcdir)/getaddrinfo.c'; fi` - -libgnu_a-gai_strerror.o: gai_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-gai_strerror.o -MD -MP -MF $(DEPDIR)/libgnu_a-gai_strerror.Tpo -c -o libgnu_a-gai_strerror.o `test -f 'gai_strerror.c' || echo '$(srcdir)/'`gai_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-gai_strerror.Tpo $(DEPDIR)/libgnu_a-gai_strerror.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gai_strerror.c' object='libgnu_a-gai_strerror.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-gai_strerror.o `test -f 'gai_strerror.c' || echo '$(srcdir)/'`gai_strerror.c - -libgnu_a-gai_strerror.obj: gai_strerror.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-gai_strerror.obj -MD -MP -MF $(DEPDIR)/libgnu_a-gai_strerror.Tpo -c -o libgnu_a-gai_strerror.obj `if test -f 'gai_strerror.c'; then $(CYGPATH_W) 'gai_strerror.c'; else $(CYGPATH_W) '$(srcdir)/gai_strerror.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-gai_strerror.Tpo $(DEPDIR)/libgnu_a-gai_strerror.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gai_strerror.c' object='libgnu_a-gai_strerror.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-gai_strerror.obj `if test -f 'gai_strerror.c'; then $(CYGPATH_W) 'gai_strerror.c'; else $(CYGPATH_W) '$(srcdir)/gai_strerror.c'; fi` - -libgnu_a-getdelim.o: getdelim.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getdelim.o -MD -MP -MF $(DEPDIR)/libgnu_a-getdelim.Tpo -c -o libgnu_a-getdelim.o `test -f 'getdelim.c' || echo '$(srcdir)/'`getdelim.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getdelim.Tpo $(DEPDIR)/libgnu_a-getdelim.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getdelim.c' object='libgnu_a-getdelim.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getdelim.o `test -f 'getdelim.c' || echo '$(srcdir)/'`getdelim.c - -libgnu_a-getdelim.obj: getdelim.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getdelim.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getdelim.Tpo -c -o libgnu_a-getdelim.obj `if test -f 'getdelim.c'; then $(CYGPATH_W) 'getdelim.c'; else $(CYGPATH_W) '$(srcdir)/getdelim.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getdelim.Tpo $(DEPDIR)/libgnu_a-getdelim.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getdelim.c' object='libgnu_a-getdelim.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getdelim.obj `if test -f 'getdelim.c'; then $(CYGPATH_W) 'getdelim.c'; else $(CYGPATH_W) '$(srcdir)/getdelim.c'; fi` - -libgnu_a-getdtablesize.o: getdtablesize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getdtablesize.o -MD -MP -MF $(DEPDIR)/libgnu_a-getdtablesize.Tpo -c -o libgnu_a-getdtablesize.o `test -f 'getdtablesize.c' || echo '$(srcdir)/'`getdtablesize.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getdtablesize.Tpo $(DEPDIR)/libgnu_a-getdtablesize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getdtablesize.c' object='libgnu_a-getdtablesize.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getdtablesize.o `test -f 'getdtablesize.c' || echo '$(srcdir)/'`getdtablesize.c - -libgnu_a-getdtablesize.obj: getdtablesize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getdtablesize.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getdtablesize.Tpo -c -o libgnu_a-getdtablesize.obj `if test -f 'getdtablesize.c'; then $(CYGPATH_W) 'getdtablesize.c'; else $(CYGPATH_W) '$(srcdir)/getdtablesize.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getdtablesize.Tpo $(DEPDIR)/libgnu_a-getdtablesize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getdtablesize.c' object='libgnu_a-getdtablesize.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getdtablesize.obj `if test -f 'getdtablesize.c'; then $(CYGPATH_W) 'getdtablesize.c'; else $(CYGPATH_W) '$(srcdir)/getdtablesize.c'; fi` - -libgnu_a-gethostname.o: gethostname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-gethostname.o -MD -MP -MF $(DEPDIR)/libgnu_a-gethostname.Tpo -c -o libgnu_a-gethostname.o `test -f 'gethostname.c' || echo '$(srcdir)/'`gethostname.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-gethostname.Tpo $(DEPDIR)/libgnu_a-gethostname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gethostname.c' object='libgnu_a-gethostname.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-gethostname.o `test -f 'gethostname.c' || echo '$(srcdir)/'`gethostname.c - -libgnu_a-gethostname.obj: gethostname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-gethostname.obj -MD -MP -MF $(DEPDIR)/libgnu_a-gethostname.Tpo -c -o libgnu_a-gethostname.obj `if test -f 'gethostname.c'; then $(CYGPATH_W) 'gethostname.c'; else $(CYGPATH_W) '$(srcdir)/gethostname.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-gethostname.Tpo $(DEPDIR)/libgnu_a-gethostname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gethostname.c' object='libgnu_a-gethostname.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-gethostname.obj `if test -f 'gethostname.c'; then $(CYGPATH_W) 'gethostname.c'; else $(CYGPATH_W) '$(srcdir)/gethostname.c'; fi` - -libgnu_a-getline.o: getline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getline.o -MD -MP -MF $(DEPDIR)/libgnu_a-getline.Tpo -c -o libgnu_a-getline.o `test -f 'getline.c' || echo '$(srcdir)/'`getline.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getline.Tpo $(DEPDIR)/libgnu_a-getline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getline.c' object='libgnu_a-getline.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getline.o `test -f 'getline.c' || echo '$(srcdir)/'`getline.c - -libgnu_a-getline.obj: getline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getline.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getline.Tpo -c -o libgnu_a-getline.obj `if test -f 'getline.c'; then $(CYGPATH_W) 'getline.c'; else $(CYGPATH_W) '$(srcdir)/getline.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getline.Tpo $(DEPDIR)/libgnu_a-getline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getline.c' object='libgnu_a-getline.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getline.obj `if test -f 'getline.c'; then $(CYGPATH_W) 'getline.c'; else $(CYGPATH_W) '$(srcdir)/getline.c'; fi` - -libgnu_a-getloadavg.o: getloadavg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getloadavg.o -MD -MP -MF $(DEPDIR)/libgnu_a-getloadavg.Tpo -c -o libgnu_a-getloadavg.o `test -f 'getloadavg.c' || echo '$(srcdir)/'`getloadavg.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getloadavg.Tpo $(DEPDIR)/libgnu_a-getloadavg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getloadavg.c' object='libgnu_a-getloadavg.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getloadavg.o `test -f 'getloadavg.c' || echo '$(srcdir)/'`getloadavg.c - -libgnu_a-getloadavg.obj: getloadavg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getloadavg.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getloadavg.Tpo -c -o libgnu_a-getloadavg.obj `if test -f 'getloadavg.c'; then $(CYGPATH_W) 'getloadavg.c'; else $(CYGPATH_W) '$(srcdir)/getloadavg.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getloadavg.Tpo $(DEPDIR)/libgnu_a-getloadavg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getloadavg.c' object='libgnu_a-getloadavg.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getloadavg.obj `if test -f 'getloadavg.c'; then $(CYGPATH_W) 'getloadavg.c'; else $(CYGPATH_W) '$(srcdir)/getloadavg.c'; fi` - -libgnu_a-getopt.o: getopt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getopt.o -MD -MP -MF $(DEPDIR)/libgnu_a-getopt.Tpo -c -o libgnu_a-getopt.o `test -f 'getopt.c' || echo '$(srcdir)/'`getopt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getopt.Tpo $(DEPDIR)/libgnu_a-getopt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getopt.c' object='libgnu_a-getopt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getopt.o `test -f 'getopt.c' || echo '$(srcdir)/'`getopt.c - -libgnu_a-getopt.obj: getopt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getopt.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getopt.Tpo -c -o libgnu_a-getopt.obj `if test -f 'getopt.c'; then $(CYGPATH_W) 'getopt.c'; else $(CYGPATH_W) '$(srcdir)/getopt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getopt.Tpo $(DEPDIR)/libgnu_a-getopt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getopt.c' object='libgnu_a-getopt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getopt.obj `if test -f 'getopt.c'; then $(CYGPATH_W) 'getopt.c'; else $(CYGPATH_W) '$(srcdir)/getopt.c'; fi` - -libgnu_a-getopt1.o: getopt1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getopt1.o -MD -MP -MF $(DEPDIR)/libgnu_a-getopt1.Tpo -c -o libgnu_a-getopt1.o `test -f 'getopt1.c' || echo '$(srcdir)/'`getopt1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getopt1.Tpo $(DEPDIR)/libgnu_a-getopt1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getopt1.c' object='libgnu_a-getopt1.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getopt1.o `test -f 'getopt1.c' || echo '$(srcdir)/'`getopt1.c - -libgnu_a-getopt1.obj: getopt1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getopt1.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getopt1.Tpo -c -o libgnu_a-getopt1.obj `if test -f 'getopt1.c'; then $(CYGPATH_W) 'getopt1.c'; else $(CYGPATH_W) '$(srcdir)/getopt1.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getopt1.Tpo $(DEPDIR)/libgnu_a-getopt1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getopt1.c' object='libgnu_a-getopt1.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getopt1.obj `if test -f 'getopt1.c'; then $(CYGPATH_W) 'getopt1.c'; else $(CYGPATH_W) '$(srcdir)/getopt1.c'; fi` - -libgnu_a-getprogname.o: getprogname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getprogname.o -MD -MP -MF $(DEPDIR)/libgnu_a-getprogname.Tpo -c -o libgnu_a-getprogname.o `test -f 'getprogname.c' || echo '$(srcdir)/'`getprogname.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getprogname.Tpo $(DEPDIR)/libgnu_a-getprogname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getprogname.c' object='libgnu_a-getprogname.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getprogname.o `test -f 'getprogname.c' || echo '$(srcdir)/'`getprogname.c - -libgnu_a-getprogname.obj: getprogname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-getprogname.obj -MD -MP -MF $(DEPDIR)/libgnu_a-getprogname.Tpo -c -o libgnu_a-getprogname.obj `if test -f 'getprogname.c'; then $(CYGPATH_W) 'getprogname.c'; else $(CYGPATH_W) '$(srcdir)/getprogname.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-getprogname.Tpo $(DEPDIR)/libgnu_a-getprogname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getprogname.c' object='libgnu_a-getprogname.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-getprogname.obj `if test -f 'getprogname.c'; then $(CYGPATH_W) 'getprogname.c'; else $(CYGPATH_W) '$(srcdir)/getprogname.c'; fi` - -malloc/libgnu_a-dynarray_at_failure.o: malloc/dynarray_at_failure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_at_failure.o -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Tpo -c -o malloc/libgnu_a-dynarray_at_failure.o `test -f 'malloc/dynarray_at_failure.c' || echo '$(srcdir)/'`malloc/dynarray_at_failure.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_at_failure.c' object='malloc/libgnu_a-dynarray_at_failure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_at_failure.o `test -f 'malloc/dynarray_at_failure.c' || echo '$(srcdir)/'`malloc/dynarray_at_failure.c - -malloc/libgnu_a-dynarray_at_failure.obj: malloc/dynarray_at_failure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_at_failure.obj -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Tpo -c -o malloc/libgnu_a-dynarray_at_failure.obj `if test -f 'malloc/dynarray_at_failure.c'; then $(CYGPATH_W) 'malloc/dynarray_at_failure.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_at_failure.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_at_failure.c' object='malloc/libgnu_a-dynarray_at_failure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_at_failure.obj `if test -f 'malloc/dynarray_at_failure.c'; then $(CYGPATH_W) 'malloc/dynarray_at_failure.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_at_failure.c'; fi` - -malloc/libgnu_a-dynarray_emplace_enlarge.o: malloc/dynarray_emplace_enlarge.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_emplace_enlarge.o -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Tpo -c -o malloc/libgnu_a-dynarray_emplace_enlarge.o `test -f 'malloc/dynarray_emplace_enlarge.c' || echo '$(srcdir)/'`malloc/dynarray_emplace_enlarge.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_emplace_enlarge.c' object='malloc/libgnu_a-dynarray_emplace_enlarge.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_emplace_enlarge.o `test -f 'malloc/dynarray_emplace_enlarge.c' || echo '$(srcdir)/'`malloc/dynarray_emplace_enlarge.c - -malloc/libgnu_a-dynarray_emplace_enlarge.obj: malloc/dynarray_emplace_enlarge.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_emplace_enlarge.obj -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Tpo -c -o malloc/libgnu_a-dynarray_emplace_enlarge.obj `if test -f 'malloc/dynarray_emplace_enlarge.c'; then $(CYGPATH_W) 'malloc/dynarray_emplace_enlarge.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_emplace_enlarge.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_emplace_enlarge.c' object='malloc/libgnu_a-dynarray_emplace_enlarge.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_emplace_enlarge.obj `if test -f 'malloc/dynarray_emplace_enlarge.c'; then $(CYGPATH_W) 'malloc/dynarray_emplace_enlarge.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_emplace_enlarge.c'; fi` - -malloc/libgnu_a-dynarray_finalize.o: malloc/dynarray_finalize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_finalize.o -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Tpo -c -o malloc/libgnu_a-dynarray_finalize.o `test -f 'malloc/dynarray_finalize.c' || echo '$(srcdir)/'`malloc/dynarray_finalize.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_finalize.c' object='malloc/libgnu_a-dynarray_finalize.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_finalize.o `test -f 'malloc/dynarray_finalize.c' || echo '$(srcdir)/'`malloc/dynarray_finalize.c - -malloc/libgnu_a-dynarray_finalize.obj: malloc/dynarray_finalize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_finalize.obj -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Tpo -c -o malloc/libgnu_a-dynarray_finalize.obj `if test -f 'malloc/dynarray_finalize.c'; then $(CYGPATH_W) 'malloc/dynarray_finalize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_finalize.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_finalize.c' object='malloc/libgnu_a-dynarray_finalize.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_finalize.obj `if test -f 'malloc/dynarray_finalize.c'; then $(CYGPATH_W) 'malloc/dynarray_finalize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_finalize.c'; fi` - -malloc/libgnu_a-dynarray_resize.o: malloc/dynarray_resize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_resize.o -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Tpo -c -o malloc/libgnu_a-dynarray_resize.o `test -f 'malloc/dynarray_resize.c' || echo '$(srcdir)/'`malloc/dynarray_resize.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_resize.c' object='malloc/libgnu_a-dynarray_resize.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_resize.o `test -f 'malloc/dynarray_resize.c' || echo '$(srcdir)/'`malloc/dynarray_resize.c - -malloc/libgnu_a-dynarray_resize.obj: malloc/dynarray_resize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_resize.obj -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Tpo -c -o malloc/libgnu_a-dynarray_resize.obj `if test -f 'malloc/dynarray_resize.c'; then $(CYGPATH_W) 'malloc/dynarray_resize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_resize.c' object='malloc/libgnu_a-dynarray_resize.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_resize.obj `if test -f 'malloc/dynarray_resize.c'; then $(CYGPATH_W) 'malloc/dynarray_resize.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize.c'; fi` - -malloc/libgnu_a-dynarray_resize_clear.o: malloc/dynarray_resize_clear.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_resize_clear.o -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Tpo -c -o malloc/libgnu_a-dynarray_resize_clear.o `test -f 'malloc/dynarray_resize_clear.c' || echo '$(srcdir)/'`malloc/dynarray_resize_clear.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_resize_clear.c' object='malloc/libgnu_a-dynarray_resize_clear.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_resize_clear.o `test -f 'malloc/dynarray_resize_clear.c' || echo '$(srcdir)/'`malloc/dynarray_resize_clear.c - -malloc/libgnu_a-dynarray_resize_clear.obj: malloc/dynarray_resize_clear.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray_resize_clear.obj -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Tpo -c -o malloc/libgnu_a-dynarray_resize_clear.obj `if test -f 'malloc/dynarray_resize_clear.c'; then $(CYGPATH_W) 'malloc/dynarray_resize_clear.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize_clear.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray_resize_clear.c' object='malloc/libgnu_a-dynarray_resize_clear.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray_resize_clear.obj `if test -f 'malloc/dynarray_resize_clear.c'; then $(CYGPATH_W) 'malloc/dynarray_resize_clear.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray_resize_clear.c'; fi` - -libgnu_a-hard-locale.o: hard-locale.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-hard-locale.o -MD -MP -MF $(DEPDIR)/libgnu_a-hard-locale.Tpo -c -o libgnu_a-hard-locale.o `test -f 'hard-locale.c' || echo '$(srcdir)/'`hard-locale.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-hard-locale.Tpo $(DEPDIR)/libgnu_a-hard-locale.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hard-locale.c' object='libgnu_a-hard-locale.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-hard-locale.o `test -f 'hard-locale.c' || echo '$(srcdir)/'`hard-locale.c - -libgnu_a-hard-locale.obj: hard-locale.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-hard-locale.obj -MD -MP -MF $(DEPDIR)/libgnu_a-hard-locale.Tpo -c -o libgnu_a-hard-locale.obj `if test -f 'hard-locale.c'; then $(CYGPATH_W) 'hard-locale.c'; else $(CYGPATH_W) '$(srcdir)/hard-locale.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-hard-locale.Tpo $(DEPDIR)/libgnu_a-hard-locale.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hard-locale.c' object='libgnu_a-hard-locale.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-hard-locale.obj `if test -f 'hard-locale.c'; then $(CYGPATH_W) 'hard-locale.c'; else $(CYGPATH_W) '$(srcdir)/hard-locale.c'; fi` - -libgnu_a-ialloc.o: ialloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ialloc.o -MD -MP -MF $(DEPDIR)/libgnu_a-ialloc.Tpo -c -o libgnu_a-ialloc.o `test -f 'ialloc.c' || echo '$(srcdir)/'`ialloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ialloc.Tpo $(DEPDIR)/libgnu_a-ialloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ialloc.c' object='libgnu_a-ialloc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ialloc.o `test -f 'ialloc.c' || echo '$(srcdir)/'`ialloc.c - -libgnu_a-ialloc.obj: ialloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-ialloc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-ialloc.Tpo -c -o libgnu_a-ialloc.obj `if test -f 'ialloc.c'; then $(CYGPATH_W) 'ialloc.c'; else $(CYGPATH_W) '$(srcdir)/ialloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-ialloc.Tpo $(DEPDIR)/libgnu_a-ialloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ialloc.c' object='libgnu_a-ialloc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-ialloc.obj `if test -f 'ialloc.c'; then $(CYGPATH_W) 'ialloc.c'; else $(CYGPATH_W) '$(srcdir)/ialloc.c'; fi` - -libgnu_a-idpriv-droptemp.o: idpriv-droptemp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-idpriv-droptemp.o -MD -MP -MF $(DEPDIR)/libgnu_a-idpriv-droptemp.Tpo -c -o libgnu_a-idpriv-droptemp.o `test -f 'idpriv-droptemp.c' || echo '$(srcdir)/'`idpriv-droptemp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-idpriv-droptemp.Tpo $(DEPDIR)/libgnu_a-idpriv-droptemp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='idpriv-droptemp.c' object='libgnu_a-idpriv-droptemp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-idpriv-droptemp.o `test -f 'idpriv-droptemp.c' || echo '$(srcdir)/'`idpriv-droptemp.c - -libgnu_a-idpriv-droptemp.obj: idpriv-droptemp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-idpriv-droptemp.obj -MD -MP -MF $(DEPDIR)/libgnu_a-idpriv-droptemp.Tpo -c -o libgnu_a-idpriv-droptemp.obj `if test -f 'idpriv-droptemp.c'; then $(CYGPATH_W) 'idpriv-droptemp.c'; else $(CYGPATH_W) '$(srcdir)/idpriv-droptemp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-idpriv-droptemp.Tpo $(DEPDIR)/libgnu_a-idpriv-droptemp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='idpriv-droptemp.c' object='libgnu_a-idpriv-droptemp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-idpriv-droptemp.obj `if test -f 'idpriv-droptemp.c'; then $(CYGPATH_W) 'idpriv-droptemp.c'; else $(CYGPATH_W) '$(srcdir)/idpriv-droptemp.c'; fi` - -libgnu_a-inet_ntop.o: inet_ntop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-inet_ntop.o -MD -MP -MF $(DEPDIR)/libgnu_a-inet_ntop.Tpo -c -o libgnu_a-inet_ntop.o `test -f 'inet_ntop.c' || echo '$(srcdir)/'`inet_ntop.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-inet_ntop.Tpo $(DEPDIR)/libgnu_a-inet_ntop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inet_ntop.c' object='libgnu_a-inet_ntop.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-inet_ntop.o `test -f 'inet_ntop.c' || echo '$(srcdir)/'`inet_ntop.c - -libgnu_a-inet_ntop.obj: inet_ntop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-inet_ntop.obj -MD -MP -MF $(DEPDIR)/libgnu_a-inet_ntop.Tpo -c -o libgnu_a-inet_ntop.obj `if test -f 'inet_ntop.c'; then $(CYGPATH_W) 'inet_ntop.c'; else $(CYGPATH_W) '$(srcdir)/inet_ntop.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-inet_ntop.Tpo $(DEPDIR)/libgnu_a-inet_ntop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inet_ntop.c' object='libgnu_a-inet_ntop.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-inet_ntop.obj `if test -f 'inet_ntop.c'; then $(CYGPATH_W) 'inet_ntop.c'; else $(CYGPATH_W) '$(srcdir)/inet_ntop.c'; fi` - -libgnu_a-localcharset.o: localcharset.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-localcharset.o -MD -MP -MF $(DEPDIR)/libgnu_a-localcharset.Tpo -c -o libgnu_a-localcharset.o `test -f 'localcharset.c' || echo '$(srcdir)/'`localcharset.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-localcharset.Tpo $(DEPDIR)/libgnu_a-localcharset.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='localcharset.c' object='libgnu_a-localcharset.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-localcharset.o `test -f 'localcharset.c' || echo '$(srcdir)/'`localcharset.c - -libgnu_a-localcharset.obj: localcharset.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-localcharset.obj -MD -MP -MF $(DEPDIR)/libgnu_a-localcharset.Tpo -c -o libgnu_a-localcharset.obj `if test -f 'localcharset.c'; then $(CYGPATH_W) 'localcharset.c'; else $(CYGPATH_W) '$(srcdir)/localcharset.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-localcharset.Tpo $(DEPDIR)/libgnu_a-localcharset.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='localcharset.c' object='libgnu_a-localcharset.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-localcharset.obj `if test -f 'localcharset.c'; then $(CYGPATH_W) 'localcharset.c'; else $(CYGPATH_W) '$(srcdir)/localcharset.c'; fi` - -libgnu_a-localeconv.o: localeconv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-localeconv.o -MD -MP -MF $(DEPDIR)/libgnu_a-localeconv.Tpo -c -o libgnu_a-localeconv.o `test -f 'localeconv.c' || echo '$(srcdir)/'`localeconv.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-localeconv.Tpo $(DEPDIR)/libgnu_a-localeconv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='localeconv.c' object='libgnu_a-localeconv.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-localeconv.o `test -f 'localeconv.c' || echo '$(srcdir)/'`localeconv.c - -libgnu_a-localeconv.obj: localeconv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-localeconv.obj -MD -MP -MF $(DEPDIR)/libgnu_a-localeconv.Tpo -c -o libgnu_a-localeconv.obj `if test -f 'localeconv.c'; then $(CYGPATH_W) 'localeconv.c'; else $(CYGPATH_W) '$(srcdir)/localeconv.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-localeconv.Tpo $(DEPDIR)/libgnu_a-localeconv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='localeconv.c' object='libgnu_a-localeconv.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-localeconv.obj `if test -f 'localeconv.c'; then $(CYGPATH_W) 'localeconv.c'; else $(CYGPATH_W) '$(srcdir)/localeconv.c'; fi` - -glthread/libgnu_a-lock.o: glthread/lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT glthread/libgnu_a-lock.o -MD -MP -MF glthread/$(DEPDIR)/libgnu_a-lock.Tpo -c -o glthread/libgnu_a-lock.o `test -f 'glthread/lock.c' || echo '$(srcdir)/'`glthread/lock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libgnu_a-lock.Tpo glthread/$(DEPDIR)/libgnu_a-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='glthread/lock.c' object='glthread/libgnu_a-lock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o glthread/libgnu_a-lock.o `test -f 'glthread/lock.c' || echo '$(srcdir)/'`glthread/lock.c - -glthread/libgnu_a-lock.obj: glthread/lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT glthread/libgnu_a-lock.obj -MD -MP -MF glthread/$(DEPDIR)/libgnu_a-lock.Tpo -c -o glthread/libgnu_a-lock.obj `if test -f 'glthread/lock.c'; then $(CYGPATH_W) 'glthread/lock.c'; else $(CYGPATH_W) '$(srcdir)/glthread/lock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libgnu_a-lock.Tpo glthread/$(DEPDIR)/libgnu_a-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='glthread/lock.c' object='glthread/libgnu_a-lock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o glthread/libgnu_a-lock.obj `if test -f 'glthread/lock.c'; then $(CYGPATH_W) 'glthread/lock.c'; else $(CYGPATH_W) '$(srcdir)/glthread/lock.c'; fi` - -libgnu_a-lseek.o: lseek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-lseek.o -MD -MP -MF $(DEPDIR)/libgnu_a-lseek.Tpo -c -o libgnu_a-lseek.o `test -f 'lseek.c' || echo '$(srcdir)/'`lseek.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-lseek.Tpo $(DEPDIR)/libgnu_a-lseek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lseek.c' object='libgnu_a-lseek.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-lseek.o `test -f 'lseek.c' || echo '$(srcdir)/'`lseek.c - -libgnu_a-lseek.obj: lseek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-lseek.obj -MD -MP -MF $(DEPDIR)/libgnu_a-lseek.Tpo -c -o libgnu_a-lseek.obj `if test -f 'lseek.c'; then $(CYGPATH_W) 'lseek.c'; else $(CYGPATH_W) '$(srcdir)/lseek.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-lseek.Tpo $(DEPDIR)/libgnu_a-lseek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lseek.c' object='libgnu_a-lseek.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-lseek.obj `if test -f 'lseek.c'; then $(CYGPATH_W) 'lseek.c'; else $(CYGPATH_W) '$(srcdir)/lseek.c'; fi` - -libgnu_a-malloca.o: malloca.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-malloca.o -MD -MP -MF $(DEPDIR)/libgnu_a-malloca.Tpo -c -o libgnu_a-malloca.o `test -f 'malloca.c' || echo '$(srcdir)/'`malloca.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-malloca.Tpo $(DEPDIR)/libgnu_a-malloca.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloca.c' object='libgnu_a-malloca.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-malloca.o `test -f 'malloca.c' || echo '$(srcdir)/'`malloca.c - -libgnu_a-malloca.obj: malloca.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-malloca.obj -MD -MP -MF $(DEPDIR)/libgnu_a-malloca.Tpo -c -o libgnu_a-malloca.obj `if test -f 'malloca.c'; then $(CYGPATH_W) 'malloca.c'; else $(CYGPATH_W) '$(srcdir)/malloca.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-malloca.Tpo $(DEPDIR)/libgnu_a-malloca.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloca.c' object='libgnu_a-malloca.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-malloca.obj `if test -f 'malloca.c'; then $(CYGPATH_W) 'malloca.c'; else $(CYGPATH_W) '$(srcdir)/malloca.c'; fi` - -libgnu_a-math.o: math.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-math.o -MD -MP -MF $(DEPDIR)/libgnu_a-math.Tpo -c -o libgnu_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-math.Tpo $(DEPDIR)/libgnu_a-math.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libgnu_a-math.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c - -libgnu_a-math.obj: math.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-math.obj -MD -MP -MF $(DEPDIR)/libgnu_a-math.Tpo -c -o libgnu_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-math.Tpo $(DEPDIR)/libgnu_a-math.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libgnu_a-math.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi` - -libgnu_a-mbrtowc.o: mbrtowc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbrtowc.o -MD -MP -MF $(DEPDIR)/libgnu_a-mbrtowc.Tpo -c -o libgnu_a-mbrtowc.o `test -f 'mbrtowc.c' || echo '$(srcdir)/'`mbrtowc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbrtowc.Tpo $(DEPDIR)/libgnu_a-mbrtowc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbrtowc.c' object='libgnu_a-mbrtowc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbrtowc.o `test -f 'mbrtowc.c' || echo '$(srcdir)/'`mbrtowc.c - -libgnu_a-mbrtowc.obj: mbrtowc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbrtowc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-mbrtowc.Tpo -c -o libgnu_a-mbrtowc.obj `if test -f 'mbrtowc.c'; then $(CYGPATH_W) 'mbrtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbrtowc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbrtowc.Tpo $(DEPDIR)/libgnu_a-mbrtowc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbrtowc.c' object='libgnu_a-mbrtowc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbrtowc.obj `if test -f 'mbrtowc.c'; then $(CYGPATH_W) 'mbrtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbrtowc.c'; fi` - -libgnu_a-mbsinit.o: mbsinit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbsinit.o -MD -MP -MF $(DEPDIR)/libgnu_a-mbsinit.Tpo -c -o libgnu_a-mbsinit.o `test -f 'mbsinit.c' || echo '$(srcdir)/'`mbsinit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbsinit.Tpo $(DEPDIR)/libgnu_a-mbsinit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbsinit.c' object='libgnu_a-mbsinit.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbsinit.o `test -f 'mbsinit.c' || echo '$(srcdir)/'`mbsinit.c - -libgnu_a-mbsinit.obj: mbsinit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbsinit.obj -MD -MP -MF $(DEPDIR)/libgnu_a-mbsinit.Tpo -c -o libgnu_a-mbsinit.obj `if test -f 'mbsinit.c'; then $(CYGPATH_W) 'mbsinit.c'; else $(CYGPATH_W) '$(srcdir)/mbsinit.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbsinit.Tpo $(DEPDIR)/libgnu_a-mbsinit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbsinit.c' object='libgnu_a-mbsinit.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbsinit.obj `if test -f 'mbsinit.c'; then $(CYGPATH_W) 'mbsinit.c'; else $(CYGPATH_W) '$(srcdir)/mbsinit.c'; fi` - -libgnu_a-mbtowc.o: mbtowc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbtowc.o -MD -MP -MF $(DEPDIR)/libgnu_a-mbtowc.Tpo -c -o libgnu_a-mbtowc.o `test -f 'mbtowc.c' || echo '$(srcdir)/'`mbtowc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbtowc.Tpo $(DEPDIR)/libgnu_a-mbtowc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbtowc.c' object='libgnu_a-mbtowc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbtowc.o `test -f 'mbtowc.c' || echo '$(srcdir)/'`mbtowc.c - -libgnu_a-mbtowc.obj: mbtowc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbtowc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-mbtowc.Tpo -c -o libgnu_a-mbtowc.obj `if test -f 'mbtowc.c'; then $(CYGPATH_W) 'mbtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbtowc.Tpo $(DEPDIR)/libgnu_a-mbtowc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbtowc.c' object='libgnu_a-mbtowc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbtowc.obj `if test -f 'mbtowc.c'; then $(CYGPATH_W) 'mbtowc.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc.c'; fi` - -libgnu_a-memchr.o: memchr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-memchr.o -MD -MP -MF $(DEPDIR)/libgnu_a-memchr.Tpo -c -o libgnu_a-memchr.o `test -f 'memchr.c' || echo '$(srcdir)/'`memchr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-memchr.Tpo $(DEPDIR)/libgnu_a-memchr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memchr.c' object='libgnu_a-memchr.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-memchr.o `test -f 'memchr.c' || echo '$(srcdir)/'`memchr.c - -libgnu_a-memchr.obj: memchr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-memchr.obj -MD -MP -MF $(DEPDIR)/libgnu_a-memchr.Tpo -c -o libgnu_a-memchr.obj `if test -f 'memchr.c'; then $(CYGPATH_W) 'memchr.c'; else $(CYGPATH_W) '$(srcdir)/memchr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-memchr.Tpo $(DEPDIR)/libgnu_a-memchr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memchr.c' object='libgnu_a-memchr.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-memchr.obj `if test -f 'memchr.c'; then $(CYGPATH_W) 'memchr.c'; else $(CYGPATH_W) '$(srcdir)/memchr.c'; fi` - -libgnu_a-mountlist.o: mountlist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mountlist.o -MD -MP -MF $(DEPDIR)/libgnu_a-mountlist.Tpo -c -o libgnu_a-mountlist.o `test -f 'mountlist.c' || echo '$(srcdir)/'`mountlist.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mountlist.Tpo $(DEPDIR)/libgnu_a-mountlist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mountlist.c' object='libgnu_a-mountlist.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mountlist.o `test -f 'mountlist.c' || echo '$(srcdir)/'`mountlist.c - -libgnu_a-mountlist.obj: mountlist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mountlist.obj -MD -MP -MF $(DEPDIR)/libgnu_a-mountlist.Tpo -c -o libgnu_a-mountlist.obj `if test -f 'mountlist.c'; then $(CYGPATH_W) 'mountlist.c'; else $(CYGPATH_W) '$(srcdir)/mountlist.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mountlist.Tpo $(DEPDIR)/libgnu_a-mountlist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mountlist.c' object='libgnu_a-mountlist.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mountlist.obj `if test -f 'mountlist.c'; then $(CYGPATH_W) 'mountlist.c'; else $(CYGPATH_W) '$(srcdir)/mountlist.c'; fi` - -libgnu_a-msvc-inval.o: msvc-inval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-msvc-inval.o -MD -MP -MF $(DEPDIR)/libgnu_a-msvc-inval.Tpo -c -o libgnu_a-msvc-inval.o `test -f 'msvc-inval.c' || echo '$(srcdir)/'`msvc-inval.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-msvc-inval.Tpo $(DEPDIR)/libgnu_a-msvc-inval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msvc-inval.c' object='libgnu_a-msvc-inval.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-msvc-inval.o `test -f 'msvc-inval.c' || echo '$(srcdir)/'`msvc-inval.c - -libgnu_a-msvc-inval.obj: msvc-inval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-msvc-inval.obj -MD -MP -MF $(DEPDIR)/libgnu_a-msvc-inval.Tpo -c -o libgnu_a-msvc-inval.obj `if test -f 'msvc-inval.c'; then $(CYGPATH_W) 'msvc-inval.c'; else $(CYGPATH_W) '$(srcdir)/msvc-inval.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-msvc-inval.Tpo $(DEPDIR)/libgnu_a-msvc-inval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msvc-inval.c' object='libgnu_a-msvc-inval.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-msvc-inval.obj `if test -f 'msvc-inval.c'; then $(CYGPATH_W) 'msvc-inval.c'; else $(CYGPATH_W) '$(srcdir)/msvc-inval.c'; fi` - -libgnu_a-msvc-nothrow.o: msvc-nothrow.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-msvc-nothrow.o -MD -MP -MF $(DEPDIR)/libgnu_a-msvc-nothrow.Tpo -c -o libgnu_a-msvc-nothrow.o `test -f 'msvc-nothrow.c' || echo '$(srcdir)/'`msvc-nothrow.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-msvc-nothrow.Tpo $(DEPDIR)/libgnu_a-msvc-nothrow.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msvc-nothrow.c' object='libgnu_a-msvc-nothrow.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-msvc-nothrow.o `test -f 'msvc-nothrow.c' || echo '$(srcdir)/'`msvc-nothrow.c - -libgnu_a-msvc-nothrow.obj: msvc-nothrow.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-msvc-nothrow.obj -MD -MP -MF $(DEPDIR)/libgnu_a-msvc-nothrow.Tpo -c -o libgnu_a-msvc-nothrow.obj `if test -f 'msvc-nothrow.c'; then $(CYGPATH_W) 'msvc-nothrow.c'; else $(CYGPATH_W) '$(srcdir)/msvc-nothrow.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-msvc-nothrow.Tpo $(DEPDIR)/libgnu_a-msvc-nothrow.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msvc-nothrow.c' object='libgnu_a-msvc-nothrow.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-msvc-nothrow.obj `if test -f 'msvc-nothrow.c'; then $(CYGPATH_W) 'msvc-nothrow.c'; else $(CYGPATH_W) '$(srcdir)/msvc-nothrow.c'; fi` - -libgnu_a-nl_langinfo.o: nl_langinfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-nl_langinfo.o -MD -MP -MF $(DEPDIR)/libgnu_a-nl_langinfo.Tpo -c -o libgnu_a-nl_langinfo.o `test -f 'nl_langinfo.c' || echo '$(srcdir)/'`nl_langinfo.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-nl_langinfo.Tpo $(DEPDIR)/libgnu_a-nl_langinfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nl_langinfo.c' object='libgnu_a-nl_langinfo.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-nl_langinfo.o `test -f 'nl_langinfo.c' || echo '$(srcdir)/'`nl_langinfo.c - -libgnu_a-nl_langinfo.obj: nl_langinfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-nl_langinfo.obj -MD -MP -MF $(DEPDIR)/libgnu_a-nl_langinfo.Tpo -c -o libgnu_a-nl_langinfo.obj `if test -f 'nl_langinfo.c'; then $(CYGPATH_W) 'nl_langinfo.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-nl_langinfo.Tpo $(DEPDIR)/libgnu_a-nl_langinfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nl_langinfo.c' object='libgnu_a-nl_langinfo.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-nl_langinfo.obj `if test -f 'nl_langinfo.c'; then $(CYGPATH_W) 'nl_langinfo.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo.c'; fi` - -libgnu_a-nl_langinfo-lock.o: nl_langinfo-lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-nl_langinfo-lock.o -MD -MP -MF $(DEPDIR)/libgnu_a-nl_langinfo-lock.Tpo -c -o libgnu_a-nl_langinfo-lock.o `test -f 'nl_langinfo-lock.c' || echo '$(srcdir)/'`nl_langinfo-lock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-nl_langinfo-lock.Tpo $(DEPDIR)/libgnu_a-nl_langinfo-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nl_langinfo-lock.c' object='libgnu_a-nl_langinfo-lock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-nl_langinfo-lock.o `test -f 'nl_langinfo-lock.c' || echo '$(srcdir)/'`nl_langinfo-lock.c - -libgnu_a-nl_langinfo-lock.obj: nl_langinfo-lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-nl_langinfo-lock.obj -MD -MP -MF $(DEPDIR)/libgnu_a-nl_langinfo-lock.Tpo -c -o libgnu_a-nl_langinfo-lock.obj `if test -f 'nl_langinfo-lock.c'; then $(CYGPATH_W) 'nl_langinfo-lock.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo-lock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-nl_langinfo-lock.Tpo $(DEPDIR)/libgnu_a-nl_langinfo-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nl_langinfo-lock.c' object='libgnu_a-nl_langinfo-lock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-nl_langinfo-lock.obj `if test -f 'nl_langinfo-lock.c'; then $(CYGPATH_W) 'nl_langinfo-lock.c'; else $(CYGPATH_W) '$(srcdir)/nl_langinfo-lock.c'; fi` - -libgnu_a-open.o: open.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-open.o -MD -MP -MF $(DEPDIR)/libgnu_a-open.Tpo -c -o libgnu_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-open.Tpo $(DEPDIR)/libgnu_a-open.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open.c' object='libgnu_a-open.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c - -libgnu_a-open.obj: open.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-open.obj -MD -MP -MF $(DEPDIR)/libgnu_a-open.Tpo -c -o libgnu_a-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-open.Tpo $(DEPDIR)/libgnu_a-open.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open.c' object='libgnu_a-open.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi` - -libgnu_a-reallocarray.o: reallocarray.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-reallocarray.o -MD -MP -MF $(DEPDIR)/libgnu_a-reallocarray.Tpo -c -o libgnu_a-reallocarray.o `test -f 'reallocarray.c' || echo '$(srcdir)/'`reallocarray.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-reallocarray.Tpo $(DEPDIR)/libgnu_a-reallocarray.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='reallocarray.c' object='libgnu_a-reallocarray.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-reallocarray.o `test -f 'reallocarray.c' || echo '$(srcdir)/'`reallocarray.c - -libgnu_a-reallocarray.obj: reallocarray.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-reallocarray.obj -MD -MP -MF $(DEPDIR)/libgnu_a-reallocarray.Tpo -c -o libgnu_a-reallocarray.obj `if test -f 'reallocarray.c'; then $(CYGPATH_W) 'reallocarray.c'; else $(CYGPATH_W) '$(srcdir)/reallocarray.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-reallocarray.Tpo $(DEPDIR)/libgnu_a-reallocarray.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='reallocarray.c' object='libgnu_a-reallocarray.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-reallocarray.obj `if test -f 'reallocarray.c'; then $(CYGPATH_W) 'reallocarray.c'; else $(CYGPATH_W) '$(srcdir)/reallocarray.c'; fi` - -libgnu_a-regex.o: regex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regex.o -MD -MP -MF $(DEPDIR)/libgnu_a-regex.Tpo -c -o libgnu_a-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regex.Tpo $(DEPDIR)/libgnu_a-regex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='libgnu_a-regex.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regex.o `test -f 'regex.c' || echo '$(srcdir)/'`regex.c - -libgnu_a-regex.obj: regex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regex.obj -MD -MP -MF $(DEPDIR)/libgnu_a-regex.Tpo -c -o libgnu_a-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regex.Tpo $(DEPDIR)/libgnu_a-regex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex.c' object='libgnu_a-regex.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regex.obj `if test -f 'regex.c'; then $(CYGPATH_W) 'regex.c'; else $(CYGPATH_W) '$(srcdir)/regex.c'; fi` - -libgnu_a-setenv.o: setenv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-setenv.o -MD -MP -MF $(DEPDIR)/libgnu_a-setenv.Tpo -c -o libgnu_a-setenv.o `test -f 'setenv.c' || echo '$(srcdir)/'`setenv.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-setenv.Tpo $(DEPDIR)/libgnu_a-setenv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setenv.c' object='libgnu_a-setenv.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-setenv.o `test -f 'setenv.c' || echo '$(srcdir)/'`setenv.c - -libgnu_a-setenv.obj: setenv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-setenv.obj -MD -MP -MF $(DEPDIR)/libgnu_a-setenv.Tpo -c -o libgnu_a-setenv.obj `if test -f 'setenv.c'; then $(CYGPATH_W) 'setenv.c'; else $(CYGPATH_W) '$(srcdir)/setenv.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-setenv.Tpo $(DEPDIR)/libgnu_a-setenv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setenv.c' object='libgnu_a-setenv.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-setenv.obj `if test -f 'setenv.c'; then $(CYGPATH_W) 'setenv.c'; else $(CYGPATH_W) '$(srcdir)/setenv.c'; fi` - -libgnu_a-setlocale_null.o: setlocale_null.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-setlocale_null.o -MD -MP -MF $(DEPDIR)/libgnu_a-setlocale_null.Tpo -c -o libgnu_a-setlocale_null.o `test -f 'setlocale_null.c' || echo '$(srcdir)/'`setlocale_null.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-setlocale_null.Tpo $(DEPDIR)/libgnu_a-setlocale_null.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setlocale_null.c' object='libgnu_a-setlocale_null.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-setlocale_null.o `test -f 'setlocale_null.c' || echo '$(srcdir)/'`setlocale_null.c - -libgnu_a-setlocale_null.obj: setlocale_null.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-setlocale_null.obj -MD -MP -MF $(DEPDIR)/libgnu_a-setlocale_null.Tpo -c -o libgnu_a-setlocale_null.obj `if test -f 'setlocale_null.c'; then $(CYGPATH_W) 'setlocale_null.c'; else $(CYGPATH_W) '$(srcdir)/setlocale_null.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-setlocale_null.Tpo $(DEPDIR)/libgnu_a-setlocale_null.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setlocale_null.c' object='libgnu_a-setlocale_null.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-setlocale_null.obj `if test -f 'setlocale_null.c'; then $(CYGPATH_W) 'setlocale_null.c'; else $(CYGPATH_W) '$(srcdir)/setlocale_null.c'; fi` - -libgnu_a-setlocale-lock.o: setlocale-lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-setlocale-lock.o -MD -MP -MF $(DEPDIR)/libgnu_a-setlocale-lock.Tpo -c -o libgnu_a-setlocale-lock.o `test -f 'setlocale-lock.c' || echo '$(srcdir)/'`setlocale-lock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-setlocale-lock.Tpo $(DEPDIR)/libgnu_a-setlocale-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setlocale-lock.c' object='libgnu_a-setlocale-lock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-setlocale-lock.o `test -f 'setlocale-lock.c' || echo '$(srcdir)/'`setlocale-lock.c - -libgnu_a-setlocale-lock.obj: setlocale-lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-setlocale-lock.obj -MD -MP -MF $(DEPDIR)/libgnu_a-setlocale-lock.Tpo -c -o libgnu_a-setlocale-lock.obj `if test -f 'setlocale-lock.c'; then $(CYGPATH_W) 'setlocale-lock.c'; else $(CYGPATH_W) '$(srcdir)/setlocale-lock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-setlocale-lock.Tpo $(DEPDIR)/libgnu_a-setlocale-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='setlocale-lock.c' object='libgnu_a-setlocale-lock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-setlocale-lock.obj `if test -f 'setlocale-lock.c'; then $(CYGPATH_W) 'setlocale-lock.c'; else $(CYGPATH_W) '$(srcdir)/setlocale-lock.c'; fi` - -libgnu_a-sockets.o: sockets.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sockets.o -MD -MP -MF $(DEPDIR)/libgnu_a-sockets.Tpo -c -o libgnu_a-sockets.o `test -f 'sockets.c' || echo '$(srcdir)/'`sockets.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sockets.Tpo $(DEPDIR)/libgnu_a-sockets.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sockets.c' object='libgnu_a-sockets.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sockets.o `test -f 'sockets.c' || echo '$(srcdir)/'`sockets.c - -libgnu_a-sockets.obj: sockets.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sockets.obj -MD -MP -MF $(DEPDIR)/libgnu_a-sockets.Tpo -c -o libgnu_a-sockets.obj `if test -f 'sockets.c'; then $(CYGPATH_W) 'sockets.c'; else $(CYGPATH_W) '$(srcdir)/sockets.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sockets.Tpo $(DEPDIR)/libgnu_a-sockets.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sockets.c' object='libgnu_a-sockets.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sockets.obj `if test -f 'sockets.c'; then $(CYGPATH_W) 'sockets.c'; else $(CYGPATH_W) '$(srcdir)/sockets.c'; fi` - -libgnu_a-stat.o: stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stat.o -MD -MP -MF $(DEPDIR)/libgnu_a-stat.Tpo -c -o libgnu_a-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stat.Tpo $(DEPDIR)/libgnu_a-stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat.c' object='libgnu_a-stat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c - -libgnu_a-stat.obj: stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stat.obj -MD -MP -MF $(DEPDIR)/libgnu_a-stat.Tpo -c -o libgnu_a-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stat.Tpo $(DEPDIR)/libgnu_a-stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat.c' object='libgnu_a-stat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` - -libgnu_a-stat-time.o: stat-time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stat-time.o -MD -MP -MF $(DEPDIR)/libgnu_a-stat-time.Tpo -c -o libgnu_a-stat-time.o `test -f 'stat-time.c' || echo '$(srcdir)/'`stat-time.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stat-time.Tpo $(DEPDIR)/libgnu_a-stat-time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat-time.c' object='libgnu_a-stat-time.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stat-time.o `test -f 'stat-time.c' || echo '$(srcdir)/'`stat-time.c - -libgnu_a-stat-time.obj: stat-time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stat-time.obj -MD -MP -MF $(DEPDIR)/libgnu_a-stat-time.Tpo -c -o libgnu_a-stat-time.obj `if test -f 'stat-time.c'; then $(CYGPATH_W) 'stat-time.c'; else $(CYGPATH_W) '$(srcdir)/stat-time.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stat-time.Tpo $(DEPDIR)/libgnu_a-stat-time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat-time.c' object='libgnu_a-stat-time.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stat-time.obj `if test -f 'stat-time.c'; then $(CYGPATH_W) 'stat-time.c'; else $(CYGPATH_W) '$(srcdir)/stat-time.c'; fi` - -libgnu_a-stdio-read.o: stdio-read.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stdio-read.o -MD -MP -MF $(DEPDIR)/libgnu_a-stdio-read.Tpo -c -o libgnu_a-stdio-read.o `test -f 'stdio-read.c' || echo '$(srcdir)/'`stdio-read.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stdio-read.Tpo $(DEPDIR)/libgnu_a-stdio-read.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdio-read.c' object='libgnu_a-stdio-read.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stdio-read.o `test -f 'stdio-read.c' || echo '$(srcdir)/'`stdio-read.c - -libgnu_a-stdio-read.obj: stdio-read.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stdio-read.obj -MD -MP -MF $(DEPDIR)/libgnu_a-stdio-read.Tpo -c -o libgnu_a-stdio-read.obj `if test -f 'stdio-read.c'; then $(CYGPATH_W) 'stdio-read.c'; else $(CYGPATH_W) '$(srcdir)/stdio-read.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stdio-read.Tpo $(DEPDIR)/libgnu_a-stdio-read.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdio-read.c' object='libgnu_a-stdio-read.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stdio-read.obj `if test -f 'stdio-read.c'; then $(CYGPATH_W) 'stdio-read.c'; else $(CYGPATH_W) '$(srcdir)/stdio-read.c'; fi` - -libgnu_a-stdio-write.o: stdio-write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stdio-write.o -MD -MP -MF $(DEPDIR)/libgnu_a-stdio-write.Tpo -c -o libgnu_a-stdio-write.o `test -f 'stdio-write.c' || echo '$(srcdir)/'`stdio-write.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stdio-write.Tpo $(DEPDIR)/libgnu_a-stdio-write.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdio-write.c' object='libgnu_a-stdio-write.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stdio-write.o `test -f 'stdio-write.c' || echo '$(srcdir)/'`stdio-write.c - -libgnu_a-stdio-write.obj: stdio-write.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stdio-write.obj -MD -MP -MF $(DEPDIR)/libgnu_a-stdio-write.Tpo -c -o libgnu_a-stdio-write.obj `if test -f 'stdio-write.c'; then $(CYGPATH_W) 'stdio-write.c'; else $(CYGPATH_W) '$(srcdir)/stdio-write.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stdio-write.Tpo $(DEPDIR)/libgnu_a-stdio-write.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdio-write.c' object='libgnu_a-stdio-write.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stdio-write.obj `if test -f 'stdio-write.c'; then $(CYGPATH_W) 'stdio-write.c'; else $(CYGPATH_W) '$(srcdir)/stdio-write.c'; fi` - -libgnu_a-strcasecmp.o: strcasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strcasecmp.o -MD -MP -MF $(DEPDIR)/libgnu_a-strcasecmp.Tpo -c -o libgnu_a-strcasecmp.o `test -f 'strcasecmp.c' || echo '$(srcdir)/'`strcasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strcasecmp.Tpo $(DEPDIR)/libgnu_a-strcasecmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strcasecmp.c' object='libgnu_a-strcasecmp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strcasecmp.o `test -f 'strcasecmp.c' || echo '$(srcdir)/'`strcasecmp.c - -libgnu_a-strcasecmp.obj: strcasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strcasecmp.obj -MD -MP -MF $(DEPDIR)/libgnu_a-strcasecmp.Tpo -c -o libgnu_a-strcasecmp.obj `if test -f 'strcasecmp.c'; then $(CYGPATH_W) 'strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strcasecmp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strcasecmp.Tpo $(DEPDIR)/libgnu_a-strcasecmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strcasecmp.c' object='libgnu_a-strcasecmp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strcasecmp.obj `if test -f 'strcasecmp.c'; then $(CYGPATH_W) 'strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strcasecmp.c'; fi` - -libgnu_a-strncasecmp.o: strncasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strncasecmp.o -MD -MP -MF $(DEPDIR)/libgnu_a-strncasecmp.Tpo -c -o libgnu_a-strncasecmp.o `test -f 'strncasecmp.c' || echo '$(srcdir)/'`strncasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strncasecmp.Tpo $(DEPDIR)/libgnu_a-strncasecmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strncasecmp.c' object='libgnu_a-strncasecmp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strncasecmp.o `test -f 'strncasecmp.c' || echo '$(srcdir)/'`strncasecmp.c - -libgnu_a-strncasecmp.obj: strncasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strncasecmp.obj -MD -MP -MF $(DEPDIR)/libgnu_a-strncasecmp.Tpo -c -o libgnu_a-strncasecmp.obj `if test -f 'strncasecmp.c'; then $(CYGPATH_W) 'strncasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strncasecmp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strncasecmp.Tpo $(DEPDIR)/libgnu_a-strncasecmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strncasecmp.c' object='libgnu_a-strncasecmp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strncasecmp.obj `if test -f 'strncasecmp.c'; then $(CYGPATH_W) 'strncasecmp.c'; else $(CYGPATH_W) '$(srcdir)/strncasecmp.c'; fi` - -libgnu_a-strerror.o: strerror.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strerror.o -MD -MP -MF $(DEPDIR)/libgnu_a-strerror.Tpo -c -o libgnu_a-strerror.o `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strerror.Tpo $(DEPDIR)/libgnu_a-strerror.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strerror.c' object='libgnu_a-strerror.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strerror.o `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c - -libgnu_a-strerror.obj: strerror.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strerror.obj -MD -MP -MF $(DEPDIR)/libgnu_a-strerror.Tpo -c -o libgnu_a-strerror.obj `if test -f 'strerror.c'; then $(CYGPATH_W) 'strerror.c'; else $(CYGPATH_W) '$(srcdir)/strerror.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strerror.Tpo $(DEPDIR)/libgnu_a-strerror.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strerror.c' object='libgnu_a-strerror.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strerror.obj `if test -f 'strerror.c'; then $(CYGPATH_W) 'strerror.c'; else $(CYGPATH_W) '$(srcdir)/strerror.c'; fi` - -libgnu_a-strerror-override.o: strerror-override.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strerror-override.o -MD -MP -MF $(DEPDIR)/libgnu_a-strerror-override.Tpo -c -o libgnu_a-strerror-override.o `test -f 'strerror-override.c' || echo '$(srcdir)/'`strerror-override.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strerror-override.Tpo $(DEPDIR)/libgnu_a-strerror-override.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strerror-override.c' object='libgnu_a-strerror-override.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strerror-override.o `test -f 'strerror-override.c' || echo '$(srcdir)/'`strerror-override.c - -libgnu_a-strerror-override.obj: strerror-override.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strerror-override.obj -MD -MP -MF $(DEPDIR)/libgnu_a-strerror-override.Tpo -c -o libgnu_a-strerror-override.obj `if test -f 'strerror-override.c'; then $(CYGPATH_W) 'strerror-override.c'; else $(CYGPATH_W) '$(srcdir)/strerror-override.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strerror-override.Tpo $(DEPDIR)/libgnu_a-strerror-override.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strerror-override.c' object='libgnu_a-strerror-override.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strerror-override.obj `if test -f 'strerror-override.c'; then $(CYGPATH_W) 'strerror-override.c'; else $(CYGPATH_W) '$(srcdir)/strerror-override.c'; fi` - -libgnu_a-strsep.o: strsep.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strsep.o -MD -MP -MF $(DEPDIR)/libgnu_a-strsep.Tpo -c -o libgnu_a-strsep.o `test -f 'strsep.c' || echo '$(srcdir)/'`strsep.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strsep.Tpo $(DEPDIR)/libgnu_a-strsep.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strsep.c' object='libgnu_a-strsep.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strsep.o `test -f 'strsep.c' || echo '$(srcdir)/'`strsep.c - -libgnu_a-strsep.obj: strsep.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strsep.obj -MD -MP -MF $(DEPDIR)/libgnu_a-strsep.Tpo -c -o libgnu_a-strsep.obj `if test -f 'strsep.c'; then $(CYGPATH_W) 'strsep.c'; else $(CYGPATH_W) '$(srcdir)/strsep.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strsep.Tpo $(DEPDIR)/libgnu_a-strsep.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strsep.c' object='libgnu_a-strsep.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strsep.obj `if test -f 'strsep.c'; then $(CYGPATH_W) 'strsep.c'; else $(CYGPATH_W) '$(srcdir)/strsep.c'; fi` - -libgnu_a-sys_socket.o: sys_socket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sys_socket.o -MD -MP -MF $(DEPDIR)/libgnu_a-sys_socket.Tpo -c -o libgnu_a-sys_socket.o `test -f 'sys_socket.c' || echo '$(srcdir)/'`sys_socket.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sys_socket.Tpo $(DEPDIR)/libgnu_a-sys_socket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sys_socket.c' object='libgnu_a-sys_socket.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sys_socket.o `test -f 'sys_socket.c' || echo '$(srcdir)/'`sys_socket.c - -libgnu_a-sys_socket.obj: sys_socket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sys_socket.obj -MD -MP -MF $(DEPDIR)/libgnu_a-sys_socket.Tpo -c -o libgnu_a-sys_socket.obj `if test -f 'sys_socket.c'; then $(CYGPATH_W) 'sys_socket.c'; else $(CYGPATH_W) '$(srcdir)/sys_socket.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sys_socket.Tpo $(DEPDIR)/libgnu_a-sys_socket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sys_socket.c' object='libgnu_a-sys_socket.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sys_socket.obj `if test -f 'sys_socket.c'; then $(CYGPATH_W) 'sys_socket.c'; else $(CYGPATH_W) '$(srcdir)/sys_socket.c'; fi` - -glthread/libgnu_a-threadlib.o: glthread/threadlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT glthread/libgnu_a-threadlib.o -MD -MP -MF glthread/$(DEPDIR)/libgnu_a-threadlib.Tpo -c -o glthread/libgnu_a-threadlib.o `test -f 'glthread/threadlib.c' || echo '$(srcdir)/'`glthread/threadlib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libgnu_a-threadlib.Tpo glthread/$(DEPDIR)/libgnu_a-threadlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='glthread/threadlib.c' object='glthread/libgnu_a-threadlib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o glthread/libgnu_a-threadlib.o `test -f 'glthread/threadlib.c' || echo '$(srcdir)/'`glthread/threadlib.c - -glthread/libgnu_a-threadlib.obj: glthread/threadlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT glthread/libgnu_a-threadlib.obj -MD -MP -MF glthread/$(DEPDIR)/libgnu_a-threadlib.Tpo -c -o glthread/libgnu_a-threadlib.obj `if test -f 'glthread/threadlib.c'; then $(CYGPATH_W) 'glthread/threadlib.c'; else $(CYGPATH_W) '$(srcdir)/glthread/threadlib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) glthread/$(DEPDIR)/libgnu_a-threadlib.Tpo glthread/$(DEPDIR)/libgnu_a-threadlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='glthread/threadlib.c' object='glthread/libgnu_a-threadlib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o glthread/libgnu_a-threadlib.obj `if test -f 'glthread/threadlib.c'; then $(CYGPATH_W) 'glthread/threadlib.c'; else $(CYGPATH_W) '$(srcdir)/glthread/threadlib.c'; fi` - -libgnu_a-time_r.o: time_r.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-time_r.o -MD -MP -MF $(DEPDIR)/libgnu_a-time_r.Tpo -c -o libgnu_a-time_r.o `test -f 'time_r.c' || echo '$(srcdir)/'`time_r.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-time_r.Tpo $(DEPDIR)/libgnu_a-time_r.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='time_r.c' object='libgnu_a-time_r.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-time_r.o `test -f 'time_r.c' || echo '$(srcdir)/'`time_r.c - -libgnu_a-time_r.obj: time_r.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-time_r.obj -MD -MP -MF $(DEPDIR)/libgnu_a-time_r.Tpo -c -o libgnu_a-time_r.obj `if test -f 'time_r.c'; then $(CYGPATH_W) 'time_r.c'; else $(CYGPATH_W) '$(srcdir)/time_r.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-time_r.Tpo $(DEPDIR)/libgnu_a-time_r.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='time_r.c' object='libgnu_a-time_r.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-time_r.obj `if test -f 'time_r.c'; then $(CYGPATH_W) 'time_r.c'; else $(CYGPATH_W) '$(srcdir)/time_r.c'; fi` - -libgnu_a-timegm.o: timegm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-timegm.o -MD -MP -MF $(DEPDIR)/libgnu_a-timegm.Tpo -c -o libgnu_a-timegm.o `test -f 'timegm.c' || echo '$(srcdir)/'`timegm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-timegm.Tpo $(DEPDIR)/libgnu_a-timegm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='timegm.c' object='libgnu_a-timegm.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-timegm.o `test -f 'timegm.c' || echo '$(srcdir)/'`timegm.c - -libgnu_a-timegm.obj: timegm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-timegm.obj -MD -MP -MF $(DEPDIR)/libgnu_a-timegm.Tpo -c -o libgnu_a-timegm.obj `if test -f 'timegm.c'; then $(CYGPATH_W) 'timegm.c'; else $(CYGPATH_W) '$(srcdir)/timegm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-timegm.Tpo $(DEPDIR)/libgnu_a-timegm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='timegm.c' object='libgnu_a-timegm.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-timegm.obj `if test -f 'timegm.c'; then $(CYGPATH_W) 'timegm.c'; else $(CYGPATH_W) '$(srcdir)/timegm.c'; fi` - -libgnu_a-unistd.o: unistd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-unistd.o -MD -MP -MF $(DEPDIR)/libgnu_a-unistd.Tpo -c -o libgnu_a-unistd.o `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-unistd.Tpo $(DEPDIR)/libgnu_a-unistd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unistd.c' object='libgnu_a-unistd.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-unistd.o `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c - -libgnu_a-unistd.obj: unistd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-unistd.obj -MD -MP -MF $(DEPDIR)/libgnu_a-unistd.Tpo -c -o libgnu_a-unistd.obj `if test -f 'unistd.c'; then $(CYGPATH_W) 'unistd.c'; else $(CYGPATH_W) '$(srcdir)/unistd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-unistd.Tpo $(DEPDIR)/libgnu_a-unistd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unistd.c' object='libgnu_a-unistd.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-unistd.obj `if test -f 'unistd.c'; then $(CYGPATH_W) 'unistd.c'; else $(CYGPATH_W) '$(srcdir)/unistd.c'; fi` - -libgnu_a-unsetenv.o: unsetenv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-unsetenv.o -MD -MP -MF $(DEPDIR)/libgnu_a-unsetenv.Tpo -c -o libgnu_a-unsetenv.o `test -f 'unsetenv.c' || echo '$(srcdir)/'`unsetenv.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-unsetenv.Tpo $(DEPDIR)/libgnu_a-unsetenv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unsetenv.c' object='libgnu_a-unsetenv.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-unsetenv.o `test -f 'unsetenv.c' || echo '$(srcdir)/'`unsetenv.c - -libgnu_a-unsetenv.obj: unsetenv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-unsetenv.obj -MD -MP -MF $(DEPDIR)/libgnu_a-unsetenv.Tpo -c -o libgnu_a-unsetenv.obj `if test -f 'unsetenv.c'; then $(CYGPATH_W) 'unsetenv.c'; else $(CYGPATH_W) '$(srcdir)/unsetenv.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-unsetenv.Tpo $(DEPDIR)/libgnu_a-unsetenv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unsetenv.c' object='libgnu_a-unsetenv.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-unsetenv.obj `if test -f 'unsetenv.c'; then $(CYGPATH_W) 'unsetenv.c'; else $(CYGPATH_W) '$(srcdir)/unsetenv.c'; fi` - -libgnu_a-wcrtomb.o: wcrtomb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-wcrtomb.o -MD -MP -MF $(DEPDIR)/libgnu_a-wcrtomb.Tpo -c -o libgnu_a-wcrtomb.o `test -f 'wcrtomb.c' || echo '$(srcdir)/'`wcrtomb.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-wcrtomb.Tpo $(DEPDIR)/libgnu_a-wcrtomb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wcrtomb.c' object='libgnu_a-wcrtomb.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-wcrtomb.o `test -f 'wcrtomb.c' || echo '$(srcdir)/'`wcrtomb.c - -libgnu_a-wcrtomb.obj: wcrtomb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-wcrtomb.obj -MD -MP -MF $(DEPDIR)/libgnu_a-wcrtomb.Tpo -c -o libgnu_a-wcrtomb.obj `if test -f 'wcrtomb.c'; then $(CYGPATH_W) 'wcrtomb.c'; else $(CYGPATH_W) '$(srcdir)/wcrtomb.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-wcrtomb.Tpo $(DEPDIR)/libgnu_a-wcrtomb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wcrtomb.c' object='libgnu_a-wcrtomb.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-wcrtomb.obj `if test -f 'wcrtomb.c'; then $(CYGPATH_W) 'wcrtomb.c'; else $(CYGPATH_W) '$(srcdir)/wcrtomb.c'; fi` - -libgnu_a-wctype-h.o: wctype-h.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-wctype-h.o -MD -MP -MF $(DEPDIR)/libgnu_a-wctype-h.Tpo -c -o libgnu_a-wctype-h.o `test -f 'wctype-h.c' || echo '$(srcdir)/'`wctype-h.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-wctype-h.Tpo $(DEPDIR)/libgnu_a-wctype-h.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wctype-h.c' object='libgnu_a-wctype-h.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-wctype-h.o `test -f 'wctype-h.c' || echo '$(srcdir)/'`wctype-h.c - -libgnu_a-wctype-h.obj: wctype-h.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-wctype-h.obj -MD -MP -MF $(DEPDIR)/libgnu_a-wctype-h.Tpo -c -o libgnu_a-wctype-h.obj `if test -f 'wctype-h.c'; then $(CYGPATH_W) 'wctype-h.c'; else $(CYGPATH_W) '$(srcdir)/wctype-h.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-wctype-h.Tpo $(DEPDIR)/libgnu_a-wctype-h.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wctype-h.c' object='libgnu_a-wctype-h.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-wctype-h.obj `if test -f 'wctype-h.c'; then $(CYGPATH_W) 'wctype-h.c'; else $(CYGPATH_W) '$(srcdir)/wctype-h.c'; fi` - -libgnu_a-windows-mutex.o: windows-mutex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-mutex.o -MD -MP -MF $(DEPDIR)/libgnu_a-windows-mutex.Tpo -c -o libgnu_a-windows-mutex.o `test -f 'windows-mutex.c' || echo '$(srcdir)/'`windows-mutex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-mutex.Tpo $(DEPDIR)/libgnu_a-windows-mutex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-mutex.c' object='libgnu_a-windows-mutex.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-mutex.o `test -f 'windows-mutex.c' || echo '$(srcdir)/'`windows-mutex.c - -libgnu_a-windows-mutex.obj: windows-mutex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-mutex.obj -MD -MP -MF $(DEPDIR)/libgnu_a-windows-mutex.Tpo -c -o libgnu_a-windows-mutex.obj `if test -f 'windows-mutex.c'; then $(CYGPATH_W) 'windows-mutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-mutex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-mutex.Tpo $(DEPDIR)/libgnu_a-windows-mutex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-mutex.c' object='libgnu_a-windows-mutex.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-mutex.obj `if test -f 'windows-mutex.c'; then $(CYGPATH_W) 'windows-mutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-mutex.c'; fi` - -libgnu_a-windows-once.o: windows-once.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-once.o -MD -MP -MF $(DEPDIR)/libgnu_a-windows-once.Tpo -c -o libgnu_a-windows-once.o `test -f 'windows-once.c' || echo '$(srcdir)/'`windows-once.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-once.Tpo $(DEPDIR)/libgnu_a-windows-once.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-once.c' object='libgnu_a-windows-once.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-once.o `test -f 'windows-once.c' || echo '$(srcdir)/'`windows-once.c - -libgnu_a-windows-once.obj: windows-once.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-once.obj -MD -MP -MF $(DEPDIR)/libgnu_a-windows-once.Tpo -c -o libgnu_a-windows-once.obj `if test -f 'windows-once.c'; then $(CYGPATH_W) 'windows-once.c'; else $(CYGPATH_W) '$(srcdir)/windows-once.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-once.Tpo $(DEPDIR)/libgnu_a-windows-once.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-once.c' object='libgnu_a-windows-once.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-once.obj `if test -f 'windows-once.c'; then $(CYGPATH_W) 'windows-once.c'; else $(CYGPATH_W) '$(srcdir)/windows-once.c'; fi` - -libgnu_a-windows-recmutex.o: windows-recmutex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-recmutex.o -MD -MP -MF $(DEPDIR)/libgnu_a-windows-recmutex.Tpo -c -o libgnu_a-windows-recmutex.o `test -f 'windows-recmutex.c' || echo '$(srcdir)/'`windows-recmutex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-recmutex.Tpo $(DEPDIR)/libgnu_a-windows-recmutex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-recmutex.c' object='libgnu_a-windows-recmutex.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-recmutex.o `test -f 'windows-recmutex.c' || echo '$(srcdir)/'`windows-recmutex.c - -libgnu_a-windows-recmutex.obj: windows-recmutex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-recmutex.obj -MD -MP -MF $(DEPDIR)/libgnu_a-windows-recmutex.Tpo -c -o libgnu_a-windows-recmutex.obj `if test -f 'windows-recmutex.c'; then $(CYGPATH_W) 'windows-recmutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-recmutex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-recmutex.Tpo $(DEPDIR)/libgnu_a-windows-recmutex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-recmutex.c' object='libgnu_a-windows-recmutex.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-recmutex.obj `if test -f 'windows-recmutex.c'; then $(CYGPATH_W) 'windows-recmutex.c'; else $(CYGPATH_W) '$(srcdir)/windows-recmutex.c'; fi` - -libgnu_a-windows-rwlock.o: windows-rwlock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-rwlock.o -MD -MP -MF $(DEPDIR)/libgnu_a-windows-rwlock.Tpo -c -o libgnu_a-windows-rwlock.o `test -f 'windows-rwlock.c' || echo '$(srcdir)/'`windows-rwlock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-rwlock.Tpo $(DEPDIR)/libgnu_a-windows-rwlock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-rwlock.c' object='libgnu_a-windows-rwlock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-rwlock.o `test -f 'windows-rwlock.c' || echo '$(srcdir)/'`windows-rwlock.c - -libgnu_a-windows-rwlock.obj: windows-rwlock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-windows-rwlock.obj -MD -MP -MF $(DEPDIR)/libgnu_a-windows-rwlock.Tpo -c -o libgnu_a-windows-rwlock.obj `if test -f 'windows-rwlock.c'; then $(CYGPATH_W) 'windows-rwlock.c'; else $(CYGPATH_W) '$(srcdir)/windows-rwlock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-windows-rwlock.Tpo $(DEPDIR)/libgnu_a-windows-rwlock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows-rwlock.c' object='libgnu_a-windows-rwlock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-windows-rwlock.obj `if test -f 'windows-rwlock.c'; then $(CYGPATH_W) 'windows-rwlock.c'; else $(CYGPATH_W) '$(srcdir)/windows-rwlock.c'; fi` - -libgnu_a-xmalloc.o: xmalloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-xmalloc.o -MD -MP -MF $(DEPDIR)/libgnu_a-xmalloc.Tpo -c -o libgnu_a-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-xmalloc.Tpo $(DEPDIR)/libgnu_a-xmalloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc.c' object='libgnu_a-xmalloc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c - -libgnu_a-xmalloc.obj: xmalloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-xmalloc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-xmalloc.Tpo -c -o libgnu_a-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-xmalloc.Tpo $(DEPDIR)/libgnu_a-xmalloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc.c' object='libgnu_a-xmalloc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi` - -libgnu_a-xalloc-die.o: xalloc-die.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-xalloc-die.o -MD -MP -MF $(DEPDIR)/libgnu_a-xalloc-die.Tpo -c -o libgnu_a-xalloc-die.o `test -f 'xalloc-die.c' || echo '$(srcdir)/'`xalloc-die.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-xalloc-die.Tpo $(DEPDIR)/libgnu_a-xalloc-die.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xalloc-die.c' object='libgnu_a-xalloc-die.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-xalloc-die.o `test -f 'xalloc-die.c' || echo '$(srcdir)/'`xalloc-die.c - -libgnu_a-xalloc-die.obj: xalloc-die.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-xalloc-die.obj -MD -MP -MF $(DEPDIR)/libgnu_a-xalloc-die.Tpo -c -o libgnu_a-xalloc-die.obj `if test -f 'xalloc-die.c'; then $(CYGPATH_W) 'xalloc-die.c'; else $(CYGPATH_W) '$(srcdir)/xalloc-die.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-xalloc-die.Tpo $(DEPDIR)/libgnu_a-xalloc-die.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xalloc-die.c' object='libgnu_a-xalloc-die.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-xalloc-die.obj `if test -f 'xalloc-die.c'; then $(CYGPATH_W) 'xalloc-die.c'; else $(CYGPATH_W) '$(srcdir)/xalloc-die.c'; fi` - -libgnu_a-xsize.o: xsize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-xsize.o -MD -MP -MF $(DEPDIR)/libgnu_a-xsize.Tpo -c -o libgnu_a-xsize.o `test -f 'xsize.c' || echo '$(srcdir)/'`xsize.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-xsize.Tpo $(DEPDIR)/libgnu_a-xsize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xsize.c' object='libgnu_a-xsize.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-xsize.o `test -f 'xsize.c' || echo '$(srcdir)/'`xsize.c - -libgnu_a-xsize.obj: xsize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-xsize.obj -MD -MP -MF $(DEPDIR)/libgnu_a-xsize.Tpo -c -o libgnu_a-xsize.obj `if test -f 'xsize.c'; then $(CYGPATH_W) 'xsize.c'; else $(CYGPATH_W) '$(srcdir)/xsize.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-xsize.Tpo $(DEPDIR)/libgnu_a-xsize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xsize.c' object='libgnu_a-xsize.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-xsize.obj `if test -f 'xsize.c'; then $(CYGPATH_W) 'xsize.c'; else $(CYGPATH_W) '$(srcdir)/xsize.c'; fi` - -libgnu_a-calloc.o: calloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-calloc.o -MD -MP -MF $(DEPDIR)/libgnu_a-calloc.Tpo -c -o libgnu_a-calloc.o `test -f 'calloc.c' || echo '$(srcdir)/'`calloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-calloc.Tpo $(DEPDIR)/libgnu_a-calloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='calloc.c' object='libgnu_a-calloc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-calloc.o `test -f 'calloc.c' || echo '$(srcdir)/'`calloc.c - -libgnu_a-calloc.obj: calloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-calloc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-calloc.Tpo -c -o libgnu_a-calloc.obj `if test -f 'calloc.c'; then $(CYGPATH_W) 'calloc.c'; else $(CYGPATH_W) '$(srcdir)/calloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-calloc.Tpo $(DEPDIR)/libgnu_a-calloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='calloc.c' object='libgnu_a-calloc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-calloc.obj `if test -f 'calloc.c'; then $(CYGPATH_W) 'calloc.c'; else $(CYGPATH_W) '$(srcdir)/calloc.c'; fi` - -libgnu_a-floor.o: floor.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-floor.o -MD -MP -MF $(DEPDIR)/libgnu_a-floor.Tpo -c -o libgnu_a-floor.o `test -f 'floor.c' || echo '$(srcdir)/'`floor.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-floor.Tpo $(DEPDIR)/libgnu_a-floor.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='floor.c' object='libgnu_a-floor.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-floor.o `test -f 'floor.c' || echo '$(srcdir)/'`floor.c - -libgnu_a-floor.obj: floor.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-floor.obj -MD -MP -MF $(DEPDIR)/libgnu_a-floor.Tpo -c -o libgnu_a-floor.obj `if test -f 'floor.c'; then $(CYGPATH_W) 'floor.c'; else $(CYGPATH_W) '$(srcdir)/floor.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-floor.Tpo $(DEPDIR)/libgnu_a-floor.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='floor.c' object='libgnu_a-floor.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-floor.obj `if test -f 'floor.c'; then $(CYGPATH_W) 'floor.c'; else $(CYGPATH_W) '$(srcdir)/floor.c'; fi` - -libgnu_a-fopen.o: fopen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fopen.o -MD -MP -MF $(DEPDIR)/libgnu_a-fopen.Tpo -c -o libgnu_a-fopen.o `test -f 'fopen.c' || echo '$(srcdir)/'`fopen.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fopen.Tpo $(DEPDIR)/libgnu_a-fopen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fopen.c' object='libgnu_a-fopen.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fopen.o `test -f 'fopen.c' || echo '$(srcdir)/'`fopen.c - -libgnu_a-fopen.obj: fopen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-fopen.obj -MD -MP -MF $(DEPDIR)/libgnu_a-fopen.Tpo -c -o libgnu_a-fopen.obj `if test -f 'fopen.c'; then $(CYGPATH_W) 'fopen.c'; else $(CYGPATH_W) '$(srcdir)/fopen.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-fopen.Tpo $(DEPDIR)/libgnu_a-fopen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fopen.c' object='libgnu_a-fopen.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-fopen.obj `if test -f 'fopen.c'; then $(CYGPATH_W) 'fopen.c'; else $(CYGPATH_W) '$(srcdir)/fopen.c'; fi` - -libgnu_a-stat-w32.o: stat-w32.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stat-w32.o -MD -MP -MF $(DEPDIR)/libgnu_a-stat-w32.Tpo -c -o libgnu_a-stat-w32.o `test -f 'stat-w32.c' || echo '$(srcdir)/'`stat-w32.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stat-w32.Tpo $(DEPDIR)/libgnu_a-stat-w32.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat-w32.c' object='libgnu_a-stat-w32.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stat-w32.o `test -f 'stat-w32.c' || echo '$(srcdir)/'`stat-w32.c - -libgnu_a-stat-w32.obj: stat-w32.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-stat-w32.obj -MD -MP -MF $(DEPDIR)/libgnu_a-stat-w32.Tpo -c -o libgnu_a-stat-w32.obj `if test -f 'stat-w32.c'; then $(CYGPATH_W) 'stat-w32.c'; else $(CYGPATH_W) '$(srcdir)/stat-w32.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-stat-w32.Tpo $(DEPDIR)/libgnu_a-stat-w32.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat-w32.c' object='libgnu_a-stat-w32.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-stat-w32.obj `if test -f 'stat-w32.c'; then $(CYGPATH_W) 'stat-w32.c'; else $(CYGPATH_W) '$(srcdir)/stat-w32.c'; fi` - -malloc/libgnu_a-dynarray-skeleton.o: malloc/dynarray-skeleton.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray-skeleton.o -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Tpo -c -o malloc/libgnu_a-dynarray-skeleton.o `test -f 'malloc/dynarray-skeleton.c' || echo '$(srcdir)/'`malloc/dynarray-skeleton.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray-skeleton.c' object='malloc/libgnu_a-dynarray-skeleton.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray-skeleton.o `test -f 'malloc/dynarray-skeleton.c' || echo '$(srcdir)/'`malloc/dynarray-skeleton.c - -malloc/libgnu_a-dynarray-skeleton.obj: malloc/dynarray-skeleton.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT malloc/libgnu_a-dynarray-skeleton.obj -MD -MP -MF malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Tpo -c -o malloc/libgnu_a-dynarray-skeleton.obj `if test -f 'malloc/dynarray-skeleton.c'; then $(CYGPATH_W) 'malloc/dynarray-skeleton.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray-skeleton.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Tpo malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc/dynarray-skeleton.c' object='malloc/libgnu_a-dynarray-skeleton.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o malloc/libgnu_a-dynarray-skeleton.obj `if test -f 'malloc/dynarray-skeleton.c'; then $(CYGPATH_W) 'malloc/dynarray-skeleton.c'; else $(CYGPATH_W) '$(srcdir)/malloc/dynarray-skeleton.c'; fi` - -libgnu_a-malloc.o: malloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-malloc.o -MD -MP -MF $(DEPDIR)/libgnu_a-malloc.Tpo -c -o libgnu_a-malloc.o `test -f 'malloc.c' || echo '$(srcdir)/'`malloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-malloc.Tpo $(DEPDIR)/libgnu_a-malloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc.c' object='libgnu_a-malloc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-malloc.o `test -f 'malloc.c' || echo '$(srcdir)/'`malloc.c - -libgnu_a-malloc.obj: malloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-malloc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-malloc.Tpo -c -o libgnu_a-malloc.obj `if test -f 'malloc.c'; then $(CYGPATH_W) 'malloc.c'; else $(CYGPATH_W) '$(srcdir)/malloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-malloc.Tpo $(DEPDIR)/libgnu_a-malloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='malloc.c' object='libgnu_a-malloc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-malloc.obj `if test -f 'malloc.c'; then $(CYGPATH_W) 'malloc.c'; else $(CYGPATH_W) '$(srcdir)/malloc.c'; fi` - -libgnu_a-lc-charset-dispatch.o: lc-charset-dispatch.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-lc-charset-dispatch.o -MD -MP -MF $(DEPDIR)/libgnu_a-lc-charset-dispatch.Tpo -c -o libgnu_a-lc-charset-dispatch.o `test -f 'lc-charset-dispatch.c' || echo '$(srcdir)/'`lc-charset-dispatch.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-lc-charset-dispatch.Tpo $(DEPDIR)/libgnu_a-lc-charset-dispatch.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lc-charset-dispatch.c' object='libgnu_a-lc-charset-dispatch.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-lc-charset-dispatch.o `test -f 'lc-charset-dispatch.c' || echo '$(srcdir)/'`lc-charset-dispatch.c - -libgnu_a-lc-charset-dispatch.obj: lc-charset-dispatch.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-lc-charset-dispatch.obj -MD -MP -MF $(DEPDIR)/libgnu_a-lc-charset-dispatch.Tpo -c -o libgnu_a-lc-charset-dispatch.obj `if test -f 'lc-charset-dispatch.c'; then $(CYGPATH_W) 'lc-charset-dispatch.c'; else $(CYGPATH_W) '$(srcdir)/lc-charset-dispatch.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-lc-charset-dispatch.Tpo $(DEPDIR)/libgnu_a-lc-charset-dispatch.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lc-charset-dispatch.c' object='libgnu_a-lc-charset-dispatch.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-lc-charset-dispatch.obj `if test -f 'lc-charset-dispatch.c'; then $(CYGPATH_W) 'lc-charset-dispatch.c'; else $(CYGPATH_W) '$(srcdir)/lc-charset-dispatch.c'; fi` - -libgnu_a-mbtowc-lock.o: mbtowc-lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbtowc-lock.o -MD -MP -MF $(DEPDIR)/libgnu_a-mbtowc-lock.Tpo -c -o libgnu_a-mbtowc-lock.o `test -f 'mbtowc-lock.c' || echo '$(srcdir)/'`mbtowc-lock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbtowc-lock.Tpo $(DEPDIR)/libgnu_a-mbtowc-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbtowc-lock.c' object='libgnu_a-mbtowc-lock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbtowc-lock.o `test -f 'mbtowc-lock.c' || echo '$(srcdir)/'`mbtowc-lock.c - -libgnu_a-mbtowc-lock.obj: mbtowc-lock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mbtowc-lock.obj -MD -MP -MF $(DEPDIR)/libgnu_a-mbtowc-lock.Tpo -c -o libgnu_a-mbtowc-lock.obj `if test -f 'mbtowc-lock.c'; then $(CYGPATH_W) 'mbtowc-lock.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc-lock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mbtowc-lock.Tpo $(DEPDIR)/libgnu_a-mbtowc-lock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbtowc-lock.c' object='libgnu_a-mbtowc-lock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mbtowc-lock.obj `if test -f 'mbtowc-lock.c'; then $(CYGPATH_W) 'mbtowc-lock.c'; else $(CYGPATH_W) '$(srcdir)/mbtowc-lock.c'; fi` - -libgnu_a-mktime.o: mktime.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mktime.o -MD -MP -MF $(DEPDIR)/libgnu_a-mktime.Tpo -c -o libgnu_a-mktime.o `test -f 'mktime.c' || echo '$(srcdir)/'`mktime.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mktime.Tpo $(DEPDIR)/libgnu_a-mktime.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mktime.c' object='libgnu_a-mktime.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mktime.o `test -f 'mktime.c' || echo '$(srcdir)/'`mktime.c - -libgnu_a-mktime.obj: mktime.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-mktime.obj -MD -MP -MF $(DEPDIR)/libgnu_a-mktime.Tpo -c -o libgnu_a-mktime.obj `if test -f 'mktime.c'; then $(CYGPATH_W) 'mktime.c'; else $(CYGPATH_W) '$(srcdir)/mktime.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-mktime.Tpo $(DEPDIR)/libgnu_a-mktime.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mktime.c' object='libgnu_a-mktime.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-mktime.obj `if test -f 'mktime.c'; then $(CYGPATH_W) 'mktime.c'; else $(CYGPATH_W) '$(srcdir)/mktime.c'; fi` - -libgnu_a-realloc.o: realloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-realloc.o -MD -MP -MF $(DEPDIR)/libgnu_a-realloc.Tpo -c -o libgnu_a-realloc.o `test -f 'realloc.c' || echo '$(srcdir)/'`realloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-realloc.Tpo $(DEPDIR)/libgnu_a-realloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='realloc.c' object='libgnu_a-realloc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-realloc.o `test -f 'realloc.c' || echo '$(srcdir)/'`realloc.c - -libgnu_a-realloc.obj: realloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-realloc.obj -MD -MP -MF $(DEPDIR)/libgnu_a-realloc.Tpo -c -o libgnu_a-realloc.obj `if test -f 'realloc.c'; then $(CYGPATH_W) 'realloc.c'; else $(CYGPATH_W) '$(srcdir)/realloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-realloc.Tpo $(DEPDIR)/libgnu_a-realloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='realloc.c' object='libgnu_a-realloc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-realloc.obj `if test -f 'realloc.c'; then $(CYGPATH_W) 'realloc.c'; else $(CYGPATH_W) '$(srcdir)/realloc.c'; fi` - -libgnu_a-regcomp.o: regcomp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regcomp.o -MD -MP -MF $(DEPDIR)/libgnu_a-regcomp.Tpo -c -o libgnu_a-regcomp.o `test -f 'regcomp.c' || echo '$(srcdir)/'`regcomp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regcomp.Tpo $(DEPDIR)/libgnu_a-regcomp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regcomp.c' object='libgnu_a-regcomp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regcomp.o `test -f 'regcomp.c' || echo '$(srcdir)/'`regcomp.c - -libgnu_a-regcomp.obj: regcomp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regcomp.obj -MD -MP -MF $(DEPDIR)/libgnu_a-regcomp.Tpo -c -o libgnu_a-regcomp.obj `if test -f 'regcomp.c'; then $(CYGPATH_W) 'regcomp.c'; else $(CYGPATH_W) '$(srcdir)/regcomp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regcomp.Tpo $(DEPDIR)/libgnu_a-regcomp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regcomp.c' object='libgnu_a-regcomp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regcomp.obj `if test -f 'regcomp.c'; then $(CYGPATH_W) 'regcomp.c'; else $(CYGPATH_W) '$(srcdir)/regcomp.c'; fi` - -libgnu_a-regex_internal.o: regex_internal.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regex_internal.o -MD -MP -MF $(DEPDIR)/libgnu_a-regex_internal.Tpo -c -o libgnu_a-regex_internal.o `test -f 'regex_internal.c' || echo '$(srcdir)/'`regex_internal.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regex_internal.Tpo $(DEPDIR)/libgnu_a-regex_internal.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex_internal.c' object='libgnu_a-regex_internal.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regex_internal.o `test -f 'regex_internal.c' || echo '$(srcdir)/'`regex_internal.c - -libgnu_a-regex_internal.obj: regex_internal.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regex_internal.obj -MD -MP -MF $(DEPDIR)/libgnu_a-regex_internal.Tpo -c -o libgnu_a-regex_internal.obj `if test -f 'regex_internal.c'; then $(CYGPATH_W) 'regex_internal.c'; else $(CYGPATH_W) '$(srcdir)/regex_internal.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regex_internal.Tpo $(DEPDIR)/libgnu_a-regex_internal.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regex_internal.c' object='libgnu_a-regex_internal.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regex_internal.obj `if test -f 'regex_internal.c'; then $(CYGPATH_W) 'regex_internal.c'; else $(CYGPATH_W) '$(srcdir)/regex_internal.c'; fi` - -libgnu_a-regexec.o: regexec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regexec.o -MD -MP -MF $(DEPDIR)/libgnu_a-regexec.Tpo -c -o libgnu_a-regexec.o `test -f 'regexec.c' || echo '$(srcdir)/'`regexec.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regexec.Tpo $(DEPDIR)/libgnu_a-regexec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regexec.c' object='libgnu_a-regexec.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regexec.o `test -f 'regexec.c' || echo '$(srcdir)/'`regexec.c - -libgnu_a-regexec.obj: regexec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-regexec.obj -MD -MP -MF $(DEPDIR)/libgnu_a-regexec.Tpo -c -o libgnu_a-regexec.obj `if test -f 'regexec.c'; then $(CYGPATH_W) 'regexec.c'; else $(CYGPATH_W) '$(srcdir)/regexec.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-regexec.Tpo $(DEPDIR)/libgnu_a-regexec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='regexec.c' object='libgnu_a-regexec.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-regexec.obj `if test -f 'regexec.c'; then $(CYGPATH_W) 'regexec.c'; else $(CYGPATH_W) '$(srcdir)/regexec.c'; fi` - -libgnu_a-snprintf.o: snprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-snprintf.o -MD -MP -MF $(DEPDIR)/libgnu_a-snprintf.Tpo -c -o libgnu_a-snprintf.o `test -f 'snprintf.c' || echo '$(srcdir)/'`snprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-snprintf.Tpo $(DEPDIR)/libgnu_a-snprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='snprintf.c' object='libgnu_a-snprintf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-snprintf.o `test -f 'snprintf.c' || echo '$(srcdir)/'`snprintf.c - -libgnu_a-snprintf.obj: snprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-snprintf.obj -MD -MP -MF $(DEPDIR)/libgnu_a-snprintf.Tpo -c -o libgnu_a-snprintf.obj `if test -f 'snprintf.c'; then $(CYGPATH_W) 'snprintf.c'; else $(CYGPATH_W) '$(srcdir)/snprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-snprintf.Tpo $(DEPDIR)/libgnu_a-snprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='snprintf.c' object='libgnu_a-snprintf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-snprintf.obj `if test -f 'snprintf.c'; then $(CYGPATH_W) 'snprintf.c'; else $(CYGPATH_W) '$(srcdir)/snprintf.c'; fi` - -libgnu_a-strcasestr.o: strcasestr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strcasestr.o -MD -MP -MF $(DEPDIR)/libgnu_a-strcasestr.Tpo -c -o libgnu_a-strcasestr.o `test -f 'strcasestr.c' || echo '$(srcdir)/'`strcasestr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strcasestr.Tpo $(DEPDIR)/libgnu_a-strcasestr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strcasestr.c' object='libgnu_a-strcasestr.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strcasestr.o `test -f 'strcasestr.c' || echo '$(srcdir)/'`strcasestr.c - -libgnu_a-strcasestr.obj: strcasestr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strcasestr.obj -MD -MP -MF $(DEPDIR)/libgnu_a-strcasestr.Tpo -c -o libgnu_a-strcasestr.obj `if test -f 'strcasestr.c'; then $(CYGPATH_W) 'strcasestr.c'; else $(CYGPATH_W) '$(srcdir)/strcasestr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strcasestr.Tpo $(DEPDIR)/libgnu_a-strcasestr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strcasestr.c' object='libgnu_a-strcasestr.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strcasestr.obj `if test -f 'strcasestr.c'; then $(CYGPATH_W) 'strcasestr.c'; else $(CYGPATH_W) '$(srcdir)/strcasestr.c'; fi` - -libgnu_a-strstr.o: strstr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strstr.o -MD -MP -MF $(DEPDIR)/libgnu_a-strstr.Tpo -c -o libgnu_a-strstr.o `test -f 'strstr.c' || echo '$(srcdir)/'`strstr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strstr.Tpo $(DEPDIR)/libgnu_a-strstr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strstr.c' object='libgnu_a-strstr.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strstr.o `test -f 'strstr.c' || echo '$(srcdir)/'`strstr.c - -libgnu_a-strstr.obj: strstr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-strstr.obj -MD -MP -MF $(DEPDIR)/libgnu_a-strstr.Tpo -c -o libgnu_a-strstr.obj `if test -f 'strstr.c'; then $(CYGPATH_W) 'strstr.c'; else $(CYGPATH_W) '$(srcdir)/strstr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-strstr.Tpo $(DEPDIR)/libgnu_a-strstr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strstr.c' object='libgnu_a-strstr.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-strstr.obj `if test -f 'strstr.c'; then $(CYGPATH_W) 'strstr.c'; else $(CYGPATH_W) '$(srcdir)/strstr.c'; fi` - -libgnu_a-asnprintf.o: asnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-asnprintf.o -MD -MP -MF $(DEPDIR)/libgnu_a-asnprintf.Tpo -c -o libgnu_a-asnprintf.o `test -f 'asnprintf.c' || echo '$(srcdir)/'`asnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-asnprintf.Tpo $(DEPDIR)/libgnu_a-asnprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='asnprintf.c' object='libgnu_a-asnprintf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-asnprintf.o `test -f 'asnprintf.c' || echo '$(srcdir)/'`asnprintf.c - -libgnu_a-asnprintf.obj: asnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-asnprintf.obj -MD -MP -MF $(DEPDIR)/libgnu_a-asnprintf.Tpo -c -o libgnu_a-asnprintf.obj `if test -f 'asnprintf.c'; then $(CYGPATH_W) 'asnprintf.c'; else $(CYGPATH_W) '$(srcdir)/asnprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-asnprintf.Tpo $(DEPDIR)/libgnu_a-asnprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='asnprintf.c' object='libgnu_a-asnprintf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-asnprintf.obj `if test -f 'asnprintf.c'; then $(CYGPATH_W) 'asnprintf.c'; else $(CYGPATH_W) '$(srcdir)/asnprintf.c'; fi` - -libgnu_a-printf-args.o: printf-args.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-printf-args.o -MD -MP -MF $(DEPDIR)/libgnu_a-printf-args.Tpo -c -o libgnu_a-printf-args.o `test -f 'printf-args.c' || echo '$(srcdir)/'`printf-args.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-printf-args.Tpo $(DEPDIR)/libgnu_a-printf-args.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printf-args.c' object='libgnu_a-printf-args.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-printf-args.o `test -f 'printf-args.c' || echo '$(srcdir)/'`printf-args.c - -libgnu_a-printf-args.obj: printf-args.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-printf-args.obj -MD -MP -MF $(DEPDIR)/libgnu_a-printf-args.Tpo -c -o libgnu_a-printf-args.obj `if test -f 'printf-args.c'; then $(CYGPATH_W) 'printf-args.c'; else $(CYGPATH_W) '$(srcdir)/printf-args.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-printf-args.Tpo $(DEPDIR)/libgnu_a-printf-args.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printf-args.c' object='libgnu_a-printf-args.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-printf-args.obj `if test -f 'printf-args.c'; then $(CYGPATH_W) 'printf-args.c'; else $(CYGPATH_W) '$(srcdir)/printf-args.c'; fi` - -libgnu_a-printf-parse.o: printf-parse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-printf-parse.o -MD -MP -MF $(DEPDIR)/libgnu_a-printf-parse.Tpo -c -o libgnu_a-printf-parse.o `test -f 'printf-parse.c' || echo '$(srcdir)/'`printf-parse.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-printf-parse.Tpo $(DEPDIR)/libgnu_a-printf-parse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printf-parse.c' object='libgnu_a-printf-parse.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-printf-parse.o `test -f 'printf-parse.c' || echo '$(srcdir)/'`printf-parse.c - -libgnu_a-printf-parse.obj: printf-parse.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-printf-parse.obj -MD -MP -MF $(DEPDIR)/libgnu_a-printf-parse.Tpo -c -o libgnu_a-printf-parse.obj `if test -f 'printf-parse.c'; then $(CYGPATH_W) 'printf-parse.c'; else $(CYGPATH_W) '$(srcdir)/printf-parse.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-printf-parse.Tpo $(DEPDIR)/libgnu_a-printf-parse.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printf-parse.c' object='libgnu_a-printf-parse.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-printf-parse.obj `if test -f 'printf-parse.c'; then $(CYGPATH_W) 'printf-parse.c'; else $(CYGPATH_W) '$(srcdir)/printf-parse.c'; fi` - -libgnu_a-vasnprintf.o: vasnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-vasnprintf.o -MD -MP -MF $(DEPDIR)/libgnu_a-vasnprintf.Tpo -c -o libgnu_a-vasnprintf.o `test -f 'vasnprintf.c' || echo '$(srcdir)/'`vasnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-vasnprintf.Tpo $(DEPDIR)/libgnu_a-vasnprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vasnprintf.c' object='libgnu_a-vasnprintf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-vasnprintf.o `test -f 'vasnprintf.c' || echo '$(srcdir)/'`vasnprintf.c - -libgnu_a-vasnprintf.obj: vasnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-vasnprintf.obj -MD -MP -MF $(DEPDIR)/libgnu_a-vasnprintf.Tpo -c -o libgnu_a-vasnprintf.obj `if test -f 'vasnprintf.c'; then $(CYGPATH_W) 'vasnprintf.c'; else $(CYGPATH_W) '$(srcdir)/vasnprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-vasnprintf.Tpo $(DEPDIR)/libgnu_a-vasnprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vasnprintf.c' object='libgnu_a-vasnprintf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-vasnprintf.obj `if test -f 'vasnprintf.c'; then $(CYGPATH_W) 'vasnprintf.c'; else $(CYGPATH_W) '$(srcdir)/vasnprintf.c'; fi` - -libgnu_a-asprintf.o: asprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-asprintf.o -MD -MP -MF $(DEPDIR)/libgnu_a-asprintf.Tpo -c -o libgnu_a-asprintf.o `test -f 'asprintf.c' || echo '$(srcdir)/'`asprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-asprintf.Tpo $(DEPDIR)/libgnu_a-asprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='asprintf.c' object='libgnu_a-asprintf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-asprintf.o `test -f 'asprintf.c' || echo '$(srcdir)/'`asprintf.c - -libgnu_a-asprintf.obj: asprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-asprintf.obj -MD -MP -MF $(DEPDIR)/libgnu_a-asprintf.Tpo -c -o libgnu_a-asprintf.obj `if test -f 'asprintf.c'; then $(CYGPATH_W) 'asprintf.c'; else $(CYGPATH_W) '$(srcdir)/asprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-asprintf.Tpo $(DEPDIR)/libgnu_a-asprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='asprintf.c' object='libgnu_a-asprintf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-asprintf.obj `if test -f 'asprintf.c'; then $(CYGPATH_W) 'asprintf.c'; else $(CYGPATH_W) '$(srcdir)/asprintf.c'; fi` - -libgnu_a-vasprintf.o: vasprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-vasprintf.o -MD -MP -MF $(DEPDIR)/libgnu_a-vasprintf.Tpo -c -o libgnu_a-vasprintf.o `test -f 'vasprintf.c' || echo '$(srcdir)/'`vasprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-vasprintf.Tpo $(DEPDIR)/libgnu_a-vasprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vasprintf.c' object='libgnu_a-vasprintf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-vasprintf.o `test -f 'vasprintf.c' || echo '$(srcdir)/'`vasprintf.c - -libgnu_a-vasprintf.obj: vasprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-vasprintf.obj -MD -MP -MF $(DEPDIR)/libgnu_a-vasprintf.Tpo -c -o libgnu_a-vasprintf.obj `if test -f 'vasprintf.c'; then $(CYGPATH_W) 'vasprintf.c'; else $(CYGPATH_W) '$(srcdir)/vasprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-vasprintf.Tpo $(DEPDIR)/libgnu_a-vasprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vasprintf.c' object='libgnu_a-vasprintf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-vasprintf.obj `if test -f 'vasprintf.c'; then $(CYGPATH_W) 'vasprintf.c'; else $(CYGPATH_W) '$(srcdir)/vasprintf.c'; fi` - -libgnu_a-vsnprintf.o: vsnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-vsnprintf.o -MD -MP -MF $(DEPDIR)/libgnu_a-vsnprintf.Tpo -c -o libgnu_a-vsnprintf.o `test -f 'vsnprintf.c' || echo '$(srcdir)/'`vsnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-vsnprintf.Tpo $(DEPDIR)/libgnu_a-vsnprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vsnprintf.c' object='libgnu_a-vsnprintf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-vsnprintf.o `test -f 'vsnprintf.c' || echo '$(srcdir)/'`vsnprintf.c - -libgnu_a-vsnprintf.obj: vsnprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-vsnprintf.obj -MD -MP -MF $(DEPDIR)/libgnu_a-vsnprintf.Tpo -c -o libgnu_a-vsnprintf.obj `if test -f 'vsnprintf.c'; then $(CYGPATH_W) 'vsnprintf.c'; else $(CYGPATH_W) '$(srcdir)/vsnprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-vsnprintf.Tpo $(DEPDIR)/libgnu_a-vsnprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vsnprintf.c' object='libgnu_a-vsnprintf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-vsnprintf.obj `if test -f 'vsnprintf.c'; then $(CYGPATH_W) 'vsnprintf.c'; else $(CYGPATH_W) '$(srcdir)/vsnprintf.c'; fi` - mostlyclean-libtool: -rm -f *.lo @@ -4329,7 +1992,7 @@ distdir-am: $(DISTFILES) check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) +all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) @@ -4364,8 +2027,6 @@ distclean-generic: -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f glthread/$(DEPDIR)/$(am__dirstamp) -rm -f glthread/$(am__dirstamp) - -rm -f malloc/$(DEPDIR)/$(am__dirstamp) - -rm -f malloc/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @@ -4379,127 +2040,87 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive - -rm -f ./$(DEPDIR)/libgnu_a-af_alg.Po - -rm -f ./$(DEPDIR)/libgnu_a-asnprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-asprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-base64.Po - -rm -f ./$(DEPDIR)/libgnu_a-basename-lgpl.Po - -rm -f ./$(DEPDIR)/libgnu_a-basename.Po - -rm -f ./$(DEPDIR)/libgnu_a-btowc.Po - -rm -f ./$(DEPDIR)/libgnu_a-calloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-cloexec.Po - -rm -f ./$(DEPDIR)/libgnu_a-close.Po - -rm -f ./$(DEPDIR)/libgnu_a-dirname-lgpl.Po - -rm -f ./$(DEPDIR)/libgnu_a-dirname.Po - -rm -f ./$(DEPDIR)/libgnu_a-dup2.Po - -rm -f ./$(DEPDIR)/libgnu_a-error.Po - -rm -f ./$(DEPDIR)/libgnu_a-exitfail.Po - -rm -f ./$(DEPDIR)/libgnu_a-fcntl.Po - -rm -f ./$(DEPDIR)/libgnu_a-fd-hook.Po - -rm -f ./$(DEPDIR)/libgnu_a-fflush.Po - -rm -f ./$(DEPDIR)/libgnu_a-float.Po - -rm -f ./$(DEPDIR)/libgnu_a-floor.Po - -rm -f ./$(DEPDIR)/libgnu_a-floorf.Po - -rm -f ./$(DEPDIR)/libgnu_a-fopen.Po - -rm -f ./$(DEPDIR)/libgnu_a-fpurge.Po - -rm -f ./$(DEPDIR)/libgnu_a-freading.Po - -rm -f ./$(DEPDIR)/libgnu_a-free.Po - -rm -f ./$(DEPDIR)/libgnu_a-fseek.Po - -rm -f ./$(DEPDIR)/libgnu_a-fseeko.Po - -rm -f ./$(DEPDIR)/libgnu_a-fstat.Po - -rm -f ./$(DEPDIR)/libgnu_a-fsusage.Po - -rm -f ./$(DEPDIR)/libgnu_a-ftell.Po - -rm -f ./$(DEPDIR)/libgnu_a-ftello.Po - -rm -f ./$(DEPDIR)/libgnu_a-gai_strerror.Po - -rm -f ./$(DEPDIR)/libgnu_a-getaddrinfo.Po - -rm -f ./$(DEPDIR)/libgnu_a-getdelim.Po - -rm -f ./$(DEPDIR)/libgnu_a-getdtablesize.Po - -rm -f ./$(DEPDIR)/libgnu_a-gethostname.Po - -rm -f ./$(DEPDIR)/libgnu_a-getline.Po - -rm -f ./$(DEPDIR)/libgnu_a-getloadavg.Po - -rm -f ./$(DEPDIR)/libgnu_a-getopt.Po - -rm -f ./$(DEPDIR)/libgnu_a-getopt1.Po - -rm -f ./$(DEPDIR)/libgnu_a-getprogname.Po - -rm -f ./$(DEPDIR)/libgnu_a-hard-locale.Po - -rm -f ./$(DEPDIR)/libgnu_a-ialloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-idpriv-droptemp.Po - -rm -f ./$(DEPDIR)/libgnu_a-inet_ntop.Po - -rm -f ./$(DEPDIR)/libgnu_a-itold.Po - -rm -f ./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po - -rm -f ./$(DEPDIR)/libgnu_a-localcharset.Po - -rm -f ./$(DEPDIR)/libgnu_a-localeconv.Po - -rm -f ./$(DEPDIR)/libgnu_a-lseek.Po - -rm -f ./$(DEPDIR)/libgnu_a-malloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-malloca.Po - -rm -f ./$(DEPDIR)/libgnu_a-math.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbrtowc.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbsinit.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbtowc-lock.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbtowc.Po - -rm -f ./$(DEPDIR)/libgnu_a-memchr.Po - -rm -f ./$(DEPDIR)/libgnu_a-mktime.Po - -rm -f ./$(DEPDIR)/libgnu_a-mountlist.Po - -rm -f ./$(DEPDIR)/libgnu_a-msvc-inval.Po - -rm -f ./$(DEPDIR)/libgnu_a-msvc-nothrow.Po - -rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po - -rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo.Po - -rm -f ./$(DEPDIR)/libgnu_a-open.Po - -rm -f ./$(DEPDIR)/libgnu_a-printf-args.Po - -rm -f ./$(DEPDIR)/libgnu_a-printf-parse.Po - -rm -f ./$(DEPDIR)/libgnu_a-realloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-reallocarray.Po - -rm -f ./$(DEPDIR)/libgnu_a-regcomp.Po - -rm -f ./$(DEPDIR)/libgnu_a-regex.Po - -rm -f ./$(DEPDIR)/libgnu_a-regex_internal.Po - -rm -f ./$(DEPDIR)/libgnu_a-regexec.Po - -rm -f ./$(DEPDIR)/libgnu_a-setenv.Po - -rm -f ./$(DEPDIR)/libgnu_a-setlocale-lock.Po - -rm -f ./$(DEPDIR)/libgnu_a-setlocale_null.Po - -rm -f ./$(DEPDIR)/libgnu_a-sha256-stream.Po - -rm -f ./$(DEPDIR)/libgnu_a-sha256.Po - -rm -f ./$(DEPDIR)/libgnu_a-snprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-sockets.Po - -rm -f ./$(DEPDIR)/libgnu_a-stat-time.Po - -rm -f ./$(DEPDIR)/libgnu_a-stat-w32.Po - -rm -f ./$(DEPDIR)/libgnu_a-stat.Po - -rm -f ./$(DEPDIR)/libgnu_a-stdio-read.Po - -rm -f ./$(DEPDIR)/libgnu_a-stdio-write.Po - -rm -f ./$(DEPDIR)/libgnu_a-strcasecmp.Po - -rm -f ./$(DEPDIR)/libgnu_a-strcasestr.Po - -rm -f ./$(DEPDIR)/libgnu_a-strerror-override.Po - -rm -f ./$(DEPDIR)/libgnu_a-strerror.Po - -rm -f ./$(DEPDIR)/libgnu_a-stripslash.Po - -rm -f ./$(DEPDIR)/libgnu_a-strncasecmp.Po - -rm -f ./$(DEPDIR)/libgnu_a-strsep.Po - -rm -f ./$(DEPDIR)/libgnu_a-strstr.Po - -rm -f ./$(DEPDIR)/libgnu_a-sys_socket.Po - -rm -f ./$(DEPDIR)/libgnu_a-time_r.Po - -rm -f ./$(DEPDIR)/libgnu_a-timegm.Po - -rm -f ./$(DEPDIR)/libgnu_a-unistd.Po - -rm -f ./$(DEPDIR)/libgnu_a-unsetenv.Po - -rm -f ./$(DEPDIR)/libgnu_a-vasnprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-vasprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-vsnprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-wcrtomb.Po - -rm -f ./$(DEPDIR)/libgnu_a-wctype-h.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-mutex.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-once.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-recmutex.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-rwlock.Po - -rm -f ./$(DEPDIR)/libgnu_a-xalloc-die.Po - -rm -f ./$(DEPDIR)/libgnu_a-xmalloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-xsize.Po - -rm -f glthread/$(DEPDIR)/libgnu_a-lock.Po - -rm -f glthread/$(DEPDIR)/libgnu_a-threadlib.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po + -rm -f ./$(DEPDIR)/asnprintf.Po + -rm -f ./$(DEPDIR)/asprintf.Po + -rm -f ./$(DEPDIR)/base64.Po + -rm -f ./$(DEPDIR)/basename-lgpl.Po + -rm -f ./$(DEPDIR)/basename.Po + -rm -f ./$(DEPDIR)/btowc.Po + -rm -f ./$(DEPDIR)/dirname-lgpl.Po + -rm -f ./$(DEPDIR)/dirname.Po + -rm -f ./$(DEPDIR)/error.Po + -rm -f ./$(DEPDIR)/exitfail.Po + -rm -f ./$(DEPDIR)/fd-hook.Po + -rm -f ./$(DEPDIR)/float.Po + -rm -f ./$(DEPDIR)/floor.Po + -rm -f ./$(DEPDIR)/floorf.Po + -rm -f ./$(DEPDIR)/fsusage.Po + -rm -f ./$(DEPDIR)/full-read.Po + -rm -f ./$(DEPDIR)/full-write.Po + -rm -f ./$(DEPDIR)/gai_strerror.Po + -rm -f ./$(DEPDIR)/getaddrinfo.Po + -rm -f ./$(DEPDIR)/gethostname.Po + -rm -f ./$(DEPDIR)/getloadavg.Po + -rm -f ./$(DEPDIR)/getopt.Po + -rm -f ./$(DEPDIR)/getopt1.Po + -rm -f ./$(DEPDIR)/idpriv-droptemp.Po + -rm -f ./$(DEPDIR)/inet_ntop.Po + -rm -f ./$(DEPDIR)/itold.Po + -rm -f ./$(DEPDIR)/localcharset.Po + -rm -f ./$(DEPDIR)/localeconv.Po + -rm -f ./$(DEPDIR)/malloc.Po + -rm -f ./$(DEPDIR)/malloca.Po + -rm -f ./$(DEPDIR)/math.Po + -rm -f ./$(DEPDIR)/mbrtowc.Po + -rm -f ./$(DEPDIR)/mbsinit.Po + -rm -f ./$(DEPDIR)/mbtowc.Po + -rm -f ./$(DEPDIR)/memchr.Po + -rm -f ./$(DEPDIR)/mktime.Po + -rm -f ./$(DEPDIR)/mountlist.Po + -rm -f ./$(DEPDIR)/msvc-inval.Po + -rm -f ./$(DEPDIR)/msvc-nothrow.Po + -rm -f ./$(DEPDIR)/nl_langinfo.Po + -rm -f ./$(DEPDIR)/printf-args.Po + -rm -f ./$(DEPDIR)/printf-parse.Po + -rm -f ./$(DEPDIR)/read.Po + -rm -f ./$(DEPDIR)/regcomp.Po + -rm -f ./$(DEPDIR)/regex.Po + -rm -f ./$(DEPDIR)/regex_internal.Po + -rm -f ./$(DEPDIR)/regexec.Po + -rm -f ./$(DEPDIR)/safe-read.Po + -rm -f ./$(DEPDIR)/setenv.Po + -rm -f ./$(DEPDIR)/sha1.Po + -rm -f ./$(DEPDIR)/snprintf.Po + -rm -f ./$(DEPDIR)/sockets.Po + -rm -f ./$(DEPDIR)/strcasecmp.Po + -rm -f ./$(DEPDIR)/strcasestr.Po + -rm -f ./$(DEPDIR)/strerror-override.Po + -rm -f ./$(DEPDIR)/strerror.Po + -rm -f ./$(DEPDIR)/stripslash.Po + -rm -f ./$(DEPDIR)/strncasecmp.Po + -rm -f ./$(DEPDIR)/strndup.Po + -rm -f ./$(DEPDIR)/strnlen.Po + -rm -f ./$(DEPDIR)/strsep.Po + -rm -f ./$(DEPDIR)/strstr.Po + -rm -f ./$(DEPDIR)/sys_socket.Po + -rm -f ./$(DEPDIR)/time_r.Po + -rm -f ./$(DEPDIR)/timegm.Po + -rm -f ./$(DEPDIR)/unistd.Po + -rm -f ./$(DEPDIR)/unsetenv.Po + -rm -f ./$(DEPDIR)/vasnprintf.Po + -rm -f ./$(DEPDIR)/vasprintf.Po + -rm -f ./$(DEPDIR)/vsnprintf.Po + -rm -f ./$(DEPDIR)/wcrtomb.Po + -rm -f ./$(DEPDIR)/wctype-h.Po + -rm -f ./$(DEPDIR)/xalloc-die.Po + -rm -f ./$(DEPDIR)/xmalloc.Po + -rm -f ./$(DEPDIR)/xsize.Po + -rm -f ./$(DEPDIR)/xstrndup.Po + -rm -f glthread/$(DEPDIR)/lock.Po + -rm -f glthread/$(DEPDIR)/threadlib.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ - distclean-local distclean-tags + distclean-tags dvi: dvi-recursive @@ -4519,7 +2140,7 @@ install-dvi: install-dvi-recursive install-dvi-am: -install-exec-am: +install-exec-am: install-exec-local install-html: install-html-recursive @@ -4542,127 +2163,86 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive - -rm -f ./$(DEPDIR)/libgnu_a-af_alg.Po - -rm -f ./$(DEPDIR)/libgnu_a-asnprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-asprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-base64.Po - -rm -f ./$(DEPDIR)/libgnu_a-basename-lgpl.Po - -rm -f ./$(DEPDIR)/libgnu_a-basename.Po - -rm -f ./$(DEPDIR)/libgnu_a-btowc.Po - -rm -f ./$(DEPDIR)/libgnu_a-calloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-cloexec.Po - -rm -f ./$(DEPDIR)/libgnu_a-close.Po - -rm -f ./$(DEPDIR)/libgnu_a-dirname-lgpl.Po - -rm -f ./$(DEPDIR)/libgnu_a-dirname.Po - -rm -f ./$(DEPDIR)/libgnu_a-dup2.Po - -rm -f ./$(DEPDIR)/libgnu_a-error.Po - -rm -f ./$(DEPDIR)/libgnu_a-exitfail.Po - -rm -f ./$(DEPDIR)/libgnu_a-fcntl.Po - -rm -f ./$(DEPDIR)/libgnu_a-fd-hook.Po - -rm -f ./$(DEPDIR)/libgnu_a-fflush.Po - -rm -f ./$(DEPDIR)/libgnu_a-float.Po - -rm -f ./$(DEPDIR)/libgnu_a-floor.Po - -rm -f ./$(DEPDIR)/libgnu_a-floorf.Po - -rm -f ./$(DEPDIR)/libgnu_a-fopen.Po - -rm -f ./$(DEPDIR)/libgnu_a-fpurge.Po - -rm -f ./$(DEPDIR)/libgnu_a-freading.Po - -rm -f ./$(DEPDIR)/libgnu_a-free.Po - -rm -f ./$(DEPDIR)/libgnu_a-fseek.Po - -rm -f ./$(DEPDIR)/libgnu_a-fseeko.Po - -rm -f ./$(DEPDIR)/libgnu_a-fstat.Po - -rm -f ./$(DEPDIR)/libgnu_a-fsusage.Po - -rm -f ./$(DEPDIR)/libgnu_a-ftell.Po - -rm -f ./$(DEPDIR)/libgnu_a-ftello.Po - -rm -f ./$(DEPDIR)/libgnu_a-gai_strerror.Po - -rm -f ./$(DEPDIR)/libgnu_a-getaddrinfo.Po - -rm -f ./$(DEPDIR)/libgnu_a-getdelim.Po - -rm -f ./$(DEPDIR)/libgnu_a-getdtablesize.Po - -rm -f ./$(DEPDIR)/libgnu_a-gethostname.Po - -rm -f ./$(DEPDIR)/libgnu_a-getline.Po - -rm -f ./$(DEPDIR)/libgnu_a-getloadavg.Po - -rm -f ./$(DEPDIR)/libgnu_a-getopt.Po - -rm -f ./$(DEPDIR)/libgnu_a-getopt1.Po - -rm -f ./$(DEPDIR)/libgnu_a-getprogname.Po - -rm -f ./$(DEPDIR)/libgnu_a-hard-locale.Po - -rm -f ./$(DEPDIR)/libgnu_a-ialloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-idpriv-droptemp.Po - -rm -f ./$(DEPDIR)/libgnu_a-inet_ntop.Po - -rm -f ./$(DEPDIR)/libgnu_a-itold.Po - -rm -f ./$(DEPDIR)/libgnu_a-lc-charset-dispatch.Po - -rm -f ./$(DEPDIR)/libgnu_a-localcharset.Po - -rm -f ./$(DEPDIR)/libgnu_a-localeconv.Po - -rm -f ./$(DEPDIR)/libgnu_a-lseek.Po - -rm -f ./$(DEPDIR)/libgnu_a-malloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-malloca.Po - -rm -f ./$(DEPDIR)/libgnu_a-math.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbrtowc.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbsinit.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbtowc-lock.Po - -rm -f ./$(DEPDIR)/libgnu_a-mbtowc.Po - -rm -f ./$(DEPDIR)/libgnu_a-memchr.Po - -rm -f ./$(DEPDIR)/libgnu_a-mktime.Po - -rm -f ./$(DEPDIR)/libgnu_a-mountlist.Po - -rm -f ./$(DEPDIR)/libgnu_a-msvc-inval.Po - -rm -f ./$(DEPDIR)/libgnu_a-msvc-nothrow.Po - -rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo-lock.Po - -rm -f ./$(DEPDIR)/libgnu_a-nl_langinfo.Po - -rm -f ./$(DEPDIR)/libgnu_a-open.Po - -rm -f ./$(DEPDIR)/libgnu_a-printf-args.Po - -rm -f ./$(DEPDIR)/libgnu_a-printf-parse.Po - -rm -f ./$(DEPDIR)/libgnu_a-realloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-reallocarray.Po - -rm -f ./$(DEPDIR)/libgnu_a-regcomp.Po - -rm -f ./$(DEPDIR)/libgnu_a-regex.Po - -rm -f ./$(DEPDIR)/libgnu_a-regex_internal.Po - -rm -f ./$(DEPDIR)/libgnu_a-regexec.Po - -rm -f ./$(DEPDIR)/libgnu_a-setenv.Po - -rm -f ./$(DEPDIR)/libgnu_a-setlocale-lock.Po - -rm -f ./$(DEPDIR)/libgnu_a-setlocale_null.Po - -rm -f ./$(DEPDIR)/libgnu_a-sha256-stream.Po - -rm -f ./$(DEPDIR)/libgnu_a-sha256.Po - -rm -f ./$(DEPDIR)/libgnu_a-snprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-sockets.Po - -rm -f ./$(DEPDIR)/libgnu_a-stat-time.Po - -rm -f ./$(DEPDIR)/libgnu_a-stat-w32.Po - -rm -f ./$(DEPDIR)/libgnu_a-stat.Po - -rm -f ./$(DEPDIR)/libgnu_a-stdio-read.Po - -rm -f ./$(DEPDIR)/libgnu_a-stdio-write.Po - -rm -f ./$(DEPDIR)/libgnu_a-strcasecmp.Po - -rm -f ./$(DEPDIR)/libgnu_a-strcasestr.Po - -rm -f ./$(DEPDIR)/libgnu_a-strerror-override.Po - -rm -f ./$(DEPDIR)/libgnu_a-strerror.Po - -rm -f ./$(DEPDIR)/libgnu_a-stripslash.Po - -rm -f ./$(DEPDIR)/libgnu_a-strncasecmp.Po - -rm -f ./$(DEPDIR)/libgnu_a-strsep.Po - -rm -f ./$(DEPDIR)/libgnu_a-strstr.Po - -rm -f ./$(DEPDIR)/libgnu_a-sys_socket.Po - -rm -f ./$(DEPDIR)/libgnu_a-time_r.Po - -rm -f ./$(DEPDIR)/libgnu_a-timegm.Po - -rm -f ./$(DEPDIR)/libgnu_a-unistd.Po - -rm -f ./$(DEPDIR)/libgnu_a-unsetenv.Po - -rm -f ./$(DEPDIR)/libgnu_a-vasnprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-vasprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-vsnprintf.Po - -rm -f ./$(DEPDIR)/libgnu_a-wcrtomb.Po - -rm -f ./$(DEPDIR)/libgnu_a-wctype-h.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-mutex.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-once.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-recmutex.Po - -rm -f ./$(DEPDIR)/libgnu_a-windows-rwlock.Po - -rm -f ./$(DEPDIR)/libgnu_a-xalloc-die.Po - -rm -f ./$(DEPDIR)/libgnu_a-xmalloc.Po - -rm -f ./$(DEPDIR)/libgnu_a-xsize.Po - -rm -f glthread/$(DEPDIR)/libgnu_a-lock.Po - -rm -f glthread/$(DEPDIR)/libgnu_a-threadlib.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray-skeleton.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_at_failure.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_emplace_enlarge.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_finalize.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize.Po - -rm -f malloc/$(DEPDIR)/libgnu_a-dynarray_resize_clear.Po + -rm -f ./$(DEPDIR)/asnprintf.Po + -rm -f ./$(DEPDIR)/asprintf.Po + -rm -f ./$(DEPDIR)/base64.Po + -rm -f ./$(DEPDIR)/basename-lgpl.Po + -rm -f ./$(DEPDIR)/basename.Po + -rm -f ./$(DEPDIR)/btowc.Po + -rm -f ./$(DEPDIR)/dirname-lgpl.Po + -rm -f ./$(DEPDIR)/dirname.Po + -rm -f ./$(DEPDIR)/error.Po + -rm -f ./$(DEPDIR)/exitfail.Po + -rm -f ./$(DEPDIR)/fd-hook.Po + -rm -f ./$(DEPDIR)/float.Po + -rm -f ./$(DEPDIR)/floor.Po + -rm -f ./$(DEPDIR)/floorf.Po + -rm -f ./$(DEPDIR)/fsusage.Po + -rm -f ./$(DEPDIR)/full-read.Po + -rm -f ./$(DEPDIR)/full-write.Po + -rm -f ./$(DEPDIR)/gai_strerror.Po + -rm -f ./$(DEPDIR)/getaddrinfo.Po + -rm -f ./$(DEPDIR)/gethostname.Po + -rm -f ./$(DEPDIR)/getloadavg.Po + -rm -f ./$(DEPDIR)/getopt.Po + -rm -f ./$(DEPDIR)/getopt1.Po + -rm -f ./$(DEPDIR)/idpriv-droptemp.Po + -rm -f ./$(DEPDIR)/inet_ntop.Po + -rm -f ./$(DEPDIR)/itold.Po + -rm -f ./$(DEPDIR)/localcharset.Po + -rm -f ./$(DEPDIR)/localeconv.Po + -rm -f ./$(DEPDIR)/malloc.Po + -rm -f ./$(DEPDIR)/malloca.Po + -rm -f ./$(DEPDIR)/math.Po + -rm -f ./$(DEPDIR)/mbrtowc.Po + -rm -f ./$(DEPDIR)/mbsinit.Po + -rm -f ./$(DEPDIR)/mbtowc.Po + -rm -f ./$(DEPDIR)/memchr.Po + -rm -f ./$(DEPDIR)/mktime.Po + -rm -f ./$(DEPDIR)/mountlist.Po + -rm -f ./$(DEPDIR)/msvc-inval.Po + -rm -f ./$(DEPDIR)/msvc-nothrow.Po + -rm -f ./$(DEPDIR)/nl_langinfo.Po + -rm -f ./$(DEPDIR)/printf-args.Po + -rm -f ./$(DEPDIR)/printf-parse.Po + -rm -f ./$(DEPDIR)/read.Po + -rm -f ./$(DEPDIR)/regcomp.Po + -rm -f ./$(DEPDIR)/regex.Po + -rm -f ./$(DEPDIR)/regex_internal.Po + -rm -f ./$(DEPDIR)/regexec.Po + -rm -f ./$(DEPDIR)/safe-read.Po + -rm -f ./$(DEPDIR)/setenv.Po + -rm -f ./$(DEPDIR)/sha1.Po + -rm -f ./$(DEPDIR)/snprintf.Po + -rm -f ./$(DEPDIR)/sockets.Po + -rm -f ./$(DEPDIR)/strcasecmp.Po + -rm -f ./$(DEPDIR)/strcasestr.Po + -rm -f ./$(DEPDIR)/strerror-override.Po + -rm -f ./$(DEPDIR)/strerror.Po + -rm -f ./$(DEPDIR)/stripslash.Po + -rm -f ./$(DEPDIR)/strncasecmp.Po + -rm -f ./$(DEPDIR)/strndup.Po + -rm -f ./$(DEPDIR)/strnlen.Po + -rm -f ./$(DEPDIR)/strsep.Po + -rm -f ./$(DEPDIR)/strstr.Po + -rm -f ./$(DEPDIR)/sys_socket.Po + -rm -f ./$(DEPDIR)/time_r.Po + -rm -f ./$(DEPDIR)/timegm.Po + -rm -f ./$(DEPDIR)/unistd.Po + -rm -f ./$(DEPDIR)/unsetenv.Po + -rm -f ./$(DEPDIR)/vasnprintf.Po + -rm -f ./$(DEPDIR)/vasprintf.Po + -rm -f ./$(DEPDIR)/vsnprintf.Po + -rm -f ./$(DEPDIR)/wcrtomb.Po + -rm -f ./$(DEPDIR)/wctype-h.Po + -rm -f ./$(DEPDIR)/xalloc-die.Po + -rm -f ./$(DEPDIR)/xmalloc.Po + -rm -f ./$(DEPDIR)/xsize.Po + -rm -f ./$(DEPDIR)/xstrndup.Po + -rm -f glthread/$(DEPDIR)/lock.Po + -rm -f glthread/$(DEPDIR)/threadlib.Po -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic \ - maintainer-clean-local +maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive @@ -4677,26 +2257,26 @@ ps: ps-recursive ps-am: -uninstall-am: +uninstall-am: uninstall-local .MAKE: $(am__recursive_targets) all check install install-am \ install-exec install-strip -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ am--depfiles check check-am clean clean-generic clean-libtool \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-local distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-local mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-exec-local install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \ + tags-am uninstall uninstall-am uninstall-local .PRECIOUS: Makefile @@ -4704,28 +2284,29 @@ uninstall-am: # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status -@GL_GENERATE_ALLOCA_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_ALLOCA_H_TRUE@ -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \ -@GL_GENERATE_ALLOCA_H_TRUE@ $(srcdir)/alloca.in.h > $@-t -@GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ +@GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \ +@GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ +@GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one. arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(AM_V_GEN)$(MKDIR_P) 'arpa' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) arpa + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \ -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \ - -e 's/@''GNULIB_INET_NTOP''@/$(GL_GNULIB_INET_NTOP)/g' \ - -e 's/@''GNULIB_INET_PTON''@/$(GL_GNULIB_INET_PTON)/g' \ - -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ + -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \ + -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \ -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \ -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \ -e 's|@''REPLACE_INET_NTOP''@|$(REPLACE_INET_NTOP)|g' \ @@ -4733,41 +2314,53 @@ arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/arpa_inet.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/arpa_inet.in.h; \ + } > $@-t && \ + mv $@-t $@ -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -@GL_GENERATE_ASSERT_H_TRUE@assert.h: assert.in.h verify.h $(top_builddir)/config.status -@GL_GENERATE_ASSERT_H_TRUE@ $(gl_V_at){ $(SED_HEADER_STDOUT) \ -@GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -@GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -@GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -@GL_GENERATE_ASSERT_H_TRUE@ -e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \ -@GL_GENERATE_ASSERT_H_TRUE@ < $(srcdir)/assert.in.h && \ -@GL_GENERATE_ASSERT_H_TRUE@ sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \ -@GL_GENERATE_ASSERT_H_TRUE@ -e 's|_gl_verify|_gl_static_assert|g' \ -@GL_GENERATE_ASSERT_H_TRUE@ -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \ -@GL_GENERATE_ASSERT_H_TRUE@ -e 's|_GL\(_STATIC_ASSERT_H\)|_GL\1|g' \ -@GL_GENERATE_ASSERT_H_TRUE@ < $(srcdir)/verify.h; \ -@GL_GENERATE_ASSERT_H_TRUE@ } > $@-t -@GL_GENERATE_ASSERT_H_TRUE@ $(AM_V_at)mv $@-t $@ -@GL_GENERATE_ASSERT_H_FALSE@assert.h: $(top_builddir)/config.status -@GL_GENERATE_ASSERT_H_FALSE@ rm -f $@ - -# We need the following in order to create when the system -# doesn't have one. -@GL_GENERATE_BYTESWAP_H_TRUE@byteswap.h: byteswap.in.h $(top_builddir)/config.status -@GL_GENERATE_BYTESWAP_H_TRUE@ $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/byteswap.in.h -@GL_GENERATE_BYTESWAP_H_TRUE@ $(AM_V_at)mv $@-t $@ -@GL_GENERATE_BYTESWAP_H_FALSE@byteswap.h: $(top_builddir)/config.status -@GL_GENERATE_BYTESWAP_H_FALSE@ rm -f $@ +# Listed in the same order as the GNU makefile conventions, and +# provided by autoconf 2.59c+. +# The Automake-defined pkg* macros are appended, in the order +# listed in the Automake 1.10a+ documentation. +configmake.h: Makefile + $(AM_V_GEN)rm -f $@-t && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + echo '#define PREFIX "$(prefix)"'; \ + echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ + echo '#define BINDIR "$(bindir)"'; \ + echo '#define SBINDIR "$(sbindir)"'; \ + echo '#define LIBEXECDIR "$(libexecdir)"'; \ + echo '#define DATAROOTDIR "$(datarootdir)"'; \ + echo '#define DATADIR "$(datadir)"'; \ + echo '#define SYSCONFDIR "$(sysconfdir)"'; \ + echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ + echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ + echo '#define INCLUDEDIR "$(includedir)"'; \ + echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ + echo '#define DOCDIR "$(docdir)"'; \ + echo '#define INFODIR "$(infodir)"'; \ + echo '#define HTMLDIR "$(htmldir)"'; \ + echo '#define DVIDIR "$(dvidir)"'; \ + echo '#define PDFDIR "$(pdfdir)"'; \ + echo '#define PSDIR "$(psdir)"'; \ + echo '#define LIBDIR "$(libdir)"'; \ + echo '#define LISPDIR "$(lispdir)"'; \ + echo '#define LOCALEDIR "$(localedir)"'; \ + echo '#define MANDIR "$(mandir)"'; \ + echo '#define MANEXT "$(manext)"'; \ + echo '#define PKGDATADIR "$(pkgdatadir)"'; \ + echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ + echo '#define PKGLIBDIR "$(pkglibdir)"'; \ + echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ + } | sed '/""/d' > $@-t && \ + mv -f $@-t $@ # We need the following in order to create when the system # doesn't have one that is POSIX compliant. @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status -@GL_GENERATE_ERRNO_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +@GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @@ -4778,308 +2371,260 @@ arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ -@GL_GENERATE_ERRNO_H_TRUE@ $(srcdir)/errno.in.h > $@-t -@GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ +@GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ +@GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ - -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ - -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ - -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ - -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ - -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ - -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ - -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ - -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ - -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ - -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ - -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ - -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ - -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ - -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/fcntl.in.h > $@-t - $(AM_V_at)mv $@-t $@ - # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status -@GL_GENERATE_FLOAT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_FLOAT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_FLOAT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +@GL_GENERATE_FLOAT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ -@GL_GENERATE_FLOAT_H_TRUE@ $(srcdir)/float.in.h > $@-t -@GL_GENERATE_FLOAT_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_FLOAT_H_TRUE@ < $(srcdir)/float.in.h; \ +@GL_GENERATE_FLOAT_H_TRUE@ } > $@-t && \ +@GL_GENERATE_FLOAT_H_TRUE@ mv $@-t $@ @GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status @GL_GENERATE_FLOAT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. -@GL_GENERATE_GETOPT_H_TRUE@getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) -@GL_GENERATE_GETOPT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_GETOPT_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ -@GL_GENERATE_GETOPT_H_TRUE@ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -@GL_GENERATE_GETOPT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -@GL_GENERATE_GETOPT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -@GL_GENERATE_GETOPT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -@GL_GENERATE_GETOPT_H_TRUE@ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -@GL_GENERATE_GETOPT_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -@GL_GENERATE_GETOPT_H_TRUE@ $(srcdir)/getopt.in.h > $@-t -@GL_GENERATE_GETOPT_H_TRUE@ $(AM_V_at)mv $@-t $@ -@GL_GENERATE_GETOPT_H_FALSE@getopt.h: $(top_builddir)/config.status -@GL_GENERATE_GETOPT_H_FALSE@ rm -f $@ - -@GL_GENERATE_GETOPT_CDEFS_H_TRUE@getopt-cdefs.h: getopt-cdefs.in.h $(top_builddir)/config.status -@GL_GENERATE_GETOPT_CDEFS_H_TRUE@ $(AM_V_GEN)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_GETOPT_CDEFS_H_TRUE@ -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ -@GL_GENERATE_GETOPT_CDEFS_H_TRUE@ $(srcdir)/getopt-cdefs.in.h > $@-t -@GL_GENERATE_GETOPT_CDEFS_H_TRUE@ $(AM_V_at)mv $@-t $@ -@GL_GENERATE_GETOPT_CDEFS_H_FALSE@getopt-cdefs.h: $(top_builddir)/config.status -@GL_GENERATE_GETOPT_CDEFS_H_FALSE@ rm -f $@ - -malloc/dynarray.gl.h: malloc/dynarray.h - $(AM_V_GEN)$(MKDIR_P) 'malloc' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e '/libc_hidden_proto/d' \ - $(srcdir)/malloc/dynarray.h > $@-t - $(AM_V_at)mv $@-t $@ - -malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c - $(AM_V_GEN)$(MKDIR_P) 'malloc' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|||g' \ - -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \ - -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \ - -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \ - -e 's|__glibc_likely|_GL_LIKELY|g' \ - -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \ - $(srcdir)/malloc/dynarray-skeleton.c > $@-t - $(AM_V_at)mv $@-t $@ - -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ +getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ - -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ - -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ - -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \ - -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \ - -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \ - -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \ - -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ - -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ - -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ - -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ - -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/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' \ - -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ - -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/inttypes.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/getopt.in.h; \ + } > $@-t && \ + mv -f $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ - -e 's/@''GNULIB_NL_LANGINFO''@/$(GL_GNULIB_NL_LANGINFO)/g' \ + -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ - -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/langinfo.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/langinfo.in.h; \ + } > $@-t && \ + mv $@-t $@ -# We need the following in order to create when the system -# doesn't have one that is compatible with GNU. -@GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status -@GL_GENERATE_LIMITS_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ -@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ -@GL_GENERATE_LIMITS_H_TRUE@ $(srcdir)/limits.in.h > $@-t -@GL_GENERATE_LIMITS_H_TRUE@ $(AM_V_at)mv $@-t $@ -@GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status -@GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ +# We need the following in order to install a simple file in $(libdir) +# which is shared with other installed packages. We use a list of referencing +# packages so that "make uninstall" will remove the file if and only if it +# is not used by another installed package. +# On systems with glibc-2.1 or newer, the file is redundant, therefore we +# avoid installing it. + +all-local: charset.alias ref-add.sed ref-del.sed +install-exec-local: install-exec-localcharset +install-exec-localcharset: all-local + if test $(GLIBC21) = no; then \ + case '$(host_os)' in \ + darwin[56]*) \ + need_charset_alias=true ;; \ + darwin* | cygwin* | mingw* | pw32* | cegcc*) \ + need_charset_alias=false ;; \ + *) \ + need_charset_alias=true ;; \ + esac ; \ + else \ + need_charset_alias=false ; \ + fi ; \ + if $$need_charset_alias; then \ + $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ + fi ; \ + if test -f $(charset_alias); then \ + sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + else \ + if $$need_charset_alias; then \ + sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + fi ; \ + fi + +uninstall-local: uninstall-localcharset +uninstall-localcharset: all-local + if test -f $(charset_alias); then \ + sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ + if grep '^# Packages using this file: $$' $(charset_tmp) \ + > /dev/null; then \ + rm -f $(charset_alias); \ + else \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ + fi; \ + rm -f $(charset_tmp); \ + fi + +charset.alias: config.charset + $(AM_V_GEN)rm -f t-$@ $@ && \ + $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ + mv t-$@ $@ +.sin.sed: + $(AM_V_GEN)rm -f t-$@ $@ && \ + sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ + mv t-$@ $@ # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ - -e 's/@''GNULIB_LOCALECONV''@/$(GL_GNULIB_LOCALECONV)/g' \ - -e 's/@''GNULIB_SETLOCALE''@/$(GL_GNULIB_SETLOCALE)/g' \ - -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GL_GNULIB_SETLOCALE_NULL)/g' \ - -e 's/@''GNULIB_DUPLOCALE''@/$(GL_GNULIB_DUPLOCALE)/g' \ - -e 's/@''GNULIB_LOCALENAME''@/$(GL_GNULIB_LOCALENAME)/g' \ - -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ + -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ + -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ + -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ - -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ - -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ - -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ - -e 's|@''LOCALENAME_ENHANCE_LOCALE_FUNCS''@|$(LOCALENAME_ENHANCE_LOCALE_FUNCS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/locale.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/locale.in.h; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ - -e 's/@''GNULIB_ACOSF''@/$(GL_GNULIB_ACOSF)/g' \ - -e 's/@''GNULIB_ACOSL''@/$(GL_GNULIB_ACOSL)/g' \ - -e 's/@''GNULIB_ASINF''@/$(GL_GNULIB_ASINF)/g' \ - -e 's/@''GNULIB_ASINL''@/$(GL_GNULIB_ASINL)/g' \ - -e 's/@''GNULIB_ATANF''@/$(GL_GNULIB_ATANF)/g' \ - -e 's/@''GNULIB_ATANL''@/$(GL_GNULIB_ATANL)/g' \ - -e 's/@''GNULIB_ATAN2F''@/$(GL_GNULIB_ATAN2F)/g' \ - -e 's/@''GNULIB_CBRT''@/$(GL_GNULIB_CBRT)/g' \ - -e 's/@''GNULIB_CBRTF''@/$(GL_GNULIB_CBRTF)/g' \ - -e 's/@''GNULIB_CBRTL''@/$(GL_GNULIB_CBRTL)/g' \ - -e 's/@''GNULIB_CEIL''@/$(GL_GNULIB_CEIL)/g' \ - -e 's/@''GNULIB_CEILF''@/$(GL_GNULIB_CEILF)/g' \ - -e 's/@''GNULIB_CEILL''@/$(GL_GNULIB_CEILL)/g' \ - -e 's/@''GNULIB_COPYSIGN''@/$(GL_GNULIB_COPYSIGN)/g' \ - -e 's/@''GNULIB_COPYSIGNF''@/$(GL_GNULIB_COPYSIGNF)/g' \ - -e 's/@''GNULIB_COPYSIGNL''@/$(GL_GNULIB_COPYSIGNL)/g' \ - -e 's/@''GNULIB_COSF''@/$(GL_GNULIB_COSF)/g' \ - -e 's/@''GNULIB_COSL''@/$(GL_GNULIB_COSL)/g' \ - -e 's/@''GNULIB_COSHF''@/$(GL_GNULIB_COSHF)/g' \ - -e 's/@''GNULIB_EXPF''@/$(GL_GNULIB_EXPF)/g' \ - -e 's/@''GNULIB_EXPL''@/$(GL_GNULIB_EXPL)/g' \ - -e 's/@''GNULIB_EXP2''@/$(GL_GNULIB_EXP2)/g' \ - -e 's/@''GNULIB_EXP2F''@/$(GL_GNULIB_EXP2F)/g' \ - -e 's/@''GNULIB_EXP2L''@/$(GL_GNULIB_EXP2L)/g' \ - -e 's/@''GNULIB_EXPM1''@/$(GL_GNULIB_EXPM1)/g' \ - -e 's/@''GNULIB_EXPM1F''@/$(GL_GNULIB_EXPM1F)/g' \ - -e 's/@''GNULIB_EXPM1L''@/$(GL_GNULIB_EXPM1L)/g' \ - -e 's/@''GNULIB_FABSF''@/$(GL_GNULIB_FABSF)/g' \ - -e 's/@''GNULIB_FABSL''@/$(GL_GNULIB_FABSL)/g' \ - -e 's/@''GNULIB_FLOOR''@/$(GL_GNULIB_FLOOR)/g' \ - -e 's/@''GNULIB_FLOORF''@/$(GL_GNULIB_FLOORF)/g' \ - -e 's/@''GNULIB_FLOORL''@/$(GL_GNULIB_FLOORL)/g' \ - -e 's/@''GNULIB_FMA''@/$(GL_GNULIB_FMA)/g' \ - -e 's/@''GNULIB_FMAF''@/$(GL_GNULIB_FMAF)/g' \ - -e 's/@''GNULIB_FMAL''@/$(GL_GNULIB_FMAL)/g' \ - -e 's/@''GNULIB_FMOD''@/$(GL_GNULIB_FMOD)/g' \ - -e 's/@''GNULIB_FMODF''@/$(GL_GNULIB_FMODF)/g' \ - -e 's/@''GNULIB_FMODL''@/$(GL_GNULIB_FMODL)/g' \ - -e 's/@''GNULIB_FREXPF''@/$(GL_GNULIB_FREXPF)/g' \ - -e 's/@''GNULIB_FREXP''@/$(GL_GNULIB_FREXP)/g' \ - -e 's/@''GNULIB_FREXPL''@/$(GL_GNULIB_FREXPL)/g' \ - -e 's/@''GNULIB_HYPOT''@/$(GL_GNULIB_HYPOT)/g' \ - -e 's/@''GNULIB_HYPOTF''@/$(GL_GNULIB_HYPOTF)/g' \ - -e 's/@''GNULIB_HYPOTL''@/$(GL_GNULIB_HYPOTL)/g' \ + -e 's/@''GNULIB_ACOSF''@/$(GNULIB_ACOSF)/g' \ + -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \ + -e 's/@''GNULIB_ASINF''@/$(GNULIB_ASINF)/g' \ + -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \ + -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \ + -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \ + -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \ + -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \ + -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \ + -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \ + -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \ + -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \ + -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \ + -e 's/@''GNULIB_COPYSIGN''@/$(GNULIB_COPYSIGN)/g' \ + -e 's/@''GNULIB_COPYSIGNF''@/$(GNULIB_COPYSIGNF)/g' \ + -e 's/@''GNULIB_COPYSIGNL''@/$(GNULIB_COPYSIGNL)/g' \ + -e 's/@''GNULIB_COSF''@/$(GNULIB_COSF)/g' \ + -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \ + -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \ + -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \ + -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \ + -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \ + -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \ + -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \ + -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \ + -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \ + -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \ + -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \ + -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \ + -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \ + -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \ + -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \ + -e 's/@''GNULIB_FMA''@/$(GNULIB_FMA)/g' \ + -e 's/@''GNULIB_FMAF''@/$(GNULIB_FMAF)/g' \ + -e 's/@''GNULIB_FMAL''@/$(GNULIB_FMAL)/g' \ + -e 's/@''GNULIB_FMOD''@/$(GNULIB_FMOD)/g' \ + -e 's/@''GNULIB_FMODF''@/$(GNULIB_FMODF)/g' \ + -e 's/@''GNULIB_FMODL''@/$(GNULIB_FMODL)/g' \ + -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \ + -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \ + -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \ + -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \ + -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \ + -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \ < $(srcdir)/math.in.h | \ - sed -e 's/@''GNULIB_ILOGB''@/$(GL_GNULIB_ILOGB)/g' \ - -e 's/@''GNULIB_ILOGBF''@/$(GL_GNULIB_ILOGBF)/g' \ - -e 's/@''GNULIB_ILOGBL''@/$(GL_GNULIB_ILOGBL)/g' \ - -e 's/@''GNULIB_ISFINITE''@/$(GL_GNULIB_ISFINITE)/g' \ - -e 's/@''GNULIB_ISINF''@/$(GL_GNULIB_ISINF)/g' \ - -e 's/@''GNULIB_ISNAN''@/$(GL_GNULIB_ISNAN)/g' \ - -e 's/@''GNULIB_ISNANF''@/$(GL_GNULIB_ISNANF)/g' \ - -e 's/@''GNULIB_ISNAND''@/$(GL_GNULIB_ISNAND)/g' \ - -e 's/@''GNULIB_ISNANL''@/$(GL_GNULIB_ISNANL)/g' \ - -e 's/@''GNULIB_LDEXPF''@/$(GL_GNULIB_LDEXPF)/g' \ - -e 's/@''GNULIB_LDEXPL''@/$(GL_GNULIB_LDEXPL)/g' \ - -e 's/@''GNULIB_LOG''@/$(GL_GNULIB_LOG)/g' \ - -e 's/@''GNULIB_LOGF''@/$(GL_GNULIB_LOGF)/g' \ - -e 's/@''GNULIB_LOGL''@/$(GL_GNULIB_LOGL)/g' \ - -e 's/@''GNULIB_LOG10''@/$(GL_GNULIB_LOG10)/g' \ - -e 's/@''GNULIB_LOG10F''@/$(GL_GNULIB_LOG10F)/g' \ - -e 's/@''GNULIB_LOG10L''@/$(GL_GNULIB_LOG10L)/g' \ - -e 's/@''GNULIB_LOG1P''@/$(GL_GNULIB_LOG1P)/g' \ - -e 's/@''GNULIB_LOG1PF''@/$(GL_GNULIB_LOG1PF)/g' \ - -e 's/@''GNULIB_LOG1PL''@/$(GL_GNULIB_LOG1PL)/g' \ - -e 's/@''GNULIB_LOG2''@/$(GL_GNULIB_LOG2)/g' \ - -e 's/@''GNULIB_LOG2F''@/$(GL_GNULIB_LOG2F)/g' \ - -e 's/@''GNULIB_LOG2L''@/$(GL_GNULIB_LOG2L)/g' \ - -e 's/@''GNULIB_LOGB''@/$(GL_GNULIB_LOGB)/g' \ - -e 's/@''GNULIB_LOGBF''@/$(GL_GNULIB_LOGBF)/g' \ - -e 's/@''GNULIB_LOGBL''@/$(GL_GNULIB_LOGBL)/g' \ - -e 's/@''GNULIB_MODF''@/$(GL_GNULIB_MODF)/g' \ - -e 's/@''GNULIB_MODFF''@/$(GL_GNULIB_MODFF)/g' \ - -e 's/@''GNULIB_MODFL''@/$(GL_GNULIB_MODFL)/g' \ - -e 's/@''GNULIB_POWF''@/$(GL_GNULIB_POWF)/g' \ - -e 's/@''GNULIB_REMAINDER''@/$(GL_GNULIB_REMAINDER)/g' \ - -e 's/@''GNULIB_REMAINDERF''@/$(GL_GNULIB_REMAINDERF)/g' \ - -e 's/@''GNULIB_REMAINDERL''@/$(GL_GNULIB_REMAINDERL)/g' \ - -e 's/@''GNULIB_RINT''@/$(GL_GNULIB_RINT)/g' \ - -e 's/@''GNULIB_RINTF''@/$(GL_GNULIB_RINTF)/g' \ - -e 's/@''GNULIB_RINTL''@/$(GL_GNULIB_RINTL)/g' \ - -e 's/@''GNULIB_ROUND''@/$(GL_GNULIB_ROUND)/g' \ - -e 's/@''GNULIB_ROUNDF''@/$(GL_GNULIB_ROUNDF)/g' \ - -e 's/@''GNULIB_ROUNDL''@/$(GL_GNULIB_ROUNDL)/g' \ - -e 's/@''GNULIB_SIGNBIT''@/$(GL_GNULIB_SIGNBIT)/g' \ - -e 's/@''GNULIB_SINF''@/$(GL_GNULIB_SINF)/g' \ - -e 's/@''GNULIB_SINL''@/$(GL_GNULIB_SINL)/g' \ - -e 's/@''GNULIB_SINHF''@/$(GL_GNULIB_SINHF)/g' \ - -e 's/@''GNULIB_SQRTF''@/$(GL_GNULIB_SQRTF)/g' \ - -e 's/@''GNULIB_SQRTL''@/$(GL_GNULIB_SQRTL)/g' \ - -e 's/@''GNULIB_TANF''@/$(GL_GNULIB_TANF)/g' \ - -e 's/@''GNULIB_TANL''@/$(GL_GNULIB_TANL)/g' \ - -e 's/@''GNULIB_TANHF''@/$(GL_GNULIB_TANHF)/g' \ - -e 's/@''GNULIB_TRUNC''@/$(GL_GNULIB_TRUNC)/g' \ - -e 's/@''GNULIB_TRUNCF''@/$(GL_GNULIB_TRUNCF)/g' \ - -e 's/@''GNULIB_TRUNCL''@/$(GL_GNULIB_TRUNCL)/g' \ - -e 's/@''GNULIB_MDA_J0''@/$(GL_GNULIB_MDA_J0)/g' \ - -e 's/@''GNULIB_MDA_J1''@/$(GL_GNULIB_MDA_J1)/g' \ - -e 's/@''GNULIB_MDA_JN''@/$(GL_GNULIB_MDA_JN)/g' \ - -e 's/@''GNULIB_MDA_Y0''@/$(GL_GNULIB_MDA_Y0)/g' \ - -e 's/@''GNULIB_MDA_Y1''@/$(GL_GNULIB_MDA_Y1)/g' \ - -e 's/@''GNULIB_MDA_YN''@/$(GL_GNULIB_MDA_YN)/g' \ + sed -e 's/@''GNULIB_ILOGB''@/$(GNULIB_ILOGB)/g' \ + -e 's/@''GNULIB_ILOGBF''@/$(GNULIB_ILOGBF)/g' \ + -e 's/@''GNULIB_ILOGBL''@/$(GNULIB_ILOGBL)/g' \ + -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \ + -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \ + -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \ + -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \ + -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \ + -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \ + -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \ + -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \ + -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \ + -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \ + -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \ + -e 's/@''GNULIB_LOG10''@/$(GNULIB_LOG10)/g' \ + -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \ + -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \ + -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \ + -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \ + -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \ + -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \ + -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \ + -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \ + -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \ + -e 's/@''GNULIB_LOGBF''@/$(GNULIB_LOGBF)/g' \ + -e 's/@''GNULIB_LOGBL''@/$(GNULIB_LOGBL)/g' \ + -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \ + -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \ + -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \ + -e 's/@''GNULIB_POWF''@/$(GNULIB_POWF)/g' \ + -e 's/@''GNULIB_REMAINDER''@/$(GNULIB_REMAINDER)/g' \ + -e 's/@''GNULIB_REMAINDERF''@/$(GNULIB_REMAINDERF)/g' \ + -e 's/@''GNULIB_REMAINDERL''@/$(GNULIB_REMAINDERL)/g' \ + -e 's/@''GNULIB_RINT''@/$(GNULIB_RINT)/g' \ + -e 's/@''GNULIB_RINTF''@/$(GNULIB_RINTF)/g' \ + -e 's/@''GNULIB_RINTL''@/$(GNULIB_RINTL)/g' \ + -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \ + -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \ + -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \ + -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \ + -e 's/@''GNULIB_SINF''@/$(GNULIB_SINF)/g' \ + -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \ + -e 's/@''GNULIB_SINHF''@/$(GNULIB_SINHF)/g' \ + -e 's/@''GNULIB_SQRTF''@/$(GNULIB_SQRTF)/g' \ + -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \ + -e 's/@''GNULIB_TANF''@/$(GNULIB_TANF)/g' \ + -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \ + -e 's/@''GNULIB_TANHF''@/$(GNULIB_TANHF)/g' \ + -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \ + -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \ + -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \ | \ sed -e 's|@''HAVE_ACOSF''@|$(HAVE_ACOSF)|g' \ -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ @@ -5178,22 +2723,13 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $( -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ | \ - sed -e 's|@''REPLACE_ACOSF''@|$(REPLACE_ACOSF)|g' \ - -e 's|@''REPLACE_ASINF''@|$(REPLACE_ASINF)|g' \ - -e 's|@''REPLACE_ATANF''@|$(REPLACE_ATANF)|g' \ - -e 's|@''REPLACE_ATAN2F''@|$(REPLACE_ATAN2F)|g' \ - -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \ + sed -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \ -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \ -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ - -e 's|@''REPLACE_COSF''@|$(REPLACE_COSF)|g' \ - -e 's|@''REPLACE_COSHF''@|$(REPLACE_COSHF)|g' \ - -e 's|@''REPLACE_EXPF''@|$(REPLACE_EXPF)|g' \ - -e 's|@''REPLACE_EXPL''@|$(REPLACE_EXPL)|g' \ -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \ -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \ - -e 's|@''REPLACE_EXPM1L''@|$(REPLACE_EXPM1L)|g' \ -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \ -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \ -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \ @@ -5215,7 +2751,6 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $( -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \ -e 's|@''REPLACE_ILOGB''@|$(REPLACE_ILOGB)|g' \ -e 's|@''REPLACE_ILOGBF''@|$(REPLACE_ILOGBF)|g' \ - -e 's|@''REPLACE_ILOGBL''@|$(REPLACE_ILOGBL)|g' \ -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \ -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \ -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \ @@ -5243,117 +2778,148 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $( -e 's|@''REPLACE_REMAINDER''@|$(REPLACE_REMAINDER)|g' \ -e 's|@''REPLACE_REMAINDERF''@|$(REPLACE_REMAINDERF)|g' \ -e 's|@''REPLACE_REMAINDERL''@|$(REPLACE_REMAINDERL)|g' \ - -e 's|@''REPLACE_RINTL''@|$(REPLACE_RINTL)|g' \ -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \ -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \ -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \ -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \ - -e 's|@''REPLACE_SIGNBIT_USING_BUILTINS''@|$(REPLACE_SIGNBIT_USING_BUILTINS)|g' \ - -e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \ - -e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \ - -e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \ + -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \ -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \ - -e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \ - -e 's|@''REPLACE_TANHF''@|$(REPLACE_TANHF)|g' \ -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \ -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \ -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. netdb.h: netdb.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_NETDB_H''@|$(NEXT_NETDB_H)|g' \ -e 's|@''HAVE_NETDB_H''@|$(HAVE_NETDB_H)|g' \ - -e 's/@''GNULIB_GETADDRINFO''@/$(GL_GNULIB_GETADDRINFO)/g' \ + -e 's/@''GNULIB_GETADDRINFO''@/$(GNULIB_GETADDRINFO)/g' \ -e 's|@''HAVE_STRUCT_ADDRINFO''@|$(HAVE_STRUCT_ADDRINFO)|g' \ -e 's|@''HAVE_DECL_FREEADDRINFO''@|$(HAVE_DECL_FREEADDRINFO)|g' \ -e 's|@''HAVE_DECL_GAI_STRERROR''@|$(HAVE_DECL_GAI_STRERROR)|g' \ -e 's|@''HAVE_DECL_GETADDRINFO''@|$(HAVE_DECL_GETADDRINFO)|g' \ -e 's|@''HAVE_DECL_GETNAMEINFO''@|$(HAVE_DECL_GETNAMEINFO)|g' \ -e 's|@''REPLACE_GAI_STRERROR''@|$(REPLACE_GAI_STRERROR)|g' \ - -e 's|@''REPLACE_GETADDRINFO''@|$(REPLACE_GETADDRINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/netdb.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/netdb.in.h; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one. @GL_GENERATE_NETINET_IN_H_TRUE@netinet/in.h: netinet_in.in.h $(top_builddir)/config.status -@GL_GENERATE_NETINET_IN_H_TRUE@ $(AM_V_GEN)$(MKDIR_P) 'netinet' -@GL_GENERATE_NETINET_IN_H_TRUE@ $(AM_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_NETINET_IN_H_TRUE@ $(AM_V_at)$(MKDIR_P) netinet +@GL_GENERATE_NETINET_IN_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_NETINET_IN_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ +@GL_GENERATE_NETINET_IN_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \ -@GL_GENERATE_NETINET_IN_H_TRUE@ $(srcdir)/netinet_in.in.h > $@-t -@GL_GENERATE_NETINET_IN_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_NETINET_IN_H_TRUE@ < $(srcdir)/netinet_in.in.h; \ +@GL_GENERATE_NETINET_IN_H_TRUE@ } > $@-t && \ +@GL_GENERATE_NETINET_IN_H_TRUE@ mv $@-t $@ @GL_GENERATE_NETINET_IN_H_FALSE@netinet/in.h: $(top_builddir)/config.status @GL_GENERATE_NETINET_IN_H_FALSE@ rm -f $@ +# The arg-nonnull.h that gets inserted into generated .h files is the same as +# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut +# off. +arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/GL_ARG_NONNULL/,$$p' \ + < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ + > $@-t && \ + mv $@-t $@ +# The c++defs.h that gets inserted into generated .h files is the same as +# build-aux/snippet/c++defs.h, except that it has the copyright header cut off. +c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/_GL_CXXDEFS/,$$p' \ + < $(top_srcdir)/build-aux/snippet/c++defs.h \ + > $@-t && \ + mv $@-t $@ +# The warn-on-use.h that gets inserted into generated .h files is the same as +# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut +# off. +warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/^.ifndef/,$$p' \ + < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ + > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDALIGN_H_TRUE@stdalign.h: stdalign.in.h $(top_builddir)/config.status -@GL_GENERATE_STDALIGN_H_TRUE@ $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/stdalign.in.h -@GL_GENERATE_STDALIGN_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_STDALIGN_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_STDALIGN_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ +@GL_GENERATE_STDALIGN_H_TRUE@ cat $(srcdir)/stdalign.in.h; \ +@GL_GENERATE_STDALIGN_H_TRUE@ } > $@-t && \ +@GL_GENERATE_STDALIGN_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDALIGN_H_FALSE@stdalign.h: $(top_builddir)/config.status @GL_GENERATE_STDALIGN_H_FALSE@ rm -f $@ -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -@GL_GENERATE_STDCKDINT_H_TRUE@stdckdint.h: stdckdint.in.h $(top_builddir)/config.status -@GL_GENERATE_STDCKDINT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_STDCKDINT_H_TRUE@ $(srcdir)/stdckdint.in.h > $@-t -@GL_GENERATE_STDCKDINT_H_TRUE@ $(AM_V_at)mv $@-t $@ -@GL_GENERATE_STDCKDINT_H_FALSE@stdckdint.h: $(top_builddir)/config.status -@GL_GENERATE_STDCKDINT_H_FALSE@ rm -f $@ +# We need the following in order to create when the system +# doesn't have one that works. +@GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status +@GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ +@GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ +@GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ +@GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ +@GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status +@GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status -@GL_GENERATE_STDDEF_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +@GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ -@GL_GENERATE_STDDEF_H_TRUE@ $(srcdir)/stddef.in.h > $@-t -@GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ +@GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ +@GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status -@GL_GENERATE_STDINT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ -@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ +@GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ +@GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @@ -5368,84 +2934,77 @@ netdb.h: netdb.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ -@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ -@GL_GENERATE_STDINT_H_TRUE@ $(srcdir)/stdint.in.h > $@-t -@GL_GENERATE_STDINT_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ +@GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ +@GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ - -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ - -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ - -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ - -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ - -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ - -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ - -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ - -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \ - -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ - -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ - -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ - -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ - -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ - -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ - -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ - -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ - -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ - -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ - -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ - -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ - -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ - -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ - -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ - -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ - -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ - -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ - -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ - -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ - -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ - -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ - -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ - -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ - -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ - -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ - -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ - -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ - -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ - -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ - -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ - -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ - -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ - -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ - -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ - -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ - -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ - -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ - -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ - -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ - -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ - -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ - -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ - -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ - -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ - -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ - -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ - -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ + -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ + -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ + -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ + -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ + -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ + -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ + -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ + -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ + -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ + -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ + -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ + -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ + -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ + -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ + -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ + -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ + -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ + -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ + -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ + -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ + -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ + -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ + -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ + -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ + -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ + -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ + -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ + -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ + -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ + -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ + -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ + -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ + -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ + -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ + -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ + -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ + -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ + -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ + -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ + -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ + -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ - sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ - -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ + sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ @@ -5466,7 +3025,6 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ - -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ @@ -5497,213 +3055,159 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ - -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \ - -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \ - -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \ - -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \ - -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \ - -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ - -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ - -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ - -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ - -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ - -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \ - -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \ - -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \ - -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \ - -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \ - -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \ - -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \ - -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \ - -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \ - -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \ - -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \ - -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \ - -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \ - -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \ - -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \ - -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \ - -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \ - -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \ - -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \ - -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \ - -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \ - -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \ - -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \ - -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \ - -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \ - -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \ - -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \ - -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \ - -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \ - -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \ - -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \ - -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \ - -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \ - -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \ - -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \ - -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \ - -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \ - -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \ + -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ + -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ + -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ + -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ + -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ + -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ + -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ + -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ + -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ + -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ + -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ + -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ + -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ + -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ + -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ + -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ + -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ + -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ + -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ + -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ + -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ + -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ + -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ + -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ + -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ + -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ + -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ + -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ + -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ + -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ - -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ - -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ - -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ - -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ - -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ - -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ - -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ - -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ - -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ - -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ - -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ - -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ - -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ - -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ - -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ - -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ - -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \ - -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \ + -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ - -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ - -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ - -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \ - -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \ + -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ - -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ - -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ - -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ - -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \ - -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \ - -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ + -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ - -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ - -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ - -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ - -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ - -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ - -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ - -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ - -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ - -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ - -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ - -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ - -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ - -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ - -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ - -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ - -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ - -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ - -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ - -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ - -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ - -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ - -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ - -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ - -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ - -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ - -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ - -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ - -e 's/@''GNULIB_MEMSET_EXPLICIT''@/$(GL_GNULIB_MEMSET_EXPLICIT)/g' \ - -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ - -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ - -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ - -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ - -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ - -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ - -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ - -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ - -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ - -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ - -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ - -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ - -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ - -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ - -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ - -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ - -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ - -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ - -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ - -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ - -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ - -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ - -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ + -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ + -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ + -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ + -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ + -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ + -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ + -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ + -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ + -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ + -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ + -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ + -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ + -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ + -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ + -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ + -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ + -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ + -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ + -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ + -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ + -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ + -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ + -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ + -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ + -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ + -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ + -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ + -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ + -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ + -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ + -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ + -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_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ + -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ - sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ - -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ + sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ + -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ - -e 's|@''HAVE_MEMSET_EXPLICIT''@|$(HAVE_MEMSET_EXPLICIT)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ @@ -5716,82 +3220,80 @@ 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' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ - -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ + -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ - -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ - -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ - -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ - -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ - -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|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + < $(srcdir)/string.in.h; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ - -e 's/@''GNULIB_FFS''@/$(GL_GNULIB_FFS)/g' \ + -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/strings.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/strings.in.h; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) - $(AM_V_GEN)$(MKDIR_P) 'sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ - -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ - -e 's/@''GNULIB_SOCKET''@/$(GL_GNULIB_SOCKET)/g' \ - -e 's/@''GNULIB_CONNECT''@/$(GL_GNULIB_CONNECT)/g' \ - -e 's/@''GNULIB_ACCEPT''@/$(GL_GNULIB_ACCEPT)/g' \ - -e 's/@''GNULIB_BIND''@/$(GL_GNULIB_BIND)/g' \ - -e 's/@''GNULIB_GETPEERNAME''@/$(GL_GNULIB_GETPEERNAME)/g' \ - -e 's/@''GNULIB_GETSOCKNAME''@/$(GL_GNULIB_GETSOCKNAME)/g' \ - -e 's/@''GNULIB_GETSOCKOPT''@/$(GL_GNULIB_GETSOCKOPT)/g' \ - -e 's/@''GNULIB_LISTEN''@/$(GL_GNULIB_LISTEN)/g' \ - -e 's/@''GNULIB_RECV''@/$(GL_GNULIB_RECV)/g' \ - -e 's/@''GNULIB_SEND''@/$(GL_GNULIB_SEND)/g' \ - -e 's/@''GNULIB_RECVFROM''@/$(GL_GNULIB_RECVFROM)/g' \ - -e 's/@''GNULIB_SENDTO''@/$(GL_GNULIB_SENDTO)/g' \ - -e 's/@''GNULIB_SETSOCKOPT''@/$(GL_GNULIB_SETSOCKOPT)/g' \ - -e 's/@''GNULIB_SHUTDOWN''@/$(GL_GNULIB_SHUTDOWN)/g' \ - -e 's/@''GNULIB_ACCEPT4''@/$(GL_GNULIB_ACCEPT4)/g' \ + -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ + -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ + -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ + -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ + -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ + -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ + -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ + -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ + -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ + -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ + -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ + -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ + -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ + -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ + -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ @@ -5801,251 +3303,141 @@ sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/sys_socket.in.h > $@-t - $(AM_V_at)mv $@-t $@ - -# We need the following in order to create when the system -# has one that is incomplete. -sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(AM_V_GEN)$(MKDIR_P) 'sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ - -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ - -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ - -e 's/@''GNULIB_CHMOD''@/$(GL_GNULIB_CHMOD)/g' \ - -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ - -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ - -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ - -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ - -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ - -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ - -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ - -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ - -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ - -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ - -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ - -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ - -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ - -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ - -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ - -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ - -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ - -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ - -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ - -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ - -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ - -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ - -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ - -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ - -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ - -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ - -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ - -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ - -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ - -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ - -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ - -e 's|@''REPLACE_CHMOD''@|$(REPLACE_CHMOD)|g' \ - -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ - -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ - -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ - -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ - -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ - -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ - -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ - -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ - -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ - -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ - -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ - -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ - -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/sys_stat.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/sys_socket.in.h; \ + } > $@-t && \ + mv -f $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status - $(AM_V_GEN)$(MKDIR_P) 'sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ - -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ - $(srcdir)/sys_types.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/sys_types.in.h; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status - $(AM_V_GEN)$(MKDIR_P) 'sys' - $(AM_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ - $(srcdir)/sys_uio.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/sys_uio.in.h; \ + } > $@-t && \ + mv -f $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ - -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ - -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ - -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ - -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ - -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ - -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ - -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ - -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ - -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \ - -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ - -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ - -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ - -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ + -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ + -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ + -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ + -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ + -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ - -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ - -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \ - -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ - -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ - -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ - -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ - -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ - -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ - -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ - -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/time.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/time.in.h; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ - -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ - -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ - -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ - -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ - -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ - -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ - -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ - -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ - -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ - -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ - -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ - -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ - -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ - -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ - -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ - -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ - -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ - -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ - -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ - -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ - -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ - -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ - -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ - -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ - -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ - -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ - -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ - -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ - -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ - -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ - -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ - -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ - -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ - -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ - -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \ - -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ - -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ - -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ - -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ - -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ - -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ - -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ - -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ - -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ - -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ - -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ - -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ - -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ - -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ - -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ - -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ - -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ - -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ - -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ - -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ - -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ - -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ - -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ - -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ - -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ - -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ - -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ - -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ - -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ - -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ - -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ - -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ - -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ - -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ - -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ - -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ - -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ - -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ - -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ - -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ - -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ - -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ - -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ - -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ - -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ - -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ - -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ - -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ - -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ + -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ + -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ + -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ + -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ + -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ + -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ + -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ + -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ + -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ + -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ + -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ + -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ + -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ + -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ + -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ + -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ + -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ + -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ + -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ + -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ + -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ + -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ + -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ + -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ + -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ + -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ + -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ + -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ + -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ + -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ + -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ + -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ + -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ + -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ + -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ + -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ + -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ + -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ + -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ + -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ + -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ + -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ + -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ + -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ + -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ + -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ - -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ + -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ - -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ @@ -6053,11 +3445,10 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ - -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ + -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ - -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ @@ -6075,44 +3466,28 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ - -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ - -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ - -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ - sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ - -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ - -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ - -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ - -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ - -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ - -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ - -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ - -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ - -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ - -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ - -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ - -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ - -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ @@ -6122,82 +3497,73 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ - -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ - -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ - -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ - -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ - -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ - -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ - -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \ - -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \ - -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \ - -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \ - -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \ - -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \ - -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \ - -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \ - -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \ - -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \ - -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \ - -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \ - -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \ - -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \ - -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \ - -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \ - -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \ - -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \ - -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \ - -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \ - -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \ - -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \ - -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \ - -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \ - -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \ - -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \ - -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \ - -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \ - -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \ - -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \ - -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \ - -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \ - -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \ - -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \ - -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \ - -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \ - -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \ - -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \ - -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \ - -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \ - -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \ - -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \ - -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ + -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ + -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ + -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ + -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ + -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ + -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ + -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ + -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ + -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ + -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ + -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ + -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ + -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ + -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ + -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ + -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ + -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ + -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ + -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ + -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ + -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ + -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ + -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ + -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ + -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ + -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ + -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ + -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ + -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ + -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ + -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ + -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ + -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ + -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ + -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ + -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ + -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ + -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ @@ -6213,7 +3579,6 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ - -e 's|@''HAVE_WMEMPCPY''@|$(HAVE_WMEMPCPY)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ @@ -6238,15 +3603,12 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ - -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ - -e 's|@''HAVE_DECL_WCSDUP''@|$(HAVE_DECL_WCSDUP)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ - -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ @@ -6257,47 +3619,41 @@ wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ - -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ - -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - > $@-t - $(AM_V_at)mv $@-t $@ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) - $(gl_V_at)$(SED_HEADER_STDOUT) \ - -e 's|@''GUARD_PREFIX''@|GL|g' \ + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ - -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ - -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ - -e 's/@''GNULIB_ISWBLANK''@/$(GL_GNULIB_ISWBLANK)/g' \ - -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \ - -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \ - -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \ - -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \ - -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \ - -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \ + -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ + -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ + -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ + -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ + -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ - -e 's/@''REPLACE_ISWDIGIT''@/$(REPLACE_ISWDIGIT)/g' \ - -e 's/@''REPLACE_ISWXDIGIT''@/$(REPLACE_ISWXDIGIT)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - $(srcdir)/wctype.in.h > $@-t - $(AM_V_at)mv $@-t $@ + < $(srcdir)/wctype.in.h; \ + } > $@-t && \ + mv $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ @@ -6306,10 +3662,6 @@ mostlyclean-local: mostlyclean-generic fi; \ done; \ : -distclean-local: distclean-gnulib-libobjs -distclean-gnulib-libobjs: - -rm -f @gl_LIBOBJDEPS@ -maintainer-clean-local: distclean-gnulib-libobjs # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/gl/_Noreturn.h b/gl/_Noreturn.h deleted file mode 100644 index 6ecea98..0000000 --- a/gl/_Noreturn.h +++ /dev/null @@ -1,50 +0,0 @@ -/* A C macro for declaring that a function does not return. - Copyright (C) 2011-2023 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif (defined __clang__ && __clang_major__ < 16 \ - && defined _GL_WORK_AROUND_LLVM_BUG_59792) - /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around - that rare LLVM bug, though you may get many false-alarm warnings. */ -# define _Noreturn -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ - || 0x5110 <= __SUNPRO_C) -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif diff --git a/gl/af_alg.c b/gl/af_alg.c deleted file mode 100644 index 9f022ce..0000000 --- a/gl/af_alg.c +++ /dev/null @@ -1,213 +0,0 @@ -/* af_alg.c - Compute message digests from file streams and buffers. - Copyright (C) 2018-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Matteo Croce , 2018. */ - -#include - -#include "af_alg.h" - -#if USE_LINUX_CRYPTO_API - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "sys-limits.h" - -#define BLOCKSIZE 32768 - -/* Return a newly created socket for ALG. - On error, return a negative error number. */ -static int -alg_socket (char const *alg) -{ - struct sockaddr_alg salg = { - .salg_family = AF_ALG, - .salg_type = "hash", - }; - /* Copy alg into salg.salg_name, without calling strcpy nor strlen. */ - for (size_t i = 0; (salg.salg_name[i] = alg[i]) != '\0'; i++) - if (i == sizeof salg.salg_name - 1) - /* alg is too long. */ - return -EINVAL; - - int cfd = socket (AF_ALG, SOCK_SEQPACKET | SOCK_CLOEXEC, 0); - if (cfd < 0) - return -EAFNOSUPPORT; - int ofd = (bind (cfd, (struct sockaddr *) &salg, sizeof salg) == 0 - ? accept4 (cfd, NULL, 0, SOCK_CLOEXEC) - : -1); - close (cfd); - return ofd < 0 ? -EAFNOSUPPORT : ofd; -} - -int -afalg_buffer (const char *buffer, size_t len, const char *alg, - void *resblock, ssize_t hashlen) -{ - /* On Linux < 4.9, the value for an empty stream is wrong (all zeroes). - See . - This was not fixed properly until November 2016, - see . */ - if (len == 0) - return -EAFNOSUPPORT; - - int ofd = alg_socket (alg); - if (ofd < 0) - return ofd; - - int result; - - for (;;) - { - ssize_t size = (len > BLOCKSIZE ? BLOCKSIZE : len); - if (send (ofd, buffer, size, MSG_MORE) != size) - { - result = -EAFNOSUPPORT; - break; - } - buffer += size; - len -= size; - if (len == 0) - { - result = read (ofd, resblock, hashlen) == hashlen ? 0 : -EAFNOSUPPORT; - break; - } - } - - close (ofd); - return result; -} - -int -afalg_stream (FILE *stream, const char *alg, - void *resblock, ssize_t hashlen) -{ - int ofd = alg_socket (alg); - if (ofd < 0) - return ofd; - - /* If STREAM's size is known and nonzero and not too large, attempt - sendfile to pipe the data. The nonzero restriction avoids issues - with /proc files that pretend to be empty, and lets the classic - read-write loop work around an empty-input bug noted below. */ - int fd = fileno (stream); - int result; - struct stat st; - off_t off = ftello (stream); - if (0 <= off && fstat (fd, &st) == 0 - && (S_ISREG (st.st_mode) || S_TYPEISSHM (&st) || S_TYPEISTMO (&st)) - && off < st.st_size && st.st_size - off < SYS_BUFSIZE_MAX) - { - /* Make sure the offset of fileno (stream) reflects how many bytes - have been read from stream before this function got invoked. - Note: fflush on an input stream after ungetc does not work as expected - on some platforms. Therefore this situation is not supported here. */ - if (fflush (stream)) - result = -EIO; - else - { - off_t nbytes = st.st_size - off; - if (sendfile (ofd, fd, &off, nbytes) == nbytes) - { - if (read (ofd, resblock, hashlen) == hashlen) - { - /* The input buffers of stream are no longer valid. */ - if (lseek (fd, off, SEEK_SET) != (off_t)-1) - result = 0; - else - /* The file position of fd has not changed. */ - result = -EAFNOSUPPORT; - } - else - /* The file position of fd has not changed. */ - result = -EAFNOSUPPORT; - } - else - /* The file position of fd has not changed. */ - result = -EAFNOSUPPORT; - } - } - else - { - /* sendfile not possible, do a classic read-write loop. */ - - /* Number of bytes to seek (backwards) in case of error. */ - off_t nseek = 0; - - for (;;) - { - char buf[BLOCKSIZE]; - /* When the stream is not seekable, start with a single-byte block, - so that we can use ungetc() in the case that send() fails. */ - size_t blocksize = (nseek == 0 && off < 0 ? 1 : BLOCKSIZE); - ssize_t size = fread (buf, 1, blocksize, stream); - if (size == 0) - { - /* On Linux < 4.9, the value for an empty stream is wrong (all 0). - See . - This was not fixed properly until November 2016, - see . */ - result = ferror (stream) ? -EIO : nseek == 0 ? -EAFNOSUPPORT : 0; - break; - } - nseek -= size; - if (send (ofd, buf, size, MSG_MORE) != size) - { - if (nseek == -1) - { - /* 1 byte of pushback buffer is guaranteed on stream, even - if stream is not seekable. */ - ungetc ((unsigned char) buf[0], stream); - result = -EAFNOSUPPORT; - } - else if (fseeko (stream, nseek, SEEK_CUR) == 0) - /* The position of stream has been restored. */ - result = -EAFNOSUPPORT; - else - result = -EIO; - break; - } - - /* Don't assume that EOF is sticky. See: - . */ - if (feof (stream)) - { - result = 0; - break; - } - } - - if (result == 0 && read (ofd, resblock, hashlen) != hashlen) - { - if (nseek == 0 || fseeko (stream, nseek, SEEK_CUR) == 0) - /* The position of stream has been restored. */ - result = -EAFNOSUPPORT; - else - result = -EIO; - } - } - close (ofd); - return result; -} - -#endif diff --git a/gl/af_alg.h b/gl/af_alg.h deleted file mode 100644 index e8ffb3f..0000000 --- a/gl/af_alg.h +++ /dev/null @@ -1,115 +0,0 @@ -/* af_alg.h - Compute message digests from file streams and buffers. - Copyright (C) 2018-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Matteo Croce , 2018. - Documentation by Bruno Haible , 2018. */ - -/* Declare specific functions for computing message digests - using the Linux kernel crypto API, if available. This kernel API gives - access to specialized crypto instructions (that would also be available - in user space) or to crypto devices (not directly available in user space). - - For a more complete set of facilities that use the Linux kernel crypto API, - look at libkcapi. */ - -#ifndef AF_ALG_H -# define AF_ALG_H 1 - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# if USE_LINUX_CRYPTO_API - -/* Compute a message digest of a memory region. - - The memory region starts at BUFFER and is LEN bytes long. - - ALG is the message digest algorithm; see the file /proc/crypto. - - RESBLOCK points to a block of HASHLEN bytes, for the result. - HASHLEN must be the length of the message digest, in bytes, in particular: - - alg | hashlen - -------+-------- - md5 | 16 - sha1 | 20 - sha224 | 28 - sha256 | 32 - sha384 | 48 - sha512 | 64 - - If successful, fill RESBLOCK and return 0. - Upon failure, return a negated error number. */ -int -afalg_buffer (const char *buffer, size_t len, const char *alg, - void *resblock, ssize_t hashlen); - -/* Compute a message digest of data read from STREAM. - - STREAM is an open file stream. The last operation on STREAM should - not be 'ungetc', and if STREAM is also open for writing it should - have been fflushed since its last write. Read from the current - position to the end of STREAM. Handle regular files efficiently. - - ALG is the message digest algorithm; see the file /proc/crypto. - - RESBLOCK points to a block of HASHLEN bytes, for the result. - HASHLEN must be the length of the message digest, in bytes, in particular: - - alg | hashlen - -------+-------- - md5 | 16 - sha1 | 20 - sha224 | 28 - sha256 | 32 - sha384 | 48 - sha512 | 64 - - If successful, fill RESBLOCK and return 0. - Upon failure, return a negated error number. - Unless returning 0 or -EIO, restore STREAM's file position so that - the caller can fall back on some other method. */ -int -afalg_stream (FILE *stream, const char *alg, - void *resblock, ssize_t hashlen); - -# else - -static inline int -afalg_buffer (const char *buffer, size_t len, const char *alg, - void *resblock, ssize_t hashlen) -{ - return -EAFNOSUPPORT; -} - -static inline int -afalg_stream (FILE *stream, const char *alg, - void *resblock, ssize_t hashlen) -{ - return -EAFNOSUPPORT; -} - -# endif - -# ifdef __cplusplus -} -# endif - -#endif /* AF_ALG_H */ diff --git a/gl/alloca.in.h b/gl/alloca.in.h index a1bb3d7..72d28ee 100644 --- a/gl/alloca.in.h +++ b/gl/alloca.in.h @@ -1,20 +1,22 @@ /* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001-2004, 2006-2023 Free Software Foundation, + Copyright (C) 1995, 1999, 2001-2004, 2006-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public + License along with this program; if not, see + . + */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ @@ -33,16 +35,7 @@ */ #ifndef alloca - /* Some version of mingw have an that causes trouble when - included after 'alloca' gets defined as a macro. As a workaround, - include this first and define 'alloca' as a macro afterwards - if needed. */ -# if defined __GNUC__ && (defined _WIN32 && ! defined __CYGWIN__) && @HAVE_ALLOCA_H@ -# include_next -# endif -#endif -#ifndef alloca -# if defined __GNUC__ || (__clang_major__ >= 4) +# ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca @@ -58,8 +51,6 @@ extern "C" void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca -# elif defined __MVS__ -# include # else # include # ifdef __cplusplus diff --git a/gl/arpa_inet.in.h b/gl/arpa_inet.in.h index 80e6713..ba89e97 100644 --- a/gl/arpa_inet.in.h +++ b/gl/arpa_inet.in.h @@ -1,19 +1,19 @@ /* A GNU-like . - Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ARPA_INET_H @@ -49,12 +49,6 @@ #ifndef _@GUARD_PREFIX@_ARPA_INET_H #define _@GUARD_PREFIX@_ARPA_INET_H -/* Get all possible declarations of inet_ntop() and inet_pton(). */ -#if (@GNULIB_INET_NTOP@ || @GNULIB_INET_PTON@ || defined GNULIB_POSIXCHECK) \ - && @HAVE_WS2TCPIP_H@ -# include -#endif - /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ @@ -76,8 +70,8 @@ the return value is NULL and errno is set to ENOSPC. A good value for CNT is 46. - For more details, see the POSIX:2008 specification - . */ + For more details, see the POSIX:2001 specification + . */ # if @REPLACE_INET_NTOP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef inet_ntop @@ -103,9 +97,7 @@ _GL_CXXALIAS_SYS_CAST (inet_ntop, const char *, (int af, const void *restrict src, char *restrict dst, socklen_t cnt)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (inet_ntop); -# endif #elif defined GNULIB_POSIXCHECK # undef inet_ntop # if HAVE_RAW_DECL_INET_NTOP @@ -134,9 +126,7 @@ _GL_FUNCDECL_SYS (inet_pton, int, _GL_CXXALIAS_SYS (inet_pton, int, (int af, const char *restrict src, void *restrict dst)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (inet_pton); -# endif #elif defined GNULIB_POSIXCHECK # undef inet_pton # if HAVE_RAW_DECL_INET_PTON diff --git a/gl/asnprintf.c b/gl/asnprintf.c index f4861bf..76e228d 100644 --- a/gl/asnprintf.c +++ b/gl/asnprintf.c @@ -1,18 +1,18 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #include diff --git a/gl/asprintf.c b/gl/asprintf.c index ba58e06..713dae1 100644 --- a/gl/asprintf.c +++ b/gl/asprintf.c @@ -1,19 +1,19 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006-2007, 2009-2023 Free Software Foundation, + Copyright (C) 1999, 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #include diff --git a/gl/assert.in.h b/gl/assert.in.h deleted file mode 100644 index b0ab99c..0000000 --- a/gl/assert.in.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Substitute for and wrapper around - Copyright (C) 2011-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Do not guard the include, since is supposed to define - the assert macro each time it is included. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif -@PRAGMA_COLUMNS@ - -#@INCLUDE_NEXT@ @NEXT_ASSERT_H@ - -/* The definition of static_assert is copied here. */ diff --git a/gl/attribute.h b/gl/attribute.h deleted file mode 100644 index 130644d..0000000 --- a/gl/attribute.h +++ /dev/null @@ -1,226 +0,0 @@ -/* ATTRIBUTE_* macros for using attributes in GCC and similar compilers - - Copyright 2020-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Paul Eggert. */ - -/* Provide public ATTRIBUTE_* names for the private _GL_ATTRIBUTE_* - macros used within Gnulib. */ - -/* These attributes can be placed in two ways: - - At the start of a declaration (i.e. even before storage-class - specifiers!); then they apply to all entities that are declared - by the declaration. - - Immediately after the name of an entity being declared by the - declaration; then they apply to that entity only. */ - -#ifndef _GL_ATTRIBUTE_H -#define _GL_ATTRIBUTE_H - - -/* This file defines two types of attributes: - * C23 standard attributes. These have macro names that do not begin with - 'ATTRIBUTE_'. - * Selected GCC attributes; see: - https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html - https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html - https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html - These names begin with 'ATTRIBUTE_' to avoid name clashes. */ - - -/* =============== Attributes for specific kinds of functions =============== */ - -/* Attributes for functions that should not be used. */ - -/* Warn if the entity is used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: namespace, class, template specialization. */ -#define DEPRECATED _GL_ATTRIBUTE_DEPRECATED - -/* If a function call is not optimized way, warn with MSG. */ -/* Applies to: functions. */ -#define ATTRIBUTE_WARNING(msg) _GL_ATTRIBUTE_WARNING (msg) - -/* If a function call is not optimized way, report an error with MSG. */ -/* Applies to: functions. */ -#define ATTRIBUTE_ERROR(msg) _GL_ATTRIBUTE_ERROR (msg) - - -/* Attributes for memory-allocating functions. */ - -/* The function returns a pointer to freshly allocated memory. */ -/* Applies to: functions. */ -#define ATTRIBUTE_MALLOC _GL_ATTRIBUTE_MALLOC - -/* ATTRIBUTE_ALLOC_SIZE ((N)) - The Nth argument of the function - is the size of the returned memory block. - ATTRIBUTE_ALLOC_SIZE ((M, N)) - Multiply the Mth and Nth arguments - to determine the size of the returned memory block. */ -/* Applies to: function, pointer to function, function types. */ -#define ATTRIBUTE_ALLOC_SIZE(args) _GL_ATTRIBUTE_ALLOC_SIZE (args) - -/* ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. - ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#define ATTRIBUTE_DEALLOC(f, i) _GL_ATTRIBUTE_DEALLOC(f, i) -#define ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC_FREE - -/* Attributes for variadic functions. */ - -/* The variadic function expects a trailing NULL argument. - ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). - ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ -/* Applies to: functions. */ -#define ATTRIBUTE_SENTINEL(pos) _GL_ATTRIBUTE_SENTINEL (pos) - - -/* ================== Attributes for compiler diagnostics ================== */ - -/* Attributes that help the compiler diagnose programmer mistakes. - Some of them may also help for some compiler optimizations. */ - -/* ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - - The STRING-INDEXth function argument is a format string of style - ARCHETYPE, which is one of: - printf, gnu_printf - scanf, gnu_scanf, - strftime, gnu_strftime, - strfmon, - or the same thing prefixed and suffixed with '__'. - If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK - are suitable for the format string. */ -/* Applies to: functions. */ -#define ATTRIBUTE_FORMAT(spec) _GL_ATTRIBUTE_FORMAT (spec) - -/* ATTRIBUTE_NONNULL ((N1, N2,...)) - Arguments N1, N2,... must not be NULL. - ATTRIBUTE_NONNULL () - All pointer arguments must not be null. */ -/* Applies to: functions. */ -#define ATTRIBUTE_NONNULL(args) _GL_ATTRIBUTE_NONNULL (args) - -/* The function's return value is a non-NULL pointer. */ -/* Applies to: functions. */ -#define ATTRIBUTE_RETURNS_NONNULL _GL_ATTRIBUTE_RETURNS_NONNULL - -/* Warn if the caller does not use the return value, - unless the caller uses something like ignore_value. */ -/* Applies to: function, enumeration, class. */ -#define NODISCARD _GL_ATTRIBUTE_NODISCARD - - -/* Attributes that disable false alarms when the compiler diagnoses - programmer "mistakes". */ - -/* Do not warn if the entity is not used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: class. */ -#define MAYBE_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED - -/* The contents of a character array is not meant to be NUL-terminated. */ -/* Applies to: struct/union members and variables that are arrays of element - type '[[un]signed] char'. */ -#define ATTRIBUTE_NONSTRING _GL_ATTRIBUTE_NONSTRING - -/* Do not warn if control flow falls through to the immediately - following 'case' or 'default' label. */ -/* Applies to: Empty statement (;), inside a 'switch' statement. */ -#define FALLTHROUGH _GL_ATTRIBUTE_FALLTHROUGH - - -/* ================== Attributes for debugging information ================== */ - -/* Attributes regarding debugging information emitted by the compiler. */ - -/* Omit the function from stack traces when debugging. */ -/* Applies to: function. */ -#define ATTRIBUTE_ARTIFICIAL _GL_ATTRIBUTE_ARTIFICIAL - -/* Make the entity visible to debuggers etc., even with '-fwhole-program'. */ -/* Applies to: functions, variables. */ -#define ATTRIBUTE_EXTERNALLY_VISIBLE _GL_ATTRIBUTE_EXTERNALLY_VISIBLE - - -/* ========== Attributes that mainly direct compiler optimizations ========== */ - -/* The function does not throw exceptions. */ -/* Applies to: functions. */ -#define ATTRIBUTE_NOTHROW _GL_ATTRIBUTE_NOTHROW - -/* Do not inline the function. */ -/* Applies to: functions. */ -#define ATTRIBUTE_NOINLINE _GL_ATTRIBUTE_NOINLINE - -/* Always inline the function, and report an error if the compiler - cannot inline. */ -/* Applies to: function. */ -#define ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE - -/* It is OK for a compiler to omit duplicate calls with the same arguments. - This attribute is safe for a function that neither depends on - nor affects observable state, and always returns exactly once - - e.g., does not loop forever, and does not call longjmp. - (This attribute is stricter than ATTRIBUTE_PURE.) */ -/* Applies to: functions. */ -#define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST - -/* It is OK for a compiler to omit duplicate calls with the same - arguments if observable state is not changed between calls. - This attribute is safe for a function that does not affect - observable state, and always returns exactly once. - (This attribute is looser than ATTRIBUTE_CONST.) */ -/* Applies to: functions. */ -#define ATTRIBUTE_PURE _GL_ATTRIBUTE_PURE - -/* The function is rarely executed. */ -/* Applies to: functions. */ -#define ATTRIBUTE_COLD _GL_ATTRIBUTE_COLD - -/* If called from some other compilation unit, the function executes - code from that unit only by return or by exception handling, - letting the compiler optimize that unit more aggressively. */ -/* Applies to: functions. */ -#define ATTRIBUTE_LEAF _GL_ATTRIBUTE_LEAF - -/* For struct members: The member has the smallest possible alignment. - For struct, union, class: All members have the smallest possible alignment, - minimizing the memory required. */ -/* Applies to: struct members, struct, union, - in C++ also: class. */ -#define ATTRIBUTE_PACKED _GL_ATTRIBUTE_PACKED - - -/* ================ Attributes that make invalid code valid ================ */ - -/* Attributes that prevent fatal compiler optimizations for code that is not - fully ISO C compliant. */ - -/* Pointers to the type may point to the same storage as pointers to - other types, thus disabling strict aliasing optimization. */ -/* Applies to: types. */ -#define ATTRIBUTE_MAY_ALIAS _GL_ATTRIBUTE_MAY_ALIAS - - -#endif /* _GL_ATTRIBUTE_H */ diff --git a/gl/base64.c b/gl/base64.c index 95b669a..8da969c 100644 --- a/gl/base64.c +++ b/gl/base64.c @@ -1,24 +1,24 @@ /* base64.c -- Encode binary data using printable characters. - Copyright (C) 1999-2001, 2004-2006, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 1999-2001, 2004-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Simon Josefsson. Partially adapted from GNU MailUtils * (mailbox/filter_trans.c, as of 2004-11-28). Improved by review * from Paul Eggert, Bruno Haible, and Stepan Kasal. * - * See also RFC 4648 . + * See also RFC 4648 . * * Be careful with error checking. Here is how you would typically * use these functions: @@ -30,7 +30,7 @@ * FAIL: memory allocation error * OK: data in OUT/OUTLEN * - * idx_t outlen = base64_encode_alloc (in, inlen, &out); + * size_t outlen = base64_encode_alloc (in, inlen, &out); * if (out == NULL && outlen == 0 && inlen != 0) * FAIL: input too long * if (out == NULL) @@ -44,84 +44,51 @@ /* Get prototype. */ #include "base64.h" -/* Get imalloc. */ -#include - -#include +/* Get malloc. */ +#include /* Get UCHAR_MAX. */ #include #include -/* Convert 'char' to 'unsigned char' without casting. */ +/* C89 compliant way to cast 'char' to 'unsigned char'. */ static unsigned char to_uchar (char ch) { return ch; } -static const char b64c[64] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -/* Base64 encode IN array of size INLEN into OUT array. OUT needs - to be of length >= BASE64_LENGTH(INLEN), and INLEN needs to be - a multiple of 3. */ -static void -base64_encode_fast (const char *restrict in, idx_t inlen, char *restrict out) -{ - while (inlen) - { - *out++ = b64c[(to_uchar (in[0]) >> 2) & 0x3f]; - *out++ = b64c[((to_uchar (in[0]) << 4) + (to_uchar (in[1]) >> 4)) & 0x3f]; - *out++ = b64c[((to_uchar (in[1]) << 2) + (to_uchar (in[2]) >> 6)) & 0x3f]; - *out++ = b64c[to_uchar (in[2]) & 0x3f]; - - inlen -= 3; - in += 3; - } -} - /* Base64 encode IN array of size INLEN into OUT array of size OUTLEN. If OUTLEN is less than BASE64_LENGTH(INLEN), write as many bytes as possible. If OUTLEN is larger than BASE64_LENGTH(INLEN), also zero terminate the output buffer. */ void -base64_encode (const char *restrict in, idx_t inlen, - char *restrict out, idx_t outlen) +base64_encode (const char *restrict in, size_t inlen, + char *restrict out, size_t outlen) { - /* Note this outlen constraint can be enforced at compile time. - I.E. that the output buffer is exactly large enough to hold - the encoded inlen bytes. The inlen constraints (of corresponding - to outlen, and being a multiple of 3) can change at runtime - at the end of input. However the common case when reading - large inputs is to have both constraints satisfied, so we depend - on both in base_encode_fast(). */ - if (outlen % 4 == 0 && inlen == (outlen >> 2) * 3) - { - base64_encode_fast (in, inlen, out); - return; - } + static const char b64str[64] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; while (inlen && outlen) { - *out++ = b64c[(to_uchar (in[0]) >> 2) & 0x3f]; + *out++ = b64str[(to_uchar (in[0]) >> 2) & 0x3f]; if (!--outlen) break; - *out++ = b64c[((to_uchar (in[0]) << 4) + *out++ = b64str[((to_uchar (in[0]) << 4) + (--inlen ? to_uchar (in[1]) >> 4 : 0)) & 0x3f]; if (!--outlen) break; *out++ = (inlen - ? b64c[((to_uchar (in[1]) << 2) + ? b64str[((to_uchar (in[1]) << 2) + (--inlen ? to_uchar (in[2]) >> 6 : 0)) & 0x3f] : '='); if (!--outlen) break; - *out++ = inlen ? b64c[to_uchar (in[2]) & 0x3f] : '='; + *out++ = inlen ? b64str[to_uchar (in[2]) & 0x3f] : '='; if (!--outlen) break; if (inlen) @@ -143,21 +110,30 @@ base64_encode (const char *restrict in, idx_t inlen, memory allocation failed, OUT is set to NULL, and the return value indicates length of the requested memory block, i.e., BASE64_LENGTH(inlen) + 1. */ -idx_t -base64_encode_alloc (const char *in, idx_t inlen, char **out) +size_t +base64_encode_alloc (const char *in, size_t inlen, char **out) { + size_t outlen = 1 + BASE64_LENGTH (inlen); + /* Check for overflow in outlen computation. - Treat negative INLEN as overflow, for better compatibility with - pre-2021-08-27 API, which used size_t. */ - idx_t in_over_3 = inlen / 3 + (inlen % 3 != 0), outlen; - if (! INT_MULTIPLY_OK (in_over_3, 4, &outlen) || inlen < 0) + * + * If there is no overflow, outlen >= inlen. + * + * If the operation (inlen + 2) overflows then it yields at most +1, so + * outlen is 0. + * + * If the multiplication overflows, we lose at least half of the + * correct value, so the result is < ((inlen + 2) / 3) * 2, which is + * less than (inlen + 2) * 0.66667, which is less than inlen as soon as + * (inlen > 4). + */ + if (inlen > outlen) { *out = NULL; return 0; } - outlen++; - *out = imalloc (outlen); + *out = malloc (outlen); if (!*out) return outlen; @@ -341,7 +317,7 @@ base64_decode_ctx_init (struct base64_decode_context *ctx) static char * get_4 (struct base64_decode_context *ctx, char const *restrict *in, char const *restrict in_end, - idx_t *n_non_newline) + size_t *n_non_newline) { if (ctx->i == 4) ctx->i = 0; @@ -393,8 +369,8 @@ get_4 (struct base64_decode_context *ctx, *OUT to point to the byte after the last one written, and decrement *OUTLEN to reflect the number of bytes remaining in *OUT. */ static bool -decode_4 (char const *restrict in, idx_t inlen, - char *restrict *outp, idx_t *outleft) +decode_4 (char const *restrict in, size_t inlen, + char *restrict *outp, size_t *outleft) { char *out = *outp; if (inlen < 2) @@ -479,10 +455,10 @@ decode_4 (char const *restrict in, idx_t inlen, bool base64_decode_ctx (struct base64_decode_context *ctx, - const char *restrict in, idx_t inlen, - char *restrict out, idx_t *outlen) + const char *restrict in, size_t inlen, + char *restrict out, size_t *outlen) { - idx_t outleft = *outlen; + size_t outleft = *outlen; bool ignore_newlines = ctx != NULL; bool flush_ctx = false; unsigned int ctx_i = 0; @@ -496,7 +472,7 @@ base64_decode_ctx (struct base64_decode_context *ctx, while (true) { - idx_t outleft_save = outleft; + size_t outleft_save = outleft; if (ctx_i == 0 && !flush_ctx) { while (true) @@ -570,17 +546,17 @@ base64_decode_ctx (struct base64_decode_context *ctx, undefined. */ bool base64_decode_alloc_ctx (struct base64_decode_context *ctx, - const char *in, idx_t inlen, char **out, - idx_t *outlen) + const char *in, size_t inlen, char **out, + size_t *outlen) { /* This may allocate a few bytes too many, depending on input, but it's not worth the extra CPU time to compute the exact size. The exact size is 3 * (inlen + (ctx ? ctx->i : 0)) / 4, minus 1 if the input ends with "=" and minus another 1 if the input ends with "==". - Shifting before multiplying avoids the possibility of overflow. */ - idx_t needlen = 3 * ((inlen >> 2) + 1); + Dividing before multiplying avoids the possibility of overflow. */ + size_t needlen = 3 * (inlen / 4) + 3; - *out = imalloc (needlen); + *out = malloc (needlen); if (!*out) return true; diff --git a/gl/base64.h b/gl/base64.h index 9913765..343150c 100644 --- a/gl/base64.h +++ b/gl/base64.h @@ -1,25 +1,28 @@ /* base64.h -- Encode binary data using printable characters. - Copyright (C) 2004-2006, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2004-2006, 2009-2013 Free Software Foundation, Inc. Written by Simon Josefsson. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef BASE64_H # define BASE64_H -/* Get idx_t. */ -# include +/* Get size_t. */ +# include + +/* Get bool. */ +# include # ifdef __cplusplus extern "C" { @@ -31,26 +34,26 @@ extern "C" { struct base64_decode_context { - int i; + unsigned int i; char buf[4]; }; extern bool isbase64 (char ch) _GL_ATTRIBUTE_CONST; -extern void base64_encode (const char *restrict in, idx_t inlen, - char *restrict out, idx_t outlen); +extern void base64_encode (const char *restrict in, size_t inlen, + char *restrict out, size_t outlen); -extern idx_t base64_encode_alloc (const char *in, idx_t inlen, char **out); +extern size_t base64_encode_alloc (const char *in, size_t inlen, char **out); extern void base64_decode_ctx_init (struct base64_decode_context *ctx); extern bool base64_decode_ctx (struct base64_decode_context *ctx, - const char *restrict in, idx_t inlen, - char *restrict out, idx_t *outlen); + const char *restrict in, size_t inlen, + char *restrict out, size_t *outlen); extern bool base64_decode_alloc_ctx (struct base64_decode_context *ctx, - const char *in, idx_t inlen, - char **out, idx_t *outlen); + const char *in, size_t inlen, + char **out, size_t *outlen); #define base64_decode(in, inlen, out, outlen) \ base64_decode_ctx (NULL, in, inlen, out, outlen) diff --git a/gl/basename-lgpl.c b/gl/basename-lgpl.c index 6de60aa..9307e83 100644 --- a/gl/basename-lgpl.c +++ b/gl/basename-lgpl.c @@ -1,36 +1,37 @@ /* basename.c -- return the last element in a file name - Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2023 Free Software + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include -/* Specification. */ -#include "basename-lgpl.h" +#include "dirname.h" #include -#include "filename.h" +/* Return the address of the last file name component of NAME. If + NAME has no relative file name components because it is a file + system root, return the empty string. */ char * last_component (char const *name) { char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); char const *p; - bool last_was_slash = false; + bool saw_slash = false; while (ISSLASH (*base)) base++; @@ -38,17 +39,21 @@ last_component (char const *name) for (p = base; *p; p++) { if (ISSLASH (*p)) - last_was_slash = true; - else if (last_was_slash) + saw_slash = true; + else if (saw_slash) { base = p; - last_was_slash = false; + saw_slash = false; } } return (char *) base; } +/* Return the length of the basename NAME. Typically NAME is the + value returned by base_name or last_component. Act like strlen + (NAME), except omit all trailing slashes. */ + size_t base_len (char const *name) { diff --git a/gl/basename-lgpl.h b/gl/basename-lgpl.h deleted file mode 100644 index 5d996c1..0000000 --- a/gl/basename-lgpl.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Extract the last component (base name) of a file name. - - Copyright (C) 1998, 2001, 2003-2006, 2009-2023 Free Software Foundation, - Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _BASENAME_LGPL_H -#define _BASENAME_LGPL_H - -#include - -#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT -# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the address of the last file name component of FILENAME. - If FILENAME has some trailing slash(es), they are considered to be - part of the last component. - If FILENAME has no relative file name components because it is a file - system root, return the empty string. - Examples: - FILENAME RESULT - "foo.c" "foo.c" - "foo/bar.c" "bar.c" - "/foo/bar.c" "bar.c" - "foo/bar/" "bar/" - "foo/bar//" "bar//" - "/" "" - "//" "" - "" "" - The return value is a tail of the given FILENAME; do NOT free() it! */ - -/* This function was traditionally called 'basename', but we avoid this - function name because - * Various platforms have different functions in their libc. - In particular, the glibc basename(), defined in , does - not consider trailing slashes to be part of the component: - FILENAME RESULT - "foo/bar/" "" - "foo/bar//" "" - * The 'basename' command eliminates trailing slashes and for a root - produces a non-empty result: - FILENAME RESULT - "foo/bar/" "bar" - "foo/bar//" "bar" - "/" "/" - "//" "/" - */ -extern char *last_component (char const *filename) _GL_ATTRIBUTE_PURE; - -/* Return the length of the basename FILENAME. - Typically FILENAME is the value returned by base_name or last_component. - Act like strlen (FILENAME), except omit all trailing slashes. */ -extern size_t base_len (char const *filename) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* _BASENAME_LGPL_H */ diff --git a/gl/basename.c b/gl/basename.c index 21fab1e..d73fd41 100644 --- a/gl/basename.c +++ b/gl/basename.c @@ -1,11 +1,11 @@ /* basename.c -- return the last element in a file name - Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2023 Free Software + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -14,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include @@ -22,43 +22,37 @@ #include #include "xalloc.h" +#include "xstrndup.h" char * base_name (char const *name) { char const *base = last_component (name); - idx_t length; - int dotslash_len; - if (*base) - { - length = base_len (base); + size_t length; - /* Collapse a sequence of trailing slashes into one. */ - length += ISSLASH (base[length]); + /* If there is no last component, then name is a file system root or the + empty string. */ + if (! *base) + return xstrndup (name, base_len (name)); - /* On systems with drive letters, "a/b:c" must return "./b:c" rather - than "b:c" to avoid confusion with a drive letter. On systems - with pure POSIX semantics, this is not an issue. */ - dotslash_len = FILE_SYSTEM_PREFIX_LEN (base) != 0 ? 2 : 0; - } - else - { - /* There is no last component, so NAME is a file system root or - the empty string. */ - base = name; - length = base_len (base); - dotslash_len = 0; - } + /* Collapse a sequence of trailing slashes into one. */ + length = base_len (base); + if (ISSLASH (base[length])) + length++; - char *p = ximalloc (dotslash_len + length + 1); - if (dotslash_len) + /* On systems with drive letters, "a/b:c" must return "./b:c" rather + than "b:c" to avoid confusion with a drive letter. On systems + with pure POSIX semantics, this is not an issue. */ + if (FILE_SYSTEM_PREFIX_LEN (base)) { + char *p = xmalloc (length + 3); p[0] = '.'; p[1] = '/'; + memcpy (p + 2, base, length); + p[length + 2] = '\0'; + return p; } /* Finally, copy the basename. */ - memcpy (p + dotslash_len, base, length); - p[dotslash_len + length] = '\0'; - return p; + return xstrndup (base, length); } diff --git a/gl/btowc.c b/gl/btowc.c index caadbd7..6c7cbec 100644 --- a/gl/btowc.c +++ b/gl/btowc.c @@ -1,19 +1,19 @@ /* Convert unibyte character to wide character. - Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc. + Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2008. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/byteswap.in.h b/gl/byteswap.in.h deleted file mode 100644 index e61be27..0000000 --- a/gl/byteswap.in.h +++ /dev/null @@ -1,44 +0,0 @@ -/* byteswap.h - Byte swapping - Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc. - Written by Oskar Liljeblad , 2005. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_BYTESWAP_H -#define _GL_BYTESWAP_H - -/* Given an unsigned 16-bit argument X, return the value corresponding to - X with reversed byte order. */ -#define bswap_16(x) ((((x) & 0x00FF) << 8) | \ - (((x) & 0xFF00) >> 8)) - -/* Given an unsigned 32-bit argument X, return the value corresponding to - X with reversed byte order. */ -#define bswap_32(x) ((((x) & 0x000000FF) << 24) | \ - (((x) & 0x0000FF00) << 8) | \ - (((x) & 0x00FF0000) >> 8) | \ - (((x) & 0xFF000000) >> 24)) - -/* Given an unsigned 64-bit argument X, return the value corresponding to - X with reversed byte order. */ -#define bswap_64(x) ((((x) & 0x00000000000000FFULL) << 56) | \ - (((x) & 0x000000000000FF00ULL) << 40) | \ - (((x) & 0x0000000000FF0000ULL) << 24) | \ - (((x) & 0x00000000FF000000ULL) << 8) | \ - (((x) & 0x000000FF00000000ULL) >> 8) | \ - (((x) & 0x0000FF0000000000ULL) >> 24) | \ - (((x) & 0x00FF000000000000ULL) >> 40) | \ - (((x) & 0xFF00000000000000ULL) >> 56)) - -#endif /* _GL_BYTESWAP_H */ diff --git a/gl/calloc.c b/gl/calloc.c deleted file mode 100644 index 08843ac..0000000 --- a/gl/calloc.c +++ /dev/null @@ -1,55 +0,0 @@ -/* calloc() function that is glibc compatible. - This wrapper function is required at least on Tru64 UNIX 5.1 and mingw. - Copyright (C) 2004-2007, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* written by Jim Meyering and Bruno Haible */ - -#include - -/* Specification. */ -#include - -#include - -#include "xalloc-oversized.h" - -/* Call the system's calloc below. */ -#undef calloc - -/* Allocate and zero-fill an NxS-byte block of memory from the heap, - even if N or S is zero. */ - -void * -rpl_calloc (size_t n, size_t s) -{ - if (n == 0 || s == 0) - n = s = 1; - - if (xalloc_oversized (n, s)) - { - errno = ENOMEM; - return NULL; - } - - void *result = calloc (n, s); - -#if !HAVE_MALLOC_POSIX - if (result == NULL) - errno = ENOMEM; -#endif - - return result; -} diff --git a/gl/cdefs.h b/gl/cdefs.h deleted file mode 100644 index 09a3d19..0000000 --- a/gl/cdefs.h +++ /dev/null @@ -1,707 +0,0 @@ -/* Copyright (C) 1992-2023 Free Software Foundation, Inc. - Copyright The GNU Toolchain Authors. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _SYS_CDEFS_H -#define _SYS_CDEFS_H 1 - -/* We are almost always included from features.h. */ -#ifndef _FEATURES_H -# include -#endif - -/* The GNU libc does not support any K&R compilers or the traditional mode - of ISO C compilers anymore. Check for some of the combinations not - supported anymore. */ -#if defined __GNUC__ && !defined __STDC__ -# error "You need a ISO C conforming compiler to use the glibc headers" -#endif - -/* Some user header file might have defined this before. */ -#undef __P -#undef __PMT - -/* Compilers that lack __has_attribute may object to - #if defined __has_attribute && __has_attribute (...) - even though they do not need to evaluate the right-hand side of the &&. - Similarly for __has_builtin, etc. */ -#if (defined __has_attribute \ - && (!defined __clang_minor__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))) -# define __glibc_has_attribute(attr) __has_attribute (attr) -#else -# define __glibc_has_attribute(attr) 0 -#endif -#ifdef __has_builtin -# define __glibc_has_builtin(name) __has_builtin (name) -#else -# define __glibc_has_builtin(name) 0 -#endif -#ifdef __has_extension -# define __glibc_has_extension(ext) __has_extension (ext) -#else -# define __glibc_has_extension(ext) 0 -#endif - -#if defined __GNUC__ || defined __clang__ - -/* All functions, except those with callbacks or those that - synchronize memory, are leaf functions. */ -# if __GNUC_PREREQ (4, 6) && !defined _LIBC -# define __LEAF , __leaf__ -# define __LEAF_ATTR __attribute__ ((__leaf__)) -# else -# define __LEAF -# define __LEAF_ATTR -# endif - -/* GCC can always grok prototypes. For C++ programs we add throw() - to help it optimize the function calls. But this only works with - gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions - as non-throwing using a function attribute since programs can use - the -fexceptions options for C code as well. */ -# if !defined __cplusplus \ - && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) -# define __THROW __attribute__ ((__nothrow__ __LEAF)) -# define __THROWNL __attribute__ ((__nothrow__)) -# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct -# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct -# else -# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4) -# if __cplusplus >= 201103L -# define __THROW noexcept (true) -# else -# define __THROW throw () -# endif -# define __THROWNL __THROW -# define __NTH(fct) __LEAF_ATTR fct __THROW -# define __NTHNL(fct) fct __THROW -# else -# define __THROW -# define __THROWNL -# define __NTH(fct) fct -# define __NTHNL(fct) fct -# endif -# endif - -#else /* Not GCC or clang. */ - -# if (defined __cplusplus \ - || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) -# define __inline inline -# else -# define __inline /* No inline functions. */ -# endif - -# define __THROW -# define __THROWNL -# define __NTH(fct) fct - -#endif /* GCC || clang. */ - -/* These two macros are not used in glibc anymore. They are kept here - only because some other projects expect the macros to be defined. */ -#define __P(args) args -#define __PMT(args) args - -/* For these things, GCC behaves the ANSI way normally, - and the non-ANSI way under -traditional. */ - -#define __CONCAT(x,y) x ## y -#define __STRING(x) #x - -/* This is not a typedef so `const __ptr_t' does the right thing. */ -#define __ptr_t void * - - -/* C++ needs to know that types and declarations are C, not C++. */ -#ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -#else -# define __BEGIN_DECLS -# define __END_DECLS -#endif - - -/* Fortify support. */ -#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) -#define __bos0(ptr) __builtin_object_size (ptr, 0) - -/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ -#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ - || __GNUC_PREREQ (12, 0)) -# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) -# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) -#else -# define __glibc_objsize0(__o) __bos0 (__o) -# define __glibc_objsize(__o) __bos (__o) -#endif - -/* Compile time conditions to choose between the regular, _chk and _chk_warn - variants. These conditions should get evaluated to constant and optimized - away. */ - -#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) -#define __glibc_unsigned_or_positive(__l) \ - ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ - || (__builtin_constant_p (__l) && (__l) > 0)) - -/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ - condition can be folded to a constant and if it is true, or unknown (-1) */ -#define __glibc_safe_or_unknown_len(__l, __s, __osz) \ - ((__osz) == (__SIZE_TYPE__) -1 \ - || (__glibc_unsigned_or_positive (__l) \ - && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ - (__s), (__osz))) \ - && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz)))) - -/* Conversely, we know at compile time that the length is unsafe if the - __L * __S <= __OBJSZ condition can be folded to a constant and if it is - false. */ -#define __glibc_unsafe_len(__l, __s, __osz) \ - (__glibc_unsigned_or_positive (__l) \ - && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ - __s, __osz)) \ - && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) - -/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be - declared. */ - -#define __glibc_fortify(f, __l, __s, __osz, ...) \ - (__glibc_safe_or_unknown_len (__l, __s, __osz) \ - ? __ ## f ## _alias (__VA_ARGS__) \ - : (__glibc_unsafe_len (__l, __s, __osz) \ - ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ - : __ ## f ## _chk (__VA_ARGS__, __osz))) \ - -/* Fortify function f, where object size argument passed to f is the number of - elements and not total size. */ - -#define __glibc_fortify_n(f, __l, __s, __osz, ...) \ - (__glibc_safe_or_unknown_len (__l, __s, __osz) \ - ? __ ## f ## _alias (__VA_ARGS__) \ - : (__glibc_unsafe_len (__l, __s, __osz) \ - ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ - : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ - -#if __GNUC_PREREQ (4,3) -# define __warnattr(msg) __attribute__((__warning__ (msg))) -# define __errordecl(name, msg) \ - extern void name (void) __attribute__((__error__ (msg))) -#else -# define __warnattr(msg) -# define __errordecl(name, msg) extern void name (void) -#endif - -/* Support for flexible arrays. - Headers that should use flexible arrays only if they're "real" - (e.g. only if they won't affect sizeof()) should test - #if __glibc_c99_flexarr_available. */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc -# define __flexarr [] -# define __glibc_c99_flexarr_available 1 -#elif __GNUC_PREREQ (2,97) || defined __clang__ -/* GCC 2.97 and clang support C99 flexible array members as an extension, - even when in C89 mode or compiling C++ (any version). */ -# define __flexarr [] -# define __glibc_c99_flexarr_available 1 -#elif defined __GNUC__ -/* Pre-2.97 GCC did not support C99 flexible arrays but did have - an equivalent extension with slightly different notation. */ -# define __flexarr [0] -# define __glibc_c99_flexarr_available 1 -#else -/* Some other non-C99 compiler. Approximate with [1]. */ -# define __flexarr [1] -# define __glibc_c99_flexarr_available 0 -#endif - - -/* __asm__ ("xyz") is used throughout the headers to rename functions - at the assembly language level. This is wrapped by the __REDIRECT - macro, in order to support compilers that can do this some other - way. When compilers don't support asm-names at all, we have to do - preprocessor tricks instead (which don't have exactly the right - semantics, but it's the best we can do). - - Example: - int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ - -#if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) - -# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) -# ifdef __cplusplus -# define __REDIRECT_NTH(name, proto, alias) \ - name proto __THROW __asm__ (__ASMNAME (#alias)) -# define __REDIRECT_NTHNL(name, proto, alias) \ - name proto __THROWNL __asm__ (__ASMNAME (#alias)) -# else -# define __REDIRECT_NTH(name, proto, alias) \ - name proto __asm__ (__ASMNAME (#alias)) __THROW -# define __REDIRECT_NTHNL(name, proto, alias) \ - name proto __asm__ (__ASMNAME (#alias)) __THROWNL -# endif -# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) -# define __ASMNAME2(prefix, cname) __STRING (prefix) cname - -/* -#elif __SOME_OTHER_COMPILER__ - -# define __REDIRECT(name, proto, alias) name proto; \ - _Pragma("let " #name " = " #alias) -*/ -#endif - -/* GCC and clang have various useful declarations that can be made with - the '__attribute__' syntax. All of the ways we use this do fine if - they are omitted for compilers that don't understand it. */ -#if !(defined __GNUC__ || defined __clang__) -# define __attribute__(xyz) /* Ignore */ -#endif - -/* At some point during the gcc 2.96 development the `malloc' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) -# define __attribute_malloc__ __attribute__ ((__malloc__)) -#else -# define __attribute_malloc__ /* Ignore */ -#endif - -/* Tell the compiler which arguments to an allocation function - indicate the size of the allocation. */ -#if __GNUC_PREREQ (4, 3) -# define __attribute_alloc_size__(params) \ - __attribute__ ((__alloc_size__ params)) -#else -# define __attribute_alloc_size__(params) /* Ignore. */ -#endif - -/* Tell the compiler which argument to an allocation function - indicates the alignment of the allocation. */ -#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__) -# define __attribute_alloc_align__(param) \ - __attribute__ ((__alloc_align__ param)) -#else -# define __attribute_alloc_align__(param) /* Ignore. */ -#endif - -/* At some point during the gcc 2.96 development the `pure' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) -# define __attribute_pure__ __attribute__ ((__pure__)) -#else -# define __attribute_pure__ /* Ignore */ -#endif - -/* This declaration tells the compiler that the value is constant. */ -#if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) -# define __attribute_const__ __attribute__ ((__const__)) -#else -# define __attribute_const__ /* Ignore */ -#endif - -#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) -# define __attribute_maybe_unused__ __attribute__ ((__unused__)) -#else -# define __attribute_maybe_unused__ /* Ignore */ -#endif - -/* At some point during the gcc 3.1 development the `used' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) -# define __attribute_used__ __attribute__ ((__used__)) -# define __attribute_noinline__ __attribute__ ((__noinline__)) -#else -# define __attribute_used__ __attribute__ ((__unused__)) -# define __attribute_noinline__ /* Ignore */ -#endif - -/* Since version 3.2, gcc allows marking deprecated functions. */ -#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) -# define __attribute_deprecated__ __attribute__ ((__deprecated__)) -#else -# define __attribute_deprecated__ /* Ignore */ -#endif - -/* Since version 4.5, gcc also allows one to specify the message printed - when a deprecated function is used. clang claims to be gcc 4.2, but - may also support this feature. */ -#if __GNUC_PREREQ (4,5) \ - || __glibc_has_extension (__attribute_deprecated_with_message__) -# define __attribute_deprecated_msg__(msg) \ - __attribute__ ((__deprecated__ (msg))) -#else -# define __attribute_deprecated_msg__(msg) __attribute_deprecated__ -#endif - -/* At some point during the gcc 2.8 development the `format_arg' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. - If several `format_arg' attributes are given for the same function, in - gcc-3.0 and older, all but the last one are ignored. In newer gccs, - all designated arguments are considered. */ -#if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) -# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) -#else -# define __attribute_format_arg__(x) /* Ignore */ -#endif - -/* At some point during the gcc 2.97 development the `strfmon' format - attribute for functions was introduced. We don't want to use it - unconditionally (although this would be possible) since it - generates warnings. */ -#if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) -# define __attribute_format_strfmon__(a,b) \ - __attribute__ ((__format__ (__strfmon__, a, b))) -#else -# define __attribute_format_strfmon__(a,b) /* Ignore */ -#endif - -/* The nonnull function attribute marks pointer parameters that - must not be NULL. This has the name __nonnull in glibc, - and __attribute_nonnull__ in files shared with Gnulib to avoid - collision with a different __nonnull in DragonFlyBSD 5.9. */ -#ifndef __attribute_nonnull__ -# if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) -# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) -# else -# define __attribute_nonnull__(params) -# endif -#endif -#ifndef __nonnull -# define __nonnull(params) __attribute_nonnull__ (params) -#endif - -/* The returns_nonnull function attribute marks the return type of the function - as always being non-null. */ -#ifndef __returns_nonnull -# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__) -# define __returns_nonnull __attribute__ ((__returns_nonnull__)) -# else -# define __returns_nonnull -# endif -#endif - -/* If fortification mode, we warn about unused results of certain - function calls which can lead to problems. */ -#if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) -# define __attribute_warn_unused_result__ \ - __attribute__ ((__warn_unused_result__)) -# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 -# define __wur __attribute_warn_unused_result__ -# endif -#else -# define __attribute_warn_unused_result__ /* empty */ -#endif -#ifndef __wur -# define __wur /* Ignore */ -#endif - -/* Forces a function to be always inlined. */ -#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) -/* The Linux kernel defines __always_inline in stddef.h (283d7573), and - it conflicts with this definition. Therefore undefine it first to - allow either header to be included first. */ -# undef __always_inline -# define __always_inline __inline __attribute__ ((__always_inline__)) -#else -# undef __always_inline -# define __always_inline __inline -#endif - -/* Associate error messages with the source location of the call site rather - than with the source location inside the function. */ -#if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) -# define __attribute_artificial__ __attribute__ ((__artificial__)) -#else -# define __attribute_artificial__ /* Ignore */ -#endif - -/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ - or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions - older than 4.3 may define these macros and still not guarantee GNU inlining - semantics. - - clang++ identifies itself as gcc-4.2, but has support for GNU inlining - semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and - __GNUC_GNU_INLINE__ macro definitions. */ -#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ - || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ - || defined __GNUC_GNU_INLINE__))) -# if defined __GNUC_STDC_INLINE__ || defined __cplusplus -# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) -# define __extern_always_inline \ - extern __always_inline __attribute__ ((__gnu_inline__)) -# else -# define __extern_inline extern __inline -# define __extern_always_inline extern __always_inline -# endif -#endif - -#ifdef __extern_always_inline -# define __fortify_function __extern_always_inline __attribute_artificial__ -#endif - -/* GCC 4.3 and above allow passing all anonymous arguments of an - __extern_always_inline function to some other vararg function. */ -#if __GNUC_PREREQ (4,3) -# define __va_arg_pack() __builtin_va_arg_pack () -# define __va_arg_pack_len() __builtin_va_arg_pack_len () -#endif - -/* It is possible to compile containing GCC extensions even if GCC is - run in pedantic mode if the uses are carefully marked using the - `__extension__' keyword. But this is not generally available before - version 2.8. */ -#if !(__GNUC_PREREQ (2,8) || defined __clang__) -# define __extension__ /* Ignore */ -#endif - -/* __restrict is known in EGCS 1.2 and above, and in clang. - It works also in C++ mode (outside of arrays), but only when spelled - as '__restrict', not 'restrict'. */ -#if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) -# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L -# define __restrict restrict -# else -# define __restrict /* Ignore */ -# endif -#endif - -/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is - array_name[restrict] - GCC 3.1 and clang support this. - This syntax is not usable in C++ mode. */ -#if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus -# define __restrict_arr __restrict -#else -# ifdef __GNUC__ -# define __restrict_arr /* Not supported in old GCC. */ -# else -# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L -# define __restrict_arr restrict -# else -/* Some other non-C99 compiler. */ -# define __restrict_arr /* Not supported. */ -# endif -# endif -#endif - -#if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) -# define __glibc_unlikely(cond) __builtin_expect ((cond), 0) -# define __glibc_likely(cond) __builtin_expect ((cond), 1) -#else -# define __glibc_unlikely(cond) (cond) -# define __glibc_likely(cond) (cond) -#endif - -#if (!defined _Noreturn \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ - && !(__GNUC_PREREQ (4,7) \ - || (3 < __clang_major__ + (5 <= __clang_minor__)))) -# if __GNUC_PREREQ (2,8) -# define _Noreturn __attribute__ ((__noreturn__)) -# else -# define _Noreturn -# endif -#endif - -#if __GNUC_PREREQ (8, 0) -/* Describes a char array whose address can safely be passed as the first - argument to strncpy and strncat, as the char array is not necessarily - a NUL-terminated string. */ -# define __attribute_nonstring__ __attribute__ ((__nonstring__)) -#else -# define __attribute_nonstring__ -#endif - -/* Undefine (also defined in libc-symbols.h). */ -#undef __attribute_copy__ -#if __GNUC_PREREQ (9, 0) -/* Copies attributes from the declaration or type referenced by - the argument. */ -# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) -#else -# define __attribute_copy__(arg) -#endif - -#if (!defined _Static_assert && !defined __cplusplus \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ - && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ - || defined __STRICT_ANSI__)) -# define _Static_assert(expr, diagnostic) \ - extern int (*__Static_assert_function (void)) \ - [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] -#endif - -/* Gnulib avoids including these, as they don't work on non-glibc or - older glibc platforms. */ -#ifndef __GNULIB_CDEFS -# include -# include -#endif - -#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 -# ifdef __REDIRECT - -/* Alias name defined automatically. */ -# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir -# define __LDBL_REDIR_DECL(name) \ - extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); - -/* Alias name defined automatically, with leading underscores. */ -# define __LDBL_REDIR2_DECL(name) \ - extern __typeof (__##name) __##name \ - __asm (__ASMNAME ("__" #name "ieee128")); - -/* Alias name defined manually. */ -# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 -# define __LDBL_REDIR1_DECL(name, alias) \ - extern __typeof (name) name __asm (__ASMNAME (#alias)); - -# define __LDBL_REDIR1_NTH(name, proto, alias) \ - __REDIRECT_NTH (name, proto, alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) - -/* Unused. */ -# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl -# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth - -# else -_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); -# endif -#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH -# define __LDBL_COMPAT 1 -# ifdef __REDIRECT -# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) -# define __LDBL_REDIR(name, proto) \ - __LDBL_REDIR1 (name, proto, __nldbl_##name) -# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) -# define __LDBL_REDIR_NTH(name, proto) \ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) -# define __LDBL_REDIR2_DECL(name) \ - extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); -# define __LDBL_REDIR1_DECL(name, alias) \ - extern __typeof (name) name __asm (__ASMNAME (#alias)); -# define __LDBL_REDIR_DECL(name) \ - extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); -# define __REDIRECT_LDBL(name, proto, alias) \ - __LDBL_REDIR1 (name, proto, __nldbl_##alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) -# endif -#endif -#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ - || !defined __REDIRECT -# define __LDBL_REDIR1(name, proto, alias) name proto -# define __LDBL_REDIR(name, proto) name proto -# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW -# define __LDBL_REDIR_NTH(name, proto) name proto __THROW -# define __LDBL_REDIR2_DECL(name) -# define __LDBL_REDIR_DECL(name) -# ifdef __REDIRECT -# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __REDIRECT_NTH (name, proto, alias) -# endif -#endif - -/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is - intended for use in preprocessor macros. - - Note: MESSAGE must be a _single_ string; concatenation of string - literals is not supported. */ -#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) -# define __glibc_macro_warning1(message) _Pragma (#message) -# define __glibc_macro_warning(message) \ - __glibc_macro_warning1 (GCC warning message) -#else -# define __glibc_macro_warning(msg) -#endif - -/* Generic selection (ISO C11) is a C-only feature, available in GCC - since version 4.9. Previous versions do not provide generic - selection, even though they might set __STDC_VERSION__ to 201112L, - when in -std=c11 mode. Thus, we must check for !defined __GNUC__ - when testing __STDC_VERSION__ for generic selection support. - On the other hand, Clang also defines __GNUC__, so a clang-specific - check is required to enable the use of generic selection. */ -#if !defined __cplusplus \ - && (__GNUC_PREREQ (4, 9) \ - || __glibc_has_extension (c_generic_selections) \ - || (!defined __GNUC__ && defined __STDC_VERSION__ \ - && __STDC_VERSION__ >= 201112L)) -# define __HAVE_GENERIC_SELECTION 1 -#else -# define __HAVE_GENERIC_SELECTION 0 -#endif - -#if __GNUC_PREREQ (10, 0) -/* Designates a 1-based positional argument ref-index of pointer type - that can be used to access size-index elements of the pointed-to - array according to access mode, or at least one element when - size-index is not provided: - access (access-mode, [, ]) */ -# define __attr_access(x) __attribute__ ((__access__ x)) -/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may - use the access attribute to get object sizes from function definition - arguments, so we can't use them on functions we fortify. Drop the object - size hints for such functions. */ -# if __USE_FORTIFY_LEVEL == 3 -# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o))) -# else -# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) -# endif -# if __GNUC_PREREQ (11, 0) -# define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) -# else -# define __attr_access_none(argno) -# endif -#else -# define __fortified_attr_access(a, o, s) -# define __attr_access(x) -# define __attr_access_none(argno) -#endif - -#if __GNUC_PREREQ (11, 0) -/* Designates dealloc as a function to call to deallocate objects - allocated by the declared function. */ -# define __attr_dealloc(dealloc, argno) \ - __attribute__ ((__malloc__ (dealloc, argno))) -# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1) -#else -# define __attr_dealloc(dealloc, argno) -# define __attr_dealloc_free -#endif - -/* Specify that a function such as setjmp or vfork may return - twice. */ -#if __GNUC_PREREQ (4, 1) -# define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) -#else -# define __attribute_returns_twice__ /* Ignore. */ -#endif - -#endif /* sys/cdefs.h */ diff --git a/gl/cloexec.c b/gl/cloexec.c deleted file mode 100644 index e4cecbd..0000000 --- a/gl/cloexec.c +++ /dev/null @@ -1,83 +0,0 @@ -/* cloexec.c - set or clear the close-on-exec descriptor flag - - Copyright (C) 1991, 2004-2006, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* The code is taken from glibc/manual/llio.texi */ - -#include - -#include "cloexec.h" - -#include -#include -#include - -/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, - or clear the flag if VALUE is false. - Return 0 on success, or -1 on error with 'errno' set. - - Note that on MingW, this function does NOT protect DESC from being - inherited into spawned children. Instead, either use dup_cloexec - followed by closing the original DESC, or use interfaces such as - open or pipe2 that accept flags like O_CLOEXEC to create DESC - non-inheritable in the first place. */ - -int -set_cloexec_flag (int desc, bool value) -{ -#ifdef F_SETFD - - int flags = fcntl (desc, F_GETFD, 0); - - if (0 <= flags) - { - int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC); - - if (flags == newflags - || fcntl (desc, F_SETFD, newflags) != -1) - return 0; - } - - return -1; - -#else /* !F_SETFD */ - - /* Use dup2 to reject invalid file descriptors; the cloexec flag - will be unaffected. */ - if (desc < 0) - { - errno = EBADF; - return -1; - } - if (dup2 (desc, desc) < 0) - /* errno is EBADF here. */ - return -1; - - /* There is nothing we can do on this kind of platform. Punt. */ - return 0; -#endif /* !F_SETFD */ -} - - -/* Duplicates a file handle FD, while marking the copy to be closed - prior to exec or spawn. Returns -1 and sets errno if FD could not - be duplicated. */ - -int -dup_cloexec (int fd) -{ - return fcntl (fd, F_DUPFD_CLOEXEC, 0); -} diff --git a/gl/cloexec.h b/gl/cloexec.h deleted file mode 100644 index 057fd66..0000000 --- a/gl/cloexec.h +++ /dev/null @@ -1,34 +0,0 @@ -/* cloexec.c - set or clear the close-on-exec descriptor flag - - Copyright (C) 2004, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, - or clear the flag if VALUE is false. - Return 0 on success, or -1 on error with 'errno' set. - - Note that on MingW, this function does NOT protect DESC from being - inherited into spawned children. Instead, either use dup_cloexec - followed by closing the original DESC, or use interfaces such as - open or pipe2 that accept flags like O_CLOEXEC to create DESC - non-inheritable in the first place. */ - -int set_cloexec_flag (int desc, bool value); - -/* Duplicates a file handle FD, while marking the copy to be closed - prior to exec or spawn. Returns -1 and sets errno if FD could not - be duplicated. */ - -int dup_cloexec (int fd); diff --git a/gl/close.c b/gl/close.c deleted file mode 100644 index 3c1b09e..0000000 --- a/gl/close.c +++ /dev/null @@ -1,75 +0,0 @@ -/* close replacement. - Copyright (C) 2008-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include - -#include "fd-hook.h" -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -#endif - -#undef close - -#if defined _WIN32 && !defined __CYGWIN__ -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static int -close_nothrow (int fd) -{ - int result; - - TRY_MSVC_INVAL - { - result = _close (fd); - } - CATCH_MSVC_INVAL - { - result = -1; - errno = EBADF; - } - DONE_MSVC_INVAL; - - return result; -} -# else -# define close_nothrow _close -# endif -#else -# define close_nothrow close -#endif - -/* Override close() to call into other gnulib modules. */ - -int -rpl_close (int fd) -{ -#if WINDOWS_SOCKETS - int retval = execute_all_close_hooks (close_nothrow, fd); -#else - int retval = close_nothrow (fd); -#endif - -#if REPLACE_FCHDIR - if (retval >= 0) - _gl_unregister_fd (fd); -#endif - - return retval; -} diff --git a/gl/config.charset b/gl/config.charset new file mode 100644 index 0000000..a991419 --- /dev/null +++ b/gl/config.charset @@ -0,0 +1,684 @@ +#! /bin/sh +# Output a system dependent table of character encoding aliases. +# +# Copyright (C) 2000-2004, 2006-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, see . +# +# The table consists of lines of the form +# ALIAS CANONICAL +# +# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". +# ALIAS is compared in a case sensitive way. +# +# CANONICAL is the GNU canonical name for this character encoding. +# It must be an encoding supported by libiconv. Support by GNU libc is +# also desirable. CANONICAL is case insensitive. Usually an upper case +# MIME charset name is preferred. +# The current list of GNU canonical charset names is as follows. +# +# name MIME? used by which systems +# (darwin = Mac OS X, woe32 = native Windows) +# +# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin +# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin +# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin +# ISO-8859-3 Y glibc solaris cygwin +# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin +# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin +# ISO-8859-6 Y glibc aix hpux solaris cygwin +# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin +# ISO-8859-8 Y glibc aix hpux osf solaris cygwin +# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin +# ISO-8859-13 glibc netbsd openbsd darwin cygwin +# ISO-8859-14 glibc cygwin +# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin +# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin +# KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin +# KOI8-T glibc +# CP437 dos +# CP775 dos +# CP850 aix osf dos +# CP852 dos +# CP855 dos +# CP856 aix +# CP857 dos +# CP861 dos +# CP862 dos +# CP864 dos +# CP865 dos +# CP866 freebsd netbsd openbsd darwin dos +# CP869 dos +# CP874 woe32 dos +# CP922 aix +# CP932 aix cygwin woe32 dos +# CP943 aix +# CP949 osf darwin woe32 dos +# CP950 woe32 dos +# CP1046 aix +# CP1124 aix +# CP1125 dos +# CP1129 aix +# CP1131 darwin +# CP1250 woe32 +# CP1251 glibc solaris netbsd openbsd darwin cygwin woe32 +# CP1252 aix woe32 +# CP1253 woe32 +# CP1254 woe32 +# CP1255 glibc woe32 +# CP1256 woe32 +# CP1257 woe32 +# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin +# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin +# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin +# EUC-TW glibc aix hpux irix osf solaris netbsd +# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin +# BIG5-HKSCS glibc solaris darwin +# GBK glibc aix osf solaris darwin cygwin woe32 dos +# GB18030 glibc solaris netbsd darwin +# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin +# JOHAB glibc solaris woe32 +# TIS-620 glibc aix hpux osf solaris cygwin +# VISCII Y glibc +# TCVN5712-1 glibc +# ARMSCII-8 glibc darwin +# GEORGIAN-PS glibc cygwin +# PT154 glibc +# HP-ROMAN8 hpux +# HP-ARABIC8 hpux +# HP-GREEK8 hpux +# HP-HEBREW8 hpux +# HP-TURKISH8 hpux +# HP-KANA8 hpux +# DEC-KANJI osf +# DEC-HANYU osf +# UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin +# +# Note: Names which are not marked as being a MIME name should not be used in +# Internet protocols for information interchange (mail, news, etc.). +# +# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications +# must understand both names and treat them as equivalent. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + +host="$1" +os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` +echo "# This file contains a table of character encoding aliases," +echo "# suitable for operating system '${os}'." +echo "# It was automatically generated from config.charset." +# List of references, updated during installation: +echo "# Packages using this file: " +case "$os" in + linux-gnulibc1*) + # Linux libc5 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "C ASCII" + echo "POSIX ASCII" + for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ + en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ + en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ + es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ + et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ + fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ + it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ + sv_FI sv_SE; do + echo "$l ISO-8859-1" + echo "$l.iso-8859-1 ISO-8859-1" + echo "$l.iso-8859-15 ISO-8859-15" + echo "$l.iso-8859-15@euro ISO-8859-15" + echo "$l@euro ISO-8859-15" + echo "$l.cp-437 CP437" + echo "$l.cp-850 CP850" + echo "$l.cp-1252 CP1252" + echo "$l.cp-1252@euro CP1252" + #echo "$l.atari-st ATARI-ST" # not a commonly used encoding + echo "$l.utf-8 UTF-8" + echo "$l.utf-8@euro UTF-8" + done + for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ + sl_SI sr sr_CS sr_YU; do + echo "$l ISO-8859-2" + echo "$l.iso-8859-2 ISO-8859-2" + echo "$l.cp-852 CP852" + echo "$l.cp-1250 CP1250" + echo "$l.utf-8 UTF-8" + done + for l in mk mk_MK ru ru_RU; do + echo "$l ISO-8859-5" + echo "$l.iso-8859-5 ISO-8859-5" + echo "$l.koi8-r KOI8-R" + echo "$l.cp-866 CP866" + echo "$l.cp-1251 CP1251" + echo "$l.utf-8 UTF-8" + done + for l in ar ar_SA; do + echo "$l ISO-8859-6" + echo "$l.iso-8859-6 ISO-8859-6" + echo "$l.cp-864 CP864" + #echo "$l.cp-868 CP868" # not a commonly used encoding + echo "$l.cp-1256 CP1256" + echo "$l.utf-8 UTF-8" + done + for l in el el_GR gr gr_GR; do + echo "$l ISO-8859-7" + echo "$l.iso-8859-7 ISO-8859-7" + echo "$l.cp-869 CP869" + echo "$l.cp-1253 CP1253" + echo "$l.cp-1253@euro CP1253" + echo "$l.utf-8 UTF-8" + echo "$l.utf-8@euro UTF-8" + done + for l in he he_IL iw iw_IL; do + echo "$l ISO-8859-8" + echo "$l.iso-8859-8 ISO-8859-8" + echo "$l.cp-862 CP862" + echo "$l.cp-1255 CP1255" + echo "$l.utf-8 UTF-8" + done + for l in tr tr_TR; do + echo "$l ISO-8859-9" + echo "$l.iso-8859-9 ISO-8859-9" + echo "$l.cp-857 CP857" + echo "$l.cp-1254 CP1254" + echo "$l.utf-8 UTF-8" + done + for l in lt lt_LT lv lv_LV; do + #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name + echo "$l ISO-8859-13" + done + for l in ru_UA uk uk_UA; do + echo "$l KOI8-U" + done + for l in zh zh_CN; do + #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name + echo "$l GB2312" + done + for l in ja ja_JP ja_JP.EUC; do + echo "$l EUC-JP" + done + for l in ko ko_KR; do + echo "$l EUC-KR" + done + for l in th th_TH; do + echo "$l TIS-620" + done + for l in fa fa_IR; do + #echo "$l ISIRI-3342" # a broken encoding + echo "$l.utf-8 UTF-8" + done + ;; + linux* | *-gnu*) + # With glibc-2.1 or newer, we don't need any canonicalization, + # because glibc has iconv and both glibc and libiconv support all + # GNU canonical names directly. Therefore, the Makefile does not + # need to install the alias file at all. + # The following applies only to glibc-2.0.x and older libcs. + echo "ISO_646.IRV:1983 ASCII" + ;; + aix*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-6 ISO-8859-6" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "IBM-850 CP850" + echo "IBM-856 CP856" + echo "IBM-921 ISO-8859-13" + echo "IBM-922 CP922" + echo "IBM-932 CP932" + echo "IBM-943 CP943" + echo "IBM-1046 CP1046" + echo "IBM-1124 CP1124" + echo "IBM-1129 CP1129" + echo "IBM-1252 CP1252" + echo "IBM-eucCN GB2312" + echo "IBM-eucJP EUC-JP" + echo "IBM-eucKR EUC-KR" + echo "IBM-eucTW EUC-TW" + echo "big5 BIG5" + echo "GBK GBK" + echo "TIS-620 TIS-620" + echo "UTF-8 UTF-8" + ;; + hpux*) + echo "iso88591 ISO-8859-1" + echo "iso88592 ISO-8859-2" + echo "iso88595 ISO-8859-5" + echo "iso88596 ISO-8859-6" + echo "iso88597 ISO-8859-7" + echo "iso88598 ISO-8859-8" + echo "iso88599 ISO-8859-9" + echo "iso885915 ISO-8859-15" + echo "roman8 HP-ROMAN8" + echo "arabic8 HP-ARABIC8" + echo "greek8 HP-GREEK8" + echo "hebrew8 HP-HEBREW8" + echo "turkish8 HP-TURKISH8" + echo "kana8 HP-KANA8" + echo "tis620 TIS-620" + echo "big5 BIG5" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "hp15CN GB2312" + #echo "ccdc ?" # what is this? + echo "SJIS SHIFT_JIS" + echo "utf8 UTF-8" + ;; + irix*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-9 ISO-8859-9" + echo "eucCN GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + ;; + osf*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "cp850 CP850" + echo "big5 BIG5" + echo "dechanyu DEC-HANYU" + echo "dechanzi GB2312" + echo "deckanji DEC-KANJI" + echo "deckorean EUC-KR" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "GBK GBK" + echo "KSC5601 CP949" + echo "sdeckanji EUC-JP" + echo "SJIS SHIFT_JIS" + echo "TACTIS TIS-620" + echo "UTF-8 UTF-8" + ;; + solaris*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-3 ISO-8859-3" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-6 ISO-8859-6" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "koi8-r KOI8-R" + echo "ansi-1251 CP1251" + echo "BIG5 BIG5" + echo "Big5-HKSCS BIG5-HKSCS" + echo "gb2312 GB2312" + echo "GBK GBK" + echo "GB18030 GB18030" + echo "cns11643 EUC-TW" + echo "5601 EUC-KR" + echo "ko_KR.johap92 JOHAB" + echo "eucJP EUC-JP" + echo "PCK SHIFT_JIS" + echo "TIS620.2533 TIS-620" + #echo "sun_eu_greek ?" # what is this? + echo "UTF-8 UTF-8" + ;; + freebsd* | os2*) + # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just + # reuse FreeBSD's locale data for OS/2. + echo "C ASCII" + echo "US-ASCII ASCII" + for l in la_LN lt_LN; do + echo "$l.ASCII ASCII" + done + for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ + fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ + lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do + echo "$l.ISO_8859-1 ISO-8859-1" + echo "$l.DIS_8859-15 ISO-8859-15" + done + for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do + echo "$l.ISO_8859-2 ISO-8859-2" + done + for l in la_LN lt_LT; do + echo "$l.ISO_8859-4 ISO-8859-4" + done + for l in ru_RU ru_SU; do + echo "$l.KOI8-R KOI8-R" + echo "$l.ISO_8859-5 ISO-8859-5" + echo "$l.CP866 CP866" + done + echo "uk_UA.KOI8-U KOI8-U" + echo "zh_TW.BIG5 BIG5" + echo "zh_TW.Big5 BIG5" + echo "zh_CN.EUC GB2312" + echo "ja_JP.EUC EUC-JP" + echo "ja_JP.SJIS SHIFT_JIS" + echo "ja_JP.Shift_JIS SHIFT_JIS" + echo "ko_KR.EUC EUC-KR" + ;; + netbsd*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + echo "eucCN GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "BIG5 BIG5" + echo "SJIS SHIFT_JIS" + ;; + openbsd*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + ;; + darwin[56]*) + # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "C ASCII" + for l in en_AU en_CA en_GB en_US la_LN; do + echo "$l.US-ASCII ASCII" + done + for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ + fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ + nl_NL no_NO pt_PT sv_SE; do + echo "$l ISO-8859-1" + echo "$l.ISO8859-1 ISO-8859-1" + echo "$l.ISO8859-15 ISO-8859-15" + done + for l in la_LN; do + echo "$l.ISO8859-1 ISO-8859-1" + echo "$l.ISO8859-15 ISO-8859-15" + done + for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do + echo "$l.ISO8859-2 ISO-8859-2" + done + for l in la_LN lt_LT; do + echo "$l.ISO8859-4 ISO-8859-4" + done + for l in ru_RU; do + echo "$l.KOI8-R KOI8-R" + echo "$l.ISO8859-5 ISO-8859-5" + echo "$l.CP866 CP866" + done + for l in bg_BG; do + echo "$l.CP1251 CP1251" + done + echo "uk_UA.KOI8-U KOI8-U" + echo "zh_TW.BIG5 BIG5" + echo "zh_TW.Big5 BIG5" + echo "zh_CN.EUC GB2312" + echo "ja_JP.EUC EUC-JP" + echo "ja_JP.SJIS SHIFT_JIS" + echo "ko_KR.EUC EUC-KR" + ;; + darwin*) + # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is + # useless: + # - It returns the empty string when LANG is set to a locale of the + # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 + # LC_CTYPE file. + # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by + # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. + # - The documentation says: + # "... all code that calls BSD system routines should ensure + # that the const *char parameters of these routines are in UTF-8 + # encoding. All BSD system functions expect their string + # parameters to be in UTF-8 encoding and nothing else." + # It also says + # "An additional caveat is that string parameters for files, + # paths, and other file-system entities must be in canonical + # UTF-8. In a canonical UTF-8 Unicode string, all decomposable + # characters are decomposed ..." + # but this is not true: You can pass non-decomposed UTF-8 strings + # to file system functions, and it is the OS which will convert + # them to decomposed UTF-8 before accessing the file system. + # - The Apple Terminal application displays UTF-8 by default. + # - However, other applications are free to use different encodings: + # - xterm uses ISO-8859-1 by default. + # - TextEdit uses MacRoman by default. + # We prefer UTF-8 over decomposed UTF-8-MAC because one should + # minimize the use of decomposed Unicode. Unfortunately, through the + # Darwin file system, decomposed UTF-8 strings are leaked into user + # space nevertheless. + # Then there are also the locales with encodings other than US-ASCII + # and UTF-8. These locales can be occasionally useful to users (e.g. + # when grepping through ISO-8859-1 encoded text files), when all their + # file names are in US-ASCII. + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + echo "KOI8-R KOI8-R" + echo "KOI8-U KOI8-U" + echo "CP866 CP866" + echo "CP949 CP949" + echo "CP1131 CP1131" + echo "CP1251 CP1251" + echo "eucCN GB2312" + echo "GB2312 GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "Big5 BIG5" + echo "Big5HKSCS BIG5-HKSCS" + echo "GBK GBK" + echo "GB18030 GB18030" + echo "SJIS SHIFT_JIS" + echo "ARMSCII-8 ARMSCII-8" + echo "PT154 PT154" + #echo "ISCII-DEV ?" + echo "* UTF-8" + ;; + beos* | haiku*) + # BeOS and Haiku have a single locale, and it has UTF-8 encoding. + echo "* UTF-8" + ;; + msdosdjgpp*) + # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "#" + echo "# The encodings given here may not all be correct." + echo "# If you find that the encoding given for your language and" + echo "# country is not the one your DOS machine actually uses, just" + echo "# correct it in this file, and send a mail to" + echo "# Juan Manuel Guerrero " + echo "# and Bruno Haible ." + echo "#" + echo "C ASCII" + # ISO-8859-1 languages + echo "ca CP850" + echo "ca_ES CP850" + echo "da CP865" # not CP850 ?? + echo "da_DK CP865" # not CP850 ?? + echo "de CP850" + echo "de_AT CP850" + echo "de_CH CP850" + echo "de_DE CP850" + echo "en CP850" + echo "en_AU CP850" # not CP437 ?? + echo "en_CA CP850" + echo "en_GB CP850" + echo "en_NZ CP437" + echo "en_US CP437" + echo "en_ZA CP850" # not CP437 ?? + echo "es CP850" + echo "es_AR CP850" + echo "es_BO CP850" + echo "es_CL CP850" + echo "es_CO CP850" + echo "es_CR CP850" + echo "es_CU CP850" + echo "es_DO CP850" + echo "es_EC CP850" + echo "es_ES CP850" + echo "es_GT CP850" + echo "es_HN CP850" + echo "es_MX CP850" + echo "es_NI CP850" + echo "es_PA CP850" + echo "es_PY CP850" + echo "es_PE CP850" + echo "es_SV CP850" + echo "es_UY CP850" + echo "es_VE CP850" + echo "et CP850" + echo "et_EE CP850" + echo "eu CP850" + echo "eu_ES CP850" + echo "fi CP850" + echo "fi_FI CP850" + echo "fr CP850" + echo "fr_BE CP850" + echo "fr_CA CP850" + echo "fr_CH CP850" + echo "fr_FR CP850" + echo "ga CP850" + echo "ga_IE CP850" + echo "gd CP850" + echo "gd_GB CP850" + echo "gl CP850" + echo "gl_ES CP850" + echo "id CP850" # not CP437 ?? + echo "id_ID CP850" # not CP437 ?? + echo "is CP861" # not CP850 ?? + echo "is_IS CP861" # not CP850 ?? + echo "it CP850" + echo "it_CH CP850" + echo "it_IT CP850" + echo "lt CP775" + echo "lt_LT CP775" + echo "lv CP775" + echo "lv_LV CP775" + echo "nb CP865" # not CP850 ?? + echo "nb_NO CP865" # not CP850 ?? + echo "nl CP850" + echo "nl_BE CP850" + echo "nl_NL CP850" + echo "nn CP865" # not CP850 ?? + echo "nn_NO CP865" # not CP850 ?? + echo "no CP865" # not CP850 ?? + echo "no_NO CP865" # not CP850 ?? + echo "pt CP850" + echo "pt_BR CP850" + echo "pt_PT CP850" + echo "sv CP850" + echo "sv_SE CP850" + # ISO-8859-2 languages + echo "cs CP852" + echo "cs_CZ CP852" + echo "hr CP852" + echo "hr_HR CP852" + echo "hu CP852" + echo "hu_HU CP852" + echo "pl CP852" + echo "pl_PL CP852" + echo "ro CP852" + echo "ro_RO CP852" + echo "sk CP852" + echo "sk_SK CP852" + echo "sl CP852" + echo "sl_SI CP852" + echo "sq CP852" + echo "sq_AL CP852" + echo "sr CP852" # CP852 or CP866 or CP855 ?? + echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? + echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? + # ISO-8859-3 languages + echo "mt CP850" + echo "mt_MT CP850" + # ISO-8859-5 languages + echo "be CP866" + echo "be_BE CP866" + echo "bg CP866" # not CP855 ?? + echo "bg_BG CP866" # not CP855 ?? + echo "mk CP866" # not CP855 ?? + echo "mk_MK CP866" # not CP855 ?? + echo "ru CP866" + echo "ru_RU CP866" + echo "uk CP1125" + echo "uk_UA CP1125" + # ISO-8859-6 languages + echo "ar CP864" + echo "ar_AE CP864" + echo "ar_DZ CP864" + echo "ar_EG CP864" + echo "ar_IQ CP864" + echo "ar_IR CP864" + echo "ar_JO CP864" + echo "ar_KW CP864" + echo "ar_MA CP864" + echo "ar_OM CP864" + echo "ar_QA CP864" + echo "ar_SA CP864" + echo "ar_SY CP864" + # ISO-8859-7 languages + echo "el CP869" + echo "el_GR CP869" + # ISO-8859-8 languages + echo "he CP862" + echo "he_IL CP862" + # ISO-8859-9 languages + echo "tr CP857" + echo "tr_TR CP857" + # Japanese + echo "ja CP932" + echo "ja_JP CP932" + # Chinese + echo "zh_CN GBK" + echo "zh_TW CP950" # not CP938 ?? + # Korean + echo "kr CP949" # not CP934 ?? + echo "kr_KR CP949" # not CP934 ?? + # Thai + echo "th CP874" + echo "th_TH CP874" + # Other + echo "eo CP850" + echo "eo_EO CP850" + ;; +esac diff --git a/gl/dirname-lgpl.c b/gl/dirname-lgpl.c index e9454af..82f6630 100644 --- a/gl/dirname-lgpl.c +++ b/gl/dirname-lgpl.c @@ -1,20 +1,20 @@ /* dirname.c -- return all but the last element in a file name - Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2023 Free Software + Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/dirname.c b/gl/dirname.c index e72f713..1fb6588 100644 --- a/gl/dirname.c +++ b/gl/dirname.c @@ -1,11 +1,11 @@ /* dirname.c -- return all but the last element in a file name - Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2023 Free Software + Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -14,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include diff --git a/gl/dirname.h b/gl/dirname.h index f98e83b..4ad0312 100644 --- a/gl/dirname.h +++ b/gl/dirname.h @@ -1,53 +1,46 @@ -/* Take file names apart into directory and base names. +/* Take file names apart into directory and base names. - Copyright (C) 1998, 2001, 2003-2006, 2009-2023 Free Software Foundation, - Inc. + Copyright (C) 1998, 2001, 2003-2006, 2009-2013 Free Software Foundation, + Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef DIRNAME_H_ # define DIRNAME_H_ 1 -# include -# include "filename.h" -# include "basename-lgpl.h" +# include +# include +# include "dosname.h" # ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' # endif -#ifdef __cplusplus -extern "C" { -#endif - -# if GNULIB_DIRNAME -char *base_name (char const *file) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -char *dir_name (char const *file) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; +# ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT +# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 # endif -char *mdir_name (char const *file) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; +# if GNULIB_DIRNAME +char *base_name (char const *file); +char *dir_name (char const *file); +# endif + +char *mdir_name (char const *file); +size_t base_len (char const *file) _GL_ATTRIBUTE_PURE; size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE; +char *last_component (char const *file) _GL_ATTRIBUTE_PURE; bool strip_trailing_slashes (char *file); -#ifdef __cplusplus -} /* extern "C" */ -#endif - #endif /* not DIRNAME_H_ */ diff --git a/gl/dosname.h b/gl/dosname.h new file mode 100644 index 0000000..ba63ce4 --- /dev/null +++ b/gl/dosname.h @@ -0,0 +1,53 @@ +/* File names on MS-DOS/Windows systems. + + Copyright (C) 2000-2001, 2004-2006, 2009-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + From Paul Eggert and Jim Meyering. */ + +#ifndef _DOSNAME_H +#define _DOSNAME_H + +#if (defined _WIN32 || defined __WIN32__ || \ + defined __MSDOS__ || defined __CYGWIN__ || \ + defined __EMX__ || defined __DJGPP__) + /* This internal macro assumes ASCII, but all hosts that support drive + letters use ASCII. */ +# define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \ + <= 'z' - 'a') +# define FILE_SYSTEM_PREFIX_LEN(Filename) \ + (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) +# ifndef __CYGWIN__ +# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 +# endif +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +#else +# define FILE_SYSTEM_PREFIX_LEN(Filename) 0 +# define ISSLASH(C) ((C) == '/') +#endif + +#ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE +# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 +#endif + +#if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE +# define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) +# else +# define IS_ABSOLUTE_FILE_NAME(F) \ + (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0) +#endif +#define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) + +#endif /* DOSNAME_H_ */ diff --git a/gl/dup2.c b/gl/dup2.c deleted file mode 100644 index 7d197ca..0000000 --- a/gl/dup2.c +++ /dev/null @@ -1,189 +0,0 @@ -/* Duplicate an open file descriptor to a specified file descriptor. - - Copyright (C) 1999, 2004-2007, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* written by Paul Eggert */ - -#include - -/* Specification. */ -#include - -#include -#include - -#undef dup2 - -#if defined _WIN32 && ! defined __CYGWIN__ - -/* Get declarations of the native Windows API functions. */ -# define WIN32_LEAN_AND_MEAN -# include - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -# endif - -/* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static int -dup2_nothrow (int fd, int desired_fd) -{ - int result; - - TRY_MSVC_INVAL - { - result = _dup2 (fd, desired_fd); - } - CATCH_MSVC_INVAL - { - errno = EBADF; - result = -1; - } - DONE_MSVC_INVAL; - - return result; -} -# else -# define dup2_nothrow _dup2 -# endif - -static int -ms_windows_dup2 (int fd, int desired_fd) -{ - int result; - - /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, - dup2 (fd, fd) returns 0, but all further attempts to use fd in - future dup2 calls will hang. */ - if (fd == desired_fd) - { - if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) - { - errno = EBADF; - return -1; - } - return fd; - } - - /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: - https://bugs.winehq.org/show_bug.cgi?id=21289 */ - if (desired_fd < 0) - { - errno = EBADF; - return -1; - } - - result = dup2_nothrow (fd, desired_fd); - - if (result == 0) - result = desired_fd; - - return result; -} - -# define dup2 ms_windows_dup2 - -#elif defined __KLIBC__ - -# include - -static int -klibc_dup2dirfd (int fd, int desired_fd) -{ - int tempfd; - int dupfd; - - tempfd = open ("NUL", O_RDONLY); - if (tempfd == -1) - return -1; - - if (tempfd == desired_fd) - { - close (tempfd); - - char path[_MAX_PATH]; - if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) - return -1; - - return open(path, O_RDONLY); - } - - dupfd = klibc_dup2dirfd (fd, desired_fd); - - close (tempfd); - - return dupfd; -} - -static int -klibc_dup2 (int fd, int desired_fd) -{ - int dupfd; - struct stat sbuf; - - dupfd = dup2 (fd, desired_fd); - if (dupfd == -1 && errno == ENOTSUP \ - && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) - { - close (desired_fd); - - return klibc_dup2dirfd (fd, desired_fd); - } - - return dupfd; -} - -# define dup2 klibc_dup2 -#endif - -int -rpl_dup2 (int fd, int desired_fd) -{ - int result; - -#ifdef F_GETFL - /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. - On Cygwin 1.5.x, dup2 (1, 1) returns 0. - On Cygwin 1.7.17, dup2 (1, -1) dumps core. - On Cygwin 1.7.25, dup2 (1, 256) can dump core. - On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ -# if HAVE_SETDTABLESIZE - setdtablesize (desired_fd + 1); -# endif - if (desired_fd < 0) - fd = desired_fd; - if (fd == desired_fd) - return fcntl (fd, F_GETFL) == -1 ? -1 : fd; -#endif - - result = dup2 (fd, desired_fd); - - /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ - if (result == -1 && errno == EMFILE) - errno = EBADF; -#if REPLACE_FCHDIR - if (fd != desired_fd && result != -1) - result = _gl_register_dup (fd, result); -#endif - return result; -} diff --git a/gl/dynarray.h b/gl/dynarray.h deleted file mode 100644 index 9155910..0000000 --- a/gl/dynarray.h +++ /dev/null @@ -1,284 +0,0 @@ -/* Type-safe arrays which grow dynamically. - Copyright 2021-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Paul Eggert and Bruno Haible, 2021. */ - -#ifndef _GL_DYNARRAY_H -#define _GL_DYNARRAY_H - -/* Before including this file, you need to define: - - DYNARRAY_STRUCT - The struct tag of dynamic array to be defined. - - DYNARRAY_ELEMENT - The type name of the element type. Elements are copied - as if by memcpy, and can change address as the dynamic - array grows. - - DYNARRAY_PREFIX - The prefix of the functions which are defined. - - The following parameters are optional: - - DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (E) is evaluated to deallocate the - contents of elements. E is of type DYNARRAY_ELEMENT *. - - DYNARRAY_ELEMENT_INIT - DYNARRAY_ELEMENT_INIT (E) is evaluated to initialize a new - element. E is of type DYNARRAY_ELEMENT *. - If DYNARRAY_ELEMENT_FREE but not DYNARRAY_ELEMENT_INIT is - defined, new elements are automatically zero-initialized. - Otherwise, new elements have undefined contents. - - DYNARRAY_INITIAL_SIZE - The size of the statically allocated array (default: - at least 2, more elements if they fit into 128 bytes). - Must be a preprocessor constant. If DYNARRAY_INITIAL_SIZE is 0, - there is no statically allocated array at, and all non-empty - arrays are heap-allocated. - - DYNARRAY_FINAL_TYPE - The name of the type which holds the final array. If not - defined, is PREFIX##finalize not provided. DYNARRAY_FINAL_TYPE - must be a struct type, with members of type DYNARRAY_ELEMENT and - size_t at the start (in this order). - - These macros are undefined after this header file has been - included. - - The following types are provided (their members are private to the - dynarray implementation): - - struct DYNARRAY_STRUCT - - The following functions are provided: - */ - -/* Initialize a dynamic array object. This must be called before any - use of the object. */ -#if 0 -static void - DYNARRAY_PREFIX##init (struct DYNARRAY_STRUCT *list); -#endif - -/* Deallocate the dynamic array and its elements. */ -#if 0 -static void - DYNARRAY_PREFIX##free (struct DYNARRAY_STRUCT *list); -#endif - -/* Return true if the dynamic array is in an error state. */ -#if 0 -static bool - DYNARRAY_PREFIX##has_failed (const struct DYNARRAY_STRUCT *list); -#endif - -/* Mark the dynamic array as failed. All elements are deallocated as - a side effect. */ -#if 0 -static void - DYNARRAY_PREFIX##mark_failed (struct DYNARRAY_STRUCT *list); -#endif - -/* Return the number of elements which have been added to the dynamic - array. */ -#if 0 -static size_t - DYNARRAY_PREFIX##size (const struct DYNARRAY_STRUCT *list); -#endif - -/* Return a pointer to the first array element, if any. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##begin (const struct DYNARRAY_STRUCT *list); -#endif - -/* Return a pointer one element past the last array element. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##end (const struct DYNARRAY_STRUCT *list); -#endif - -/* Return a pointer to the array element at INDEX. Terminate the - process if INDEX is out of bounds. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##at (struct DYNARRAY_STRUCT *list, size_t index); -#endif - -/* Add ITEM at the end of the array, enlarging it by one element. - Mark *LIST as failed if the dynamic array allocation size cannot be - increased. */ -#if 0 -static void - DYNARRAY_PREFIX##add (struct DYNARRAY_STRUCT *list, - DYNARRAY_ELEMENT item); -#endif - -/* Allocate a place for a new element in *LIST and return a pointer to - it. The pointer can be NULL if the dynamic array cannot be - enlarged due to a memory allocation failure. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##emplace (struct DYNARRAY_STRUCT *list); -#endif - -/* Change the size of *LIST to SIZE. If SIZE is larger than the - existing size, new elements are added (which can be initialized). - Otherwise, the list is truncated, and elements are freed. Return - false on memory allocation failure (and mark *LIST as failed). */ -#if 0 -static bool - DYNARRAY_PREFIX##resize (struct DYNARRAY_STRUCT *list, size_t size); -#endif - -/* Remove the last element of LIST if it is present. */ -#if 0 -static void - DYNARRAY_PREFIX##remove_last (struct DYNARRAY_STRUCT *list); -#endif - -/* Remove all elements from the list. The elements are freed, but the - list itself is not. */ -#if 0 -static void - DYNARRAY_PREFIX##clear (struct DYNARRAY_STRUCT *list); -#endif - -#if defined DYNARRAY_FINAL_TYPE -/* Transfer the dynamic array to a permanent location at *RESULT. - Returns true on success on false on allocation failure. In either - case, *LIST is re-initialized and can be reused. A NULL pointer is - stored in *RESULT if LIST refers to an empty list. On success, the - pointer in *RESULT is heap-allocated and must be deallocated using - free. */ -#if 0 -static bool - DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *list, - DYNARRAY_FINAL_TYPE *result); -#endif -#else /* !defined DYNARRAY_FINAL_TYPE */ -/* Transfer the dynamic array to a heap-allocated array and return a - pointer to it. The pointer is NULL if memory allocation fails, or - if the array is empty, so this function should be used only for - arrays which are known not be empty (usually because they always - have a sentinel at the end). If LENGTHP is not NULL, the array - length is written to *LENGTHP. *LIST is re-initialized and can be - reused. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *list, - size_t *lengthp); -#endif -#endif - -/* A minimal example which provides a growing list of integers can be - defined like this: - - struct int_array - { - // Pointer to result array followed by its length, - // as required by DYNARRAY_FINAL_TYPE. - int *array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_int - #define DYNARRAY_ELEMENT int - #define DYNARRAY_PREFIX dynarray_int_ - #define DYNARRAY_FINAL_TYPE struct int_array - #include - - To create a three-element array with elements 1, 2, 3, use this - code: - - struct dynarray_int dyn; - dynarray_int_init (&dyn); - for (int i = 1; i <= 3; ++i) - { - int *place = dynarray_int_emplace (&dyn); - assert (place != NULL); - *place = i; - } - struct int_array result; - bool ok = dynarray_int_finalize (&dyn, &result); - assert (ok); - assert (result.length == 3); - assert (result.array[0] == 1); - assert (result.array[1] == 2); - assert (result.array[2] == 3); - free (result.array); - - If the elements contain resources which must be freed, define - DYNARRAY_ELEMENT_FREE appropriately, like this: - - struct str_array - { - char **array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_str - #define DYNARRAY_ELEMENT char * - #define DYNARRAY_ELEMENT_FREE(ptr) free (*ptr) - #define DYNARRAY_PREFIX dynarray_str_ - #define DYNARRAY_FINAL_TYPE struct str_array - #include - */ - - -/* The implementation is imported from glibc. */ - -/* Avoid possible conflicts with symbols exported by the GNU libc. */ -#define __libc_dynarray_at_failure gl_dynarray_at_failure -#define __libc_dynarray_emplace_enlarge gl_dynarray_emplace_enlarge -#define __libc_dynarray_finalize gl_dynarray_finalize -#define __libc_dynarray_resize_clear gl_dynarray_resize_clear -#define __libc_dynarray_resize gl_dynarray_resize - -#if defined DYNARRAY_STRUCT || defined DYNARRAY_ELEMENT || defined DYNARRAY_PREFIX - -# ifndef _GL_LIKELY -/* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ -# define _GL_LIKELY(cond) __builtin_expect ((cond), 1) -# define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) -# endif - -/* Define auxiliary structs and declare auxiliary functions, common to all - instantiations of dynarray. */ -# include - -/* Define the instantiation, specified through - DYNARRAY_STRUCT - DYNARRAY_ELEMENT - DYNARRAY_PREFIX - etc. */ -# include - -#else - -/* This file is being included from one of the malloc/dynarray_*.c files. */ -# include - -#endif - -#endif /* _GL_DYNARRAY_H */ diff --git a/gl/errno.in.h b/gl/errno.in.h index 3dda9c2..49b3546 100644 --- a/gl/errno.in.h +++ b/gl/errno.in.h @@ -1,19 +1,19 @@ /* A POSIX-like . - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ERRNO_H @@ -30,7 +30,7 @@ /* On native Windows platforms, many macros are not defined. */ -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ @@ -248,7 +248,7 @@ interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 -# elif defined _WIN32 && ! defined __CYGWIN__ +# elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* We have a conflict here: pthreads-win32 defines these values differently than MSVC 10. It's hairy to decide which one to use. */ # if defined __MINGW32__ && !defined USE_WINDOWS_THREADS diff --git a/gl/error.c b/gl/error.c index 6875f13..865b293 100644 --- a/gl/error.c +++ b/gl/error.c @@ -1,19 +1,19 @@ /* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000-2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 1990-1998, 2000-2007, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by David MacKenzie . */ @@ -39,11 +39,6 @@ # include # include # define mbsrtowcs __mbsrtowcs -# define USE_UNLOCKED_IO 0 -# define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b) -# define _GL_ARG_NONNULL(a) -#else -# include "getprogname.h" #endif #if USE_UNLOCKED_IO @@ -77,14 +72,14 @@ extern void __error (int status, int errnum, const char *message, ...) extern void __error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) - __attribute__ ((__format__ (__printf__, 5, 6))); + __attribute__ ((__format__ (__printf__, 5, 6)));; # define error __error # define error_at_line __error_at_line # include -# define fflush(s) _IO_fflush (s) +# define fflush(s) INTUSE(_IO_fflush) (s) # undef putc -# define putc(c, fp) _IO_putc (c, fp) +# define putc(c, fp) INTUSE(_IO_putc) (c, fp) # include @@ -93,37 +88,35 @@ extern void __error_at_line (int status, int errnum, const char *file_name, # include # include -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif +# include "msvc-nothrow.h" # endif /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl -# if !(GNULIB_STRERROR_R_POSIX || HAVE_DECL_STRERROR_R) +# if !HAVE_DECL_STRERROR_R # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif # if STRERROR_R_CHAR_P -char *strerror_r (int errnum, char *buf, size_t buflen); +char *strerror_r (); # else -int strerror_r (int errnum, char *buf, size_t buflen); +int strerror_r (); # endif # endif -# define program_name getprogname () +/* The calling program should define program_name and set it to the + name of the executing program. */ +extern char *program_name; -# if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r +# if HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r -# endif /* GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r */ +# endif /* HAVE_STRERROR_R || defined strerror_r */ #endif /* not _LIBC */ #if !_LIBC @@ -131,7 +124,7 @@ int strerror_r (int errnum, char *buf, size_t buflen); static int is_open (int fd) { -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows: The initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE. There is no fcntl, and the gnulib replacement fcntl does not support @@ -176,9 +169,9 @@ print_errno_message (int errnum) { char const *s; -#if _LIBC || GNULIB_STRERROR_R_POSIX || defined HAVE_STRERROR_R +#if defined HAVE_STRERROR_R || _LIBC char errbuf[1024]; -# if _LIBC || (!GNULIB_STRERROR_R_POSIX && STRERROR_R_CHAR_P) +# if STRERROR_R_CHAR_P || _LIBC s = __strerror_r (errnum, errbuf, sizeof errbuf); # else if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) @@ -202,12 +195,13 @@ print_errno_message (int errnum) #endif } -static void _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3)) +static void error_tail (int status, int errnum, const char *message, va_list args) { #if _LIBC if (_IO_fwide (stderr, 0) > 0) { +# define ALLOCA_LIMIT 2000 size_t len = strlen (message) + 1; wchar_t *wmessage = NULL; mbstate_t st; @@ -243,7 +237,7 @@ error_tail (int status, int errnum, const char *message, va_list args) if (res != len) break; - if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0)) + if (__builtin_expect (len >= SIZE_MAX / 2, 0)) { /* This really should not happen if everything is fine. */ res = (size_t) -1; @@ -272,6 +266,7 @@ error_tail (int status, int errnum, const char *message, va_list args) else #endif vfprintf (stderr, message, args); + va_end (args); ++error_message_count; if (errnum) @@ -321,7 +316,6 @@ error (int status, int errnum, const char *message, ...) va_start (args, message); error_tail (status, errnum, message, args); - va_end (args); #ifdef _LIBC _IO_funlockfile (stderr); @@ -348,10 +342,7 @@ error_at_line (int status, int errnum, const char *file_name, if (old_line_number == line_number && (file_name == old_file_name - || (old_file_name != NULL - && file_name != NULL - && strcmp (old_file_name, file_name) == 0))) - + || strcmp (old_file_name, file_name) == 0)) /* Simply return and print nothing. */ return; @@ -383,16 +374,15 @@ error_at_line (int status, int errnum, const char *file_name, } #if _LIBC - __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ", + __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ", file_name, line_number); #else - fprintf (stderr, file_name != NULL ? "%s:%u: " : " ", + fprintf (stderr, file_name != NULL ? "%s:%d: " : " ", file_name, line_number); #endif va_start (args, message); error_tail (status, errnum, message, args); - va_end (args); #ifdef _LIBC _IO_funlockfile (stderr); diff --git a/gl/error.h b/gl/error.h index a240526..afcb0e1 100644 --- a/gl/error.h +++ b/gl/error.h @@ -1,26 +1,35 @@ /* Declaration for error-reporting function - Copyright (C) 1995-1997, 2003, 2006, 2008-2023 Free Software Foundation, + Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _ERROR_H #define _ERROR_H 1 -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ -#include +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +#else +# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ +#endif #ifdef __cplusplus extern "C" { @@ -31,21 +40,11 @@ extern "C" { If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ extern void error (int __status, int __errnum, const char *__format, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 3, 4)) -#endif - ; + _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 6)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 5, 6)) -#endif - ; + _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6)); /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this diff --git a/gl/exitfail.c b/gl/exitfail.c index d67a130..b0b4ebe 100644 --- a/gl/exitfail.c +++ b/gl/exitfail.c @@ -1,19 +1,19 @@ /* Failure exit status - Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/exitfail.h b/gl/exitfail.h index 85a6af6..e54333b 100644 --- a/gl/exitfail.h +++ b/gl/exitfail.h @@ -1,18 +1,18 @@ /* Failure exit status - Copyright (C) 2002, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ extern int volatile exit_failure; diff --git a/gl/fcntl.c b/gl/fcntl.c deleted file mode 100644 index e220800..0000000 --- a/gl/fcntl.c +++ /dev/null @@ -1,629 +0,0 @@ -/* Provide file descriptor control. - - Copyright (C) 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Eric Blake . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include -#include -#include - -#ifdef __KLIBC__ -# define INCL_DOS -# include -#endif - -#if defined _WIN32 && ! defined __CYGWIN__ -/* Get declarations of the native Windows API functions. */ -# define WIN32_LEAN_AND_MEAN -# include - -/* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -/* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ -# define OPEN_MAX_MAX 0x10000 - -/* Duplicate OLDFD into the first available slot of at least NEWFD, - which must be positive, with FLAGS determining whether the duplicate - will be inheritable. */ -static int -dupfd (int oldfd, int newfd, int flags) -{ - /* Mingw has no way to create an arbitrary fd. Iterate until all - file descriptors less than newfd are filled up. */ - HANDLE curr_process = GetCurrentProcess (); - HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); - unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; - unsigned int fds_to_close_bound = 0; - int result; - BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; - int mode; - - if (newfd < 0 || getdtablesize () <= newfd) - { - errno = EINVAL; - return -1; - } - if (old_handle == INVALID_HANDLE_VALUE - || (mode = _setmode (oldfd, O_BINARY)) == -1) - { - /* oldfd is not open, or is an unassigned standard file - descriptor. */ - errno = EBADF; - return -1; - } - _setmode (oldfd, mode); - flags |= mode; - - for (;;) - { - HANDLE new_handle; - int duplicated_fd; - unsigned int index; - - if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ - old_handle, /* SourceHandle */ - curr_process, /* TargetProcessHandle */ - (PHANDLE) &new_handle, /* TargetHandle */ - (DWORD) 0, /* DesiredAccess */ - inherit, /* InheritHandle */ - DUPLICATE_SAME_ACCESS)) /* Options */ - { - switch (GetLastError ()) - { - case ERROR_TOO_MANY_OPEN_FILES: - errno = EMFILE; - break; - case ERROR_INVALID_HANDLE: - case ERROR_INVALID_TARGET_HANDLE: - case ERROR_DIRECT_ACCESS_HANDLE: - errno = EBADF; - break; - case ERROR_INVALID_PARAMETER: - case ERROR_INVALID_FUNCTION: - case ERROR_INVALID_ACCESS: - errno = EINVAL; - break; - default: - errno = EACCES; - break; - } - result = -1; - break; - } - duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); - if (duplicated_fd < 0) - { - CloseHandle (new_handle); - result = -1; - break; - } - if (newfd <= duplicated_fd) - { - result = duplicated_fd; - break; - } - - /* Set the bit duplicated_fd in fds_to_close[]. */ - index = (unsigned int) duplicated_fd / CHAR_BIT; - if (fds_to_close_bound <= index) - { - if (sizeof fds_to_close <= index) - /* Need to increase OPEN_MAX_MAX. */ - abort (); - memset (fds_to_close + fds_to_close_bound, '\0', - index + 1 - fds_to_close_bound); - fds_to_close_bound = index + 1; - } - fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); - } - - /* Close the previous fds that turned out to be too small. */ - { - int saved_errno = errno; - unsigned int duplicated_fd; - - for (duplicated_fd = 0; - duplicated_fd < fds_to_close_bound * CHAR_BIT; - duplicated_fd++) - if ((fds_to_close[duplicated_fd / CHAR_BIT] - >> (duplicated_fd % CHAR_BIT)) - & 1) - close (duplicated_fd); - - errno = saved_errno; - } - -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (oldfd, result); -# endif - return result; -} -#endif /* W32 */ - -/* Forward declarations, because we '#undef fcntl' in the middle of this - compilation unit. */ -/* Our implementation of fcntl (fd, F_DUPFD, target). */ -static int rpl_fcntl_DUPFD (int fd, int target); -/* Our implementation of fcntl (fd, F_DUPFD_CLOEXEC, target). */ -static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target); -#ifdef __KLIBC__ -/* Adds support for fcntl on directories. */ -static int klibc_fcntl (int fd, int action, /* arg */...); -#endif - - -/* Perform the specified ACTION on the file descriptor FD, possibly - using the argument ARG further described below. This replacement - handles the following actions, and forwards all others on to the - native fcntl. An unrecognized ACTION returns -1 with errno set to - EINVAL. - - F_DUPFD - duplicate FD, with int ARG being the minimum target fd. - If successful, return the duplicate, which will be inheritable; - otherwise return -1 and set errno. - - F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum - target fd. If successful, return the duplicate, which will not be - inheritable; otherwise return -1 and set errno. - - F_GETFD - ARG need not be present. If successful, return a - non-negative value containing the descriptor flags of FD (only - FD_CLOEXEC is portable, but other flags may be present); otherwise - return -1 and set errno. */ - -int -fcntl (int fd, int action, /* arg */...) -#undef fcntl -#ifdef __KLIBC__ -# define fcntl klibc_fcntl -#endif -{ - va_list arg; - int result = -1; - va_start (arg, action); - switch (action) - { - case F_DUPFD: - { - int target = va_arg (arg, int); - result = rpl_fcntl_DUPFD (fd, target); - break; - } - - case F_DUPFD_CLOEXEC: - { - int target = va_arg (arg, int); - result = rpl_fcntl_DUPFD_CLOEXEC (fd, target); - break; - } - -#if !HAVE_FCNTL - case F_GETFD: - { -# if defined _WIN32 && ! defined __CYGWIN__ - HANDLE handle = (HANDLE) _get_osfhandle (fd); - DWORD flags; - if (handle == INVALID_HANDLE_VALUE - || GetHandleInformation (handle, &flags) == 0) - errno = EBADF; - else - result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; -# else /* !W32 */ - /* Use dup2 to reject invalid file descriptors. No way to - access this information, so punt. */ - if (0 <= dup2 (fd, fd)) - result = 0; -# endif /* !W32 */ - break; - } /* F_GETFD */ -#endif /* !HAVE_FCNTL */ - - /* Implementing F_SETFD on mingw is not trivial - there is no - API for changing the O_NOINHERIT bit on an fd, and merely - changing the HANDLE_FLAG_INHERIT bit on the underlying handle - can lead to odd state. It may be possible by duplicating the - handle, using _open_osfhandle with the right flags, then - using dup2 to move the duplicate onto the original, but that - is not supported for now. */ - - default: - { -#if HAVE_FCNTL - switch (action) - { - #ifdef F_BARRIERFSYNC /* macOS */ - case F_BARRIERFSYNC: - #endif - #ifdef F_CHKCLEAN /* macOS */ - case F_CHKCLEAN: - #endif - #ifdef F_CLOSEM /* NetBSD, HP-UX */ - case F_CLOSEM: - #endif - #ifdef F_FLUSH_DATA /* macOS */ - case F_FLUSH_DATA: - #endif - #ifdef F_FREEZE_FS /* macOS */ - case F_FREEZE_FS: - #endif - #ifdef F_FULLFSYNC /* macOS */ - case F_FULLFSYNC: - #endif - #ifdef F_GETCONFINED /* macOS */ - case F_GETCONFINED: - #endif - #ifdef F_GETDEFAULTPROTLEVEL /* macOS */ - case F_GETDEFAULTPROTLEVEL: - #endif - #ifdef F_GETFD /* POSIX */ - case F_GETFD: - #endif - #ifdef F_GETFL /* POSIX */ - case F_GETFL: - #endif - #ifdef F_GETLEASE /* Linux */ - case F_GETLEASE: - #endif - #ifdef F_GETNOSIGPIPE /* macOS */ - case F_GETNOSIGPIPE: - #endif - #ifdef F_GETOWN /* POSIX */ - case F_GETOWN: - #endif - #ifdef F_GETPIPE_SZ /* Linux */ - case F_GETPIPE_SZ: - #endif - #ifdef F_GETPROTECTIONCLASS /* macOS */ - case F_GETPROTECTIONCLASS: - #endif - #ifdef F_GETPROTECTIONLEVEL /* macOS */ - case F_GETPROTECTIONLEVEL: - #endif - #ifdef F_GET_SEALS /* Linux */ - case F_GET_SEALS: - #endif - #ifdef F_GETSIG /* Linux */ - case F_GETSIG: - #endif - #ifdef F_MAXFD /* NetBSD */ - case F_MAXFD: - #endif - #ifdef F_RECYCLE /* macOS */ - case F_RECYCLE: - #endif - #ifdef F_SETFIFOENH /* HP-UX */ - case F_SETFIFOENH: - #endif - #ifdef F_THAW_FS /* macOS */ - case F_THAW_FS: - #endif - /* These actions take no argument. */ - result = fcntl (fd, action); - break; - - #ifdef F_ADD_SEALS /* Linux */ - case F_ADD_SEALS: - #endif - #ifdef F_BADFD /* Solaris */ - case F_BADFD: - #endif - #ifdef F_CHECK_OPENEVT /* macOS */ - case F_CHECK_OPENEVT: - #endif - #ifdef F_DUP2FD /* FreeBSD, AIX, Solaris */ - case F_DUP2FD: - #endif - #ifdef F_DUP2FD_CLOEXEC /* FreeBSD, Solaris */ - case F_DUP2FD_CLOEXEC: - #endif - #ifdef F_DUP2FD_CLOFORK /* Solaris */ - case F_DUP2FD_CLOFORK: - #endif - #ifdef F_DUPFD /* POSIX */ - case F_DUPFD: - #endif - #ifdef F_DUPFD_CLOEXEC /* POSIX */ - case F_DUPFD_CLOEXEC: - #endif - #ifdef F_DUPFD_CLOFORK /* Solaris */ - case F_DUPFD_CLOFORK: - #endif - #ifdef F_GETXFL /* Solaris */ - case F_GETXFL: - #endif - #ifdef F_GLOBAL_NOCACHE /* macOS */ - case F_GLOBAL_NOCACHE: - #endif - #ifdef F_MAKECOMPRESSED /* macOS */ - case F_MAKECOMPRESSED: - #endif - #ifdef F_MOVEDATAEXTENTS /* macOS */ - case F_MOVEDATAEXTENTS: - #endif - #ifdef F_NOCACHE /* macOS */ - case F_NOCACHE: - #endif - #ifdef F_NODIRECT /* macOS */ - case F_NODIRECT: - #endif - #ifdef F_NOTIFY /* Linux */ - case F_NOTIFY: - #endif - #ifdef F_OPLKACK /* IRIX */ - case F_OPLKACK: - #endif - #ifdef F_OPLKREG /* IRIX */ - case F_OPLKREG: - #endif - #ifdef F_RDAHEAD /* macOS */ - case F_RDAHEAD: - #endif - #ifdef F_SETBACKINGSTORE /* macOS */ - case F_SETBACKINGSTORE: - #endif - #ifdef F_SETCONFINED /* macOS */ - case F_SETCONFINED: - #endif - #ifdef F_SETFD /* POSIX */ - case F_SETFD: - #endif - #ifdef F_SETFL /* POSIX */ - case F_SETFL: - #endif - #ifdef F_SETLEASE /* Linux */ - case F_SETLEASE: - #endif - #ifdef F_SETNOSIGPIPE /* macOS */ - case F_SETNOSIGPIPE: - #endif - #ifdef F_SETOWN /* POSIX */ - case F_SETOWN: - #endif - #ifdef F_SETPIPE_SZ /* Linux */ - case F_SETPIPE_SZ: - #endif - #ifdef F_SETPROTECTIONCLASS /* macOS */ - case F_SETPROTECTIONCLASS: - #endif - #ifdef F_SETSIG /* Linux */ - case F_SETSIG: - #endif - #ifdef F_SINGLE_WRITER /* macOS */ - case F_SINGLE_WRITER: - #endif - /* These actions take an 'int' argument. */ - { - int x = va_arg (arg, int); - result = fcntl (fd, action, x); - } - break; - - default: - /* Other actions take a pointer argument. */ - { - void *p = va_arg (arg, void *); - result = fcntl (fd, action, p); - } - break; - } -#else - errno = EINVAL; -#endif - break; - } - } - va_end (arg); - return result; -} - -static int -rpl_fcntl_DUPFD (int fd, int target) -{ - int result; -#if !HAVE_FCNTL - result = dupfd (fd, target, 0); -#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR - /* Detect invalid target; needed for cygwin 1.5.x. */ - if (target < 0 || getdtablesize () <= target) - { - result = -1; - errno = EINVAL; - } - else - { - /* Haiku alpha 2 loses fd flags on original. */ - int flags = fcntl (fd, F_GETFD); - if (flags < 0) - result = -1; - else - { - result = fcntl (fd, F_DUPFD, target); - if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) - { - int saved_errno = errno; - close (result); - result = -1; - errno = saved_errno; - } -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (fd, result); -# endif - } - } -#else - result = fcntl (fd, F_DUPFD, target); -#endif - return result; -} - -static int -rpl_fcntl_DUPFD_CLOEXEC (int fd, int target) -{ - int result; -#if !HAVE_FCNTL - result = dupfd (fd, target, O_CLOEXEC); -#else /* HAVE_FCNTL */ -# if defined __NetBSD__ || defined __HAIKU__ - /* On NetBSD 9.0, the system fcntl (fd, F_DUPFD_CLOEXEC, target) - has only the same effect as fcntl (fd, F_DUPFD, target). */ - /* On Haiku, the system fcntl (fd, F_DUPFD_CLOEXEC, target) sets - the FD_CLOEXEC flag on fd, not on target. Therefore avoid the - system fcntl in this case. */ -# define have_dupfd_cloexec -1 -# else - /* Try the system call first, if the headers claim it exists - (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we - may be running with a glibc that has the macro but with an - older kernel that does not support it. Cache the - information on whether the system call really works, but - avoid caching failure if the corresponding F_DUPFD fails - for any reason. 0 = unknown, 1 = yes, -1 = no. */ - static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; - if (0 <= have_dupfd_cloexec) - { - result = fcntl (fd, F_DUPFD_CLOEXEC, target); - if (0 <= result || errno != EINVAL) - { - have_dupfd_cloexec = 1; -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (fd, result); -# endif - } - else - { - result = rpl_fcntl_DUPFD (fd, target); - if (result >= 0) - have_dupfd_cloexec = -1; - } - } - else -# endif - result = rpl_fcntl_DUPFD (fd, target); - if (0 <= result && have_dupfd_cloexec == -1) - { - int flags = fcntl (result, F_GETFD); - if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) - { - int saved_errno = errno; - close (result); - errno = saved_errno; - result = -1; - } - } -#endif /* HAVE_FCNTL */ - return result; -} - -#undef fcntl - -#ifdef __KLIBC__ - -static int -klibc_fcntl (int fd, int action, /* arg */...) -{ - va_list arg_ptr; - int arg; - struct stat sbuf; - int result; - - va_start (arg_ptr, action); - arg = va_arg (arg_ptr, int); - result = fcntl (fd, action, arg); - /* EPERM for F_DUPFD, ENOTSUP for others */ - if (result == -1 && (errno == EPERM || errno == ENOTSUP) - && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) - { - ULONG ulMode; - - switch (action) - { - case F_DUPFD: - /* Find available fd */ - while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) - arg++; - - result = dup2 (fd, arg); - break; - - /* Using underlying APIs is right ? */ - case F_GETFD: - if (DosQueryFHState (fd, &ulMode)) - break; - - result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; - break; - - case F_SETFD: - if (arg & ~FD_CLOEXEC) - break; - - if (DosQueryFHState (fd, &ulMode)) - break; - - if (arg & FD_CLOEXEC) - ulMode |= OPEN_FLAGS_NOINHERIT; - else - ulMode &= ~OPEN_FLAGS_NOINHERIT; - - /* Filter supported flags. */ - ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR - | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); - - if (DosSetFHState (fd, ulMode)) - break; - - result = 0; - break; - - case F_GETFL: - result = 0; - break; - - case F_SETFL: - if (arg != 0) - break; - - result = 0; - break; - - default: - errno = EINVAL; - break; - } - } - - va_end (arg_ptr); - - return result; -} - -#endif diff --git a/gl/fcntl.in.h b/gl/fcntl.in.h deleted file mode 100644 index e034eaf..0000000 --- a/gl/fcntl.in.h +++ /dev/null @@ -1,445 +0,0 @@ -/* Like , but with non-working flags defined to 0. - - Copyright (C) 2006-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* written by Paul Eggert */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif -@PRAGMA_COLUMNS@ - -#if defined __need_system_fcntl_h -/* Special invocation convention. */ - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) -# include -#endif -#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ - -/* Native Windows platforms declare open(), creat() in . */ -#if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -#else -/* Normal invocation convention. */ - -#ifndef _@GUARD_PREFIX@_FCNTL_H - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) -# include -#endif -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ - -/* Native Windows platforms declare open(), creat() in . */ -#if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -#ifndef _@GUARD_PREFIX@_FCNTL_H -#define _@GUARD_PREFIX@_FCNTL_H - -#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ -# include -#endif - - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ - -/* The definition of _GL_WARN_ON_USE is copied here. */ - - -/* Declare overridden functions. */ - -#if @GNULIB_CREAT@ -# if @REPLACE_CREAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat rpl_creat -# endif -_GL_FUNCDECL_RPL (creat, int, (const char *filename, mode_t mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (creat, int, (const char *filename, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat _creat -# endif -_GL_CXXALIAS_MDA (creat, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (creat); -#elif defined GNULIB_POSIXCHECK -# undef creat -/* Assume creat is always declared. */ -_GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - " - "use gnulib module creat for portability"); -#elif @GNULIB_MDA_CREAT@ -/* On native Windows, map 'creat' to '_creat', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::creat always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat _creat -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (creat, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (creat); -#endif - -#if @GNULIB_FCNTL@ -# if @REPLACE_FCNTL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcntl -# define fcntl rpl_fcntl -# endif -_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); -_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); -# if !GNULIB_defined_rpl_fcntl -# define GNULIB_defined_rpl_fcntl 1 -# endif -# else -# if !@HAVE_FCNTL@ -_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); -# if !GNULIB_defined_fcntl -# define GNULIB_defined_fcntl 1 -# endif -# endif -_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); -# endif -_GL_CXXALIASWARN (fcntl); -#elif defined GNULIB_POSIXCHECK -# undef fcntl -# if HAVE_RAW_DECL_FCNTL -_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " - "use gnulib module fcntl for portability"); -# endif -#endif - -#if @GNULIB_OPEN@ -# if @REPLACE_OPEN@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open rpl_open -# endif -_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open _open -# endif -_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); -# else -_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); -# endif -/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a - default argument. _GL_CXXALIASWARN does not work in this case. */ -# if !defined __hpux -_GL_CXXALIASWARN (open); -# endif -#elif defined GNULIB_POSIXCHECK -# undef open -/* Assume open is always declared. */ -_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " - "use gnulib module open for portability"); -#elif @GNULIB_MDA_OPEN@ -/* On native Windows, map 'open' to '_open', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::open always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open _open -# endif -_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); -# else -_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); -# endif -# if !defined __hpux -_GL_CXXALIASWARN (open); -# endif -#endif - -#if @GNULIB_OPENAT@ -# if @REPLACE_OPENAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef openat -# define openat rpl_openat -# endif -_GL_FUNCDECL_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# else -# if !@HAVE_OPENAT@ -_GL_FUNCDECL_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# endif -_GL_CXXALIASWARN (openat); -#elif defined GNULIB_POSIXCHECK -# undef openat -# if HAVE_RAW_DECL_OPENAT -_GL_WARN_ON_USE (openat, "openat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -/* Fix up the FD_* macros, only known to be missing on mingw. */ - -#ifndef FD_CLOEXEC -# define FD_CLOEXEC 1 -#endif - -/* Fix up the supported F_* macros. Intentionally leave other F_* - macros undefined. Only known to be missing on mingw. */ - -#ifndef F_DUPFD_CLOEXEC -# define F_DUPFD_CLOEXEC 0x40000000 -/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ -# define GNULIB_defined_F_DUPFD_CLOEXEC 1 -#else -# define GNULIB_defined_F_DUPFD_CLOEXEC 0 -#endif - -#ifndef F_DUPFD -# define F_DUPFD 1 -#endif - -#ifndef F_GETFD -# define F_GETFD 2 -#endif - -/* Fix up the O_* macros. */ - -/* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT - to values outside 'int' range, so omit these misdefinitions. - But avoid namespace pollution on non-AIX systems. */ -#ifdef _AIX -# include -# if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) -# undef O_CLOEXEC -# endif -# if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) -# undef O_NOFOLLOW -# endif -# if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) -# undef O_TTY_INIT -# endif -#endif - -#if !defined O_DIRECT && defined O_DIRECTIO -/* Tru64 spells it 'O_DIRECTIO'. */ -# define O_DIRECT O_DIRECTIO -#endif - -#if !defined O_CLOEXEC && defined O_NOINHERIT -/* Mingw spells it 'O_NOINHERIT'. */ -# define O_CLOEXEC O_NOINHERIT -#endif - -#ifndef O_CLOEXEC -# define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */ -# define GNULIB_defined_O_CLOEXEC 1 -#else -# define GNULIB_defined_O_CLOEXEC 0 -#endif - -#ifndef O_DIRECT -# define O_DIRECT 0 -#endif - -#ifndef O_DIRECTORY -# define O_DIRECTORY 0 -#endif - -#ifndef O_DSYNC -# define O_DSYNC 0 -#endif - -#ifndef O_EXEC -# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_IGNORE_CTTY -# define O_IGNORE_CTTY 0 -#endif - -#ifndef O_NDELAY -# define O_NDELAY 0 -#endif - -#ifndef O_NOATIME -# define O_NOATIME 0 -#endif - -#ifndef O_NONBLOCK -# define O_NONBLOCK O_NDELAY -#endif - -/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero - value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY - or to 0 as fallback. */ -#if @GNULIB_NONBLOCKING@ -# if O_NONBLOCK -# define GNULIB_defined_O_NONBLOCK 0 -# else -# define GNULIB_defined_O_NONBLOCK 1 -# undef O_NONBLOCK -# define O_NONBLOCK 0x40000000 -# endif -#endif - -#ifndef O_NOCTTY -# define O_NOCTTY 0 -#endif - -#ifndef O_NOFOLLOW -# define O_NOFOLLOW 0 -#endif - -#ifndef O_NOLINK -# define O_NOLINK 0 -#endif - -#ifndef O_NOLINKS -# define O_NOLINKS 0 -#endif - -#ifndef O_NOTRANS -# define O_NOTRANS 0 -#endif - -#ifndef O_RSYNC -# define O_RSYNC 0 -#endif - -#ifndef O_SEARCH -# define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_SYNC -# define O_SYNC 0 -#endif - -#ifndef O_TTY_INIT -# define O_TTY_INIT 0 -#endif - -#if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -# undef O_ACCMODE -# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -#endif - -/* For systems that distinguish between text and binary I/O. - O_BINARY is usually declared in fcntl.h */ -#if !defined O_BINARY && defined _O_BINARY - /* For MSC-compatible compilers. */ -# define O_BINARY _O_BINARY -# define O_TEXT _O_TEXT -#endif - -#if defined __BEOS__ || defined __HAIKU__ - /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ -# undef O_BINARY -# undef O_TEXT -#endif - -#ifndef O_BINARY -# define O_BINARY 0 -# define O_TEXT 0 -#endif - -/* Fix up the AT_* macros. */ - -/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its - value exceeds INT_MAX, so its use as an int doesn't conform to the - C standard, and GCC and Sun C complain in some cases. If the bug - is present, undef AT_FDCWD here, so it can be redefined below. */ -#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 -# undef AT_FDCWD -#endif - -/* Use the same bit pattern as Solaris 9, but with the proper - signedness. The bit pattern is important, in case this actually is - Solaris with the above workaround. */ -#ifndef AT_FDCWD -# define AT_FDCWD (-3041965) -#endif - -/* Use the same values as Solaris 9. This shouldn't matter, but - there's no real reason to differ. */ -#ifndef AT_SYMLINK_NOFOLLOW -# define AT_SYMLINK_NOFOLLOW 4096 -#endif - -#ifndef AT_REMOVEDIR -# define AT_REMOVEDIR 1 -#endif - -/* Solaris 9 lacks these two, so just pick unique values. */ -#ifndef AT_SYMLINK_FOLLOW -# define AT_SYMLINK_FOLLOW 2 -#endif - -#ifndef AT_EACCESS -# define AT_EACCESS 4 -#endif - -/* Ignore this flag if not supported. */ -#ifndef AT_NO_AUTOMOUNT -# define AT_NO_AUTOMOUNT 0 -#endif - -#endif /* _@GUARD_PREFIX@_FCNTL_H */ -#endif /* _@GUARD_PREFIX@_FCNTL_H */ -#endif diff --git a/gl/fd-hook.c b/gl/fd-hook.c index 3626115..e158a52 100644 --- a/gl/fd-hook.c +++ b/gl/fd-hook.c @@ -1,19 +1,19 @@ -/* Hook for making file descriptor functions close(), ioctl() extensible. - Copyright (C) 2009-2023 Free Software Foundation, Inc. +/* Hook for making making file descriptor functions close(), ioctl() extensible. + Copyright (C) 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2009. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/fd-hook.h b/gl/fd-hook.h index 6bf3c24..d15b577 100644 --- a/gl/fd-hook.h +++ b/gl/fd-hook.h @@ -1,18 +1,18 @@ -/* Hook for making file descriptor functions close(), ioctl() extensible. - Copyright (C) 2009-2023 Free Software Foundation, Inc. +/* Hook for making making file descriptor functions close(), ioctl() extensible. + Copyright (C) 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef FD_HOOK_H diff --git a/gl/fflush.c b/gl/fflush.c deleted file mode 100644 index f3689b3..0000000 --- a/gl/fflush.c +++ /dev/null @@ -1,233 +0,0 @@ -/* fflush.c -- allow flushing input streams - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Eric Blake. */ - -#include - -/* Specification. */ -#include - -#include -#include - -#include "freading.h" - -#include "stdio-impl.h" - -#undef fflush - - -#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 -/* GNU libc, BeOS, Haiku, Linux libc5 */ - -/* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ -static void -clear_ungetc_buffer_preserving_position (FILE *fp) -{ - if (fp->_flags & _IO_IN_BACKUP) - /* _IO_free_backup_area is a bit complicated. Simply call fseek. */ - fseeko (fp, 0, SEEK_CUR); -} - -#else - -/* Clear the stream's ungetc buffer. May modify the value of ftello (fp). */ -static void -clear_ungetc_buffer (FILE *fp) -{ -# if defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - if (HASUB (fp)) - { - fp_->_p += fp_->_r; - fp_->_r = 0; - } -# elif defined __EMX__ /* emx+gcc */ - if (fp->_ungetc_count > 0) - { - fp->_ungetc_count = 0; - fp->_rcount = - fp->_rcount; - } -# elif defined _IOERR /* Minix, AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, UnixWare, mingw, MSVC, NonStop Kernel, OpenVMS */ - /* Nothing to do. */ -# else /* other implementations */ - fseeko (fp, 0, SEEK_CUR); -# endif -} - -#endif - -#if ! (defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1) -/* GNU libc, BeOS, Haiku, Linux libc5 */ - -# if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT -/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - -static int -disable_seek_optimization (FILE *fp) -{ - int saved_flags = fp_->_flags & (__SOPT | __SNPT); - fp_->_flags = (fp_->_flags & ~__SOPT) | __SNPT; - return saved_flags; -} - -static void -restore_seek_optimization (FILE *fp, int saved_flags) -{ - fp_->_flags = (fp_->_flags & ~(__SOPT | __SNPT)) | saved_flags; -} - -# else - -static void -update_fpos_cache (_GL_ATTRIBUTE_MAYBE_UNUSED FILE *fp, - _GL_ATTRIBUTE_MAYBE_UNUSED off_t pos) -{ -# if defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ -# if defined __CYGWIN__ || defined __ANDROID__ - /* fp_->_offset is typed as an integer. */ - fp_->_offset = pos; -# else - /* fp_->_offset is an fpos_t. */ - /* Use a union, since on NetBSD, the compilation flags determine - whether fpos_t is typedef'd to off_t or a struct containing a - single off_t member. */ - union - { - fpos_t f; - off_t o; - } u; - u.o = pos; - fp_->_offset = u.f; -# endif - fp_->_flags |= __SOFF; -# endif -} -# endif -#endif - -/* Flush all pending data on STREAM according to POSIX rules. Both - output and seekable input streams are supported. */ -int -rpl_fflush (FILE *stream) -{ - /* When stream is NULL, POSIX and C99 only require flushing of "output - streams and update streams in which the most recent operation was not - input", and all implementations do this. - - When stream is "an output stream or an update stream in which the most - recent operation was not input", POSIX and C99 requires that fflush - writes out any buffered data, and all implementations do this. - - When stream is, however, an input stream or an update stream in - which the most recent operation was input, C99 specifies nothing, - and POSIX only specifies behavior if the stream is seekable. - mingw, in particular, drops the input buffer, leaving the file - descriptor positioned at the end of the input buffer. I.e. ftell - (stream) is lost. We don't want to call the implementation's - fflush in this case. - - We test ! freading (stream) here, rather than fwriting (stream), because - what we need to know is whether the stream holds a "read buffer", and on - mingw this is indicated by _IOREAD, regardless of _IOWRT. */ - if (stream == NULL || ! freading (stream)) - return fflush (stream); - -#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 - /* GNU libc, BeOS, Haiku, Linux libc5 */ - - clear_ungetc_buffer_preserving_position (stream); - - return fflush (stream); - -#else - { - /* What POSIX says: - 1) About the file-position indicator (-> fseeko, ftello): - The file position indicator is incremented by fgetc() and decremented - by ungetc(): - - "... the fgetc() function shall ... advance the associated file - position indicator for the stream ..." - - "The file-position indicator is decremented by each successful - call to ungetc()..." - 2) fflush discards bytes pushed back by ungetc: - - "...any characters pushed back onto the stream by ungetc() - or ungetwc() that have not subsequently been read from the - stream shall be discarded..." - This implies implicitly: fflush does not change the file position - indicator. - 3) Effects on the file descriptor, if the file descriptor is capable of - seeking: - - "...the file offset of the underlying open file description shall - be set to the file position of the stream..." */ - - /* POSIX does not specify fflush behavior for non-seekable input - streams. Some implementations purge unread data, some return - EBADF, some do nothing. */ - off_t pos = ftello (stream); - if (pos == -1) - { - errno = EBADF; - return EOF; - } - - /* Clear the ungetc buffer. */ - clear_ungetc_buffer (stream); - - /* To get here, we must be flushing a seekable input stream, so the - semantics of fpurge are now appropriate to clear the buffer. To - avoid losing data, the lseek is also necessary. */ - { - int result = fpurge (stream); - if (result != 0) - return result; - } - -# if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - - { - /* Disable seek optimization for the next fseeko call. This tells the - following fseeko call to seek to the desired position directly, rather - than to seek to a block-aligned boundary. */ - int saved_flags = disable_seek_optimization (stream); - int result = fseeko (stream, pos, SEEK_SET); - - restore_seek_optimization (stream, saved_flags); - return result; - } - -# else - - pos = lseek (fileno (stream), pos, SEEK_SET); - if (pos == -1) - return EOF; - /* After a successful lseek, update the file descriptor's position cache - in the stream. */ - update_fpos_cache (stream, pos); - - return 0; - -# endif - } -#endif -} diff --git a/gl/filename.h b/gl/filename.h deleted file mode 100644 index a2400a9..0000000 --- a/gl/filename.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Basic filename support macros. - Copyright (C) 2001-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* From Paul Eggert and Jim Meyering. */ - -#ifndef _FILENAME_H -#define _FILENAME_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Filename support. - ISSLASH(C) tests whether C is a directory separator - character. - HAS_DEVICE(Filename) tests whether Filename contains a device - specification. - FILE_SYSTEM_PREFIX_LEN(Filename) length of the device specification - at the beginning of Filename, - index of the part consisting of - alternating components and slashes. - FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - 1 when a non-empty device specification - can be followed by an empty or relative - part, - 0 when a non-empty device specification - must be followed by a slash, - 0 when device specification don't exist. - IS_ABSOLUTE_FILE_NAME(Filename) - tests whether Filename is independent of - any notion of "current directory". - IS_RELATIVE_FILE_NAME(Filename) - tests whether Filename may be concatenated - to a directory filename. - Note: On native Windows, OS/2, DOS, "c:" is neither an absolute nor a - relative file name! - IS_FILE_NAME_WITH_DIR(Filename) tests whether Filename contains a device - or directory specification. - */ -#if defined _WIN32 || defined __CYGWIN__ \ - || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__ - /* Native Windows, Cygwin, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') - /* Internal macro: Tests whether a character is a drive letter. */ -# define _IS_DRIVE_LETTER(C) \ - (((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z')) - /* Help the compiler optimizing it. This assumes ASCII. */ -# undef _IS_DRIVE_LETTER -# define _IS_DRIVE_LETTER(C) \ - (((unsigned int) (C) | ('a' - 'A')) - 'a' <= 'z' - 'a') -# define HAS_DEVICE(Filename) \ - (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':') -# define FILE_SYSTEM_PREFIX_LEN(Filename) (HAS_DEVICE (Filename) ? 2 : 0) -# ifdef __CYGWIN__ -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 -# else - /* On native Windows, OS/2, DOS, the system has the notion of a - "current directory" on each drive. */ -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 -# endif -# if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE -# define IS_ABSOLUTE_FILE_NAME(Filename) \ - ISSLASH ((Filename)[FILE_SYSTEM_PREFIX_LEN (Filename)]) -# else -# define IS_ABSOLUTE_FILE_NAME(Filename) \ - (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename)) -# endif -# define IS_RELATIVE_FILE_NAME(Filename) \ - (! (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename))) -# define IS_FILE_NAME_WITH_DIR(Filename) \ - (strchr ((Filename), '/') != NULL || strchr ((Filename), '\\') != NULL \ - || HAS_DEVICE (Filename)) -#else - /* Unix */ -# define ISSLASH(C) ((C) == '/') -# define HAS_DEVICE(Filename) ((void) (Filename), 0) -# define FILE_SYSTEM_PREFIX_LEN(Filename) ((void) (Filename), 0) -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 -# define IS_ABSOLUTE_FILE_NAME(Filename) ISSLASH ((Filename)[0]) -# define IS_RELATIVE_FILE_NAME(Filename) (! ISSLASH ((Filename)[0])) -# define IS_FILE_NAME_WITH_DIR(Filename) (strchr ((Filename), '/') != NULL) -#endif - -/* Deprecated macros. For backward compatibility with old users of the - 'filename' module. */ -#define IS_ABSOLUTE_PATH IS_ABSOLUTE_FILE_NAME -#define IS_PATH_WITH_DIR IS_FILE_NAME_WITH_DIR - - -#ifdef __cplusplus -} -#endif - -#endif /* _FILENAME_H */ diff --git a/gl/float+.h b/gl/float+.h index e7531e4..32fb790 100644 --- a/gl/float+.h +++ b/gl/float+.h @@ -1,19 +1,19 @@ /* Supplemental information about the floating-point formats. - Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2007. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _FLOATPLUS_H #define _FLOATPLUS_H diff --git a/gl/float.c b/gl/float.c index f81ff33..366945f 100644 --- a/gl/float.c +++ b/gl/float.c @@ -1,19 +1,19 @@ /* Auxiliary definitions for . - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2011. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/float.in.h b/gl/float.in.h index bf2c502..84e1950 100644 --- a/gl/float.in.h +++ b/gl/float.in.h @@ -1,19 +1,19 @@ /* A correct . - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_FLOAT_H @@ -62,8 +62,8 @@ /* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of precision in the compiler but 64 bits of precision at runtime. See - . */ -#if defined __i386__ && (defined __FreeBSD__ || defined __DragonFly__) + . */ +#if defined __i386__ && defined __FreeBSD__ /* Number of mantissa units, in base FLT_RADIX. */ # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 64 @@ -81,7 +81,7 @@ # define LDBL_MAX_EXP 16384 /* Minimum positive normalized number. */ # undef LDBL_MIN -# define LDBL_MIN 3.362103143112093506262677817321752E-4932L /* = 0x1p-16382L */ +# define LDBL_MIN 3.3621031431120935E-4932L /* = 0x1p-16382L */ /* Maximum representable finite number. */ # undef LDBL_MAX /* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }. @@ -93,14 +93,11 @@ extern const long double LDBL_MAX; Unfortunately, this is not a constant expression. */ -# if !GNULIB_defined_long_double_union union gl_long_double_union { struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd; long double ld; }; -# define GNULIB_defined_long_double_union 1 -# endif extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) /* Minimum e such that 10^e is in the range of normalized numbers. */ @@ -149,14 +146,11 @@ extern const union gl_long_double_union gl_LDBL_MAX; Unfortunately, this is not a constant expression, and the latter expression does not work well when GCC is optimizing.. */ -# if !GNULIB_defined_long_double_union union gl_long_double_union { struct { double hi; double lo; } dd; long double ld; }; -# define GNULIB_defined_long_double_union 1 -# endif extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) #endif diff --git a/gl/floor.c b/gl/floor.c index 238f487..cf29b19 100644 --- a/gl/floor.c +++ b/gl/floor.c @@ -1,18 +1,18 @@ /* Round towards negative infinity. - Copyright (C) 2007, 2010-2023 Free Software Foundation, Inc. + Copyright (C) 2007, 2010-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ @@ -44,7 +44,7 @@ /* MSVC with option -fp:strict refuses to compile constant initializers that contain floating-point operations. Pacify this compiler. */ -#if defined _MSC_VER && !defined __clang__ +#ifdef _MSC_VER # pragma fenv_access (off) #endif diff --git a/gl/floorf.c b/gl/floorf.c index e465c18..bbd3382 100644 --- a/gl/floorf.c +++ b/gl/floorf.c @@ -1,18 +1,18 @@ /* Round towards negative infinity. - Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ diff --git a/gl/fopen.c b/gl/fopen.c deleted file mode 100644 index f8469a0..0000000 --- a/gl/fopen.c +++ /dev/null @@ -1,229 +0,0 @@ -/* Open a stream to a file. - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2007. */ - -/* If the user's config.h happens to include , let it include only - the system's here, so that orig_fopen doesn't recurse to - rpl_fopen. */ -#define _GL_ALREADY_INCLUDING_STDIO_H -#include - -/* Get the original definition of fopen. It might be defined as a macro. */ -#include -#undef _GL_ALREADY_INCLUDING_STDIO_H - -static FILE * -orig_fopen (const char *filename, const char *mode) -{ - return fopen (filename, mode); -} - -/* Specification. */ -/* Write "stdio.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates - this include because of the preliminary #include above. */ -#include "stdio.h" - -#include -#include -#include -#include -#include -#include - -FILE * -rpl_fopen (const char *filename, const char *mode) -{ - int open_direction; - int open_flags; -#if GNULIB_FOPEN_GNU - bool open_flags_gnu; -# define BUF_SIZE 80 - char fdopen_mode_buf[BUF_SIZE + 1]; -#endif - -#if defined _WIN32 && ! defined __CYGWIN__ - if (strcmp (filename, "/dev/null") == 0) - filename = "NUL"; -#endif - - /* Parse the mode. */ - open_direction = 0; - open_flags = 0; -#if GNULIB_FOPEN_GNU - open_flags_gnu = false; -#endif - { - const char *p = mode; -#if GNULIB_FOPEN_GNU - char *q = fdopen_mode_buf; -#endif - - for (; *p != '\0'; p++) - { - switch (*p) - { - case 'r': - open_direction = O_RDONLY; -#if GNULIB_FOPEN_GNU - if (q < fdopen_mode_buf + BUF_SIZE) - *q++ = *p; -#endif - continue; - case 'w': - open_direction = O_WRONLY; - open_flags |= O_CREAT | O_TRUNC; -#if GNULIB_FOPEN_GNU - if (q < fdopen_mode_buf + BUF_SIZE) - *q++ = *p; -#endif - continue; - case 'a': - open_direction = O_WRONLY; - open_flags |= O_CREAT | O_APPEND; -#if GNULIB_FOPEN_GNU - if (q < fdopen_mode_buf + BUF_SIZE) - *q++ = *p; -#endif - continue; - case 'b': - /* While it is non-standard, O_BINARY is guaranteed by - gnulib . We can also assume that orig_fopen - supports the 'b' flag. */ - open_flags |= O_BINARY; -#if GNULIB_FOPEN_GNU - if (q < fdopen_mode_buf + BUF_SIZE) - *q++ = *p; -#endif - continue; - case '+': - open_direction = O_RDWR; -#if GNULIB_FOPEN_GNU - if (q < fdopen_mode_buf + BUF_SIZE) - *q++ = *p; -#endif - continue; -#if GNULIB_FOPEN_GNU - case 'x': - open_flags |= O_EXCL; - open_flags_gnu = true; - continue; - case 'e': - open_flags |= O_CLOEXEC; - open_flags_gnu = true; - continue; -#endif - default: - break; - } -#if GNULIB_FOPEN_GNU - /* The rest of the mode string can be a platform-dependent extension. - Copy it unmodified. */ - { - size_t len = strlen (p); - if (len > fdopen_mode_buf + BUF_SIZE - q) - len = fdopen_mode_buf + BUF_SIZE - q; - memcpy (q, p, len); - q += len; - } -#endif - break; - } -#if GNULIB_FOPEN_GNU - *q = '\0'; -#endif - } - -#if FOPEN_TRAILING_SLASH_BUG - /* Fail if the mode requires write access and the filename ends in a slash, - as POSIX says such a filename must name a directory - : - "A pathname that contains at least one non- character and that - ends with one or more trailing characters shall not be resolved - successfully unless the last pathname component before the trailing - characters names an existing directory" - If the named file already exists as a directory, then if a mode that - requires write access is specified, fopen() must fail because POSIX - - says that it fails with errno = EISDIR in this case. - If the named file does not exist or does not name a directory, then - fopen() must fail since the file does not contain a '.' directory. */ - { - size_t len = strlen (filename); - if (len > 0 && filename[len - 1] == '/') - { - int fd; - struct stat statbuf; - FILE *fp; - - if (open_direction != O_RDONLY) - { - errno = EISDIR; - return NULL; - } - - fd = open (filename, open_direction | open_flags, - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); - if (fd < 0) - return NULL; - - if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) - { - close (fd); - errno = ENOTDIR; - return NULL; - } - -# if GNULIB_FOPEN_GNU - fp = fdopen (fd, fdopen_mode_buf); -# else - fp = fdopen (fd, mode); -# endif - if (fp == NULL) - { - int saved_errno = errno; - close (fd); - errno = saved_errno; - } - return fp; - } - } -#endif - -#if GNULIB_FOPEN_GNU - if (open_flags_gnu) - { - int fd; - FILE *fp; - - fd = open (filename, open_direction | open_flags, - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); - if (fd < 0) - return NULL; - - fp = fdopen (fd, fdopen_mode_buf); - if (fp == NULL) - { - int saved_errno = errno; - close (fd); - errno = saved_errno; - } - return fp; - } -#endif - - return orig_fopen (filename, mode); -} diff --git a/gl/fpurge.c b/gl/fpurge.c deleted file mode 100644 index 0dcb2b7..0000000 --- a/gl/fpurge.c +++ /dev/null @@ -1,150 +0,0 @@ -/* Flushing buffers of a FILE stream. - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.10, Android API >= 23, musl libc */ -# if HAVE_STDIO_EXT_H -# include -# endif -#endif -#include - -#include "stdio-impl.h" - -int -fpurge (FILE *fp) -{ -#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.10, Android API >= 23, musl libc */ - - __fpurge (fp); - /* The __fpurge function does not have a return value. */ - return 0; - -#elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin >= 1.7 */ - - /* Call the system's fpurge function. */ -# undef fpurge -# if !HAVE_DECL_FPURGE - extern int fpurge (FILE *); -# endif - int result = fpurge (fp); -# if defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - if (result == 0) - /* Correct the invariants that fpurge broke. - on BSD systems says: - "The following always hold: if _flags & __SRD, _w is 0." - If this invariant is not fulfilled and the stream is read-write but - currently reading, subsequent putc or fputc calls will write directly - into the buffer, although they shouldn't be allowed to. */ - if ((fp_->_flags & __SRD) != 0) - fp_->_w = 0; -# endif - return result; - -#else - - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ -# if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 - /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_IO_read_end = fp->_IO_read_ptr; - fp->_IO_write_ptr = fp->_IO_write_base; - /* Avoid memory leak when there is an active ungetc buffer. */ - if (fp->_IO_save_base != NULL) - { - free (fp->_IO_save_base); - fp->_IO_save_base = NULL; - } - return 0; -# elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - fp_->_p = fp_->_bf._base; - fp_->_r = 0; - fp_->_w = ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ - ? fp_->_bf._size - : 0); - /* Avoid memory leak when there is an active ungetc buffer. */ - if (fp_ub._base != NULL) - { - if (fp_ub._base != fp_->_ubuf) - free (fp_ub._base); - fp_ub._base = NULL; - } - return 0; -# elif defined __EMX__ /* emx+gcc */ - fp->_ptr = fp->_buffer; - fp->_rcount = 0; - fp->_wcount = 0; - fp->_ungetc_count = 0; - return 0; -# elif defined __minix /* Minix */ - fp->_ptr = fp->_buf; - if (fp->_ptr != NULL) - fp->_count = 0; - return 0; -# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, UnixWare, mingw, MSVC, NonStop Kernel, OpenVMS */ - fp_->_ptr = fp_->_base; - if (fp_->_ptr != NULL) - fp_->_cnt = 0; - return 0; -# elif defined __UCLIBC__ /* uClibc */ -# ifdef __STDIO_BUFFERS - if (fp->__modeflags & __FLAG_WRITING) - fp->__bufpos = fp->__bufstart; - else if (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) - fp->__bufpos = fp->__bufread; -# endif - return 0; -# elif defined __QNX__ /* QNX */ - fp->_Rback = fp->_Back + sizeof (fp->_Back); - fp->_Rsave = NULL; - if (fp->_Mode & 0x2000 /* _MWRITE */) - /* fp->_Buf <= fp->_Next <= fp->_Wend */ - fp->_Next = fp->_Buf; - else - /* fp->_Buf <= fp->_Next <= fp->_Rend */ - fp->_Rend = fp->_Next; - return 0; -# elif defined __MINT__ /* Atari FreeMiNT */ - if (fp->__pushed_back) - { - fp->__bufp = fp->__pushback_bufp; - fp->__pushed_back = 0; - } - /* Preserve the current file position. */ - if (fp->__target != -1) - fp->__target += fp->__bufp - fp->__buffer; - fp->__bufp = fp->__buffer; - /* Nothing in the buffer, next getc is nontrivial. */ - fp->__get_limit = fp->__bufp; - /* Nothing in the buffer, next putc is nontrivial. */ - fp->__put_limit = fp->__buffer; - return 0; -# elif defined EPLAN9 /* Plan9 */ - fp->rp = fp->wp = fp->lp = fp->buf; - return 0; -# else -# error "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib." -# endif - -#endif -} diff --git a/gl/freading.c b/gl/freading.c deleted file mode 100644 index b9377cb..0000000 --- a/gl/freading.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include "freading.h" - -#include "stdio-impl.h" - -/* Don't use glibc's __freading function in glibc < 2.7, see - */ -#if !(HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7))) - -bool -freading (FILE *fp) -{ - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ -# if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 - /* GNU libc, BeOS, Haiku, Linux libc5 */ - return ((fp->_flags & _IO_NO_WRITES) != 0 - || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 - && fp->_IO_read_base != NULL)); -# elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin < 1.7.34, Minix 3, Android */ - return (fp_->_flags & __SRD) != 0; -# elif defined __EMX__ /* emx+gcc */ - return (fp->_flags & _IOREAD) != 0; -# elif defined __minix /* Minix */ - return (fp->_flags & _IOREADING) != 0; -# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, UnixWare, mingw, MSVC, NonStop Kernel, OpenVMS */ -# if defined __sun /* Solaris */ - return (fp_->_flag & _IOREAD) != 0 && (fp_->_flag & _IOWRT) == 0; -# else - return (fp_->_flag & _IOREAD) != 0; -# endif -# elif defined __UCLIBC__ /* uClibc */ - return (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) != 0; -# elif defined __QNX__ /* QNX */ - return ((fp->_Mode & 0x2 /* _MOPENW */) == 0 - || (fp->_Mode & 0x1000 /* _MREAD */) != 0); -# elif defined __MINT__ /* Atari FreeMiNT */ - if (!fp->__mode.__write) - return 1; - if (!fp->__mode.__read) - return 0; -# ifdef _IO_CURRENTLY_GETTING /* Flag added on 2009-02-28 */ - return (fp->__flags & _IO_CURRENTLY_GETTING) != 0; -# else - return (fp->__buffer < fp->__get_limit /*|| fp->__bufp == fp->__put_limit ??*/); -# endif -# elif defined EPLAN9 /* Plan9 */ - if (fp->state == 0 /* CLOSED */ || fp->state == 4 /* WR */) - return 0; - return (fp->state == 3 /* RD */ && (fp->bufl == 0 || fp->rp < fp->wp)); -# else -# error "Please port gnulib freading.c to your platform!" -# endif -} - -#endif diff --git a/gl/freading.h b/gl/freading.h deleted file mode 100644 index 27b3abb..0000000 --- a/gl/freading.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Return true if the stream STREAM is opened read-only, or if the - last operation on the stream was a read operation. Return false if - the stream is opened write-only or append-only, or if it supports - writing and there is no current read operation (such as fgetc). - - freading and fwriting will never both be true. If STREAM supports - both reads and writes, then: - - both freading and fwriting might be false when the stream is first - opened, after read encounters EOF, or after fflush, - - freading might be false or true and fwriting might be false - after repositioning (such as fseek, fsetpos, or rewind), - depending on the underlying implementation. - - STREAM must not be wide-character oriented. */ - -#if HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)) -/* Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.34, Android API >= 29, not glibc >= 2.2, but glibc >= 2.7, or musl libc */ - -# if HAVE_STDIO_EXT_H -# include -# endif -# define freading(stream) (__freading (stream) != 0) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern bool freading (FILE *stream) _GL_ATTRIBUTE_PURE; - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/gl/free.c b/gl/free.c deleted file mode 100644 index 372a6b0..0000000 --- a/gl/free.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Make free() preserve errno. - - Copyright (C) 2003, 2006, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* written by Paul Eggert */ - -#include - -/* Specification. */ -#include - -/* A function definition is only needed if HAVE_FREE_POSIX is not defined. */ -#if !HAVE_FREE_POSIX - -# include - -void -rpl_free (void *p) -# undef free -{ -# if defined __GNUC__ && !defined __clang__ - /* An invalid GCC optimization - - would optimize away the assignments in the code below, when link-time - optimization (LTO) is enabled. Make the code more complicated, so that - GCC does not grok how to optimize it. */ - int err[2]; - err[0] = errno; - err[1] = errno; - errno = 0; - free (p); - errno = err[errno == 0]; -# else - int err = errno; - free (p); - errno = err; -# endif -} - -#endif diff --git a/gl/fseek.c b/gl/fseek.c deleted file mode 100644 index 9764375..0000000 --- a/gl/fseek.c +++ /dev/null @@ -1,30 +0,0 @@ -/* An fseek() function that, together with fflush(), is POSIX compliant. - Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* Get off_t. */ -#include - -int -fseek (FILE *fp, long offset, int whence) -{ - /* Use the replacement fseeko function with all its workarounds. */ - return fseeko (fp, (off_t)offset, whence); -} diff --git a/gl/fseeko.c b/gl/fseeko.c deleted file mode 100644 index 89a7087..0000000 --- a/gl/fseeko.c +++ /dev/null @@ -1,164 +0,0 @@ -/* An fseeko() function that, together with fflush(), is POSIX compliant. - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* Get off_t, lseek, _POSIX_VERSION. */ -#include - -#include "stdio-impl.h" - -int -fseeko (FILE *fp, off_t offset, int whence) -#undef fseeko -#if !HAVE_FSEEKO -# undef fseek -# define fseeko fseek -#endif -#if _GL_WINDOWS_64_BIT_OFF_T -# undef fseeko -# if HAVE__FSEEKI64 && HAVE_DECL__FSEEKI64 /* msvc, mingw since msvcrt8.0, mingw64 */ -# define fseeko _fseeki64 -# else /* mingw before msvcrt8.0 */ -# define fseeko fseeko64 -# endif -#endif -{ -#if LSEEK_PIPE_BROKEN - /* mingw gives bogus answers rather than failure on non-seekable files. */ - if (lseek (fileno (fp), 0, SEEK_CUR) == -1) - return EOF; -#endif - - /* These tests are based on fpurge.c. */ -#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 - /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_read_end == fp->_IO_read_ptr - && fp->_IO_write_ptr == fp->_IO_write_base - && fp->_IO_save_base == NULL) -#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ -# if defined __SL64 && defined __SCLE /* Cygwin */ - if ((fp->_flags & __SL64) == 0) - { - /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit - mode; but has an fseeko that requires 64-bit mode. */ - FILE *tmp = fopen ("/dev/null", "r"); - if (!tmp) - return -1; - fp->_flags |= __SL64; - fp->_seek64 = tmp->_seek64; - fclose (tmp); - } -# endif - if (fp_->_p == fp_->_bf._base - && fp_->_r == 0 - && fp_->_w == ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ - ? fp_->_bf._size - : 0) - && fp_ub._base == NULL) -#elif defined __EMX__ /* emx+gcc */ - if (fp->_ptr == fp->_buffer - && fp->_rcount == 0 - && fp->_wcount == 0 - && fp->_ungetc_count == 0) -#elif defined __minix /* Minix */ - if (fp_->_ptr == fp_->_buf - && (fp_->_ptr == NULL || fp_->_count == 0)) -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, UnixWare, mingw, MSVC, NonStop Kernel, OpenVMS */ - if (fp_->_ptr == fp_->_base - && (fp_->_ptr == NULL || fp_->_cnt == 0)) -#elif defined __UCLIBC__ /* uClibc */ - if (((fp->__modeflags & __FLAG_WRITING) == 0 - || fp->__bufpos == fp->__bufstart) - && ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0 - || fp->__bufpos == fp->__bufread)) -#elif defined __QNX__ /* QNX */ - if ((fp->_Mode & 0x2000 /* _MWRITE */ ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend) - && fp->_Rback == fp->_Back + sizeof (fp->_Back) - && fp->_Rsave == NULL) -#elif defined __MINT__ /* Atari FreeMiNT */ - if (fp->__bufp == fp->__buffer - && fp->__get_limit == fp->__bufp - && fp->__put_limit == fp->__bufp - && !fp->__pushed_back) -#elif defined EPLAN9 /* Plan9 */ - if (fp->rp == fp->buf - && fp->wp == fp->buf) -#elif FUNC_FFLUSH_STDIN < 0 && 200809 <= _POSIX_VERSION - /* Cross-compiling to some other system advertising conformance to - POSIX.1-2008 or later. Assume fseeko and fflush work as advertised. - If this assumption is incorrect, please report the bug to - bug-gnulib. */ - if (0) -#else - #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib." -#endif - { - /* We get here when an fflush() call immediately preceded this one (or - if ftell() has created buffers but no I/O has occurred on a - newly-opened stream). We know there are no buffers. */ - off_t pos = lseek (fileno (fp), offset, whence); - if (pos == -1) - { -#if defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - fp_->_flags &= ~__SOFF; -#endif - return -1; - } - -#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 - /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags &= ~_IO_EOF_SEEN; - fp->_offset = pos; -#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ -# if defined __CYGWIN__ || (defined __NetBSD__ && __NetBSD_Version__ >= 600000000) || defined __minix - /* fp_->_offset is typed as an integer. */ - fp_->_offset = pos; -# else - /* fp_->_offset is an fpos_t. */ - { - /* Use a union, since on NetBSD, the compilation flags - determine whether fpos_t is typedef'd to off_t or a struct - containing a single off_t member. */ - union - { - fpos_t f; - off_t o; - } u; - u.o = pos; - fp_->_offset = u.f; - } -# endif - fp_->_flags |= __SOFF; - fp_->_flags &= ~__SEOF; -#elif defined __EMX__ /* emx+gcc */ - fp->_flags &= ~_IOEOF; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, UnixWare, mingw, MSVC, NonStop Kernel, OpenVMS */ - fp_->_flag &= ~_IOEOF; -#elif defined __MINT__ /* Atari FreeMiNT */ - fp->__offset = pos; - fp->__eof = 0; -#endif - return 0; - } - return fseeko (fp, offset, whence); -} diff --git a/gl/fstat.c b/gl/fstat.c deleted file mode 100644 index 6a23500..0000000 --- a/gl/fstat.c +++ /dev/null @@ -1,94 +0,0 @@ -/* fstat() replacement. - Copyright (C) 2011-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* If the user's config.h happens to include , let it include only - the system's here, so that orig_fstat doesn't recurse to - rpl_fstat. */ -#define __need_system_sys_stat_h -#include - -/* Get the original definition of fstat. It might be defined as a macro. */ -#include -#include -#undef __need_system_sys_stat_h - -#if defined _WIN32 && ! defined __CYGWIN__ -# define WINDOWS_NATIVE -#endif - -#if !defined WINDOWS_NATIVE - -static int -orig_fstat (int fd, struct stat *buf) -{ - return fstat (fd, buf); -} - -#endif - -/* Specification. */ -#ifdef __osf__ -/* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc - eliminates this include because of the preliminary #include - above. */ -# include "sys/stat.h" -#else -# include -#endif - -#include "stat-time.h" - -#include -#include -#ifdef WINDOWS_NATIVE -# define WIN32_LEAN_AND_MEAN -# include -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif -# include "stat-w32.h" -#endif - -int -rpl_fstat (int fd, struct stat *buf) -{ -#if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY - /* Handle the case when rpl_open() used a dummy file descriptor to work - around an open() that can't normally visit directories. */ - const char *name = _gl_directory_name (fd); - if (name != NULL) - return stat (name, buf); -#endif - -#ifdef WINDOWS_NATIVE - /* Fill the fields ourselves, because the original fstat function returns - values for st_atime, st_mtime, st_ctime that depend on the current time - zone. See - */ - HANDLE h = (HANDLE) _get_osfhandle (fd); - - if (h == INVALID_HANDLE_VALUE) - { - errno = EBADF; - return -1; - } - return _gl_fstat_by_handle (h, NULL, buf); -#else - return stat_time_normalize (orig_fstat (fd, buf), buf); -#endif -} diff --git a/gl/fsusage.c b/gl/fsusage.c index f6f4b1c..6103ecf 100644 --- a/gl/fsusage.c +++ b/gl/fsusage.c @@ -1,20 +1,20 @@ /* fsusage.c -- return space usage of mounted file systems - Copyright (C) 1991-1992, 1996, 1998-1999, 2002-2006, 2009-2023 Free Software + Copyright (C) 1991-1992, 1996, 1998-1999, 2002-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include @@ -43,11 +43,23 @@ # if HAVE_SYS_FS_S5PARAM_H /* Fujitsu UXP/V */ # include # endif +# if defined HAVE_SYS_FILSYS_H && !defined _CRAY +# include /* SVR2 */ +# endif # if HAVE_SYS_STATFS_H # include # endif +# if HAVE_DUSTAT_H /* AIX PS/2 */ +# include +# endif +# include "full-read.h" #endif +/* The results of open() in this file are not used with fchdir, + therefore save some unnecessary work in fchdir.c. */ +#undef open +#undef close + /* Many space usage primitives use all 1 bits to denote a value that is not applicable or unknown. Propagate this information by returning a uintmax_t value that is all 1 bits if X is all 1 bits, even if X @@ -131,6 +143,7 @@ get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp) fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (vfsd.f_bavail) != 0; fsp->fsu_files = PROPAGATE_ALL_ONES (vfsd.f_files); fsp->fsu_ffree = PROPAGATE_ALL_ONES (vfsd.f_ffree); + fsp->fsu_favail = PROPAGATE_ALL_ONES (vfsd.f_favail); return 0; } @@ -148,6 +161,58 @@ get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp) ? PROPAGATE_ALL_ONES (fsd.f_frsize) : PROPAGATE_ALL_ONES (fsd.f_bsize)); +#elif defined STAT_STATFS2_FS_DATA /* Ultrix */ + + struct fs_data fsd; + + if (statfs (file, &fsd) != 1) + return -1; + + fsp->fsu_blocksize = 1024; + fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.fd_req.btot); + fsp->fsu_bfree = PROPAGATE_ALL_ONES (fsd.fd_req.bfree); + fsp->fsu_bavail = PROPAGATE_TOP_BIT (fsd.fd_req.bfreen); + fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.fd_req.bfreen) != 0; + fsp->fsu_files = PROPAGATE_ALL_ONES (fsd.fd_req.gtot); + fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.fd_req.gfree); + fsp->fsu_favail = PROPAGATE_ALL_ONES (fsd.fd_req.gfree); + +#elif defined STAT_READ_FILSYS /* SVR2 */ +# ifndef SUPERBOFF +# define SUPERBOFF (SUPERB * 512) +# endif + + struct filsys fsd; + int fd; + + if (! disk) + { + errno = 0; + return -1; + } + + fd = open (disk, O_RDONLY); + if (fd < 0) + return -1; + lseek (fd, (off_t) SUPERBOFF, 0); + if (full_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd) + { + close (fd); + return -1; + } + close (fd); + + fsp->fsu_blocksize = (fsd.s_type == Fs2b ? 1024 : 512); + fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.s_fsize); + fsp->fsu_bfree = PROPAGATE_ALL_ONES (fsd.s_tfree); + fsp->fsu_bavail = PROPAGATE_TOP_BIT (fsd.s_tfree); + fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.s_tfree) != 0; + fsp->fsu_files = (fsd.s_isize == -1 + ? UINTMAX_MAX + : (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1)); + fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.s_tinode); + fsp->fsu_favail = PROPAGATE_ALL_ONES (fsd.s_tinode); + #elif defined STAT_STATFS3_OSF1 /* OSF/1 */ struct statfs fsd; @@ -201,7 +266,12 @@ get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp) fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_fsize); -#elif defined STAT_STATFS4 /* SVR3, old Irix */ +#elif defined STAT_STATFS4 /* SVR3, Dynix, old Irix, old AIX, \ + Dolphin */ + +# if !_AIX && !defined _SEQUENT_ && !defined DOLPHIN +# define f_bavail f_bfree +# endif struct statfs fsd; @@ -211,7 +281,11 @@ get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp) /* Empirically, the block counts on most SVR3 and SVR3-derived systems seem to always be in terms of 512-byte blocks, no matter what value f_bsize has. */ +# if _AIX || defined _CRAY + fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_bsize); +# else fsp->fsu_blocksize = 512; +# endif #endif @@ -225,9 +299,38 @@ get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp) fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.f_bavail) != 0; fsp->fsu_files = PROPAGATE_ALL_ONES (fsd.f_files); fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.f_ffree); + fsp->fsu_favail = PROPAGATE_ALL_ONES (fsd.f_ffree); #endif (void) disk; /* avoid argument-unused warning */ return 0; } + +#if defined _AIX && defined _I386 +/* AIX PS/2 does not supply statfs. */ + +int +statfs (char *file, struct statfs *fsb) +{ + struct stat stats; + struct dustat fsd; + + if (stat (file, &stats) != 0) + return -1; + if (dustat (stats.st_dev, 0, &fsd, sizeof (fsd))) + return -1; + fsb->f_type = 0; + fsb->f_bsize = fsd.du_bsize; + fsb->f_blocks = fsd.du_fsize - fsd.du_isize; + fsb->f_bfree = fsd.du_tfree; + fsb->f_bavail = fsd.du_tfree; + fsb->f_files = (fsd.du_isize - 2) * fsd.du_inopb; + fsb->f_ffree = fsd.du_tinode; + fsb->f_favail = fsd.du_tinode; + fsb->f_fsid.val[0] = fsd.du_site; + fsb->f_fsid.val[1] = fsd.du_pckno; + return 0; +} + +#endif /* _AIX && _I386 */ diff --git a/gl/fsusage.h b/gl/fsusage.h index 9630b04..e2654fd 100644 --- a/gl/fsusage.h +++ b/gl/fsusage.h @@ -1,20 +1,20 @@ /* fsusage.h -- declarations for file system space usage info - Copyright (C) 1991-1992, 1997, 2003-2006, 2009-2023 Free Software + Copyright (C) 1991-1992, 1997, 2003-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Space usage statistics for a file system. Blocks are 512-byte. */ @@ -22,6 +22,7 @@ # define FSUSAGE_H_ # include +# include struct fs_usage { @@ -31,7 +32,8 @@ struct fs_usage uintmax_t fsu_bavail; /* Free blocks available to non-superuser. */ bool fsu_bavail_top_bit_set; /* 1 if fsu_bavail represents a value < 0. */ uintmax_t fsu_files; /* Total file nodes. */ - uintmax_t fsu_ffree; /* Free file nodes. */ + uintmax_t fsu_ffree; /* Free file nodes to superuser. */ + uintmax_t fsu_favail; /* Free file nodes to non-superuser. */ }; int get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp); diff --git a/gl/ftell.c b/gl/ftell.c deleted file mode 100644 index ce2bd54..0000000 --- a/gl/ftell.c +++ /dev/null @@ -1,37 +0,0 @@ -/* An ftell() function that works around platform bugs. - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include - -long -ftell (FILE *fp) -{ - /* Use the replacement ftello function with all its workarounds. */ - off_t offset = ftello (fp); - if (LONG_MIN <= offset && offset <= LONG_MAX) - return /* (long) */ offset; - else - { - errno = EOVERFLOW; - return -1; - } -} diff --git a/gl/ftello.c b/gl/ftello.c deleted file mode 100644 index 14184e5..0000000 --- a/gl/ftello.c +++ /dev/null @@ -1,157 +0,0 @@ -/* An ftello() function that works around platform bugs. - Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include "intprops.h" - -/* Get lseek. */ -#include - -#include "stdio-impl.h" - -off_t -ftello (FILE *fp) -#undef ftello -#if !HAVE_FTELLO -# undef ftell -# define ftello ftell -#endif -#if _GL_WINDOWS_64_BIT_OFF_T -# undef ftello -# if HAVE__FTELLI64 /* msvc, mingw64 */ -# define ftello _ftelli64 -# else /* mingw */ -# define ftello ftello64 -# endif -#endif -{ -#if FTELLO_BROKEN_AFTER_UNGETC /* macOS >= 10.15 */ - /* The system's ftello() is completely broken, because it calls __sflush, - which makes side effects on the stream. */ - - /* Handle non-seekable files first. */ - if (fp->_file < 0 || fp->_seek == NULL) - { - errno = ESPIPE; - return -1; - } - - /* Determine the current offset, ignoring buffered and pushed-back bytes. */ - off_t pos; - - if (fp->_flags & __SOFF) - pos = fp->_offset; - else - { - pos = fp->_seek (fp->_cookie, 0, SEEK_CUR); - if (pos < 0) - return -1; - if (fp->_flags & __SOPT) - { - fp->_offset = pos; - fp->_flags |= __SOFF; - } - } - - if (fp->_flags & __SRD) - { - /* Now consider buffered and pushed-back bytes from ungetc. */ - if (fp->_ub._base != NULL) - /* Considering the buffered bytes, we are at position - pos - fp->_ur. - Considering also the pushed-back bytes, we are at position - pos - fp->_ur - fp->_r. */ - pos = pos - fp->_ur - fp->_r; - else - /* Considering the buffered bytes, we are at position - pos - fp->_r. */ - pos = pos - fp->_r; - if (pos < 0) - { - errno = EIO; - return -1; - } - } - else if ((fp->_flags & __SWR) && fp->_p != NULL) - { - /* Consider the buffered bytes. */ - off_t buffered = fp->_p - fp->_bf._base; - - /* Compute pos + buffered, with overflow check. */ - off_t sum; - if (! INT_ADD_OK (pos, buffered, &sum)) - { - errno = EOVERFLOW; - return -1; - } - pos = sum; - } - - return pos; - -#else - -# if LSEEK_PIPE_BROKEN - /* mingw gives bogus answers rather than failure on non-seekable files. */ - if (lseek (fileno (fp), 0, SEEK_CUR) == -1) - return -1; -# endif - -# if FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE /* Solaris */ - /* The Solaris stdio leaves the _IOREAD flag set after reading from a file - reaches EOF and the program then starts writing to the file. ftello - gets confused by this. */ - if (fp_->_flag & _IOWRT) - { - off_t pos; - - /* Call ftello nevertheless, for the side effects that it does on fp. */ - ftello (fp); - - /* Compute the file position ourselves. */ - pos = lseek (fileno (fp), (off_t) 0, SEEK_CUR); - if (pos >= 0) - { - if ((fp_->_flag & _IONBF) == 0 && fp_->_base != NULL) - pos += fp_->_ptr - fp_->_base; - } - return pos; - } -# endif - -# if defined __SL64 && defined __SCLE /* Cygwin */ - if ((fp->_flags & __SL64) == 0) - { - /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit - mode; but has an ftello that requires 64-bit mode. */ - FILE *tmp = fopen ("/dev/null", "r"); - if (!tmp) - return -1; - fp->_flags |= __SL64; - fp->_seek64 = tmp->_seek64; - fclose (tmp); - } -# endif - - return ftello (fp); - -#endif -} diff --git a/gl/full-read.c b/gl/full-read.c new file mode 100644 index 0000000..a0dc82c --- /dev/null +++ b/gl/full-read.c @@ -0,0 +1,18 @@ +/* An interface to read that retries after partial reads and interrupts. + Copyright (C) 2002-2003, 2009-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#define FULL_READ +#include "full-write.c" diff --git a/gl/full-read.h b/gl/full-read.h new file mode 100644 index 0000000..66c8c5c --- /dev/null +++ b/gl/full-read.h @@ -0,0 +1,24 @@ +/* An interface to read() that reads all it is asked to read. + + Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, read to the Free Software Foundation, + along with this program. If not, see . */ + +#include + +/* Read COUNT bytes at BUF to descriptor FD, retrying if interrupted + or if partial reads occur. Return the number of bytes successfully + read, setting errno if that is less than COUNT. errno = 0 means EOF. */ +extern size_t full_read (int fd, void *buf, size_t count); diff --git a/gl/full-write.c b/gl/full-write.c new file mode 100644 index 0000000..beb5bf9 --- /dev/null +++ b/gl/full-write.c @@ -0,0 +1,79 @@ +/* An interface to read and write that retries (if necessary) until complete. + + Copyright (C) 1993-1994, 1997-2006, 2009-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#ifdef FULL_READ +# include "full-read.h" +#else +# include "full-write.h" +#endif + +#include + +#ifdef FULL_READ +# include "safe-read.h" +# define safe_rw safe_read +# define full_rw full_read +# undef const +# define const /* empty */ +#else +# include "safe-write.h" +# define safe_rw safe_write +# define full_rw full_write +#endif + +#ifdef FULL_READ +/* Set errno to zero upon EOF. */ +# define ZERO_BYTE_TRANSFER_ERRNO 0 +#else +/* Some buggy drivers return 0 when one tries to write beyond + a device's end. (Example: Linux 1.2.13 on /dev/fd0.) + Set errno to ENOSPC so they get a sensible diagnostic. */ +# define ZERO_BYTE_TRANSFER_ERRNO ENOSPC +#endif + +/* Write(read) COUNT bytes at BUF to(from) descriptor FD, retrying if + interrupted or if a partial write(read) occurs. Return the number + of bytes transferred. + When writing, set errno if fewer than COUNT bytes are written. + When reading, if fewer than COUNT bytes are read, you must examine + errno to distinguish failure from EOF (errno == 0). */ +size_t +full_rw (int fd, const void *buf, size_t count) +{ + size_t total = 0; + const char *ptr = (const char *) buf; + + while (count > 0) + { + size_t n_rw = safe_rw (fd, ptr, count); + if (n_rw == (size_t) -1) + break; + if (n_rw == 0) + { + errno = ZERO_BYTE_TRANSFER_ERRNO; + break; + } + total += n_rw; + ptr += n_rw; + count -= n_rw; + } + + return total; +} diff --git a/gl/gai_strerror.c b/gl/gai_strerror.c index 3436c07..1e371d2 100644 --- a/gl/gai_strerror.c +++ b/gl/gai_strerror.c @@ -1,20 +1,20 @@ -/* Copyright (C) 1997, 2001-2002, 2004-2006, 2008-2023 Free Software +/* Copyright (C) 1997, 2001-2002, 2004-2006, 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Philip Blundell , 1997. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _LIBC # include diff --git a/gl/getaddrinfo.c b/gl/getaddrinfo.c index 6586ee5..58d2811 100644 --- a/gl/getaddrinfo.c +++ b/gl/getaddrinfo.c @@ -1,19 +1,19 @@ /* Get address information (partial implementation). - Copyright (C) 1997, 2001-2002, 2004-2023 Free Software Foundation, Inc. + Copyright (C) 1997, 2001-2002, 2004-2013 Free Software Foundation, Inc. Contributed by Simon Josefsson . - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the sa == NULL test below. */ @@ -39,6 +39,8 @@ /* Get snprintf. */ #include +#include + #include "gettext.h" #define _(String) gettext (String) #define N_(String) String @@ -52,48 +54,14 @@ # define PF_UNSPEC 0 #endif -#if HAVE_GETADDRINFO - -/* Override with cdecl calling convention. */ - -int -getaddrinfo (const char *restrict nodename, - const char *restrict servname, - const struct addrinfo *restrict hints, - struct addrinfo **restrict res) -# undef getaddrinfo -{ - return getaddrinfo (nodename, servname, hints, res); -} - -void -freeaddrinfo (struct addrinfo *ai) -# undef freeaddrinfo -{ - freeaddrinfo (ai); -} - -#else - -# if defined _WIN32 && !defined __CYGWIN__ -# define WINDOWS_NATIVE -# endif +#if defined _WIN32 || defined __WIN32__ +# define WINDOWS_NATIVE +#endif /* gl_sockets_startup */ -# include "sockets.h" - -# ifdef WINDOWS_NATIVE - -/* Don't assume that UNICODE is not defined. */ -# undef GetModuleHandle -# define GetModuleHandle GetModuleHandleA - -# if !(_WIN32_WINNT >= _WIN32_WINNT_WINXP) - -/* Avoid warnings from gcc -Wcast-function-type. */ -# define GetProcAddress \ - (void *) GetProcAddress +#include "sockets.h" +#ifdef WINDOWS_NATIVE typedef int (WSAAPI *getaddrinfo_func) (const char*, const char*, const struct addrinfo*, struct addrinfo**); @@ -139,43 +107,20 @@ use_win32_p (void) return 1; } - -# else - -static int -use_win32_p (void) -{ - static int done = 0; - - if (!done) - { - done = 1; - - gl_sockets_startup (SOCKETS_1_1); - } - - return 1; -} - -# define getaddrinfo_ptr getaddrinfo -# define freeaddrinfo_ptr freeaddrinfo -# define getnameinfo_ptr getnameinfo - -# endif -# endif +#endif static bool validate_family (int family) { /* FIXME: Support more families. */ -# if HAVE_IPV4 +#if HAVE_IPV4 if (family == PF_INET) return true; -# endif -# if HAVE_IPV6 +#endif +#if HAVE_IPV6 if (family == PF_INET6) return true; -# endif +#endif if (family == PF_UNSPEC) return true; return false; @@ -188,30 +133,29 @@ getaddrinfo (const char *restrict nodename, const char *restrict servname, const struct addrinfo *restrict hints, struct addrinfo **restrict res) -#undef getaddrinfo { struct addrinfo *tmp; int port = 0; struct hostent *he; void *storage; size_t size; -# if HAVE_IPV6 +#if HAVE_IPV6 struct v6_pair { struct addrinfo addrinfo; struct sockaddr_in6 sockaddr_in6; }; -# endif -# if HAVE_IPV4 +#endif +#if HAVE_IPV4 struct v4_pair { struct addrinfo addrinfo; struct sockaddr_in sockaddr_in; }; -# endif +#endif -# ifdef WINDOWS_NATIVE +#ifdef WINDOWS_NATIVE if (use_win32_p ()) return getaddrinfo_ptr (nodename, servname, hints, res); -# endif +#endif if (hints && (hints->ai_flags & ~(AI_CANONNAME|AI_PASSIVE))) /* FIXME: Support more flags. */ @@ -230,11 +174,11 @@ getaddrinfo (const char *restrict nodename, if (!(hints->ai_flags & AI_PASSIVE)) return EAI_NONAME; -# ifdef HAVE_IPV6 +#ifdef HAVE_IPV6 nodename = (hints->ai_family == AF_INET6) ? "::" : "0.0.0.0"; -# else +#else nodename = "0.0.0.0"; -# endif +#endif } if (servname) @@ -268,17 +212,17 @@ getaddrinfo (const char *restrict nodename, switch (he->h_addrtype) { -# if HAVE_IPV6 +#if HAVE_IPV6 case PF_INET6: size = sizeof (struct v6_pair); break; -# endif +#endif -# if HAVE_IPV4 +#if HAVE_IPV4 case PF_INET: size = sizeof (struct v4_pair); break; -# endif +#endif default: return EAI_NODATA; @@ -290,7 +234,7 @@ getaddrinfo (const char *restrict nodename, switch (he->h_addrtype) { -# if HAVE_IPV6 +#if HAVE_IPV6 case PF_INET6: { struct v6_pair *p = storage; @@ -312,9 +256,9 @@ getaddrinfo (const char *restrict nodename, tmp->ai_addrlen = sizeof *sinp; } break; -# endif +#endif -# if HAVE_IPV4 +#if HAVE_IPV4 case PF_INET: { struct v4_pair *p = storage; @@ -336,7 +280,7 @@ getaddrinfo (const char *restrict nodename, tmp->ai_addrlen = sizeof *sinp; } break; -# endif +#endif default: free (storage); @@ -364,21 +308,21 @@ getaddrinfo (const char *restrict nodename, tmp->ai_addr->sa_family = he->h_addrtype; tmp->ai_family = he->h_addrtype; -# ifdef HAVE_STRUCT_SOCKADDR_SA_LEN +#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN switch (he->h_addrtype) { -# if HAVE_IPV4 +#if HAVE_IPV4 case AF_INET: tmp->ai_addr->sa_len = sizeof (struct sockaddr_in); break; -# endif -# if HAVE_IPV6 +#endif +#if HAVE_IPV6 case AF_INET6: tmp->ai_addr->sa_len = sizeof (struct sockaddr_in6); break; -# endif +#endif } -# endif +#endif /* FIXME: If more than one address, create linked list of addrinfo's. */ @@ -390,15 +334,14 @@ getaddrinfo (const char *restrict nodename, /* Free 'addrinfo' structure AI including associated storage. */ void freeaddrinfo (struct addrinfo *ai) -#undef freeaddrinfo { -# ifdef WINDOWS_NATIVE +#ifdef WINDOWS_NATIVE if (use_win32_p ()) { freeaddrinfo_ptr (ai); return; } -# endif +#endif while (ai) { @@ -417,13 +360,12 @@ getnameinfo (const struct sockaddr *restrict sa, socklen_t salen, char *restrict node, socklen_t nodelen, char *restrict service, socklen_t servicelen, int flags) -#undef getnameinfo { -# ifdef WINDOWS_NATIVE +#ifdef WINDOWS_NATIVE if (use_win32_p ()) return getnameinfo_ptr (sa, salen, node, nodelen, service, servicelen, flags); -# endif +#endif /* FIXME: Support other flags. */ if ((node && nodelen > 0 && !(flags & NI_NUMERICHOST)) || @@ -436,18 +378,18 @@ getnameinfo (const struct sockaddr *restrict sa, socklen_t salen, switch (sa->sa_family) { -# if HAVE_IPV4 +#if HAVE_IPV4 case AF_INET: if (salen < sizeof (struct sockaddr_in)) return EAI_FAMILY; break; -# endif -# if HAVE_IPV6 +#endif +#if HAVE_IPV6 case AF_INET6: if (salen < sizeof (struct sockaddr_in6)) return EAI_FAMILY; break; -# endif +#endif default: return EAI_FAMILY; } @@ -456,23 +398,23 @@ getnameinfo (const struct sockaddr *restrict sa, socklen_t salen, { switch (sa->sa_family) { -# if HAVE_IPV4 +#if HAVE_IPV4 case AF_INET: if (!inet_ntop (AF_INET, &(((const struct sockaddr_in *) sa)->sin_addr), node, nodelen)) return EAI_SYSTEM; break; -# endif +#endif -# if HAVE_IPV6 +#if HAVE_IPV6 case AF_INET6: if (!inet_ntop (AF_INET6, &(((const struct sockaddr_in6 *) sa)->sin6_addr), node, nodelen)) return EAI_SYSTEM; break; -# endif +#endif default: return EAI_FAMILY; @@ -482,12 +424,12 @@ getnameinfo (const struct sockaddr *restrict sa, socklen_t salen, if (service && servicelen > 0 && flags & NI_NUMERICSERV) switch (sa->sa_family) { -# if HAVE_IPV4 +#if HAVE_IPV4 case AF_INET: -# endif -# if HAVE_IPV6 +#endif +#if HAVE_IPV6 case AF_INET6: -# endif +#endif { unsigned short int port = ntohs (((const struct sockaddr_in *) sa)->sin_port); @@ -499,5 +441,3 @@ getnameinfo (const struct sockaddr *restrict sa, socklen_t salen, return 0; } - -#endif diff --git a/gl/getdelim.c b/gl/getdelim.c deleted file mode 100644 index 79ec3dd..0000000 --- a/gl/getdelim.c +++ /dev/null @@ -1,147 +0,0 @@ -/* getdelim.c --- Implementation of replacement getdelim function. - Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2023 Free Software - Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Ported from glibc by Simon Josefsson. */ - -/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc - optimizes away the lineptr == NULL || n == NULL || fp == NULL tests below. */ -#define _GL_ARG_NONNULL(params) - -#include - -#include - -#include -#include -#include -#include - -#ifndef SSIZE_MAX -# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) -#endif - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -# define getc_maybe_unlocked(fp) getc(fp) -#elif !HAVE_FLOCKFILE || !HAVE_FUNLOCKFILE || !HAVE_DECL_GETC_UNLOCKED -# undef flockfile -# undef funlockfile -# define flockfile(x) ((void) 0) -# define funlockfile(x) ((void) 0) -# define getc_maybe_unlocked(fp) getc(fp) -#else -# define getc_maybe_unlocked(fp) getc_unlocked(fp) -#endif - -static void -alloc_failed (void) -{ -#if defined _WIN32 && ! defined __CYGWIN__ - /* Avoid errno problem without using the realloc module; see: - https://lists.gnu.org/r/bug-gnulib/2016-08/msg00025.html */ - errno = ENOMEM; -#endif -} - -/* Read up to (and including) a DELIMITER from FP into *LINEPTR (and - NUL-terminate it). *LINEPTR is a pointer returned from malloc (or - NULL), pointing to *N characters of space. It is realloc'ed as - necessary. Returns the number of characters read (not including - the null terminator), or -1 on error or EOF. */ - -ssize_t -getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) -{ - ssize_t result; - size_t cur_len = 0; - - if (lineptr == NULL || n == NULL || fp == NULL) - { - errno = EINVAL; - return -1; - } - - flockfile (fp); - - if (*lineptr == NULL || *n == 0) - { - char *new_lineptr; - *n = 120; - new_lineptr = (char *) realloc (*lineptr, *n); - if (new_lineptr == NULL) - { - alloc_failed (); - result = -1; - goto unlock_return; - } - *lineptr = new_lineptr; - } - - for (;;) - { - int i; - - i = getc_maybe_unlocked (fp); - if (i == EOF) - { - result = -1; - break; - } - - /* Make enough space for len+1 (for final NUL) bytes. */ - if (cur_len + 1 >= *n) - { - size_t needed_max = - SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX; - size_t needed = 2 * *n + 1; /* Be generous. */ - char *new_lineptr; - - if (needed_max < needed) - needed = needed_max; - if (cur_len + 1 >= needed) - { - result = -1; - errno = EOVERFLOW; - goto unlock_return; - } - - new_lineptr = (char *) realloc (*lineptr, needed); - if (new_lineptr == NULL) - { - alloc_failed (); - result = -1; - goto unlock_return; - } - - *lineptr = new_lineptr; - *n = needed; - } - - (*lineptr)[cur_len] = i; - cur_len++; - - if (i == delimiter) - break; - } - (*lineptr)[cur_len] = '\0'; - result = cur_len ? cur_len : result; - - unlock_return: - funlockfile (fp); /* doesn't set errno */ - - return result; -} diff --git a/gl/getdtablesize.c b/gl/getdtablesize.c deleted file mode 100644 index ac2d175..0000000 --- a/gl/getdtablesize.c +++ /dev/null @@ -1,124 +0,0 @@ -/* getdtablesize() function: Return maximum possible file descriptor value + 1. - Copyright (C) 2008-2023 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -#if defined _WIN32 && ! defined __CYGWIN__ - -# include - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -# endif - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static int -_setmaxstdio_nothrow (int newmax) -{ - int result; - - TRY_MSVC_INVAL - { - result = _setmaxstdio (newmax); - } - CATCH_MSVC_INVAL - { - result = -1; - } - DONE_MSVC_INVAL; - - return result; -} -# else -# define _setmaxstdio_nothrow _setmaxstdio -# endif - -/* Cache for the previous getdtablesize () result. Safe to cache because - Windows also lacks setrlimit. */ -static int dtablesize; - -int -getdtablesize (void) -{ - if (dtablesize == 0) - { - /* We are looking for the number N such that the valid file descriptors - are 0..N-1. It can be obtained through a loop as follows: - { - int fd; - for (fd = 3; fd < 65536; fd++) - if (dup2 (0, fd) == -1) - break; - return fd; - } - On Windows XP, the result is 2048. - The drawback of this loop is that it allocates memory for a libc - internal array that is never freed. - - The number N can also be obtained as the upper bound for - _getmaxstdio (). _getmaxstdio () returns the maximum number of open - FILE objects. The sanity check in _setmaxstdio reveals the maximum - number of file descriptors. This too allocates memory, but it is - freed when we call _setmaxstdio with the original value. */ - int orig_max_stdio = _getmaxstdio (); - unsigned int bound; - for (bound = 0x10000; _setmaxstdio_nothrow (bound) < 0; bound = bound / 2) - ; - _setmaxstdio_nothrow (orig_max_stdio); - dtablesize = bound; - } - return dtablesize; -} - -#else - -# include -# include - -# ifndef RLIM_SAVED_CUR -# define RLIM_SAVED_CUR RLIM_INFINITY -# endif -# ifndef RLIM_SAVED_MAX -# define RLIM_SAVED_MAX RLIM_INFINITY -# endif - -# ifdef __CYGWIN__ - /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it - hits the compile-time constant hard limit of 3200. We might as - well just report the hard limit. */ -# define rlim_cur rlim_max -# endif - -int -getdtablesize (void) -{ - struct rlimit lim; - - if (getrlimit (RLIMIT_NOFILE, &lim) == 0 - && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX - && lim.rlim_cur != RLIM_INFINITY - && lim.rlim_cur != RLIM_SAVED_CUR - && lim.rlim_cur != RLIM_SAVED_MAX) - return lim.rlim_cur; - - return INT_MAX; -} - -#endif diff --git a/gl/gethostname.c b/gl/gethostname.c index 0c616c3..2201573 100644 --- a/gl/gethostname.c +++ b/gl/gethostname.c @@ -1,26 +1,26 @@ /* gethostname emulation for SysV and POSIX.1. - Copyright (C) 1992, 2003, 2006, 2008-2023 Free Software Foundation, Inc. + Copyright (C) 1992, 2003, 2006, 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* David MacKenzie Windows port by Simon Josefsson */ #include -#if !(defined _WIN32 && !defined __CYGWIN__) +#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) /* Unix API. */ /* Specification. */ diff --git a/gl/getline.c b/gl/getline.c deleted file mode 100644 index 85f16ab..0000000 --- a/gl/getline.c +++ /dev/null @@ -1,27 +0,0 @@ -/* getline.c --- Implementation of replacement getline function. - Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Simon Josefsson. */ - -#include - -#include - -ssize_t -getline (char **lineptr, size_t *n, FILE *stream) -{ - return getdelim (lineptr, n, '\n', stream); -} diff --git a/gl/getloadavg.c b/gl/getloadavg.c index 59b53e7..6e22819 100644 --- a/gl/getloadavg.c +++ b/gl/getloadavg.c @@ -1,6 +1,6 @@ /* Get the system load averages. - Copyright (C) 1985-1989, 1991-1995, 1997, 1999-2000, 2003-2023 Free Software + Copyright (C) 1985-1989, 1991-1995, 1997, 1999-2000, 2003-2013 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with gnulib. @@ -8,7 +8,7 @@ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -17,7 +17,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* Compile-time symbols that this file uses: @@ -47,25 +47,29 @@ N_NAME_POINTER The nlist n_name element is a pointer, not an array. HAVE_STRUCT_NLIST_N_UN_N_NAME 'n_un.n_name' is member of 'struct nlist'. - LINUX_LDAV_FILE [__linux__, __ANDROID__, __CYGWIN__]: File - containing load averages. + LINUX_LDAV_FILE [__linux__, __CYGWIN__]: File containing + load averages. Specific system predefines this file uses, aside from setting default values if not emacs: apollo BSD Real BSD, not just BSD-like. + convex DGUX eunice UNIX emulator under VMS. hpux __MSDOS__ No-op for MSDOS. NeXT sgi + sequent Sequent Dynix 3.x.x (BSD) + _SEQUENT_ Sequent DYNIX/ptx 1.x.x (SYSV) + sony_news NEWS-OS (works at least for 4.1C) UMAX UMAX4_3 VMS - _WIN32 Native Windows (possibly also defined on Cygwin) - __linux__, __ANDROID__ Linux: assumes /proc file system mounted. + WINDOWS32 No-op for Windows95/NT. + __linux__ Linux: assumes /proc file system mounted. Support from Michael K. Johnson. __CYGWIN__ Cygwin emulates linux /proc/loadavg. __NetBSD__ NetBSD: assumes /kern file system mounted. @@ -82,6 +86,7 @@ #include #include +#include #include # include @@ -92,8 +97,9 @@ # include "intprops.h" -# if defined _WIN32 && ! defined __CYGWIN__ && ! defined WINDOWS32 -# define WINDOWS32 +# if !defined (BSD) && defined (ultrix) +/* Ultrix behaves like BSD on Vaxen. */ +# define BSD # endif # ifdef NeXT @@ -135,6 +141,10 @@ # define MORE_BSD # endif +# if defined (ultrix) && defined (mips) +# define decstation +# endif + # if defined (__SVR4) && !defined (SVR4) # define SVR4 # endif @@ -158,6 +168,13 @@ # include # endif +/* UTek's /bin/cc on the 4300 has no architecture specific cpp define by + default, but _MACH_IND_SYS_TYPES is defined in . Combine + that with a couple of other things and we'll have a unique match. */ +# if !defined (tek4300) && defined (unix) && defined (m68k) && defined (mc68000) && defined (mc68020) && defined (_MACH_IND_SYS_TYPES) +# define tek4300 /* Define by emacs, but not by other users. */ +# endif + /* VAX C can't handle multi-line #ifs, or lines longer than 256 chars. */ # ifndef LOAD_AVE_TYPE @@ -170,6 +187,14 @@ # define LOAD_AVE_TYPE long # endif +# ifdef decstation +# define LOAD_AVE_TYPE long +# endif + +# ifdef _SEQUENT_ +# define LOAD_AVE_TYPE long +# endif + # ifdef sgi # define LOAD_AVE_TYPE long # endif @@ -178,14 +203,41 @@ # define LOAD_AVE_TYPE long # endif +# ifdef sony_news +# define LOAD_AVE_TYPE long +# endif + +# ifdef sequent +# define LOAD_AVE_TYPE long +# endif + # ifdef OSF_ALPHA # define LOAD_AVE_TYPE long # endif +# if defined (ardent) && defined (titan) +# define LOAD_AVE_TYPE long +# endif + +# ifdef tek4300 +# define LOAD_AVE_TYPE long +# endif + +# if defined (alliant) && defined (i860) /* Alliant FX/2800 */ +# define LOAD_AVE_TYPE long +# endif + # if defined _AIX && ! defined HAVE_LIBPERFSTAT # define LOAD_AVE_TYPE long # endif +# ifdef convex +# define LOAD_AVE_TYPE double +# ifndef LDAV_CVT +# define LDAV_CVT(n) (n) +# endif +# endif + # endif /* No LOAD_AVE_TYPE. */ # ifdef OSF_ALPHA @@ -195,6 +247,13 @@ # define FSCALE 1024.0 # endif +# if defined (alliant) && defined (i860) /* Alliant FX/2800 */ +/* defines an incorrect value for FSCALE on an + Alliant FX/2800 Concentrix 2.2, according to ghazi@noc.rutgers.edu. */ +# undef FSCALE +# define FSCALE 100.0 +# endif + # ifndef FSCALE @@ -204,17 +263,25 @@ # define FSCALE 2048.0 # endif -# if defined (MIPS) || defined (SVR4) +# if defined (MIPS) || defined (SVR4) || defined (decstation) # define FSCALE 256 # endif -# if defined (sgi) +# if defined (sgi) || defined (sequent) /* Sometimes both MIPS and sgi are defined, so FSCALE was just defined above under #ifdef MIPS. But we want the sgi value. */ # undef FSCALE # define FSCALE 1000.0 # endif +# if defined (ardent) && defined (titan) +# define FSCALE 65536.0 +# endif + +# ifdef tek4300 +# define FSCALE 100.0 +# endif + # if defined _AIX && !defined HAVE_LIBPERFSTAT # define FSCALE 65536.0 # endif @@ -236,22 +303,28 @@ # endif +# if !defined (KERNEL_FILE) && defined (sequent) +# define KERNEL_FILE "/dynix" +# endif + # if !defined (KERNEL_FILE) && defined (hpux) # define KERNEL_FILE "/hp-ux" # endif -# if !defined (KERNEL_FILE) && (defined (MIPS) || defined (SVR4) || defined (ISC) || defined (sgi)) +# if !defined (KERNEL_FILE) && (defined (_SEQUENT_) || defined (MIPS) || defined (SVR4) || defined (ISC) || defined (sgi) || (defined (ardent) && defined (titan))) # define KERNEL_FILE "/unix" # endif -# if !defined (LDAV_SYMBOL) && (defined (hpux) || defined (SVR4) || defined (ISC) || defined (sgi) || (defined (_AIX) && !defined(HAVE_LIBPERFSTAT))) +# if !defined (LDAV_SYMBOL) && defined (alliant) +# define LDAV_SYMBOL "_Loadavg" +# endif + +# if !defined (LDAV_SYMBOL) && ((defined (hpux) && !defined (hp9000s300)) || defined (_SEQUENT_) || defined (SVR4) || defined (ISC) || defined (sgi) || (defined (ardent) && defined (titan)) || (defined (_AIX) && !defined(HAVE_LIBPERFSTAT))) # define LDAV_SYMBOL "avenrun" # endif -# ifdef HAVE_UNISTD_H -# include -# endif +# include /* LOAD_AVE_TYPE should only get defined if we're going to use the nlist method. */ @@ -262,7 +335,7 @@ # ifdef LOAD_AVE_TYPE # ifndef __VMS -# if !(defined __linux__ || defined __ANDROID__) +# ifndef __linux__ # ifndef NLIST_STRUCT # include # else /* NLIST_STRUCT */ @@ -285,7 +358,7 @@ # ifndef LDAV_SYMBOL # define LDAV_SYMBOL "_avenrun" # endif /* LDAV_SYMBOL */ -# endif /* __linux__ || __ANDROID__ */ +# endif /* __linux__ */ # else /* __VMS */ @@ -358,8 +431,7 @@ # include # endif -# if (defined __linux__ || defined __ANDROID__ \ - || defined __CYGWIN__ || defined SUNOS_5 \ +# if (defined __linux__ || defined __CYGWIN__ || defined SUNOS_5 \ || (defined LOAD_AVE_TYPE && ! defined __VMS)) # include # endif @@ -388,7 +460,7 @@ static bool getloadavg_initialized; /* Offset in kmem to seek to read load average, or 0 means invalid. */ static long offset; -# if ! defined __VMS && ! defined sgi && ! (defined __linux__ || defined __ANDROID__) +# if ! defined __VMS && ! defined sgi && ! defined __linux__ static struct nlist name_list[2]; # endif @@ -423,17 +495,17 @@ getloadavg (double loadavg[], int nelem) int saved_errno; kc = kstat_open (); - if (kc == NULL) + if (kc == 0) return -1; ksp = kstat_lookup (kc, "unix", 0, "system_misc"); - if (ksp == NULL) + if (ksp == 0) return -1; if (kstat_read (kc, ksp, 0) == -1) return -1; kn = kstat_data_lookup (ksp, "avenrun_1min"); - if (kn == NULL) + if (kn == 0) { /* Return -1 if no load average information is available. */ nelem = 0; @@ -446,14 +518,14 @@ getloadavg (double loadavg[], int nelem) if (nelem >= 2) { kn = kstat_data_lookup (ksp, "avenrun_5min"); - if (kn != NULL) + if (kn != 0) { loadavg[elem++] = (double) kn->value.ul / FSCALE; if (nelem >= 3) { kn = kstat_data_lookup (ksp, "avenrun_15min"); - if (kn != NULL) + if (kn != 0) loadavg[elem++] = (double) kn->value.ul / FSCALE; } } @@ -498,8 +570,8 @@ getloadavg (double loadavg[], int nelem) } # endif -# if !defined (LDAV_DONE) && (defined __linux__ || defined __ANDROID__ || defined __CYGWIN__) - /* Linux without glibc, Android, Cygwin */ +# if !defined (LDAV_DONE) && (defined (__linux__) || defined (__CYGWIN__)) + /* Linux without glibc, Cygwin */ # define LDAV_DONE # undef LOAD_AVE_TYPE @@ -511,7 +583,7 @@ getloadavg (double loadavg[], int nelem) char const *ptr = ldavgbuf; int fd, count, saved_errno; - fd = open (LINUX_LDAV_FILE, O_RDONLY | O_CLOEXEC); + fd = open (LINUX_LDAV_FILE, O_RDONLY); if (fd == -1) return -1; count = read (fd, ldavgbuf, sizeof ldavgbuf - 1); @@ -549,12 +621,12 @@ getloadavg (double loadavg[], int nelem) for (ptr++; '0' <= *ptr && *ptr <= '9'; ptr++) numerator = 10 * numerator + (*ptr - '0'), denominator *= 10; - loadavg[elem] = numerator / denominator; + loadavg[elem++] = numerator / denominator; } return elem; -# endif /* __linux__ || __ANDROID__ || __CYGWIN__ */ +# endif /* __linux__ || __CYGWIN__ */ # if !defined (LDAV_DONE) && defined (__NetBSD__) /* NetBSD < 0.9 */ # define LDAV_DONE @@ -566,22 +638,15 @@ getloadavg (double loadavg[], int nelem) unsigned long int load_ave[3], scale; int count; - char readbuf[4 * INT_BUFSIZE_BOUND (unsigned long int) + 1]; - int fd = open (NETBSD_LDAV_FILE, O_RDONLY | O_CLOEXEC); - if (fd < 0) - return fd; - int nread = read (fd, readbuf, sizeof readbuf - 1); - int err = errno; - close (fd); - if (nread < 0) - { - errno = err; - return -1; - } - readbuf[nread] = '\0'; - count = sscanf (readbuf, "%lu %lu %lu %lu\n", + FILE *fp; + + fp = fopen (NETBSD_LDAV_FILE, "r"); + if (fp == NULL) + return -1; + count = fscanf (fp, "%lu %lu %lu %lu\n", &load_ave[0], &load_ave[1], &load_ave[2], &scale); + (void) fclose (fp); if (count != 4) { errno = ENOTSUP; @@ -850,7 +915,7 @@ getloadavg (double loadavg[], int nelem) # ifndef SUNOS_5 if ( -# if !defined (_AIX) +# if !(defined (_AIX) && !defined (ps2)) nlist (KERNEL_FILE, name_list) # else /* _AIX */ knlist (name_list, 1, sizeof (name_list[0])) @@ -875,17 +940,33 @@ getloadavg (double loadavg[], int nelem) if (!getloadavg_initialized) { # ifndef SUNOS_5 + /* Set the channel to close on exec, so it does not + litter any child's descriptor table. */ +# ifndef O_CLOEXEC +# define O_CLOEXEC 0 +# endif int fd = open ("/dev/kmem", O_RDONLY | O_CLOEXEC); if (0 <= fd) { - channel = fd; - getloadavg_initialized = true; +# if F_DUPFD_CLOEXEC + if (fd <= STDERR_FILENO) + { + int fd1 = fcntl (fd, F_DUPFD_CLOEXEC, STDERR_FILENO + 1); + close (fd); + fd = fd1; + } +# endif + if (0 <= fd) + { + channel = fd; + getloadavg_initialized = true; + } } # else /* SUNOS_5 */ /* We pass 0 for the kernel, corefile, and swapfile names to use the currently running kernel. */ kd = kvm_open (0, 0, 0, O_RDONLY, 0); - if (kd != NULL) + if (kd != 0) { /* nlist the currently running kernel. */ kvm_nlist (kd, name_list); diff --git a/gl/getopt-cdefs.in.h b/gl/getopt-cdefs.in.h deleted file mode 100644 index e76c78c..0000000 --- a/gl/getopt-cdefs.in.h +++ /dev/null @@ -1,66 +0,0 @@ -/* getopt-on-non-glibc compatibility macros. - Copyright (C) 1989-2023 Free Software Foundation, Inc. - This file is part of gnulib. - Unlike most of the getopt implementation, it is NOT shared - with the GNU C Library. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GETOPT_CDEFS_H -#define _GETOPT_CDEFS_H 1 - -/* This header should not be used directly; include getopt.h or - unistd.h instead. It does not have a protective #error, because - the guard macro for getopt.h in gnulib is not fixed. */ - -/* getopt-core.h and getopt-ext.h are shared with GNU libc, and expect - a number of the internal macros supplied to GNU libc's headers by - sys/cdefs.h. Provide fallback definitions for all of them. */ -#if @HAVE_SYS_CDEFS_H@ -# include -#endif - -#ifndef __BEGIN_DECLS -# ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# else -# define __BEGIN_DECLS /* nothing */ -# endif -#endif -#ifndef __END_DECLS -# ifdef __cplusplus -# define __END_DECLS } -# else -# define __END_DECLS /* nothing */ -# endif -#endif - -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_VERSION__ -# define __GNUC_PREREQ(maj, min) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif - -#ifndef __THROW -# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major__ >= 4) -# define __THROW throw () -# else -# define __THROW -# endif -#endif - -#endif /* _GETOPT_CDEFS_H */ diff --git a/gl/getopt-core.h b/gl/getopt-core.h deleted file mode 100644 index c5dd493..0000000 --- a/gl/getopt-core.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Declarations for getopt (basic, portable features only). - Copyright (C) 1989-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _GETOPT_CORE_H -#define _GETOPT_CORE_H 1 - -/* This header should not be used directly; include getopt.h or - unistd.h instead. Unlike most bits headers, it does not have - a protective #error, because the guard macro for getopt.h in - gnulib is not fixed. */ - -__BEGIN_DECLS - -/* For communication from 'getopt' to the caller. - When 'getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when 'ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to 'getopt'. - - On entry to 'getopt', zero means this is the first call; initialize. - - When 'getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, 'optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message 'getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -/* Get definitions and prototypes for functions to process the - arguments in ARGV (ARGC of them, minus the program name) for - options given in OPTS. - - Return the option character from OPTS just read. Return -1 when - there are no more options. For unrecognized options, or options - missing arguments, 'optopt' is set to the option letter, and '?' is - returned. - - The OPTS string is a list of characters which are recognized option - letters, optionally followed by colons, specifying that that letter - takes an argument, to be placed in 'optarg'. - - If a letter in OPTS is followed by two colons, its argument is - optional. This behavior is specific to the GNU 'getopt'. - - The argument '--' causes premature termination of argument - scanning, explicitly telling 'getopt' that there are no more - options. - - If OPTS begins with '-', then non-option arguments are treated as - arguments to the option '\1'. This behavior is specific to the GNU - 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in - the environment, then do not permute arguments. - - For standards compliance, the 'argv' argument has the type - char *const *, but this is inaccurate; if argument permutation is - enabled, the argv array (not the strings it points to) must be - writable. */ - -extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) - __THROW _GL_ARG_NONNULL ((2, 3)); - -__END_DECLS - -#endif /* _GETOPT_CORE_H */ diff --git a/gl/getopt-ext.h b/gl/getopt-ext.h deleted file mode 100644 index d37c293..0000000 --- a/gl/getopt-ext.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Declarations for getopt (GNU extensions). - Copyright (C) 1989-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _GETOPT_EXT_H -#define _GETOPT_EXT_H 1 - -/* This header should not be used directly; include getopt.h instead. - Unlike most bits headers, it does not have a protective #error, - because the guard macro for getopt.h in gnulib is not fixed. */ - -__BEGIN_DECLS - -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of 'struct option' terminated by an element containing a name which is - zero. - - The field 'has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field 'flag' is not NULL, it points to a variable that is set - to the value given in the field 'val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an 'int' to - a compiled-in constant, such as set a value from 'optarg', set the - option's 'flag' field to zero and its 'val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero 'flag' field, 'getopt' - returns the contents of the 'val' field. */ - -struct option -{ - const char *name; - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the 'has_arg' field of 'struct option'. */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind) - __THROW _GL_ARG_NONNULL ((2, 3)); -extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind) - __THROW _GL_ARG_NONNULL ((2, 3)); - -__END_DECLS - -#endif /* _GETOPT_EXT_H */ diff --git a/gl/getopt-pfx-core.h b/gl/getopt-pfx-core.h deleted file mode 100644 index 3a2fde5..0000000 --- a/gl/getopt-pfx-core.h +++ /dev/null @@ -1,66 +0,0 @@ -/* getopt (basic, portable features) gnulib wrapper header. - Copyright (C) 1989-2023 Free Software Foundation, Inc. - This file is part of gnulib. - Unlike most of the getopt implementation, it is NOT shared - with the GNU C Library. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GETOPT_PFX_CORE_H -#define _GETOPT_PFX_CORE_H 1 - -/* This header should not be used directly; include getopt.h or - unistd.h instead. It does not have a protective #error, because - the guard macro for getopt.h in gnulib is not fixed. */ - -/* Standalone applications should #define __GETOPT_PREFIX to an - identifier that prefixes the external functions and variables - defined in getopt-core.h and getopt-ext.h. Systematically - rename identifiers so that they do not collide with the system - functions and variables. Renaming avoids problems with some - compilers and linkers. */ -#ifdef __GETOPT_PREFIX -# ifndef __GETOPT_ID -# define __GETOPT_CONCAT(x, y) x ## y -# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) -# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) -# endif -# undef getopt -# undef optarg -# undef opterr -# undef optind -# undef optopt -# define getopt __GETOPT_ID (getopt) -# define optarg __GETOPT_ID (optarg) -# define opterr __GETOPT_ID (opterr) -# define optind __GETOPT_ID (optind) -# define optopt __GETOPT_ID (optopt) - -/* Work around a a problem on macOS, which declares getopt with a - trailing __DARWIN_ALIAS(getopt) that would expand to something like - __asm("_" "rpl_getopt" "$UNIX2003") were it not for the following - hack to suppress the macOS declaration . */ -# ifdef __APPLE__ -# define _GETOPT -# endif - -/* The system's getopt.h may have already included getopt-core.h to - declare the unprefixed identifiers. Undef _GETOPT_CORE_H so that - getopt-core.h declares them with prefixes. */ -# undef _GETOPT_CORE_H -#endif - -#include - -#endif /* _GETOPT_PFX_CORE_H */ diff --git a/gl/getopt-pfx-ext.h b/gl/getopt-pfx-ext.h deleted file mode 100644 index 8578d72..0000000 --- a/gl/getopt-pfx-ext.h +++ /dev/null @@ -1,70 +0,0 @@ -/* getopt (GNU extensions) gnulib wrapper header. - Copyright (C) 1989-2023 Free Software Foundation, Inc. - This file is part of gnulib. - Unlike most of the getopt implementation, it is NOT shared - with the GNU C Library. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GETOPT_PFX_EXT_H -#define _GETOPT_PFX_EXT_H 1 - -/* This header should not be used directly; include getopt.h instead. - It does not have a protective #error, because the guard macro for - getopt.h in gnulib is not fixed. */ - -/* Standalone applications should #define __GETOPT_PREFIX to an - identifier that prefixes the external functions and variables - defined in getopt-core.h and getopt-ext.h. Systematically - rename identifiers so that they do not collide with the system - functions and variables. Renaming avoids problems with some - compilers and linkers. */ -#ifdef __GETOPT_PREFIX -# ifndef __GETOPT_ID -# define __GETOPT_CONCAT(x, y) x ## y -# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) -# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) -# endif -# undef getopt_long -# undef getopt_long_only -# undef option -# undef _getopt_internal -# define getopt_long __GETOPT_ID (getopt_long) -# define getopt_long_only __GETOPT_ID (getopt_long_only) -# define option __GETOPT_ID (option) -# define _getopt_internal __GETOPT_ID (getopt_internal) - -/* The system's getopt.h may have already included getopt-ext.h to - declare the unprefixed identifiers. Undef _GETOPT_EXT_H so that - getopt-ext.h declares them with prefixes. */ -# undef _GETOPT_EXT_H -#endif - -/* Standalone applications get correct prototypes for getopt_long and - getopt_long_only; they declare "char **argv". For backward - compatibility with old applications, if __GETOPT_PREFIX is not - defined, we supply GNU-libc-compatible, but incorrect, prototypes - using "char *const *argv". (GNU libc is stuck with the incorrect - prototypes, as they are baked into older versions of LSB.) */ -#ifndef __getopt_argv_const -# if defined __GETOPT_PREFIX -# define __getopt_argv_const /* empty */ -# else -# define __getopt_argv_const const -# endif -#endif - -#include - -#endif /* _GETOPT_PFX_EXT_H */ diff --git a/gl/getopt.c b/gl/getopt.c index 1e2441c..ef0f4ce 100644 --- a/gl/getopt.c +++ b/gl/getopt.c @@ -1,21 +1,23 @@ /* Getopt for GNU. - Copyright (C) 1987-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. + NOTE: getopt is part of the C library, so if you don't know what + "Keep this file name-space clean" means, talk to drepper@gnu.org + before changing it! + Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2013 Free Software + Foundation, Inc. + This file is part of the GNU C Library. - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - The GNU C Library is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _LIBC # include @@ -29,54 +31,30 @@ #include #ifdef _LIBC -/* When used as part of glibc, error printing must be done differently - for standards compliance. getopt is not a cancellation point, so - it must not call functions that are, and it is specified by an - older standard than stdio locking, so it must not refer to - functions in the "user namespace" related to stdio locking. - Finally, it must use glibc's internal message translation so that - the messages are looked up in the proper text domain. */ # include -# define fprintf __fxprintf_nocancel -# define flockfile(fp) _IO_flockfile (fp) -# define funlockfile(fp) _IO_funlockfile (fp) #else # include "gettext.h" # define _(msgid) gettext (msgid) -/* When used standalone, flockfile and funlockfile might not be - available. */ -# if (!defined _POSIX_THREAD_SAFE_FUNCTIONS \ - || (defined _WIN32 && ! defined __CYGWIN__)) -# define flockfile(fp) /* nop */ -# define funlockfile(fp) /* nop */ -# endif -/* When used standalone, do not attempt to use alloca. */ -# define __libc_use_alloca(size) 0 -# undef alloca -# define alloca(size) (abort (), (void *)0) #endif -/* This implementation of 'getopt' has three modes for handling - options interspersed with non-option arguments. It can stop - scanning for options at the first non-option argument encountered, - as POSIX specifies. It can continue scanning for options after the - first non-option argument, but permute 'argv' as it goes so that, - after 'getopt' is done, all the options precede all the non-option - arguments and 'optind' points to the first non-option argument. - Or, it can report non-option arguments as if they were arguments to - the option character '\x01'. +#if defined _LIBC && defined USE_IN_LIBIO +# include +#endif - The default behavior of 'getopt_long' is to permute the argument list. - When this implementation is used standalone, the default behavior of - 'getopt' is to stop at the first non-option argument, but when it is - used as part of GNU libc it also permutes the argument list. In both - cases, setting the environment variable POSIXLY_CORRECT to any value +/* This version of 'getopt' appears to the caller like standard Unix 'getopt' + but it behaves differently for the user, since it allows the user + to intersperse the options with the other arguments. + + As 'getopt_long' works, it permutes the elements of ARGV so that, + when it is done, all the options precede everything else. Thus + all application programs are extended to handle flexible argument order. + + Using 'getopt' or setting the environment variable POSIXLY_CORRECT disables permutation. + Then the behavior is completely standard. - If the first character of the OPTSTRING argument to 'getopt' or - 'getopt_long' is '+', both functions will stop at the first - non-option argument. If it is '-', both functions will report - non-option arguments as arguments to the option character '\x01'. */ + GNU application programs can use a third alternative mode in which + they can distinguish the relative order of options and other arguments. */ #include "getopt_int.h" @@ -117,7 +95,42 @@ int optopt = '?'; /* Keep a global copy of all internal members of getopt_data. */ static struct _getopt_data getopt_data; + +#if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV +extern char *getenv (); +#endif + +#ifdef _LIBC +/* Stored original parameters. + XXX This is no good solution. We should rather copy the args so + that we can compare them later. But we must not use malloc(3). */ +extern int __libc_argc; +extern char **__libc_argv; + +/* Bash 2.0 gives us an environment variable containing flags + indicating ARGV elements that should not be considered arguments. */ + +# ifdef USE_NONOPTION_FLAGS +/* Defined in getopt_init.c */ +extern char *__getopt_nonoption_flags; +# endif + +# ifdef USE_NONOPTION_FLAGS +# define SWAP_FLAGS(ch1, ch2) \ + if (d->__nonoption_flags_len > 0) \ + { \ + char __tmp = __getopt_nonoption_flags[ch1]; \ + __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ + __getopt_nonoption_flags[ch2] = __tmp; \ + } +# else +# define SWAP_FLAGS(ch1, ch2) +# endif +#else /* !_LIBC */ +# define SWAP_FLAGS(ch1, ch2) +#endif /* _LIBC */ + /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. @@ -140,40 +153,64 @@ exchange (char **argv, struct _getopt_data *d) It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ +#if defined _LIBC && defined USE_NONOPTION_FLAGS + /* First make sure the handling of the '__getopt_nonoption_flags' + string can work normally. Our top argument must be in the range + of the string. */ + if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len) + { + /* We must extend the array. The user plays games with us and + presents new arguments. */ + char *new_str = malloc (top + 1); + if (new_str == NULL) + d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0; + else + { + memset (__mempcpy (new_str, __getopt_nonoption_flags, + d->__nonoption_flags_max_len), + '\0', top + 1 - d->__nonoption_flags_max_len); + d->__nonoption_flags_max_len = top + 1; + __getopt_nonoption_flags = new_str; + } + } +#endif + while (top > middle && middle > bottom) { if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - int i; + { + /* Bottom segment is the short one. */ + int len = middle - bottom; + register int i; - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } + /* Swap it with the top part of the top segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); + } + /* Exclude the moved bottom segment from further swapping. */ + top -= len; + } else - { - /* Top segment is the short one. */ - int len = top - middle; - int i; + { + /* Top segment is the short one. */ + int len = top - middle; + register int i; - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } + /* Swap it with the bottom part of the bottom segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + SWAP_FLAGS (bottom + i, middle + i); + } + /* Exclude the moved top segment from further swapping. */ + bottom += len; + } } /* Update records for the slots the non-options now occupy. */ @@ -182,216 +219,25 @@ exchange (char **argv, struct _getopt_data *d) d->__last_nonopt = d->optind; } -/* Process the argument starting with d->__nextchar as a long option. - d->optind should *not* have been advanced over this argument. - - If the value returned is -1, it was not actually a long option, the - state is unchanged, and the argument should be processed as a set - of short options (this can only happen when long_only is true). - Otherwise, the option (and its argument, if any) have been consumed - and the return value is the value to return from _getopt_internal_r. */ -static int -process_long_option (int argc, char **argv, const char *optstring, - const struct option *longopts, int *longind, - int long_only, struct _getopt_data *d, - int print_errors, const char *prefix) -{ - char *nameend; - size_t namelen; - const struct option *p; - const struct option *pfound = NULL; - int n_options; - int option_index; - - for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - namelen = nameend - d->__nextchar; - - /* First look for an exact match, counting the options as a side - effect. */ - for (p = longopts, n_options = 0; p->name; p++, n_options++) - if (!strncmp (p->name, d->__nextchar, namelen) - && namelen == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - option_index = n_options; - break; - } - - if (pfound == NULL) - { - /* Didn't find an exact match, so look for abbreviations. */ - unsigned char *ambig_set = NULL; - int ambig_malloced = 0; - int ambig_fallback = 0; - int indfound = -1; - - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, d->__nextchar, namelen)) - { - if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else if (long_only - || pfound->has_arg != p->has_arg - || pfound->flag != p->flag - || pfound->val != p->val) - { - /* Second or later nonexact match found. */ - if (!ambig_fallback) - { - if (!print_errors) - /* Don't waste effort tracking the ambig set if - we're not going to print it anyway. */ - ambig_fallback = 1; - else if (!ambig_set) - { - if (__libc_use_alloca (n_options)) - ambig_set = alloca (n_options); - else if ((ambig_set = malloc (n_options)) == NULL) - /* Fall back to simpler error message. */ - ambig_fallback = 1; - else - ambig_malloced = 1; - - if (ambig_set) - { - memset (ambig_set, 0, n_options); - ambig_set[indfound] = 1; - } - } - if (ambig_set) - ambig_set[option_index] = 1; - } - } - } - - if (ambig_set || ambig_fallback) - { - if (print_errors) - { - if (ambig_fallback) - fprintf (stderr, _("%s: option '%s%s' is ambiguous\n"), - argv[0], prefix, d->__nextchar); - else - { - flockfile (stderr); - fprintf (stderr, - _("%s: option '%s%s' is ambiguous; possibilities:"), - argv[0], prefix, d->__nextchar); - - for (option_index = 0; option_index < n_options; option_index++) - if (ambig_set[option_index]) - fprintf (stderr, " '%s%s'", - prefix, longopts[option_index].name); - - /* This must use 'fprintf' even though it's only - printing a single character, so that it goes through - __fxprintf_nocancel when compiled as part of glibc. */ - fprintf (stderr, "\n"); - funlockfile (stderr); - } - } - if (ambig_malloced) - free (ambig_set); - d->__nextchar += strlen (d->__nextchar); - d->optind++; - d->optopt = 0; - return '?'; - } - - option_index = indfound; - } - - if (pfound == NULL) - { - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short option, - then it's an error. */ - if (!long_only || argv[d->optind][1] == '-' - || strchr (optstring, *d->__nextchar) == NULL) - { - if (print_errors) - fprintf (stderr, _("%s: unrecognized option '%s%s'\n"), - argv[0], prefix, d->__nextchar); - - d->__nextchar = NULL; - d->optind++; - d->optopt = 0; - return '?'; - } - - /* Otherwise interpret it as a short option. */ - return -1; - } - - /* We have found a matching long option. Consume it. */ - d->optind++; - d->__nextchar = NULL; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - d->optarg = nameend + 1; - else - { - if (print_errors) - fprintf (stderr, - _("%s: option '%s%s' doesn't allow an argument\n"), - argv[0], prefix, pfound->name); - - d->optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (d->optind < argc) - d->optarg = argv[d->optind++]; - else - { - if (print_errors) - fprintf (stderr, - _("%s: option '%s%s' requires an argument\n"), - argv[0], prefix, pfound->name); - - d->optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; -} - -/* Initialize internal data upon the first call to getopt. */ +/* Initialize the internal data when the first call is made. */ static const char * -_getopt_initialize (_GL_UNUSED int argc, - _GL_UNUSED char **argv, const char *optstring, - struct _getopt_data *d, int posixly_correct) +_getopt_initialize (int argc _GL_UNUSED, + char **argv _GL_UNUSED, const char *optstring, + struct _getopt_data *d, int posixly_correct) { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ - if (d->optind == 0) - d->optind = 1; d->__first_nonopt = d->__last_nonopt = d->optind; + d->__nextchar = NULL; + d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT"); + /* Determine how to handle the ordering of options and nonoptions. */ + if (optstring[0] == '-') { d->__ordering = RETURN_IN_ORDER; @@ -402,12 +248,41 @@ _getopt_initialize (_GL_UNUSED int argc, d->__ordering = REQUIRE_ORDER; ++optstring; } - else if (posixly_correct || !!getenv ("POSIXLY_CORRECT")) + else if (d->__posixly_correct) d->__ordering = REQUIRE_ORDER; else d->__ordering = PERMUTE; - d->__initialized = 1; +#if defined _LIBC && defined USE_NONOPTION_FLAGS + if (!d->__posixly_correct + && argc == __libc_argc && argv == __libc_argv) + { + if (d->__nonoption_flags_max_len == 0) + { + if (__getopt_nonoption_flags == NULL + || __getopt_nonoption_flags[0] == '\0') + d->__nonoption_flags_max_len = -1; + else + { + const char *orig_str = __getopt_nonoption_flags; + int len = d->__nonoption_flags_max_len = strlen (orig_str); + if (d->__nonoption_flags_max_len < argc) + d->__nonoption_flags_max_len = argc; + __getopt_nonoption_flags = + (char *) malloc (d->__nonoption_flags_max_len); + if (__getopt_nonoption_flags == NULL) + d->__nonoption_flags_max_len = -1; + else + memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), + '\0', d->__nonoption_flags_max_len - len); + } + } + d->__nonoption_flags_len = d->__nonoption_flags_max_len; + } + else + d->__nonoption_flags_len = 0; +#endif + return optstring; } @@ -469,8 +344,8 @@ _getopt_initialize (_GL_UNUSED int argc, int _getopt_internal_r (int argc, char **argv, const char *optstring, - const struct option *longopts, int *longind, - int long_only, struct _getopt_data *d, int posixly_correct) + const struct option *longopts, int *longind, + int long_only, struct _getopt_data *d, int posixly_correct) { int print_errors = d->opterr; @@ -480,129 +355,431 @@ _getopt_internal_r (int argc, char **argv, const char *optstring, d->optarg = NULL; if (d->optind == 0 || !d->__initialized) - optstring = _getopt_initialize (argc, argv, optstring, d, posixly_correct); + { + if (d->optind == 0) + d->optind = 1; /* Don't scan ARGV[0], the program name. */ + optstring = _getopt_initialize (argc, argv, optstring, d, + posixly_correct); + d->__initialized = 1; + } else if (optstring[0] == '-' || optstring[0] == '+') optstring++; - if (optstring[0] == ':') print_errors = 0; - /* Test whether ARGV[optind] points to a non-option argument. */ -#define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') + /* Test whether ARGV[optind] points to a non-option argument. + Either it does not have option syntax, or there is an environment flag + from the shell indicating it is not an option. The later information + is only used when the used in the GNU libc. */ +#if defined _LIBC && defined USE_NONOPTION_FLAGS +# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \ + || (d->optind < d->__nonoption_flags_len \ + && __getopt_nonoption_flags[d->optind] == '1')) +#else +# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') +#endif if (d->__nextchar == NULL || *d->__nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ + moved back by the user (who may also have changed the arguments). */ if (d->__last_nonopt > d->optind) - d->__last_nonopt = d->optind; + d->__last_nonopt = d->optind; if (d->__first_nonopt > d->optind) - d->__first_nonopt = d->optind; + d->__first_nonopt = d->optind; if (d->__ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ + { + /* If we have just processed some options following some non-options, + exchange them so that the options come first. */ - if (d->__first_nonopt != d->__last_nonopt - && d->__last_nonopt != d->optind) - exchange (argv, d); - else if (d->__last_nonopt != d->optind) - d->__first_nonopt = d->optind; + if (d->__first_nonopt != d->__last_nonopt + && d->__last_nonopt != d->optind) + exchange ((char **) argv, d); + else if (d->__last_nonopt != d->optind) + d->__first_nonopt = d->optind; - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ + /* Skip any additional non-options + and extend the range of non-options previously skipped. */ - while (d->optind < argc && NONOPTION_P) - d->optind++; - d->__last_nonopt = d->optind; - } + while (d->optind < argc && NONOPTION_P) + d->optind++; + d->__last_nonopt = d->optind; + } /* The special ARGV-element '--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ + Skip it like a null option, + then exchange with previous non-options as if it were an option, + then skip everything else like a non-option. */ if (d->optind != argc && !strcmp (argv[d->optind], "--")) - { - d->optind++; + { + d->optind++; - if (d->__first_nonopt != d->__last_nonopt - && d->__last_nonopt != d->optind) - exchange (argv, d); - else if (d->__first_nonopt == d->__last_nonopt) - d->__first_nonopt = d->optind; - d->__last_nonopt = argc; + if (d->__first_nonopt != d->__last_nonopt + && d->__last_nonopt != d->optind) + exchange ((char **) argv, d); + else if (d->__first_nonopt == d->__last_nonopt) + d->__first_nonopt = d->optind; + d->__last_nonopt = argc; - d->optind = argc; - } + d->optind = argc; + } /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ + and back over any non-options that we skipped and permuted. */ if (d->optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (d->__first_nonopt != d->__last_nonopt) - d->optind = d->__first_nonopt; - return -1; - } + { + /* Set the next-arg-index to point at the non-options + that we previously skipped, so the caller will digest them. */ + if (d->__first_nonopt != d->__last_nonopt) + d->optind = d->__first_nonopt; + return -1; + } /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ + either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) - { - if (d->__ordering == REQUIRE_ORDER) - return -1; - d->optarg = argv[d->optind++]; - return 1; - } + { + if (d->__ordering == REQUIRE_ORDER) + return -1; + d->optarg = argv[d->optind++]; + return 1; + } /* We have found another option-ARGV-element. - Check whether it might be a long option. */ - if (longopts) - { - if (argv[d->optind][1] == '-') - { - /* "--foo" is always a long option. The special option - "--" was handled above. */ - d->__nextchar = argv[d->optind] + 2; - return process_long_option (argc, argv, optstring, longopts, - longind, long_only, d, - print_errors, "--"); - } + Skip the initial punctuation. */ - /* If long_only and the ARGV-element has the form "-f", - where f is a valid short option, don't consider it an - abbreviated form of a long option that starts with f. - Otherwise there would be no way to give the -f short - option. + d->__nextchar = (argv[d->optind] + 1 + + (longopts != NULL && argv[d->optind][1] == '-')); + } - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an - abbreviation of the long option, just like "--fu", and - not "-f" with arg "u". + /* Decode the current option-ARGV-element. */ - This distinction seems to be the most useful approach. */ - if (long_only && (argv[d->optind][2] - || !strchr (optstring, argv[d->optind][1]))) - { - int code; - d->__nextchar = argv[d->optind] + 1; - code = process_long_option (argc, argv, optstring, longopts, - longind, long_only, d, - print_errors, "-"); - if (code != -1) - return code; - } - } + /* Check whether the ARGV-element is a long option. - /* It is not a long option. Skip the initial punctuation. */ - d->__nextchar = argv[d->optind] + 1; + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + + if (longopts != NULL + && (argv[d->optind][1] == '-' + || (long_only && (argv[d->optind][2] + || !strchr (optstring, argv[d->optind][1]))))) + { + char *nameend; + unsigned int namelen; + const struct option *p; + const struct option *pfound = NULL; + struct option_list + { + const struct option *p; + struct option_list *next; + } *ambig_list = NULL; + int exact = 0; + int indfound = -1; + int option_index; + + for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) + /* Do nothing. */ ; + namelen = nameend - d->__nextchar; + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, d->__nextchar, namelen)) + { + if (namelen == (unsigned int) strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else if (long_only + || pfound->has_arg != p->has_arg + || pfound->flag != p->flag + || pfound->val != p->val) + { + /* Second or later nonexact match found. */ + struct option_list *newp = malloc (sizeof (*newp)); + newp->p = p; + newp->next = ambig_list; + ambig_list = newp; + } + } + + if (ambig_list != NULL && !exact) + { + if (print_errors) + { + struct option_list first; + first.p = pfound; + first.next = ambig_list; + ambig_list = &first; + +#if defined _LIBC && defined USE_IN_LIBIO + char *buf = NULL; + size_t buflen = 0; + + FILE *fp = open_memstream (&buf, &buflen); + if (fp != NULL) + { + fprintf (fp, + _("%s: option '%s' is ambiguous; possibilities:"), + argv[0], argv[d->optind]); + + do + { + fprintf (fp, " '--%s'", ambig_list->p->name); + ambig_list = ambig_list->next; + } + while (ambig_list != NULL); + + fputc_unlocked ('\n', fp); + + if (__builtin_expect (fclose (fp) != EOF, 1)) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } + } +#else + fprintf (stderr, + _("%s: option '%s' is ambiguous; possibilities:"), + argv[0], argv[d->optind]); + do + { + fprintf (stderr, " '--%s'", ambig_list->p->name); + ambig_list = ambig_list->next; + } + while (ambig_list != NULL); + + fputc ('\n', stderr); +#endif + } + d->__nextchar += strlen (d->__nextchar); + d->optind++; + d->optopt = 0; + return '?'; + } + + while (ambig_list != NULL) + { + struct option_list *pn = ambig_list->next; + free (ambig_list); + ambig_list = pn; + } + + if (pfound != NULL) + { + option_index = indfound; + d->optind++; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + d->optarg = nameend + 1; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + int n; +#endif + + if (argv[d->optind - 1][1] == '-') + { + /* --option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("\ +%s: option '--%s' doesn't allow an argument\n"), + argv[0], pfound->name); +#else + fprintf (stderr, _("\ +%s: option '--%s' doesn't allow an argument\n"), + argv[0], pfound->name); +#endif + } + else + { + /* +option or -option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("\ +%s: option '%c%s' doesn't allow an argument\n"), + argv[0], argv[d->optind - 1][0], + pfound->name); +#else + fprintf (stderr, _("\ +%s: option '%c%s' doesn't allow an argument\n"), + argv[0], argv[d->optind - 1][0], + pfound->name); +#endif + } + +#if defined _LIBC && defined USE_IN_LIBIO + if (n >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#endif + } + + d->__nextchar += strlen (d->__nextchar); + + d->optopt = pfound->val; + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (d->optind < argc) + d->optarg = argv[d->optind++]; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("\ +%s: option '--%s' requires an argument\n"), + argv[0], pfound->name) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, + _("%s: option '--%s' requires an argument\n"), + argv[0], pfound->name); +#endif + } + d->__nextchar += strlen (d->__nextchar); + d->optopt = pfound->val; + return optstring[0] == ':' ? ':' : '?'; + } + } + d->__nextchar += strlen (d->__nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + + /* Can't find it as a long option. If this is not getopt_long_only, + or the option starts with '--' or is not a valid short + option, then it's an error. + Otherwise interpret it as a short option. */ + if (!long_only || argv[d->optind][1] == '-' + || strchr (optstring, *d->__nextchar) == NULL) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + int n; +#endif + + if (argv[d->optind][1] == '-') + { + /* --option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("%s: unrecognized option '--%s'\n"), + argv[0], d->__nextchar); +#else + fprintf (stderr, _("%s: unrecognized option '--%s'\n"), + argv[0], d->__nextchar); +#endif + } + else + { + /* +option or -option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("%s: unrecognized option '%c%s'\n"), + argv[0], argv[d->optind][0], d->__nextchar); +#else + fprintf (stderr, _("%s: unrecognized option '%c%s'\n"), + argv[0], argv[d->optind][0], d->__nextchar); +#endif + } + +#if defined _LIBC && defined USE_IN_LIBIO + if (n >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#endif + } + d->__nextchar = (char *) ""; + d->optind++; + d->optopt = 0; + return '?'; + } } /* Look at and handle the next short option-character. */ @@ -617,83 +794,331 @@ _getopt_internal_r (int argc, char **argv, const char *optstring, if (temp == NULL || c == ':' || c == ';') { - if (print_errors) - fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c); - d->optopt = c; - return '?'; + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + int n; +#endif + +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("%s: invalid option -- '%c'\n"), + argv[0], c); +#else + fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c); +#endif + +#if defined _LIBC && defined USE_IN_LIBIO + if (n >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#endif + } + d->optopt = c; + return '?'; } - /* Convenience. Treat POSIX -W foo same as long option --foo */ - if (temp[0] == 'W' && temp[1] == ';' && longopts != NULL) + if (temp[0] == 'W' && temp[1] == ';') { - /* This is an option that requires an argument. */ - if (*d->__nextchar != '\0') - d->optarg = d->__nextchar; - else if (d->optind == argc) - { - if (print_errors) - fprintf (stderr, - _("%s: option requires an argument -- '%c'\n"), - argv[0], c); + char *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = 0; + int option_index; - d->optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - return c; - } - else - d->optarg = argv[d->optind]; + if (longopts == NULL) + goto no_longs; - d->__nextchar = d->optarg; - d->optarg = NULL; - return process_long_option (argc, argv, optstring, longopts, longind, - 0 /* long_only */, d, print_errors, "-W "); + /* This is an option that requires an argument. */ + if (*d->__nextchar != '\0') + { + d->optarg = d->__nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + d->optind++; + } + else if (d->optind == argc) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, + _("%s: option requires an argument -- '%c'\n"), + argv[0], c) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, + _("%s: option requires an argument -- '%c'\n"), + argv[0], c); +#endif + } + d->optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + return c; + } + else + /* We already incremented 'd->optind' once; + increment it again when taking next ARGV-elt as argument. */ + d->optarg = argv[d->optind++]; + + /* optarg is now the argument, see if it's in the + table of longopts. */ + + for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '='; + nameend++) + /* Do nothing. */ ; + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) + { + if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else if (long_only + || pfound->has_arg != p->has_arg + || pfound->flag != p->flag + || pfound->val != p->val) + /* Second or later nonexact match found. */ + ambig = 1; + } + if (ambig && !exact) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("%s: option '-W %s' is ambiguous\n"), + argv[0], d->optarg) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, _("%s: option '-W %s' is ambiguous\n"), + argv[0], d->optarg); +#endif + } + d->__nextchar += strlen (d->__nextchar); + d->optind++; + return '?'; + } + if (pfound != NULL) + { + option_index = indfound; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + d->optarg = nameend + 1; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("\ +%s: option '-W %s' doesn't allow an argument\n"), + argv[0], pfound->name) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, _("\ +%s: option '-W %s' doesn't allow an argument\n"), + argv[0], pfound->name); +#endif + } + + d->__nextchar += strlen (d->__nextchar); + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (d->optind < argc) + d->optarg = argv[d->optind++]; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("\ +%s: option '-W %s' requires an argument\n"), + argv[0], pfound->name) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, _("\ +%s: option '-W %s' requires an argument\n"), + argv[0], pfound->name); +#endif + } + d->__nextchar += strlen (d->__nextchar); + return optstring[0] == ':' ? ':' : '?'; + } + } + else + d->optarg = NULL; + d->__nextchar += strlen (d->__nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + + no_longs: + d->__nextchar = NULL; + return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*d->__nextchar != '\0') - { - d->optarg = d->__nextchar; - d->optind++; - } - else - d->optarg = NULL; - d->__nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*d->__nextchar != '\0') - { - d->optarg = d->__nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - d->optind++; - } - else if (d->optind == argc) - { - if (print_errors) - fprintf (stderr, - _("%s: option requires an argument -- '%c'\n"), - argv[0], c); + if (temp[2] == ':') + { + /* This is an option that accepts an argument optionally. */ + if (*d->__nextchar != '\0') + { + d->optarg = d->__nextchar; + d->optind++; + } + else + d->optarg = NULL; + d->__nextchar = NULL; + } + else + { + /* This is an option that requires an argument. */ + if (*d->__nextchar != '\0') + { + d->optarg = d->__nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + d->optind++; + } + else if (d->optind == argc) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; - d->optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented 'optind' once; - increment it again when taking next ARGV-elt as argument. */ - d->optarg = argv[d->optind++]; - d->__nextchar = NULL; - } + if (__asprintf (&buf, _("\ +%s: option requires an argument -- '%c'\n"), + argv[0], c) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, + _("%s: option requires an argument -- '%c'\n"), + argv[0], c); +#endif + } + d->optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + } + else + /* We already incremented 'optind' once; + increment it again when taking next ARGV-elt as argument. */ + d->optarg = argv[d->optind++]; + d->__nextchar = NULL; + } } return c; } @@ -701,8 +1126,8 @@ _getopt_internal_r (int argc, char **argv, const char *optstring, int _getopt_internal (int argc, char **argv, const char *optstring, - const struct option *longopts, int *longind, int long_only, - int posixly_correct) + const struct option *longopts, int *longind, int long_only, + int posixly_correct) { int result; @@ -710,8 +1135,8 @@ _getopt_internal (int argc, char **argv, const char *optstring, getopt_data.opterr = opterr; result = _getopt_internal_r (argc, argv, optstring, longopts, - longind, long_only, &getopt_data, - posixly_correct); + longind, long_only, &getopt_data, + posixly_correct); optind = getopt_data.optind; optarg = getopt_data.optarg; @@ -720,23 +1145,32 @@ _getopt_internal (int argc, char **argv, const char *optstring, return result; } -/* glibc gets a LSB-compliant getopt and a POSIX-complaint __posix_getopt. - Standalone applications just get a POSIX-compliant getopt. - POSIX and LSB both require these functions to take 'char *const *argv' - even though this is incorrect (because of the permutation). */ -#define GETOPT_ENTRY(NAME, POSIXLY_CORRECT) \ - int \ - NAME (int argc, char *const *argv, const char *optstring) \ - { \ - return _getopt_internal (argc, (char **)argv, optstring, \ - 0, 0, 0, POSIXLY_CORRECT); \ - } +/* glibc gets a LSB-compliant getopt. + Standalone applications get a POSIX-compliant getopt. */ +#if _LIBC +enum { POSIXLY_CORRECT = 0 }; +#else +enum { POSIXLY_CORRECT = 1 }; +#endif + +int +getopt (int argc, char *const *argv, const char *optstring) +{ + return _getopt_internal (argc, (char **) argv, optstring, + (const struct option *) 0, + (int *) 0, + 0, POSIXLY_CORRECT); +} #ifdef _LIBC -GETOPT_ENTRY(getopt, 0) -GETOPT_ENTRY(__posix_getopt, 1) -#else -GETOPT_ENTRY(getopt, 1) +int +__posix_getopt (int argc, char *const *argv, const char *optstring) +{ + return _getopt_internal (argc, argv, optstring, + (const struct option *) 0, + (int *) 0, + 0, 1); +} #endif @@ -757,51 +1191,51 @@ main (int argc, char **argv) c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) - break; + break; switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; - case 'a': - printf ("option a\n"); - break; + case 'a': + printf ("option a\n"); + break; - case 'b': - printf ("option b\n"); - break; + case 'b': + printf ("option b\n"); + break; - case 'c': - printf ("option c with value '%s'\n", optarg); - break; + case 'c': + printf ("option c with value '%s'\n", optarg); + break; - case '?': - break; + case '?': + break; - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) - printf ("%s ", argv[optind++]); + printf ("%s ", argv[optind++]); printf ("\n"); } diff --git a/gl/getopt.in.h b/gl/getopt.in.h index 0867d36..d9c7d81 100644 --- a/gl/getopt.in.h +++ b/gl/getopt.in.h @@ -1,22 +1,20 @@ /* Declarations for getopt. - Copyright (C) 1989-2023 Free Software Foundation, Inc. - This file is part of gnulib. - Unlike most of the getopt implementation, it is NOT shared - with the GNU C Library, which supplies a different version of - this file. + Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software + Foundation, Inc. + This file is part of the GNU C Library. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_GETOPT_H @@ -34,15 +32,22 @@ # undef _GL_SYSTEM_GETOPT #endif -#define _@GUARD_PREFIX@_GETOPT_H 1 +#ifndef _@GUARD_PREFIX@_GETOPT_H + +#ifndef __need_getopt +# define _@GUARD_PREFIX@_GETOPT_H 1 +#endif /* Standalone applications should #define __GETOPT_PREFIX to an identifier that prefixes the external functions and variables - defined in getopt-core.h and getopt-ext.h. When this happens, - include the headers that might declare getopt so that they will not - cause confusion if included after this file (if the system had - , we have already included it). */ -#if defined __GETOPT_PREFIX + defined in this header. When this happens, include the + headers that might declare getopt so that they will not cause + confusion if included after this file (if the system had , + we have already included it). Then systematically rename + identifiers so that they do not collide with the system functions + and variables. Renaming avoids problems with some compilers and + linkers. */ +#if defined __GETOPT_PREFIX && !defined __need_getopt # if !@HAVE_GETOPT_H@ # define __need_system_stdlib_h # include @@ -50,12 +55,201 @@ # include # include # endif +# undef __need_getopt +# undef getopt +# undef getopt_long +# undef getopt_long_only +# undef optarg +# undef opterr +# undef optind +# undef optopt +# undef option +# define __GETOPT_CONCAT(x, y) x ## y +# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) +# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) +# define getopt __GETOPT_ID (getopt) +# define getopt_long __GETOPT_ID (getopt_long) +# define getopt_long_only __GETOPT_ID (getopt_long_only) +# define optarg __GETOPT_ID (optarg) +# define opterr __GETOPT_ID (opterr) +# define optind __GETOPT_ID (optind) +# define optopt __GETOPT_ID (optopt) +# define option __GETOPT_ID (option) +# define _getopt_internal __GETOPT_ID (getopt_internal) +#endif + +/* Standalone applications get correct prototypes for getopt_long and + getopt_long_only; they declare "char **argv". libc uses prototypes + with "char *const *argv" that are incorrect because getopt_long and + getopt_long_only can permute argv; this is required for backward + compatibility (e.g., for LSB 2.0.1). + + This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt', + but it caused redefinition warnings if both unistd.h and getopt.h were + included, since unistd.h includes getopt.h having previously defined + __need_getopt. + + The only place where __getopt_argv_const is used is in definitions + of getopt_long and getopt_long_only below, but these are visible + only if __need_getopt is not defined, so it is quite safe to rewrite + the conditional as follows: +*/ +#if !defined __need_getopt +# if defined __GETOPT_PREFIX +# define __getopt_argv_const /* empty */ +# else +# define __getopt_argv_const const +# endif +#endif + +/* If __GNU_LIBRARY__ is not already defined, either we are being used + standalone, or this is the first header included in the source file. + If we are being used with glibc, we need to include , but + that does not exist if we are standalone. So: if __GNU_LIBRARY__ is + not defined, include , which will pull in for us + if it's from glibc. (Why ctype.h? It's guaranteed to exist and it + doesn't flood the namespace with stuff the way some other headers do.) */ +#if !defined __GNU_LIBRARY__ +# include +#endif + +#ifndef __THROW +# ifndef __GNUC_PREREQ +# define __GNUC_PREREQ(maj, min) (0) +# endif +# if defined __cplusplus && __GNUC_PREREQ (2,8) +# define __THROW throw () +# else +# define __THROW +# endif #endif /* The definition of _GL_ARG_NONNULL is copied here. */ -#include -#include -#include +#ifdef __cplusplus +extern "C" { +#endif + +/* For communication from 'getopt' to the caller. + When 'getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when 'ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. */ + +extern char *optarg; + +/* Index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to 'getopt'. + + On entry to 'getopt', zero means this is the first call; initialize. + + When 'getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + + Otherwise, 'optind' communicates from one call to the next + how much of ARGV has been scanned so far. */ + +extern int optind; + +/* Callers store zero here to inhibit the error message 'getopt' prints + for unrecognized options. */ + +extern int opterr; + +/* Set to an option character which was unrecognized. */ + +extern int optopt; + +#ifndef __need_getopt +/* Describe the long-named options requested by the application. + The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector + of 'struct option' terminated by an element containing a name which is + zero. + + The field 'has_arg' is: + no_argument (or 0) if the option does not take an argument, + required_argument (or 1) if the option requires an argument, + optional_argument (or 2) if the option takes an optional argument. + + If the field 'flag' is not NULL, it points to a variable that is set + to the value given in the field 'val' when the option is found, but + left unchanged if the option is not found. + + To have a long-named option do something other than set an 'int' to + a compiled-in constant, such as set a value from 'optarg', set the + option's 'flag' field to zero and its 'val' field to a nonzero + value (the equivalent single-letter option character, if there is + one). For long options that have a zero 'flag' field, 'getopt' + returns the contents of the 'val' field. */ + +# if !GNULIB_defined_struct_option +struct option +{ + const char *name; + /* has_arg can't be an enum because some compilers complain about + type mismatches in all the code that assumes it is an int. */ + int has_arg; + int *flag; + int val; +}; +# define GNULIB_defined_struct_option 1 +# endif + +/* Names for the values of the 'has_arg' field of 'struct option'. */ + +# define no_argument 0 +# define required_argument 1 +# define optional_argument 2 +#endif /* need getopt */ + + +/* Get definitions and prototypes for functions to process the + arguments in ARGV (ARGC of them, minus the program name) for + options given in OPTS. + + Return the option character from OPTS just read. Return -1 when + there are no more options. For unrecognized options, or options + missing arguments, 'optopt' is set to the option letter, and '?' is + returned. + + The OPTS string is a list of characters which are recognized option + letters, optionally followed by colons, specifying that that letter + takes an argument, to be placed in 'optarg'. + + If a letter in OPTS is followed by two colons, its argument is + optional. This behavior is specific to the GNU 'getopt'. + + The argument '--' causes premature termination of argument + scanning, explicitly telling 'getopt' that there are no more + options. + + If OPTS begins with '-', then non-option arguments are treated as + arguments to the option '\1'. This behavior is specific to the GNU + 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in + the environment, then do not permute arguments. */ + +extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) + __THROW _GL_ARG_NONNULL ((2, 3)); + +#ifndef __need_getopt +extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind) + __THROW _GL_ARG_NONNULL ((2, 3)); +extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind) + __THROW _GL_ARG_NONNULL ((2, 3)); + +#endif + +#ifdef __cplusplus +} +#endif + +/* Make sure we later can get all the definitions and declarations. */ +#undef __need_getopt #endif /* _@GUARD_PREFIX@_GETOPT_H */ +#endif /* _@GUARD_PREFIX@_GETOPT_H */ diff --git a/gl/getopt1.c b/gl/getopt1.c index 49323aa..55a6b4e 100644 --- a/gl/getopt1.c +++ b/gl/getopt1.c @@ -1,44 +1,56 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. + Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2013 Free Software + Foundation, Inc. + This file is part of the GNU C Library. - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - The GNU C Library is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ -#ifndef _LIBC +#ifdef _LIBC +# include +#else # include +# include "getopt.h" +#endif +#include "getopt_int.h" + +#include + +/* This needs to come after some library #include + to get __GNU_LIBRARY__ defined. */ +#ifdef __GNU_LIBRARY__ +#include #endif -#include "getopt.h" -#include "getopt_int.h" +#ifndef NULL +#define NULL 0 +#endif int getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, - const struct option *long_options, int *opt_index) + const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, - opt_index, 0, 0); + opt_index, 0, 0); } int _getopt_long_r (int argc, char **argv, const char *options, - const struct option *long_options, int *opt_index, - struct _getopt_data *d) + const struct option *long_options, int *opt_index, + struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, - 0, d, 0); + 0, d, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. @@ -48,27 +60,26 @@ _getopt_long_r (int argc, char **argv, const char *options, int getopt_long_only (int argc, char *__getopt_argv_const *argv, - const char *options, - const struct option *long_options, int *opt_index) + const char *options, + const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, - opt_index, 1, 0); + opt_index, 1, 0); } int _getopt_long_only_r (int argc, char **argv, const char *options, - const struct option *long_options, int *opt_index, - struct _getopt_data *d) + const struct option *long_options, int *opt_index, + struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, - 1, d, 0); + 1, d, 0); } #ifdef TEST #include -#include int main (int argc, char **argv) @@ -82,74 +93,74 @@ main (int argc, char **argv) int option_index = 0; static const struct option long_options[] = { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} + {"add", 1, 0, 0}, + {"append", 0, 0, 0}, + {"delete", 1, 0, 0}, + {"verbose", 0, 0, 0}, + {"create", 0, 0, 0}, + {"file", 1, 0, 0}, + {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); + long_options, &option_index); if (c == -1) - break; + break; switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; + { + case 0: + printf ("option %s", long_options[option_index].name); + if (optarg) + printf (" with arg %s", optarg); + printf ("\n"); + break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; - case 'a': - printf ("option a\n"); - break; + case 'a': + printf ("option a\n"); + break; - case 'b': - printf ("option b\n"); - break; + case 'b': + printf ("option b\n"); + break; - case 'c': - printf ("option c with value '%s'\n", optarg); - break; + case 'c': + printf ("option c with value '%s'\n", optarg); + break; - case 'd': - printf ("option d with value '%s'\n", optarg); - break; + case 'd': + printf ("option d with value '%s'\n", optarg); + break; - case '?': - break; + case '?': + break; - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) - printf ("%s ", argv[optind++]); + printf ("%s ", argv[optind++]); printf ("\n"); } diff --git a/gl/getopt_int.h b/gl/getopt_int.h index 4d9e24b..a6e4b9e 100644 --- a/gl/getopt_int.h +++ b/gl/getopt_int.h @@ -1,31 +1,30 @@ /* Internal declarations for getopt. - Copyright (C) 1989-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. + Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2013 Free Software + Foundation, Inc. + This file is part of the GNU C Library. - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - The GNU C Library is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _GETOPT_INT_H -#define _GETOPT_INT_H 1 +#define _GETOPT_INT_H 1 #include extern int _getopt_internal (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only, int __posixly_correct); + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, int __posixly_correct); /* Reentrant versions which can handle parsing multiple argument @@ -33,20 +32,28 @@ extern int _getopt_internal (int ___argc, char **___argv, /* Describe how to deal with options that follow non-option ARGV-elements. - REQUIRE_ORDER means don't recognize them as options; stop option - processing when the first non-option is seen. This is what POSIX - specifies should happen. + If the caller did not specify anything, + the default is REQUIRE_ORDER if the environment variable + POSIXLY_CORRECT is defined, PERMUTE otherwise. - PERMUTE means permute the contents of ARGV as we scan, so that - eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written - to expect this. + REQUIRE_ORDER means don't recognize them as options; + stop option processing when the first non-option is seen. + This is what Unix does. + This mode of operation is selected by either setting the environment + variable POSIXLY_CORRECT, or using '+' as the first character + of the list of option characters, or by calling getopt. + + PERMUTE is the default. We permute the contents of ARGV as we + scan, so that eventually all the non-options are at the end. + This allows options to be given in any order, even with programs + that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option - with character code 1. + with character code 1. Using '-' as the first character of the + list of option characters selects this mode of operation. The special argument '--' forces an end of option-scanning regardless of the value of 'ordering'. In the case of RETURN_IN_ORDER, only @@ -84,6 +91,11 @@ struct _getopt_data /* See __ord above. */ enum __ord __ordering; + /* If the POSIXLY_CORRECT environment variable is set + or getopt was called. */ + int __posixly_correct; + + /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have @@ -92,27 +104,32 @@ struct _getopt_data int __first_nonopt; int __last_nonopt; + +#if defined _LIBC && defined USE_NONOPTION_FLAGS + int __nonoption_flags_max_len; + int __nonoption_flags_len; +#endif }; /* The initializer is necessary to set OPTIND and OPTERR to their default values and to clear the initialization flag. */ -#define _GETOPT_DATA_INITIALIZER { 1, 1 } +#define _GETOPT_DATA_INITIALIZER { 1, 1 } extern int _getopt_internal_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only, struct _getopt_data *__data, - int __posixly_correct); + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, struct _getopt_data *__data, + int __posixly_correct); extern int _getopt_long_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - struct _getopt_data *__data); + const char *__shortopts, + const struct option *__longopts, int *__longind, + struct _getopt_data *__data); extern int _getopt_long_only_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, - int *__longind, - struct _getopt_data *__data); + const char *__shortopts, + const struct option *__longopts, + int *__longind, + struct _getopt_data *__data); #endif /* getopt_int.h */ diff --git a/gl/getprogname.c b/gl/getprogname.c deleted file mode 100644 index 32c9604..0000000 --- a/gl/getprogname.c +++ /dev/null @@ -1,302 +0,0 @@ -/* Program name management. - Copyright (C) 2016-2023 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include "getprogname.h" - -#include /* get program_invocation_name declaration */ -#include /* get __argv declaration */ - -#ifdef _AIX -# include -# include -# include -#endif - -#ifdef __MVS__ -# ifndef _OPEN_SYS -# define _OPEN_SYS -# endif -# include -# include -#endif - -#ifdef __hpux -# include -# include -# include -# include -#endif - -#if defined __sgi || defined __osf__ -# include -# include -# include -# include -# include -#endif - -#if defined __SCO_VERSION__ || defined __sysv5__ -# include -# include -# include -#endif - -#include "basename-lgpl.h" - -#ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */ -char const * -getprogname (void) -{ -# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */ - /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ - return program_invocation_short_name; -# elif HAVE_DECL_PROGRAM_INVOCATION_NAME /* glibc, BeOS */ - /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ - return last_component (program_invocation_name); -# elif HAVE_GETEXECNAME /* Solaris */ - /* https://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */ - const char *p = getexecname (); - if (!p) - p = "?"; - return last_component (p); -# elif HAVE_DECL___ARGV /* mingw, MSVC */ - /* https://docs.microsoft.com/en-us/cpp/c-runtime-library/argc-argv-wargv */ - const char *p = __argv && __argv[0] ? __argv[0] : "?"; - return last_component (p); -# elif HAVE_VAR___PROGNAME /* OpenBSD, Android, QNX */ - /* https://man.openbsd.org/style.9 */ - /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */ - /* Be careful to declare this only when we absolutely need it - (OpenBSD 5.1), rather than when it's available. Otherwise, - its mere declaration makes program_invocation_short_name - malfunction (have zero length) with Fedora 25's glibc. */ - extern char *__progname; - const char *p = __progname; -# if defined __ANDROID__ - return last_component (p); -# else - return p && p[0] ? p : "?"; -# endif -# elif _AIX /* AIX */ - /* Idea by Bastien ROUCARIÈS, - https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html - Reference: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.basetrf1/getprocs.htm - */ - static char *p; - static int first = 1; - if (first) - { - first = 0; - pid_t pid = getpid (); - struct procentry64 procs; - p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1) - ? strdup (procs.pi_comm) - : NULL); - if (!p) - p = "?"; - } - return p; -# elif defined __hpux - static char *p; - static int first = 1; - if (first) - { - first = 0; - pid_t pid = getpid (); - struct pst_status status; - if (pstat_getproc (&status, sizeof status, 0, pid) > 0) - { - char *ucomm = status.pst_ucomm; - char *cmd = status.pst_cmd; - if (strlen (ucomm) < PST_UCOMMLEN - 1) - p = ucomm; - else - { - /* ucomm is truncated to length PST_UCOMMLEN - 1. - Look at cmd instead. */ - char *space = strchr (cmd, ' '); - if (space != NULL) - *space = '\0'; - p = strrchr (cmd, '/'); - if (p != NULL) - p++; - else - p = cmd; - if (strlen (p) > PST_UCOMMLEN - 1 - && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) - /* p is less truncated than ucomm. */ - ; - else - p = ucomm; - } - p = strdup (p); - } - else - { -# if !defined __LP64__ - /* Support for 32-bit programs running in 64-bit HP-UX. - The documented way to do this is to use the same source code - as above, but in a compilation unit where '#define _PSTAT64 1' - is in effect. I prefer a single compilation unit; the struct - size and the offsets are not going to change. */ - char status64[1216]; - if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0) - { - char *ucomm = status64 + 288; - char *cmd = status64 + 168; - if (strlen (ucomm) < PST_UCOMMLEN - 1) - p = ucomm; - else - { - /* ucomm is truncated to length PST_UCOMMLEN - 1. - Look at cmd instead. */ - char *space = strchr (cmd, ' '); - if (space != NULL) - *space = '\0'; - p = strrchr (cmd, '/'); - if (p != NULL) - p++; - else - p = cmd; - if (strlen (p) > PST_UCOMMLEN - 1 - && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) - /* p is less truncated than ucomm. */ - ; - else - p = ucomm; - } - p = strdup (p); - } - else -# endif - p = NULL; - } - if (!p) - p = "?"; - } - return p; -# elif __MVS__ /* z/OS */ - /* https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm */ - static char *p = "?"; - static int first = 1; - if (first) - { - pid_t pid = getpid (); - int token; - W_PSPROC buf; - first = 0; - memset (&buf, 0, sizeof(buf)); - buf.ps_cmdptr = (char *) malloc (buf.ps_cmdlen = PS_CMDBLEN_LONG); - buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN); - buf.ps_pathptr = (char *) malloc (buf.ps_pathlen = PS_PATHBLEN); - if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr) - { - for (token = 0; token >= 0; - token = w_getpsent (token, &buf, sizeof(buf))) - { - if (token > 0 && buf.ps_pid == pid) - { - char *s = strdup (last_component (buf.ps_pathptr)); - if (s) - p = s; - break; - } - } - } - free (buf.ps_cmdptr); - free (buf.ps_conttyptr); - free (buf.ps_pathptr); - } - return p; -# elif defined __sgi || defined __osf__ /* IRIX or Tru64 */ - char filename[50]; - int fd; - - # if defined __sgi - sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); - # else - sprintf (filename, "/proc/%d", (int) getpid ()); - # endif - fd = open (filename, O_RDONLY | O_CLOEXEC); - if (0 <= fd) - { - prpsinfo_t buf; - int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf); - close (fd); - if (ioctl_ok) - { - char *name = buf.pr_fname; - size_t namesize = sizeof buf.pr_fname; - /* It may not be NUL-terminated. */ - char *namenul = memchr (name, '\0', namesize); - size_t namelen = namenul ? namenul - name : namesize; - char *namecopy = malloc (namelen + 1); - if (namecopy) - { - namecopy[namelen] = '\0'; - return memcpy (namecopy, name, namelen); - } - } - } - return NULL; -# elif defined __SCO_VERSION__ || defined __sysv5__ /* SCO OpenServer6/UnixWare */ - char buf[80]; - int fd; - sprintf (buf, "/proc/%d/cmdline", getpid()); - fd = open (buf, O_RDONLY); - if (0 <= fd) - { - size_t n = read (fd, buf, 79); - if (n > 0) - { - buf[n] = '\0'; /* Guarantee null-termination */ - char *progname; - progname = strrchr (buf, '/'); - if (progname) - { - progname = progname + 1; /* Skip the '/' */ - } - else - { - progname = buf; - } - char *ret; - ret = malloc (strlen (progname) + 1); - if (ret) - { - strcpy (ret, progname); - return ret; - } - } - close (fd); - } - return "?"; -# else -# error "getprogname module not ported to this OS" -# endif -} - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/gl/getprogname.h b/gl/getprogname.h deleted file mode 100644 index 4b9126f..0000000 --- a/gl/getprogname.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Program name management. - Copyright (C) 2016-2023 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_GETPROGNAME_H -#define _GL_GETPROGNAME_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Return the base name of the executing program. - On native Windows this will usually end in ".exe" or ".EXE". */ -#ifndef HAVE_GETPROGNAME -extern char const *getprogname (void) -# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME - _GL_ATTRIBUTE_PURE -# endif - ; -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/gl/gettext.h b/gl/gettext.h index d0462c4..d021571 100644 --- a/gl/gettext.h +++ b/gl/gettext.h @@ -1,26 +1,25 @@ /* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2023 Free Software + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 -/* NLS can be disabled through the configure --disable-nls option - or through "#define ENABLE NLS 0" before including this file. */ -#if defined ENABLE_NLS && ENABLE_NLS +/* NLS can be disabled through the configure --disable-nls option. */ +#if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include @@ -138,7 +137,7 @@ #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) -#if defined __GNUC__ || defined __clang__ +#ifdef __GNUC__ __inline #else #ifdef __cplusplus @@ -157,7 +156,7 @@ pgettext_aux (const char *domain, return translation; } -#if defined __GNUC__ || defined __clang__ +#ifdef __GNUC__ __inline #else #ifdef __cplusplus @@ -184,15 +183,8 @@ npgettext_aux (const char *domain, #include -/* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. - This relates to the -Wvla and -Wvla-larger-than warnings, enabled in - the default GCC many warnings set. This allows programs to disable use - of VLAs, which may be unintended, or may be awkward to support portably, - or may have security implications due to non-deterministic stack usage. */ - -#if (!defined GNULIB_NO_VLA \ - && defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ - && !defined __STDC_NO_VLA__) +#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ + /* || __STDC_VERSION__ >= 199901L */ ) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 @@ -207,7 +199,7 @@ npgettext_aux (const char *domain, #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) -#if defined __GNUC__ || defined __clang__ +#ifdef __GNUC__ __inline #else #ifdef __cplusplus @@ -233,17 +225,15 @@ dcpgettext_expr (const char *domain, if (msg_ctxt_id != NULL) #endif { - int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); - found_translation = (translation != msg_ctxt_id); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif - if (found_translation) + if (translation != msg_ctxt_id) return translation; } return msgid; @@ -254,7 +244,7 @@ dcpgettext_expr (const char *domain, #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) -#if defined __GNUC__ || defined __clang__ +#ifdef __GNUC__ __inline #else #ifdef __cplusplus @@ -281,17 +271,15 @@ dcnpgettext_expr (const char *domain, if (msg_ctxt_id != NULL) #endif { - int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); - found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif - if (found_translation) + if (!(translation == msg_ctxt_id || translation == msgid_plural)) return translation; } return (n == 1 ? msgid : msgid_plural); diff --git a/gl/gl_openssl.h b/gl/gl_openssl.h deleted file mode 100644 index f63c386..0000000 --- a/gl/gl_openssl.h +++ /dev/null @@ -1,116 +0,0 @@ -/* Wrap openssl crypto hash routines in gnulib interface. -*- coding: utf-8 -*- - - Copyright (C) 2013-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Pádraig Brady */ - -#ifndef GL_OPENSSL_NAME -# error "Please define GL_OPENSSL_NAME to 1,5,256 etc." -#endif - -#ifndef _GL_INLINE_HEADER_BEGIN -# error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef GL_OPENSSL_INLINE -# define GL_OPENSSL_INLINE _GL_INLINE -#endif - -/* Concatenate two preprocessor tokens. */ -#define _GLCRYPTO_CONCAT_(prefix, suffix) prefix##suffix -#define _GLCRYPTO_CONCAT(prefix, suffix) _GLCRYPTO_CONCAT_ (prefix, suffix) - -#if GL_OPENSSL_NAME == 5 -# define OPENSSL_ALG md5 -#else -# define OPENSSL_ALG _GLCRYPTO_CONCAT (sha, GL_OPENSSL_NAME) -#endif - -/* Context type mappings. */ -#if BASE_OPENSSL_TYPE != GL_OPENSSL_NAME -# undef BASE_OPENSSL_TYPE -# if GL_OPENSSL_NAME == 224 -# define BASE_OPENSSL_TYPE 256 -# elif GL_OPENSSL_NAME == 384 -# define BASE_OPENSSL_TYPE 512 -# endif -# define md5_CTX MD5_CTX -# define sha1_CTX SHA_CTX -# define sha224_CTX SHA256_CTX -# define sha224_ctx sha256_ctx -# define sha256_CTX SHA256_CTX -# define sha384_CTX SHA512_CTX -# define sha384_ctx sha512_ctx -# define sha512_CTX SHA512_CTX -# undef _gl_CTX -# undef _gl_ctx -# define _gl_CTX _GLCRYPTO_CONCAT (OPENSSL_ALG, _CTX) /* openssl type. */ -# define _gl_ctx _GLCRYPTO_CONCAT (OPENSSL_ALG, _ctx) /* gnulib type. */ - -struct _gl_ctx { _gl_CTX CTX; }; -#endif - -/* Function name mappings. */ -#define md5_prefix MD5 -#define sha1_prefix SHA1 -#define sha224_prefix SHA224 -#define sha256_prefix SHA256 -#define sha384_prefix SHA384 -#define sha512_prefix SHA512 -#define _GLCRYPTO_PREFIX _GLCRYPTO_CONCAT (OPENSSL_ALG, _prefix) -#define OPENSSL_FN(suffix) _GLCRYPTO_CONCAT (_GLCRYPTO_PREFIX, suffix) -#define GL_CRYPTO_FN(suffix) _GLCRYPTO_CONCAT (OPENSSL_ALG, suffix) - -GL_OPENSSL_INLINE void -GL_CRYPTO_FN (_init_ctx) (struct _gl_ctx *ctx) -{ (void) OPENSSL_FN (_Init) ((_gl_CTX *) ctx); } - -/* These were never exposed by gnulib. */ -#if ! (GL_OPENSSL_NAME == 224 || GL_OPENSSL_NAME == 384) -GL_OPENSSL_INLINE void -GL_CRYPTO_FN (_process_bytes) (const void *buf, size_t len, struct _gl_ctx *ctx) -{ OPENSSL_FN (_Update) ((_gl_CTX *) ctx, buf, len); } - -GL_OPENSSL_INLINE void -GL_CRYPTO_FN (_process_block) (const void *buf, size_t len, struct _gl_ctx *ctx) -{ GL_CRYPTO_FN (_process_bytes) (buf, len, ctx); } -#endif - -GL_OPENSSL_INLINE void * -GL_CRYPTO_FN (_finish_ctx) (struct _gl_ctx *ctx, void *restrict res) -{ OPENSSL_FN (_Final) ((unsigned char *) res, (_gl_CTX *) ctx); return res; } - -GL_OPENSSL_INLINE void * -GL_CRYPTO_FN (_buffer) (const char *buf, size_t len, void *restrict res) -{ return OPENSSL_FN () ((const unsigned char *) buf, len, (unsigned char *) res); } - -GL_OPENSSL_INLINE void * -GL_CRYPTO_FN (_read_ctx) (const struct _gl_ctx *ctx, void *restrict res) -{ - /* Assume any unprocessed bytes in ctx are not to be ignored. */ - _gl_CTX tmp_ctx = *(_gl_CTX *) ctx; - OPENSSL_FN (_Final) ((unsigned char *) res, &tmp_ctx); - return res; -} - -/* Undef so we can include multiple times. */ -#undef GL_CRYPTO_FN -#undef OPENSSL_FN -#undef _GLCRYPTO_PREFIX -#undef OPENSSL_ALG -#undef GL_OPENSSL_NAME - -_GL_INLINE_HEADER_END diff --git a/gl/glthread/lock.c b/gl/glthread/lock.c index 82fb755..f62aa30 100644 --- a/gl/glthread/lock.c +++ b/gl/glthread/lock.c @@ -1,21 +1,22 @@ /* Locking in multithreaded situations. - Copyright (C) 2005-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Bruno Haible , 2005. - Based on GCC's gthr-posix.h, gthr-posix95.h. */ + Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, + gthr-win32.h. */ #include @@ -23,267 +24,15 @@ /* ========================================================================= */ -#if USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* -------------------------- gl_lock_t datatype -------------------------- */ - -int -glthread_lock_init (gl_lock_t *lock) -{ - if (mtx_init (&lock->mutex, mtx_plain) != thrd_success) - return ENOMEM; - lock->init_needed = 0; - return 0; -} - -int -glthread_lock_lock (gl_lock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - if (mtx_lock (&lock->mutex) != thrd_success) - return EAGAIN; - return 0; -} - -int -glthread_lock_unlock (gl_lock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - if (mtx_unlock (&lock->mutex) != thrd_success) - return EINVAL; - return 0; -} - -int -glthread_lock_destroy (gl_lock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - mtx_destroy (&lock->mutex); - return 0; -} - -/* ------------------------- gl_rwlock_t datatype ------------------------- */ - -int -glthread_rwlock_init (gl_rwlock_t *lock) -{ - if (mtx_init (&lock->lock, mtx_plain) != thrd_success - || cnd_init (&lock->waiting_readers) != thrd_success - || cnd_init (&lock->waiting_writers) != thrd_success) - return ENOMEM; - lock->waiting_writers_count = 0; - lock->runcount = 0; - lock->init_needed = 0; - return 0; -} - -int -glthread_rwlock_rdlock (gl_rwlock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - if (mtx_lock (&lock->lock) != thrd_success) - return EAGAIN; - /* Test whether only readers are currently running, and whether the runcount - field will not overflow, and whether no writer is waiting. The latter - condition is because POSIX recommends that "write locks shall take - precedence over read locks", to avoid "writer starvation". */ - while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) - { - /* This thread has to wait for a while. Enqueue it among the - waiting_readers. */ - if (cnd_wait (&lock->waiting_readers, &lock->lock) != thrd_success) - { - mtx_unlock (&lock->lock); - return EINVAL; - } - } - lock->runcount++; - if (mtx_unlock (&lock->lock) != thrd_success) - return EINVAL; - return 0; -} - -int -glthread_rwlock_wrlock (gl_rwlock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - if (mtx_lock (&lock->lock) != thrd_success) - return EAGAIN; - /* Test whether no readers or writers are currently running. */ - while (!(lock->runcount == 0)) - { - /* This thread has to wait for a while. Enqueue it among the - waiting_writers. */ - lock->waiting_writers_count++; - if (cnd_wait (&lock->waiting_writers, &lock->lock) != thrd_success) - { - lock->waiting_writers_count--; - mtx_unlock (&lock->lock); - return EINVAL; - } - lock->waiting_writers_count--; - } - lock->runcount--; /* runcount becomes -1 */ - if (mtx_unlock (&lock->lock) != thrd_success) - return EINVAL; - return 0; -} - -int -glthread_rwlock_unlock (gl_rwlock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - if (mtx_lock (&lock->lock) != thrd_success) - return EAGAIN; - if (lock->runcount < 0) - { - /* Drop a writer lock. */ - if (!(lock->runcount == -1)) - { - mtx_unlock (&lock->lock); - return EINVAL; - } - lock->runcount = 0; - } - else - { - /* Drop a reader lock. */ - if (!(lock->runcount > 0)) - { - mtx_unlock (&lock->lock); - return EINVAL; - } - lock->runcount--; - } - if (lock->runcount == 0) - { - /* POSIX recommends that "write locks shall take precedence over read - locks", to avoid "writer starvation". */ - if (lock->waiting_writers_count > 0) - { - /* Wake up one of the waiting writers. */ - if (cnd_signal (&lock->waiting_writers) != thrd_success) - { - mtx_unlock (&lock->lock); - return EINVAL; - } - } - else - { - /* Wake up all waiting readers. */ - if (cnd_broadcast (&lock->waiting_readers) != thrd_success) - { - mtx_unlock (&lock->lock); - return EINVAL; - } - } - } - if (mtx_unlock (&lock->lock) != thrd_success) - return EINVAL; - return 0; -} - -int -glthread_rwlock_destroy (gl_rwlock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - mtx_destroy (&lock->lock); - cnd_destroy (&lock->waiting_readers); - cnd_destroy (&lock->waiting_writers); - return 0; -} - -/* --------------------- gl_recursive_lock_t datatype --------------------- */ - -int -glthread_recursive_lock_init (gl_recursive_lock_t *lock) -{ - if (mtx_init (&lock->mutex, mtx_plain | mtx_recursive) != thrd_success) - return ENOMEM; - lock->init_needed = 0; - return 0; -} - -int -glthread_recursive_lock_lock (gl_recursive_lock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - if (mtx_lock (&lock->mutex) != thrd_success) - return EAGAIN; - return 0; -} - -int -glthread_recursive_lock_unlock (gl_recursive_lock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - if (mtx_unlock (&lock->mutex) != thrd_success) - return EINVAL; - return 0; -} - -int -glthread_recursive_lock_destroy (gl_recursive_lock_t *lock) -{ - if (lock->init_needed) - call_once (&lock->init_once, lock->init_func); - mtx_destroy (&lock->mutex); - return 0; -} - -/* -------------------------- gl_once_t datatype -------------------------- */ - -#endif - -/* ========================================================================= */ - #if USE_POSIX_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ -# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1))) +# if HAVE_PTHREAD_RWLOCK -# if defined PTHREAD_RWLOCK_INITIALIZER || defined PTHREAD_RWLOCK_INITIALIZER_NP - -# if !HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER - /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ - -int -glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock) -{ - pthread_rwlockattr_t attributes; - int err; - - err = pthread_rwlockattr_init (&attributes); - if (err != 0) - return err; - /* Note: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is the only value that - causes the writer to be preferred. PTHREAD_RWLOCK_PREFER_WRITER_NP does not - do this; see - http://man7.org/linux/man-pages/man3/pthread_rwlockattr_setkind_np.3.html */ - err = pthread_rwlockattr_setkind_np (&attributes, - PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); - if (err == 0) - err = pthread_rwlock_init(lock, &attributes); - /* pthread_rwlockattr_destroy always returns 0. It cannot influence the - return value. */ - pthread_rwlockattr_destroy (&attributes); - return err; -} - -# endif -# else +# if !defined PTHREAD_RWLOCK_INITIALIZER int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) @@ -403,9 +152,11 @@ glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) if (err != 0) return err; /* Test whether only readers are currently running, and whether the runcount - field will not overflow, and whether no writer is waiting. The latter - condition is because POSIX recommends that "write locks shall take - precedence over read locks", to avoid "writer starvation". */ + field will not overflow. */ + /* POSIX says: "It is implementation-defined whether the calling thread + acquires the lock when a writer does not hold the lock and there are + writers blocked on the lock." Let's say, no: give the writers a higher + priority. */ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) { /* This thread has to wait for a while. Enqueue it among the @@ -718,25 +469,161 @@ glthread_once_singlethreaded (pthread_once_t *once_control) return 0; } -# if !(PTHREAD_IN_USE_DETECTION_HARD || USE_POSIX_THREADS_WEAK) +#endif -int -glthread_once_multithreaded (pthread_once_t *once_control, - void (*init_function) (void)) +/* ========================================================================= */ + +#if USE_PTH_THREADS + +/* Use the GNU Pth threads library. */ + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +/* -------------------------- gl_once_t datatype -------------------------- */ + +static void +glthread_once_call (void *arg) { - int err = pthread_once (once_control, init_function); - if (err == ENOSYS) - { - /* This happens on FreeBSD 11: The pthread_once function in libc returns - ENOSYS. */ - if (glthread_once_singlethreaded (once_control)) - init_function (); - return 0; - } - return err; + void (**gl_once_temp_addr) (void) = (void (**) (void)) arg; + void (*initfunction) (void) = *gl_once_temp_addr; + initfunction (); } -# endif +int +glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)) +{ + void (*temp) (void) = initfunction; + return (!pth_once (once_control, glthread_once_call, &temp) ? errno : 0); +} + +int +glthread_once_singlethreaded (pth_once_t *once_control) +{ + /* We know that pth_once_t is an integer type. */ + if (*once_control == PTH_ONCE_INIT) + { + /* First time use of once_control. Invert the marker. */ + *once_control = ~ PTH_ONCE_INIT; + return 1; + } + else + return 0; +} + +#endif + +/* ========================================================================= */ + +#if USE_SOLARIS_THREADS + +/* Use the old Solaris threads library. */ + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +int +glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) +{ + int err; + + err = mutex_init (&lock->mutex, USYNC_THREAD, NULL); + if (err != 0) + return err; + lock->owner = (thread_t) 0; + lock->depth = 0; + return 0; +} + +int +glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) +{ + thread_t self = thr_self (); + if (lock->owner != self) + { + int err; + + err = mutex_lock (&lock->mutex); + if (err != 0) + return err; + lock->owner = self; + } + if (++(lock->depth) == 0) /* wraparound? */ + { + lock->depth--; + return EAGAIN; + } + return 0; +} + +int +glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) +{ + if (lock->owner != thr_self ()) + return EPERM; + if (lock->depth == 0) + return EINVAL; + if (--(lock->depth) == 0) + { + lock->owner = (thread_t) 0; + return mutex_unlock (&lock->mutex); + } + else + return 0; +} + +int +glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) +{ + if (lock->owner != (thread_t) 0) + return EBUSY; + return mutex_destroy (&lock->mutex); +} + +/* -------------------------- gl_once_t datatype -------------------------- */ + +int +glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)) +{ + if (!once_control->inited) + { + int err; + + /* Use the mutex to guarantee that if another thread is already calling + the initfunction, this thread waits until it's finished. */ + err = mutex_lock (&once_control->mutex); + if (err != 0) + return err; + if (!once_control->inited) + { + once_control->inited = 1; + initfunction (); + } + return mutex_unlock (&once_control->mutex); + } + else + return 0; +} + +int +glthread_once_singlethreaded (gl_once_t *once_control) +{ + /* We know that gl_once_t contains an integer type. */ + if (!once_control->inited) + { + /* First time use of once_control. Invert the marker. */ + once_control->inited = ~ 0; + return 1; + } + else + return 0; +} #endif @@ -744,6 +631,427 @@ glthread_once_multithreaded (pthread_once_t *once_control, #if USE_WINDOWS_THREADS +/* -------------------------- gl_lock_t datatype -------------------------- */ + +void +glthread_lock_init_func (gl_lock_t *lock) +{ + InitializeCriticalSection (&lock->lock); + lock->guard.done = 1; +} + +int +glthread_lock_lock_func (gl_lock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glthread_lock_init (lock); + else + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + EnterCriticalSection (&lock->lock); + return 0; +} + +int +glthread_lock_unlock_func (gl_lock_t *lock) +{ + if (!lock->guard.done) + return EINVAL; + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glthread_lock_destroy_func (gl_lock_t *lock) +{ + if (!lock->guard.done) + return EINVAL; + DeleteCriticalSection (&lock->lock); + lock->guard.done = 0; + return 0; +} + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +/* In this file, the waitqueues are implemented as circular arrays. */ +#define gl_waitqueue_t gl_carray_waitqueue_t + +static void +gl_waitqueue_init (gl_waitqueue_t *wq) +{ + wq->array = NULL; + wq->count = 0; + wq->alloc = 0; + wq->offset = 0; +} + +/* Enqueues the current thread, represented by an event, in a wait queue. + Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */ +static HANDLE +gl_waitqueue_add (gl_waitqueue_t *wq) +{ + HANDLE event; + unsigned int index; + + if (wq->count == wq->alloc) + { + unsigned int new_alloc = 2 * wq->alloc + 1; + HANDLE *new_array = + (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE)); + if (new_array == NULL) + /* No more memory. */ + return INVALID_HANDLE_VALUE; + /* Now is a good opportunity to rotate the array so that its contents + starts at offset 0. */ + if (wq->offset > 0) + { + unsigned int old_count = wq->count; + unsigned int old_alloc = wq->alloc; + unsigned int old_offset = wq->offset; + unsigned int i; + if (old_offset + old_count > old_alloc) + { + unsigned int limit = old_offset + old_count - old_alloc; + for (i = 0; i < limit; i++) + new_array[old_alloc + i] = new_array[i]; + } + for (i = 0; i < old_count; i++) + new_array[i] = new_array[old_offset + i]; + wq->offset = 0; + } + wq->array = new_array; + wq->alloc = new_alloc; + } + /* Whether the created event is a manual-reset one or an auto-reset one, + does not matter, since we will wait on it only once. */ + event = CreateEvent (NULL, TRUE, FALSE, NULL); + if (event == INVALID_HANDLE_VALUE) + /* No way to allocate an event. */ + return INVALID_HANDLE_VALUE; + index = wq->offset + wq->count; + if (index >= wq->alloc) + index -= wq->alloc; + wq->array[index] = event; + wq->count++; + return event; +} + +/* Notifies the first thread from a wait queue and dequeues it. */ +static void +gl_waitqueue_notify_first (gl_waitqueue_t *wq) +{ + SetEvent (wq->array[wq->offset + 0]); + wq->offset++; + wq->count--; + if (wq->count == 0 || wq->offset == wq->alloc) + wq->offset = 0; +} + +/* Notifies all threads from a wait queue and dequeues them all. */ +static void +gl_waitqueue_notify_all (gl_waitqueue_t *wq) +{ + unsigned int i; + + for (i = 0; i < wq->count; i++) + { + unsigned int index = wq->offset + i; + if (index >= wq->alloc) + index -= wq->alloc; + SetEvent (wq->array[index]); + } + wq->count = 0; + wq->offset = 0; +} + +void +glthread_rwlock_init_func (gl_rwlock_t *lock) +{ + InitializeCriticalSection (&lock->lock); + gl_waitqueue_init (&lock->waiting_readers); + gl_waitqueue_init (&lock->waiting_writers); + lock->runcount = 0; + lock->guard.done = 1; +} + +int +glthread_rwlock_rdlock_func (gl_rwlock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glthread_rwlock_init (lock); + else + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + EnterCriticalSection (&lock->lock); + /* Test whether only readers are currently running, and whether the runcount + field will not overflow. */ + if (!(lock->runcount + 1 > 0)) + { + /* This thread has to wait for a while. Enqueue it among the + waiting_readers. */ + HANDLE event = gl_waitqueue_add (&lock->waiting_readers); + if (event != INVALID_HANDLE_VALUE) + { + DWORD result; + LeaveCriticalSection (&lock->lock); + /* Wait until another thread signals this event. */ + result = WaitForSingleObject (event, INFINITE); + if (result == WAIT_FAILED || result == WAIT_TIMEOUT) + abort (); + CloseHandle (event); + /* The thread which signalled the event already did the bookkeeping: + removed us from the waiting_readers, incremented lock->runcount. */ + if (!(lock->runcount > 0)) + abort (); + return 0; + } + else + { + /* Allocation failure. Weird. */ + do + { + LeaveCriticalSection (&lock->lock); + Sleep (1); + EnterCriticalSection (&lock->lock); + } + while (!(lock->runcount + 1 > 0)); + } + } + lock->runcount++; + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glthread_rwlock_wrlock_func (gl_rwlock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glthread_rwlock_init (lock); + else + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + EnterCriticalSection (&lock->lock); + /* Test whether no readers or writers are currently running. */ + if (!(lock->runcount == 0)) + { + /* This thread has to wait for a while. Enqueue it among the + waiting_writers. */ + HANDLE event = gl_waitqueue_add (&lock->waiting_writers); + if (event != INVALID_HANDLE_VALUE) + { + DWORD result; + LeaveCriticalSection (&lock->lock); + /* Wait until another thread signals this event. */ + result = WaitForSingleObject (event, INFINITE); + if (result == WAIT_FAILED || result == WAIT_TIMEOUT) + abort (); + CloseHandle (event); + /* The thread which signalled the event already did the bookkeeping: + removed us from the waiting_writers, set lock->runcount = -1. */ + if (!(lock->runcount == -1)) + abort (); + return 0; + } + else + { + /* Allocation failure. Weird. */ + do + { + LeaveCriticalSection (&lock->lock); + Sleep (1); + EnterCriticalSection (&lock->lock); + } + while (!(lock->runcount == 0)); + } + } + lock->runcount--; /* runcount becomes -1 */ + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glthread_rwlock_unlock_func (gl_rwlock_t *lock) +{ + if (!lock->guard.done) + return EINVAL; + EnterCriticalSection (&lock->lock); + if (lock->runcount < 0) + { + /* Drop a writer lock. */ + if (!(lock->runcount == -1)) + abort (); + lock->runcount = 0; + } + else + { + /* Drop a reader lock. */ + if (!(lock->runcount > 0)) + { + LeaveCriticalSection (&lock->lock); + return EPERM; + } + lock->runcount--; + } + if (lock->runcount == 0) + { + /* POSIX recommends that "write locks shall take precedence over read + locks", to avoid "writer starvation". */ + if (lock->waiting_writers.count > 0) + { + /* Wake up one of the waiting writers. */ + lock->runcount--; + gl_waitqueue_notify_first (&lock->waiting_writers); + } + else + { + /* Wake up all waiting readers. */ + lock->runcount += lock->waiting_readers.count; + gl_waitqueue_notify_all (&lock->waiting_readers); + } + } + LeaveCriticalSection (&lock->lock); + return 0; +} + +int +glthread_rwlock_destroy_func (gl_rwlock_t *lock) +{ + if (!lock->guard.done) + return EINVAL; + if (lock->runcount != 0) + return EBUSY; + DeleteCriticalSection (&lock->lock); + if (lock->waiting_readers.array != NULL) + free (lock->waiting_readers.array); + if (lock->waiting_writers.array != NULL) + free (lock->waiting_writers.array); + lock->guard.done = 0; + return 0; +} + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +void +glthread_recursive_lock_init_func (gl_recursive_lock_t *lock) +{ + lock->owner = 0; + lock->depth = 0; + InitializeCriticalSection (&lock->lock); + lock->guard.done = 1; +} + +int +glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock) +{ + if (!lock->guard.done) + { + if (InterlockedIncrement (&lock->guard.started) == 0) + /* This thread is the first one to need this lock. Initialize it. */ + glthread_recursive_lock_init (lock); + else + /* Yield the CPU while waiting for another thread to finish + initializing this lock. */ + while (!lock->guard.done) + Sleep (0); + } + { + DWORD self = GetCurrentThreadId (); + if (lock->owner != self) + { + EnterCriticalSection (&lock->lock); + lock->owner = self; + } + if (++(lock->depth) == 0) /* wraparound? */ + { + lock->depth--; + return EAGAIN; + } + } + return 0; +} + +int +glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock) +{ + if (lock->owner != GetCurrentThreadId ()) + return EPERM; + if (lock->depth == 0) + return EINVAL; + if (--(lock->depth) == 0) + { + lock->owner = 0; + LeaveCriticalSection (&lock->lock); + } + return 0; +} + +int +glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock) +{ + if (lock->owner != 0) + return EBUSY; + DeleteCriticalSection (&lock->lock); + lock->guard.done = 0; + return 0; +} + +/* -------------------------- gl_once_t datatype -------------------------- */ + +void +glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)) +{ + if (once_control->inited <= 0) + { + if (InterlockedIncrement (&once_control->started) == 0) + { + /* This thread is the first one to come to this once_control. */ + InitializeCriticalSection (&once_control->lock); + EnterCriticalSection (&once_control->lock); + once_control->inited = 0; + initfunction (); + once_control->inited = 1; + LeaveCriticalSection (&once_control->lock); + } + else + { + /* Undo last operation. */ + InterlockedDecrement (&once_control->started); + /* Some other thread has already started the initialization. + Yield the CPU while waiting for the other thread to finish + initializing and taking the lock. */ + while (once_control->inited < 0) + Sleep (0); + if (once_control->inited <= 0) + { + /* Take the lock. This blocks until the other thread has + finished calling the initfunction. */ + EnterCriticalSection (&once_control->lock); + LeaveCriticalSection (&once_control->lock); + if (!(once_control->inited > 0)) + abort (); + } + } + } +} + #endif /* ========================================================================= */ diff --git a/gl/glthread/lock.h b/gl/glthread/lock.h index ae3ee2d..d20bbde 100644 --- a/gl/glthread/lock.h +++ b/gl/glthread/lock.h @@ -1,21 +1,22 @@ /* Locking in multithreaded situations. - Copyright (C) 2005-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Bruno Haible , 2005. - Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h. */ + Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, + gthr-win32.h. */ /* This file contains locking primitives for use with a given thread library. It does not contain primitives for creating threads or for other @@ -80,127 +81,6 @@ #include #include -#if !defined c11_threads_in_use -# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC -# define c11_threads_in_use() 1 -# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif -#endif - -/* ========================================================================= */ - -#if USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* Use the ISO C threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* -------------------------- gl_lock_t datatype -------------------------- */ - -typedef struct - { - int volatile init_needed; - once_flag init_once; - void (*init_func) (void); - mtx_t mutex; - } - gl_lock_t; -# define gl_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_lock_t NAME; -# define gl_lock_define_initialized(STORAGECLASS, NAME) \ - static void _atomic_init_##NAME (void); \ - STORAGECLASS gl_lock_t NAME = \ - { 1, ONCE_FLAG_INIT, _atomic_init_##NAME }; \ - static void _atomic_init_##NAME (void) \ - { \ - if (glthread_lock_init (&(NAME))) \ - abort (); \ - } -extern int glthread_lock_init (gl_lock_t *lock); -extern int glthread_lock_lock (gl_lock_t *lock); -extern int glthread_lock_unlock (gl_lock_t *lock); -extern int glthread_lock_destroy (gl_lock_t *lock); - -/* ------------------------- gl_rwlock_t datatype ------------------------- */ - -typedef struct - { - int volatile init_needed; - once_flag init_once; - void (*init_func) (void); - mtx_t lock; /* protects the remaining fields */ - cnd_t waiting_readers; /* waiting readers */ - cnd_t waiting_writers; /* waiting writers */ - unsigned int waiting_writers_count; /* number of waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - gl_rwlock_t; -# define gl_rwlock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME; -# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ - static void _atomic_init_##NAME (void); \ - STORAGECLASS gl_rwlock_t NAME = \ - { 1, ONCE_FLAG_INIT, _atomic_init_##NAME }; \ - static void _atomic_init_##NAME (void) \ - { \ - if (glthread_rwlock_init (&(NAME))) \ - abort (); \ - } -extern int glthread_rwlock_init (gl_rwlock_t *lock); -extern int glthread_rwlock_rdlock (gl_rwlock_t *lock); -extern int glthread_rwlock_wrlock (gl_rwlock_t *lock); -extern int glthread_rwlock_unlock (gl_rwlock_t *lock); -extern int glthread_rwlock_destroy (gl_rwlock_t *lock); - -/* --------------------- gl_recursive_lock_t datatype --------------------- */ - -typedef struct - { - int volatile init_needed; - once_flag init_once; - void (*init_func) (void); - mtx_t mutex; - } - gl_recursive_lock_t; -# define gl_recursive_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME; -# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ - static void _atomic_init_##NAME (void); \ - STORAGECLASS gl_recursive_lock_t NAME = \ - { 1, ONCE_FLAG_INIT, _atomic_init_##NAME }; \ - static void _atomic_init_##NAME (void) \ - { \ - if (glthread_recursive_lock_init (&(NAME))) \ - abort (); \ - } -extern int glthread_recursive_lock_init (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_lock (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_unlock (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_destroy (gl_recursive_lock_t *lock); - -/* -------------------------- gl_once_t datatype -------------------------- */ - -typedef once_flag gl_once_t; -# define gl_once_define(STORAGECLASS, NAME) \ - STORAGECLASS once_flag NAME = ONCE_FLAG_INIT; -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (call_once (ONCE_CONTROL, INITFUNCTION), 0) - -# ifdef __cplusplus -} -# endif - -#endif - /* ========================================================================= */ #if USE_POSIX_THREADS @@ -259,25 +139,13 @@ extern int glthread_in_use (void); # pragma weak pthread_mutexattr_init # pragma weak pthread_mutexattr_settype # pragma weak pthread_mutexattr_destroy -# pragma weak pthread_rwlockattr_init -# if __GNU_LIBRARY__ > 1 -# pragma weak pthread_rwlockattr_setkind_np -# endif -# pragma weak pthread_rwlockattr_destroy # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD - /* Considering all platforms with USE_POSIX_THREADS_WEAK, only few symbols - can be used to determine whether libpthread is in use. These are: - pthread_mutexattr_gettype - pthread_rwlockattr_destroy - pthread_rwlockattr_init - */ -# pragma weak pthread_mutexattr_gettype -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) +# pragma weak pthread_cancel +# define pthread_in_use() (pthread_cancel != NULL) # endif # else @@ -308,32 +176,19 @@ typedef pthread_mutex_t gl_lock_t; /* ------------------------- gl_rwlock_t datatype ------------------------- */ -# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1))) +# if HAVE_PTHREAD_RWLOCK -# if defined PTHREAD_RWLOCK_INITIALIZER || defined PTHREAD_RWLOCK_INITIALIZER_NP +# ifdef PTHREAD_RWLOCK_INITIALIZER typedef pthread_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer; -# if HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER -# if defined PTHREAD_RWLOCK_INITIALIZER -# define gl_rwlock_initializer \ - PTHREAD_RWLOCK_INITIALIZER -# else -# define gl_rwlock_initializer \ - PTHREAD_RWLOCK_INITIALIZER_NP -# endif -# define glthread_rwlock_init(LOCK) \ - (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) -# else /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ -# define gl_rwlock_initializer \ - PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP -# define glthread_rwlock_init(LOCK) \ - (pthread_in_use () ? glthread_rwlock_init_for_glibc (LOCK) : 0) -extern int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock); -# endif +# define gl_rwlock_initializer \ + PTHREAD_RWLOCK_INITIALIZER +# define glthread_rwlock_init(LOCK) \ + (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_rdlock (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ @@ -507,19 +362,10 @@ extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *l typedef pthread_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT; -# if PTHREAD_IN_USE_DETECTION_HARD || USE_POSIX_THREADS_WEAK -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (pthread_in_use () \ - ? pthread_once (ONCE_CONTROL, INITFUNCTION) \ - : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) -# else -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (pthread_in_use () \ - ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ - : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) -extern int glthread_once_multithreaded (pthread_once_t *once_control, - void (*init_function) (void)); -# endif +# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ + (pthread_in_use () \ + ? pthread_once (ONCE_CONTROL, INITFUNCTION) \ + : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_singlethreaded (pthread_once_t *once_control); # ifdef __cplusplus @@ -530,16 +376,248 @@ extern int glthread_once_singlethreaded (pthread_once_t *once_control); /* ========================================================================= */ +#if USE_PTH_THREADS + +/* Use the GNU Pth threads library. */ + +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# if USE_PTH_THREADS_WEAK + +/* Use weak references to the GNU Pth threads library. */ + +# pragma weak pth_mutex_init +# pragma weak pth_mutex_acquire +# pragma weak pth_mutex_release +# pragma weak pth_rwlock_init +# pragma weak pth_rwlock_acquire +# pragma weak pth_rwlock_release +# pragma weak pth_once + +# pragma weak pth_cancel +# define pth_in_use() (pth_cancel != NULL) + +# else + +# define pth_in_use() 1 + +# endif + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +typedef pth_mutex_t gl_lock_t; +# define gl_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS pth_mutex_t NAME; +# define gl_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS pth_mutex_t NAME = gl_lock_initializer; +# define gl_lock_initializer \ + PTH_MUTEX_INIT +# define glthread_lock_init(LOCK) \ + (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) +# define glthread_lock_lock(LOCK) \ + (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) +# define glthread_lock_unlock(LOCK) \ + (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) +# define glthread_lock_destroy(LOCK) \ + ((void)(LOCK), 0) + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +typedef pth_rwlock_t gl_rwlock_t; +# define gl_rwlock_define(STORAGECLASS, NAME) \ + STORAGECLASS pth_rwlock_t NAME; +# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS pth_rwlock_t NAME = gl_rwlock_initializer; +# define gl_rwlock_initializer \ + PTH_RWLOCK_INIT +# define glthread_rwlock_init(LOCK) \ + (pth_in_use () && !pth_rwlock_init (LOCK) ? errno : 0) +# define glthread_rwlock_rdlock(LOCK) \ + (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RD, 0, NULL) ? errno : 0) +# define glthread_rwlock_wrlock(LOCK) \ + (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RW, 0, NULL) ? errno : 0) +# define glthread_rwlock_unlock(LOCK) \ + (pth_in_use () && !pth_rwlock_release (LOCK) ? errno : 0) +# define glthread_rwlock_destroy(LOCK) \ + ((void)(LOCK), 0) + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +/* In Pth, mutexes are recursive by default. */ +typedef pth_mutex_t gl_recursive_lock_t; +# define gl_recursive_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS pth_mutex_t NAME; +# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS pth_mutex_t NAME = gl_recursive_lock_initializer; +# define gl_recursive_lock_initializer \ + PTH_MUTEX_INIT +# define glthread_recursive_lock_init(LOCK) \ + (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) +# define glthread_recursive_lock_lock(LOCK) \ + (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) +# define glthread_recursive_lock_unlock(LOCK) \ + (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) +# define glthread_recursive_lock_destroy(LOCK) \ + ((void)(LOCK), 0) + +/* -------------------------- gl_once_t datatype -------------------------- */ + +typedef pth_once_t gl_once_t; +# define gl_once_define(STORAGECLASS, NAME) \ + STORAGECLASS pth_once_t NAME = PTH_ONCE_INIT; +# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ + (pth_in_use () \ + ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ + : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) +extern int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)); +extern int glthread_once_singlethreaded (pth_once_t *once_control); + +# ifdef __cplusplus +} +# endif + +#endif + +/* ========================================================================= */ + +#if USE_SOLARIS_THREADS + +/* Use the old Solaris threads library. */ + +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# if USE_SOLARIS_THREADS_WEAK + +/* Use weak references to the old Solaris threads library. */ + +# pragma weak mutex_init +# pragma weak mutex_lock +# pragma weak mutex_unlock +# pragma weak mutex_destroy +# pragma weak rwlock_init +# pragma weak rw_rdlock +# pragma weak rw_wrlock +# pragma weak rw_unlock +# pragma weak rwlock_destroy +# pragma weak thr_self + +# pragma weak thr_suspend +# define thread_in_use() (thr_suspend != NULL) + +# else + +# define thread_in_use() 1 + +# endif + +/* -------------------------- gl_lock_t datatype -------------------------- */ + +typedef mutex_t gl_lock_t; +# define gl_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS mutex_t NAME; +# define gl_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS mutex_t NAME = gl_lock_initializer; +# define gl_lock_initializer \ + DEFAULTMUTEX +# define glthread_lock_init(LOCK) \ + (thread_in_use () ? mutex_init (LOCK, USYNC_THREAD, NULL) : 0) +# define glthread_lock_lock(LOCK) \ + (thread_in_use () ? mutex_lock (LOCK) : 0) +# define glthread_lock_unlock(LOCK) \ + (thread_in_use () ? mutex_unlock (LOCK) : 0) +# define glthread_lock_destroy(LOCK) \ + (thread_in_use () ? mutex_destroy (LOCK) : 0) + +/* ------------------------- gl_rwlock_t datatype ------------------------- */ + +typedef rwlock_t gl_rwlock_t; +# define gl_rwlock_define(STORAGECLASS, NAME) \ + STORAGECLASS rwlock_t NAME; +# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS rwlock_t NAME = gl_rwlock_initializer; +# define gl_rwlock_initializer \ + DEFAULTRWLOCK +# define glthread_rwlock_init(LOCK) \ + (thread_in_use () ? rwlock_init (LOCK, USYNC_THREAD, NULL) : 0) +# define glthread_rwlock_rdlock(LOCK) \ + (thread_in_use () ? rw_rdlock (LOCK) : 0) +# define glthread_rwlock_wrlock(LOCK) \ + (thread_in_use () ? rw_wrlock (LOCK) : 0) +# define glthread_rwlock_unlock(LOCK) \ + (thread_in_use () ? rw_unlock (LOCK) : 0) +# define glthread_rwlock_destroy(LOCK) \ + (thread_in_use () ? rwlock_destroy (LOCK) : 0) + +/* --------------------- gl_recursive_lock_t datatype --------------------- */ + +/* Old Solaris threads did not have recursive locks. + We have to implement them ourselves. */ + +typedef struct + { + mutex_t mutex; + thread_t owner; + unsigned long depth; + } + gl_recursive_lock_t; +# define gl_recursive_lock_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME; +# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ + STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; +# define gl_recursive_lock_initializer \ + { DEFAULTMUTEX, (thread_t) 0, 0 } +# define glthread_recursive_lock_init(LOCK) \ + (thread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_lock(LOCK) \ + (thread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_unlock(LOCK) \ + (thread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) +# define glthread_recursive_lock_destroy(LOCK) \ + (thread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) +extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); + +/* -------------------------- gl_once_t datatype -------------------------- */ + +typedef struct + { + volatile int inited; + mutex_t mutex; + } + gl_once_t; +# define gl_once_define(STORAGECLASS, NAME) \ + STORAGECLASS gl_once_t NAME = { 0, DEFAULTMUTEX }; +# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ + (thread_in_use () \ + ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ + : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) +extern int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)); +extern int glthread_once_singlethreaded (gl_once_t *once_control); + +# ifdef __cplusplus +} +# endif + +#endif + +/* ========================================================================= */ + #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include -# include "windows-mutex.h" -# include "windows-rwlock.h" -# include "windows-recmutex.h" -# include "windows-once.h" - # ifdef __cplusplus extern "C" { # endif @@ -555,69 +633,127 @@ extern "C" { /* There is no way to statically initialize a CRITICAL_SECTION. It needs to be done lazily, once only. For this we need spinlocks. */ +typedef struct { volatile int done; volatile long started; } gl_spinlock_t; + /* -------------------------- gl_lock_t datatype -------------------------- */ -typedef glwthread_mutex_t gl_lock_t; +typedef struct + { + gl_spinlock_t guard; /* protects the initialization */ + CRITICAL_SECTION lock; + } + gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME = gl_lock_initializer; # define gl_lock_initializer \ - GLWTHREAD_MUTEX_INIT + { { 0, -1 } } # define glthread_lock_init(LOCK) \ - (glwthread_mutex_init (LOCK), 0) + (glthread_lock_init_func (LOCK), 0) # define glthread_lock_lock(LOCK) \ - glwthread_mutex_lock (LOCK) + glthread_lock_lock_func (LOCK) # define glthread_lock_unlock(LOCK) \ - glwthread_mutex_unlock (LOCK) + glthread_lock_unlock_func (LOCK) # define glthread_lock_destroy(LOCK) \ - glwthread_mutex_destroy (LOCK) + glthread_lock_destroy_func (LOCK) +extern void glthread_lock_init_func (gl_lock_t *lock); +extern int glthread_lock_lock_func (gl_lock_t *lock); +extern int glthread_lock_unlock_func (gl_lock_t *lock); +extern int glthread_lock_destroy_func (gl_lock_t *lock); /* ------------------------- gl_rwlock_t datatype ------------------------- */ -typedef glwthread_rwlock_t gl_rwlock_t; +/* It is impossible to implement read-write locks using plain locks, without + introducing an extra thread dedicated to managing read-write locks. + Therefore here we need to use the low-level Event type. */ + +typedef struct + { + HANDLE *array; /* array of waiting threads, each represented by an event */ + unsigned int count; /* number of waiting threads */ + unsigned int alloc; /* length of allocated array */ + unsigned int offset; /* index of first waiting thread in array */ + } + gl_carray_waitqueue_t; +typedef struct + { + gl_spinlock_t guard; /* protects the initialization */ + CRITICAL_SECTION lock; /* protects the remaining fields */ + gl_carray_waitqueue_t waiting_readers; /* waiting readers */ + gl_carray_waitqueue_t waiting_writers; /* waiting writers */ + int runcount; /* number of readers running, or -1 when a writer runs */ + } + gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ - GLWTHREAD_RWLOCK_INIT + { { 0, -1 } } # define glthread_rwlock_init(LOCK) \ - (glwthread_rwlock_init (LOCK), 0) + (glthread_rwlock_init_func (LOCK), 0) # define glthread_rwlock_rdlock(LOCK) \ - glwthread_rwlock_rdlock (LOCK) + glthread_rwlock_rdlock_func (LOCK) # define glthread_rwlock_wrlock(LOCK) \ - glwthread_rwlock_wrlock (LOCK) + glthread_rwlock_wrlock_func (LOCK) # define glthread_rwlock_unlock(LOCK) \ - glwthread_rwlock_unlock (LOCK) + glthread_rwlock_unlock_func (LOCK) # define glthread_rwlock_destroy(LOCK) \ - glwthread_rwlock_destroy (LOCK) + glthread_rwlock_destroy_func (LOCK) +extern void glthread_rwlock_init_func (gl_rwlock_t *lock); +extern int glthread_rwlock_rdlock_func (gl_rwlock_t *lock); +extern int glthread_rwlock_wrlock_func (gl_rwlock_t *lock); +extern int glthread_rwlock_unlock_func (gl_rwlock_t *lock); +extern int glthread_rwlock_destroy_func (gl_rwlock_t *lock); /* --------------------- gl_recursive_lock_t datatype --------------------- */ -typedef glwthread_recmutex_t gl_recursive_lock_t; +/* The native Windows documentation says that CRITICAL_SECTION already + implements a recursive lock. But we need not rely on it: It's easy to + implement a recursive lock without this assumption. */ + +typedef struct + { + gl_spinlock_t guard; /* protects the initialization */ + DWORD owner; + unsigned long depth; + CRITICAL_SECTION lock; + } + gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ - GLWTHREAD_RECMUTEX_INIT + { { 0, -1 }, 0, 0 } # define glthread_recursive_lock_init(LOCK) \ - (glwthread_recmutex_init (LOCK), 0) + (glthread_recursive_lock_init_func (LOCK), 0) # define glthread_recursive_lock_lock(LOCK) \ - glwthread_recmutex_lock (LOCK) + glthread_recursive_lock_lock_func (LOCK) # define glthread_recursive_lock_unlock(LOCK) \ - glwthread_recmutex_unlock (LOCK) + glthread_recursive_lock_unlock_func (LOCK) # define glthread_recursive_lock_destroy(LOCK) \ - glwthread_recmutex_destroy (LOCK) + glthread_recursive_lock_destroy_func (LOCK) +extern void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock); +extern int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ -typedef glwthread_once_t gl_once_t; +typedef struct + { + volatile int inited; + volatile long started; + CRITICAL_SECTION lock; + } + gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_once_t NAME = GLWTHREAD_ONCE_INIT; + STORAGECLASS gl_once_t NAME = { -1, -1 }; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (glwthread_once (ONCE_CONTROL, INITFUNCTION), 0) + (glthread_once_func (ONCE_CONTROL, INITFUNCTION), 0) +extern void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)); # ifdef __cplusplus } @@ -627,7 +763,7 @@ typedef glwthread_once_t gl_once_t; /* ========================================================================= */ -#if !(USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS) +#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ diff --git a/gl/glthread/threadlib.c b/gl/glthread/threadlib.c index 5ecf827..b447657 100644 --- a/gl/glthread/threadlib.c +++ b/gl/glthread/threadlib.c @@ -1,18 +1,18 @@ /* Multithreading primitives. - Copyright (C) 2005-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Bruno Haible , 2005. */ @@ -20,48 +20,15 @@ /* ========================================================================= */ -#if USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS +#if USE_POSIX_THREADS /* Use the POSIX threads library. */ -# include # include # include # if PTHREAD_IN_USE_DETECTION_HARD -# if defined __FreeBSD__ || defined __DragonFly__ /* FreeBSD */ - -/* Test using pthread_key_create. */ - -int -glthread_in_use (void) -{ - static int tested; - static int result; /* 1: linked with -lpthread, 0: only with libc */ - - if (!tested) - { - pthread_key_t key; - int err = pthread_key_create (&key, NULL); - - if (err == ENOSYS) - result = 0; - else - { - result = 1; - if (err == 0) - pthread_key_delete (key); - } - tested = 1; - } - return result; -} - -# else /* Solaris, HP-UX */ - -/* Test using pthread_create. */ - /* The function to be executed by a dummy thread. */ static void * dummy_thread_func (void *arg) @@ -95,8 +62,6 @@ glthread_in_use (void) return result; } -# endif - # endif #endif diff --git a/gl/hard-locale.c b/gl/hard-locale.c deleted file mode 100644 index 0a28552..0000000 --- a/gl/hard-locale.c +++ /dev/null @@ -1,35 +0,0 @@ -/* hard-locale.c -- Determine whether a locale is hard. - - Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2023 Free Software - Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -#include "hard-locale.h" - -#include -#include - -bool -hard_locale (int category) -{ - char locale[SETLOCALE_NULL_MAX]; - - if (setlocale_null_r (category, locale, sizeof (locale))) - return false; - - return !(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0); -} diff --git a/gl/hard-locale.h b/gl/hard-locale.h deleted file mode 100644 index 880c9e8..0000000 --- a/gl/hard-locale.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Determine whether a locale is hard. - - Copyright (C) 1999, 2003-2004, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef HARD_LOCALE_H_ -# define HARD_LOCALE_H_ 1 - -/* Return true if the specified CATEGORY of the current locale is hard, i.e. - different from the C or POSIX locale that has a fixed behavior. - CATEGORY must be one of the LC_* values, but not LC_ALL. */ -extern bool hard_locale (int category); - -#endif /* HARD_LOCALE_H_ */ diff --git a/gl/ialloc.c b/gl/ialloc.c deleted file mode 100644 index cd44d8c..0000000 --- a/gl/ialloc.c +++ /dev/null @@ -1,21 +0,0 @@ -/* malloc with idx_t rather than size_t - - Copyright 2021-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -#define IALLOC_INLINE _GL_EXTERN_INLINE -#include "ialloc.h" diff --git a/gl/ialloc.h b/gl/ialloc.h deleted file mode 100644 index 1d43faf..0000000 --- a/gl/ialloc.h +++ /dev/null @@ -1,100 +0,0 @@ -/* ialloc.h -- malloc with idx_t rather than size_t - - Copyright 2021-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef IALLOC_H_ -#define IALLOC_H_ - -#include "idx.h" - -#include -#include -#include - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef IALLOC_INLINE -# define IALLOC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -IALLOC_INLINE void * _GL_ATTRIBUTE_COLD -_gl_alloc_nomem (void) -{ - errno = ENOMEM; - return NULL; -} - -IALLOC_INLINE -_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/ -void * -imalloc (idx_t s) -{ - return s <= SIZE_MAX ? malloc (s) : _gl_alloc_nomem (); -} - -IALLOC_INLINE -/*_GL_ATTRIBUTE_DEALLOC_FREE*/ -void * -irealloc (void *p, idx_t s) -{ - /* Work around GNU realloc glitch by treating a zero size as if it - were 1, so that returning NULL is equivalent to failing. */ - return s <= SIZE_MAX ? realloc (p, s | !s) : _gl_alloc_nomem (); -} - -IALLOC_INLINE -_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/ -void * -icalloc (idx_t n, idx_t s) -{ - if (SIZE_MAX < n) - { - if (s != 0) - return _gl_alloc_nomem (); - n = 0; - } - if (SIZE_MAX < s) - { - if (n != 0) - return _gl_alloc_nomem (); - s = 0; - } - return calloc (n, s); -} - -IALLOC_INLINE void * -ireallocarray (void *p, idx_t n, idx_t s) -{ - /* Work around GNU reallocarray glitch by treating a zero size as if - it were 1, so that returning NULL is equivalent to failing. */ - if (n == 0 || s == 0) - n = s = 1; - return (n <= SIZE_MAX && s <= SIZE_MAX - ? reallocarray (p, n, s) - : _gl_alloc_nomem ()); -} - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/gl/idpriv-droptemp.c b/gl/idpriv-droptemp.c index 2a85431..13d1064 100644 --- a/gl/idpriv-droptemp.c +++ b/gl/idpriv-droptemp.c @@ -1,9 +1,9 @@ /* Dropping uid/gid privileges of the current process temporarily. - Copyright (C) 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -12,7 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include @@ -58,9 +58,7 @@ idpriv_temp_drop (void) /* This is for executables that have the setuid bit set. */ # if HAVE_SETRESUID /* glibc, FreeBSD, OpenBSD, HP-UX */ - /* See - Hao Chen, David Wagner, Drew Dean: Setuid Demystified - + /* See figure 14. */ if (setresuid (-1, uid, saved_uid) < 0) return -1; @@ -136,9 +134,7 @@ idpriv_temp_restore (void) /* This is for executables that have the setuid bit set. */ # if HAVE_SETRESUID /* glibc, FreeBSD, OpenBSD, HP-UX */ - /* See - Hao Chen, David Wagner, Drew Dean: Setuid Demystified - + /* See figure 14. */ if (setresuid (-1, saved_uid, -1) < 0) return -1; diff --git a/gl/idpriv.h b/gl/idpriv.h index 99f87c0..f454a2c 100644 --- a/gl/idpriv.h +++ b/gl/idpriv.h @@ -1,9 +1,9 @@ /* Dropping uid/gid privileges of the current process. - Copyright (C) 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -12,7 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #ifndef _IDPRIV_H #define _IDPRIV_H @@ -74,11 +74,11 @@ extern "C" { /* For more in-depth discussion of these topics, see the papers/articles * Hao Chen, David Wagner, Drew Dean: Setuid Demystified - + * Dan Tsafrir, Dilma da Silva, David Wagner: The Murky Issue of Changing Process Identity: Revising "Setuid Demystified" - - + + * Dhruv Mohindra: Observe correct revocation order while relinquishing privileges diff --git a/gl/idx.h b/gl/idx.h deleted file mode 100644 index 23020b7..0000000 --- a/gl/idx.h +++ /dev/null @@ -1,134 +0,0 @@ -/* A type for indices and sizes. - Copyright (C) 2020-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _IDX_H -#define _IDX_H - -/* Get ptrdiff_t. */ -#include - -/* Get PTRDIFF_MAX. */ -#include - -/* The type 'idx_t' holds an (array) index or an (object) size. - Its implementation promotes to a signed integer type, - which can hold the values - 0..2^63-1 (on 64-bit platforms) or - 0..2^31-1 (on 32-bit platforms). - - Why a signed integer type? - - * Security: Signed types can be checked for overflow via - '-fsanitize=undefined', but unsigned types cannot. - - * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few - surprising results for comparisons, such as - - (int) -3 < (unsigned long) 7 => false - (int) -3 < (unsigned int) 7 => false - and on 32-bit machines: - (long) -3 < (unsigned int) 7 => false - - This is surprising because the natural comparison order is by - value in the realm of infinite-precision signed integers (ℤ). - - The best way to get rid of such surprises is to use signed types - for numerical integer values, and use unsigned types only for - bit masks and enums. - - Why not use 'size_t' directly? - - * Because 'size_t' is an unsigned type, and a signed type is better. - See above. - - Why not use 'ssize_t'? - - * 'ptrdiff_t' is more portable; it is standardized by ISO C - whereas 'ssize_t' is standardized only by POSIX. - - * 'ssize_t' is not required to be as wide as 'size_t', and some - now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'. - - * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider - than 'size_t', which can be a win and conforms to POSIX. - - Won't this cause a problem with objects larger than PTRDIFF_MAX? - - * Typical modern or large platforms do not allocate such objects, - so this is not much of a problem in practice; for example, you - can safely write 'idx_t len = strlen (s);'. To port to older - small platforms where allocations larger than PTRDIFF_MAX could - in theory be a problem, you can use Gnulib's ialloc module, or - functions like ximalloc in Gnulib's xalloc module. - - Why not use 'ptrdiff_t' directly? - - * Maintainability: When reading and modifying code, it helps to know that - a certain variable cannot have negative values. For example, when you - have a loop - - int n = ...; - for (int i = 0; i < n; i++) ... - - or - - ptrdiff_t n = ...; - for (ptrdiff_t i = 0; i < n; i++) ... - - you have to ask yourself "what if n < 0?". Whereas in - - idx_t n = ...; - for (idx_t i = 0; i < n; i++) ... - - you know that this case cannot happen. - - Similarly, when a programmer writes - - idx_t = ptr2 - ptr1; - - there is an implied assertion that ptr1 and ptr2 point into the same - object and that ptr1 <= ptr2. - - * Being future-proof: In the future, range types (integers which are - constrained to a certain range of values) may be added to C compilers - or to the C standard. Several programming languages (Ada, Haskell, - Common Lisp, Pascal) already have range types. Such range types may - help producing good code and good warnings. The type 'idx_t' could - then be typedef'ed to a range type that is signed after promotion. */ - -/* In the future, idx_t could be typedef'ed to a signed range type. - The clang "extended integer types", supported in Clang 11 or newer - , - are a special case of range types. However, these types don't support binary - operators with plain integer types (e.g. expressions such as x > 1). - Therefore, they don't behave like signed types (and not like unsigned types - either). So, we cannot use them here. */ - -/* Use the signed type 'ptrdiff_t'. */ -/* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same - size, but it is so on all platforms we have seen since 1990. */ -typedef ptrdiff_t idx_t; - -/* IDX_MAX is the maximum value of an idx_t. */ -#define IDX_MAX PTRDIFF_MAX - -/* So far no need has been found for an IDX_WIDTH macro. - Perhaps there should be another macro IDX_VALUE_BITS that does not - count the sign bit and is therefore one less than PTRDIFF_WIDTH. */ - -#endif /* _IDX_H */ diff --git a/gl/inet_ntop.c b/gl/inet_ntop.c index 9e2d412..fdfd21d 100644 --- a/gl/inet_ntop.c +++ b/gl/inet_ntop.c @@ -1,19 +1,19 @@ /* inet_ntop.c -- convert IPv4 and IPv6 addresses from binary to text form - Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* * Copyright (c) 1996-1999 by Internet Software Consortium. @@ -40,7 +40,7 @@ /* Use this to suppress gcc's "...may be used before initialized" warnings. Beware: The Code argument must not contain commas. */ #ifndef IF_LINT -# if defined GCC_LINT || defined lint +# ifdef lint # define IF_LINT(Code) Code # else # define IF_LINT(Code) /* empty */ diff --git a/gl/intprops-internal.h b/gl/intprops-internal.h deleted file mode 100644 index 0467a9c..0000000 --- a/gl/intprops-internal.h +++ /dev/null @@ -1,392 +0,0 @@ -/* intprops-internal.h -- properties of integer types not visible to users - - Copyright (C) 2001-2023 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_INTPROPS_INTERNAL_H -#define _GL_INTPROPS_INTERNAL_H - -#include - -/* Return a value with the common real type of E and V and the value of V. - Do not evaluate E. */ -#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) - -/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see - . */ -#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) - -/* The extra casts in the following macros work around compiler bugs, - e.g., in Cray C 5.0.3.0. */ - -/* True if the real type T is signed. */ -#define _GL_TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* Return 1 if the real expression E, after promotion, has a - signed or floating type. Do not evaluate E. */ -#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) - - -/* Minimum and maximum values for integer types and expressions. */ - -/* The width in bits of the integer type or expression T. - Do not evaluate T. T must not be a bit-field expression. - Padding bits are not supported; this is checked at compile-time below. */ -#define _GL_TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) - -/* The maximum and minimum values for the type of the expression E, - after integer promotion. E is not evaluated. */ -#define _GL_INT_MINIMUM(e) \ - (_GL_EXPR_SIGNED (e) \ - ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ - : _GL_INT_CONVERT (e, 0)) -#define _GL_INT_MAXIMUM(e) \ - (_GL_EXPR_SIGNED (e) \ - ? _GL_SIGNED_INT_MAXIMUM (e) \ - : _GL_INT_NEGATE_CONVERT (e, 1)) -#define _GL_SIGNED_INT_MAXIMUM(e) \ - (((_GL_INT_CONVERT (e, 1) << (_GL_TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1) - -/* Work around OpenVMS incompatibility with C99. */ -#if !defined LLONG_MAX && defined __INT64_MAX -# define LLONG_MAX __INT64_MAX -# define LLONG_MIN __INT64_MIN -#endif - -/* This include file assumes that signed types are two's complement without - padding bits; the above macros have undefined behavior otherwise. - If this is a problem for you, please let us know how to fix it for your host. - This assumption is tested by the intprops-tests module. */ - -/* Does the __typeof__ keyword work? This could be done by - 'configure', but for now it's easier to do it by hand. */ -#if (2 <= __GNUC__ \ - || (4 <= __clang_major__) \ - || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ - || (0x5110 <= __SUNPRO_C && !__STDC__)) -# define _GL_HAVE___TYPEOF__ 1 -#else -# define _GL_HAVE___TYPEOF__ 0 -#endif - -/* Return 1 if the integer type or expression T might be signed. Return 0 - if it is definitely unsigned. T must not be a bit-field expression. - This macro does not evaluate its argument, and expands to an - integer constant expression. */ -#if _GL_HAVE___TYPEOF__ -# define _GL_SIGNED_TYPE_OR_EXPR(t) _GL_TYPE_SIGNED (__typeof__ (t)) -#else -# define _GL_SIGNED_TYPE_OR_EXPR(t) 1 -#endif - -/* Return 1 if - A would overflow in [MIN,MAX] arithmetic. - A should not have side effects, and A's type should be an - integer with minimum value MIN and maximum MAX. */ -#define _GL_INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ - ((min) < 0 ? (a) < - (max) : 0 < (a)) - -/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow - (A, B, P) work when P is non-null. */ -#ifdef __EDG__ -/* EDG-based compilers like nvc 22.1 cannot add 64-bit signed to unsigned - . */ -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) -/* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, - see . */ -#elif 7 <= __GNUC__ -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 -#else -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 -#endif - -/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ -#if defined __clang_major__ && __clang_major__ < 14 -/* Work around Clang bug . */ -# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 -#else -# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW -#endif - -/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for - __builtin_sub_overflow_p and __builtin_mul_overflow_p. */ -#ifdef __EDG__ -/* In EDG-based compilers like ICC 2021.3 and earlier, - __builtin_add_overflow_p etc. are not treated as integral constant - expressions even when all arguments are. */ -# define _GL_HAS_BUILTIN_OVERFLOW_P 0 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p) -#else -# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) -#endif - -#if (!defined _GL_STDCKDINT_H && 202311 <= __STDC_VERSION__ \ - && ! (_GL_HAS_BUILTIN_ADD_OVERFLOW && _GL_HAS_BUILTIN_MUL_OVERFLOW)) -# include -#endif - -/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. - Return 1 if the result overflows. Arguments should not have side - effects and A, B and *R can be of any integer type other than char, - bool, a bit-precise integer type, or an enumeration type. */ -#if _GL_HAS_BUILTIN_ADD_OVERFLOW -# define _GL_INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) -# define _GL_INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) -#elif defined ckd_add && defined ckd_sub && !defined _GL_STDCKDINT_H -# define _GL_INT_ADD_WRAPV(a, b, r) ckd_add (r, + (a), + (b)) -# define _GL_INT_SUBTRACT_WRAPV(a, b, r) ckd_sub (r, + (a), + (b)) -#else -# define _GL_INT_ADD_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) -# define _GL_INT_SUBTRACT_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) -#endif -#if _GL_HAS_BUILTIN_MUL_OVERFLOW -# if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \ - || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \ - && !defined __EDG__) -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r) -# else - /* Work around GCC bug 91450. */ -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ - ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && _GL_EXPR_SIGNED (a) && _GL_EXPR_SIGNED (b) \ - && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \ - ? ((void) __builtin_mul_overflow (a, b, r), 1) \ - : __builtin_mul_overflow (a, b, r)) -# endif -#elif defined ckd_mul && !defined _GL_STDCKDINT_H -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) ckd_mul (r, + (a), + (b)) -#else -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) -#endif - -/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 - https://llvm.org/bugs/show_bug.cgi?id=25390 - For now, assume all versions of GCC-like compilers generate bogus - warnings for _Generic. This matters only for compilers that - lack relevant builtins. */ -#if __GNUC__ || defined __clang__ -# define _GL__GENERIC_BOGUS 1 -#else -# define _GL__GENERIC_BOGUS 0 -#endif - -/* Store the low-order bits of A B into *R, where OP specifies - the operation and OVERFLOW the overflow predicate. Return 1 if the - result overflows. Arguments should not have side effects, - and A, B and *R can be of any integer type other than char, bool, a - bit-precise integer type, or an enumeration type. */ -#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS -# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ - (_Generic \ - (*(r), \ - signed char: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - signed char, SCHAR_MIN, SCHAR_MAX), \ - unsigned char: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned char, 0, UCHAR_MAX), \ - short int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - short int, SHRT_MIN, SHRT_MAX), \ - unsigned short int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned short int, 0, USHRT_MAX), \ - int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - int, INT_MIN, INT_MAX), \ - unsigned int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned int, 0, UINT_MAX), \ - long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX), \ - unsigned long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX), \ - long long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX), \ - unsigned long long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - unsigned long long int, 0, ULLONG_MAX))) -#else -/* Store the low-order bits of A B into *R, where OP specifies - the operation and OVERFLOW the overflow predicate. If *R is - signed, its type is ST with bounds SMIN..SMAX; otherwise its type - is UT with bounds U..UMAX. ST and UT are narrower than int. - Return 1 if the result overflows. Arguments should not have side - effects, and A, B and *R can be of any integer type other than - char, bool, a bit-precise integer type, or an enumeration type. */ -# if _GL_HAVE___TYPEOF__ -# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ - (_GL_TYPE_SIGNED (__typeof__ (*(r))) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) -# else -# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ - (overflow (a, b, smin, smax) \ - ? (overflow (a, b, 0, umax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ - : (overflow (a, b, 0, umax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) -# endif - -# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ - (sizeof *(r) == sizeof (signed char) \ - ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ - signed char, SCHAR_MIN, SCHAR_MAX, \ - unsigned char, UCHAR_MAX) \ - : sizeof *(r) == sizeof (short int) \ - ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ - short int, SHRT_MIN, SHRT_MAX, \ - unsigned short int, USHRT_MAX) \ - : sizeof *(r) == sizeof (int) \ - ? (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - int, INT_MIN, INT_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned int, 0, UINT_MAX)) \ - : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) -# ifdef LLONG_MAX -# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ - (sizeof *(r) == sizeof (long int) \ - ? (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX)) \ - : (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - unsigned long long int, 0, ULLONG_MAX))) -# else -# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ - (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX)) -# endif -#endif - -/* Store the low-order bits of A B into *R, where the operation - is given by OP. Use the unsigned type UT for calculation to avoid - overflow problems. *R's type is T, with extrema TMIN and TMAX. - T can be any signed integer type other than char, bool, a - bit-precise integer type, or an enumeration type. - Return 1 if the result overflows. */ -#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ - (overflow (a, b, tmin, tmax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) - -/* Return 1 if the integer expressions A - B and -A would overflow, - respectively. Arguments should not have side effects, - and can be any signed integer type other than char, bool, a - bit-precise integer type, or an enumeration type. - These macros are tuned for their last input argument being a constant. */ - -#if _GL_HAS_BUILTIN_OVERFLOW_P -# define _GL_INT_NEGATE_OVERFLOW(a) \ - __builtin_sub_overflow_p (0, a, (__typeof__ (- (a))) 0) -#else -# define _GL_INT_NEGATE_OVERFLOW(a) \ - _GL_INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) -#endif - -/* Return the low-order bits of A B, where the operation is given - by OP. Use the unsigned type UT for calculation to avoid undefined - behavior on signed integer overflow, and convert the result to type T. - UT is at least as wide as T and is no narrower than unsigned int, - T is two's complement, and there is no padding or trap representations. - Assume that converting UT to T yields the low-order bits, as is - done in all known two's-complement C compilers. E.g., see: - https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html - - According to the C standard, converting UT to T yields an - implementation-defined result or signal for values outside T's - range. However, code that works around this theoretical problem - runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: - https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html - As the compiler bug is real, don't try to work around the - theoretical problem. */ - -#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ - ((t) ((ut) (a) op (ut) (b))) - -/* Return true if the numeric values A + B, A - B, A * B fall outside - the range TMIN..TMAX. Arguments should not have side effects - and can be any integer type other than char, bool, - a bit-precise integer type, or an enumeration type. - TMIN should be signed and nonpositive. - TMAX should be positive, and should be signed unless TMIN is zero. */ -#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ - ((b) < 0 \ - ? (((tmin) \ - ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ - && (a) < (tmin) - (b)) \ - : (a) <= -1 - (b)) \ - || ((_GL_EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ - : (a) < 0 \ - ? (((tmin) \ - ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ - && (b) < (tmin) - (a)) \ - : (b) <= -1 - (a)) \ - || ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ - && (tmax) < (a) + (b))) \ - : (tmax) < (b) || (tmax) - (b) < (a)) -#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ - (((a) < 0) == ((b) < 0) \ - ? ((a) < (b) \ - ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ - : (tmax) < (a) - (b)) \ - : (a) < 0 \ - ? ((!_GL_EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ - || (a) - (tmin) < (b)) \ - : ((! (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ - && _GL_EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ - && (tmax) <= -1 - (b)) \ - || (tmax) + (b) < (a))) -#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ - ((b) < 0 \ - ? ((a) < 0 \ - ? (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ - ? (a) < (tmax) / (b) \ - : ((_GL_INT_NEGATE_OVERFLOW (b) \ - ? _GL_INT_CONVERT (b, tmax) >> (_GL_TYPE_WIDTH (+ (b)) - 1) \ - : (tmax) / -(b)) \ - <= -1 - (a))) \ - : _GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ - ? (_GL_EXPR_SIGNED (a) \ - ? 0 < (a) + (tmin) \ - : 0 < (a) && -1 - (tmin) < (a) - 1) \ - : (tmin) / (b) < (a)) \ - : (b) == 0 \ - ? 0 \ - : ((a) < 0 \ - ? (_GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ - ? (_GL_EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ - : (tmin) / (a) < (b)) \ - : (tmax) / (b) < (a))) - -#endif /* _GL_INTPROPS_INTERNAL_H */ diff --git a/gl/intprops.h b/gl/intprops.h index 44b5e60..f57f9b4 100644 --- a/gl/intprops.h +++ b/gl/intprops.h @@ -1,24 +1,34 @@ /* intprops.h -- properties of integer types - Copyright (C) 2001-2023 Free Software Foundation, Inc. + Copyright (C) 2001-2005, 2009-2013 Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2.1 of the License, or + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H -#include "intprops-internal.h" +#include + +/* Return an integer value, converted to the same type as the integer + expression E after integer type promotion. V is the unconverted value. */ +#define _GL_INT_CONVERT(e, v) (0 * (e) + (v)) + +/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see + . */ +#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ @@ -27,27 +37,72 @@ an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) -/* True if the real type T is signed. */ -#define TYPE_SIGNED(t) _GL_TYPE_SIGNED (t) +/* True if negative values of the signed integer type T use two's + complement, ones' complement, or signed magnitude representation, + respectively. Much GNU code assumes two's complement, but some + people like to be portable to all possible C hosts. */ +#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) +#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) +#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) -/* Return 1 if the real expression E, after promotion, has a - signed or floating type. Do not evaluate E. */ -#define EXPR_SIGNED(e) _GL_EXPR_SIGNED (e) +/* True if the signed integer expression E uses two's complement. */ +#define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1) + +/* True if the arithmetic type T is signed. */ +#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) + +/* Return 1 if the integer expression E, after integer promotion, has + a signed type. */ +#define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) -/* Minimum and maximum values for integer types and expressions. */ - -/* The width in bits of the integer type or expression T. - Do not evaluate T. T must not be a bit-field expression. - Padding bits are not supported; this is checked at compile-time below. */ -#define TYPE_WIDTH(t) _GL_TYPE_WIDTH (t) +/* Minimum and maximum values for integer types and expressions. These + macros have undefined behavior if T is signed and has padding bits. + If this is a problem for you, please let us know how to fix it for + your host. */ /* The maximum and minimum values for the integer type T. */ -#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) +#define TYPE_MINIMUM(t) \ + ((t) (! TYPE_SIGNED (t) \ + ? (t) 0 \ + : TYPE_SIGNED_MAGNITUDE (t) \ + ? ~ (t) 0 \ + : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ - : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) + : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) + +/* The maximum and minimum values for the type of the expression E, + after integer promotion. E should not have side effects. */ +#define _GL_INT_MINIMUM(e) \ + (_GL_INT_SIGNED (e) \ + ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e) \ + : _GL_INT_CONVERT (e, 0)) +#define _GL_INT_MAXIMUM(e) \ + (_GL_INT_SIGNED (e) \ + ? _GL_SIGNED_INT_MAXIMUM (e) \ + : _GL_INT_NEGATE_CONVERT (e, 1)) +#define _GL_SIGNED_INT_MAXIMUM(e) \ + (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1) + + +/* Return 1 if the __typeof__ keyword works. This could be done by + 'configure', but for now it's easier to do it by hand. */ +#if 2 <= __GNUC__ || defined __IBM__TYPEOF__ || 0x5110 <= __SUNPRO_C +# define _GL_HAVE___TYPEOF__ 1 +#else +# define _GL_HAVE___TYPEOF__ 0 +#endif + +/* Return 1 if the integer type or expression T might be signed. Return 0 + if it is definitely unsigned. This macro does not evaluate its argument, + and expands to an integer constant expression. */ +#if _GL_HAVE___TYPEOF__ +# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) +#else +# define _GL_SIGNED_TYPE_OR_EXPR(t) 1 +#endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The @@ -55,31 +110,30 @@ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. - T must not be a bit-field expression. - Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. - Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is - unsigned, this macro may overestimate the true bound by one byte when + Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is + signed, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ - (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \ + - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, - including the terminating null. T must not be a bit-field expression. */ + including the terminating null. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT__RANGE_OVERFLOW macros return 1 if the corresponding C - operators overflow arithmetically when given the same arguments. - These macros do not rely on undefined or implementation-defined behavior. - Although their implementations are simple and straightforward, - they are harder to use and may be less efficient than the - INT__WRAPV, INT__OK, and INT__OVERFLOW macros described below. + operators might not yield numerically correct answers due to + arithmetic overflow. They do not rely on undefined or + implementation-defined behavior. Their implementations are simple + and straightforward, but they are a bit harder to use than the + INT__OVERFLOW macros described below. Example usage: @@ -103,9 +157,6 @@ must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. - Because all arguments are subject to integer promotions, these - macros typically do not work on types narrower than 'int'. - These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ @@ -126,12 +177,14 @@ /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ - _GL_INT_NEGATE_RANGE_OVERFLOW (a, min, max) + ((min) < 0 \ + ? (a) < - (max) \ + : 0 < (a)) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see - . */ + . */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ @@ -170,32 +223,24 @@ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) + /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ -#if _GL_HAS_BUILTIN_OVERFLOW_P -# define _GL_ADD_OVERFLOW(a, b, min, max) \ - __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) -# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ - __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) -# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ - __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) -#else -# define _GL_ADD_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ - : (a) < 0 ? (b) <= (a) + (b) \ - : (b) < 0 ? (a) <= (a) + (b) \ - : (a) + (b) < (b)) -# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ - : (a) < 0 ? 1 \ - : (b) < 0 ? (a) - (b) <= (a) \ - : (a) < (b)) -# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ - (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ - || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) -#endif +#define _GL_ADD_OVERFLOW(a, b, min, max) \ + ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ + : (a) < 0 ? (b) <= (a) + (b) \ + : (b) < 0 ? (a) <= (a) + (b) \ + : (a) + (b) < (b)) +#define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ + ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ + : (a) < 0 ? 1 \ + : (b) < 0 ? (a) - (b) <= (a) \ + : (a) < (b)) +#define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ + (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ + || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ @@ -217,31 +262,22 @@ : (a) % - (b)) \ == 0) -/* Check for integer overflow, and report low order bits of answer. + +/* Integer overflow checks. The INT__OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. - The INT__WRAPV macros compute the low-order bits of the sum, - difference, and product of two C integers, and return 1 if these - low-order bits are not numerically correct. - These macros work correctly on all known practical hosts, and do not rely + They work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. - Example usage, assuming A and B are long int: + Example usage: - if (INT_MULTIPLY_OVERFLOW (a, b)) - printf ("result would overflow\n"); + long int i = ...; + long int j = ...; + if (INT_MULTIPLY_OVERFLOW (i, j)) + printf ("multiply would overflow"); else - printf ("result is %ld (no overflow)\n", a * b); - - Example usage with WRAPV flavor: - - long int result; - bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); - printf ("result is %ld (%s)\n", result, - overflow ? "after overflow" : "no overflow"); - - Restrictions on these macros: + printf ("product is %ld", i * j); These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division @@ -250,23 +286,7 @@ These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. - The WRAPV macros are not constant expressions. They support only - +, binary -, and *. - - Because the WRAPV macros convert the result, they report overflow - in different circumstances than the OVERFLOW macros do. For - example, in the typical case with 16-bit 'short' and 32-bit 'int', - if A, B and *R are all of type 'short' then INT_ADD_OVERFLOW (A, B) - returns false because the addition cannot overflow after A and B - are converted to 'int', whereas INT_ADD_WRAPV (A, B, R) returns - true or false depending on whether the sum fits into 'short'. - - These macros are tuned for their last input argument being a constant. - - A, B, and *R should be integers; they need not be the same type, - and they need not be all signed or all unsigned. - However, none of the integer types should be bit-precise, - and *R's type should not be char, bool, or an enumeration type. + These macros are tuned for their last argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ @@ -275,7 +295,8 @@ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) -#define INT_NEGATE_OVERFLOW(a) _GL_INT_NEGATE_OVERFLOW (a) +#define INT_NEGATE_OVERFLOW(a) \ + INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ @@ -292,44 +313,7 @@ Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ - _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \ - _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b))) - -/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. - Return 1 if the result overflows. See above for restrictions. */ -#define INT_ADD_WRAPV(a, b, r) _GL_INT_ADD_WRAPV (a, b, r) -#define INT_SUBTRACT_WRAPV(a, b, r) _GL_INT_SUBTRACT_WRAPV (a, b, r) -#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r) - -/* The following macros compute A + B, A - B, and A * B, respectively. - If no overflow occurs, they set *R to the result and return 1; - otherwise, they return 0 and may modify *R. - - Example usage: - - long int result; - if (INT_ADD_OK (a, b, &result)) - printf ("result is %ld\n", result); - else - printf ("overflow\n"); - - A, B, and *R should be integers; they need not be the same type, - and they need not be all signed or all unsigned. - However, none of the integer types should be bit-precise, - and *R's type should not be char, bool, or an enumeration type. - - These macros work correctly on all known practical hosts, and do not rely - on undefined behavior due to signed arithmetic overflow. - - These macros are not constant expressions. - - These macros may evaluate their arguments zero or multiple times, so the - arguments should not have side effects. - - These macros are tuned for B being a constant. */ - -#define INT_ADD_OK(a, b, r) (! INT_ADD_WRAPV (a, b, r)) -#define INT_SUBTRACT_OK(a, b, r) (! INT_SUBTRACT_WRAPV (a, b, r)) -#define INT_MULTIPLY_OK(a, b, r) (! INT_MULTIPLY_WRAPV (a, b, r)) + _GL_INT_MINIMUM (0 * (b) + (a)), \ + _GL_INT_MAXIMUM (0 * (b) + (a))) #endif /* _GL_INTPROPS_H */ diff --git a/gl/inttypes.in.h b/gl/inttypes.in.h deleted file mode 100644 index 50a2bbf..0000000 --- a/gl/inttypes.in.h +++ /dev/null @@ -1,1002 +0,0 @@ -/* Copyright (C) 2006-2023 Free Software Foundation, Inc. - Written by Paul Eggert, Bruno Haible, Derek Price. - This file is part of gnulib. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* - * ISO C 99 for platforms that lack it. - * - */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif -@PRAGMA_COLUMNS@ - -/* Include the original if it exists, and if this file - has not been included yet or if this file includes gnulib stdint.h - which in turn includes this file. - The include_next requires a split double-inclusion guard. */ -#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H -# if @HAVE_INTTYPES_H@ - - /* Some pre-C++11 implementations need this. */ -# if defined __cplusplus && ! defined __STDC_FORMAT_MACROS -# define __STDC_FORMAT_MACROS 1 -# endif - -# @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ - -# define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H -# endif -#endif - -#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H -#define INTTYPES_H - -/* Include or the gnulib replacement. - But avoid namespace pollution on glibc systems. */ -#ifndef __GLIBC__ -# include -#endif -/* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ -#include -/* On mingw, __USE_MINGW_ANSI_STDIO only works if is also included */ -#if defined _WIN32 && ! defined __CYGWIN__ -# include -#endif - -#if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) -# error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to ." -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ - -/* The definition of _GL_WARN_ON_USE is copied here. */ - -/* 7.8.1 Macros for format specifiers */ - -#if defined _TNS_R_TARGET - /* Tandem NonStop R series and compatible platforms released before - July 2005 support %Ld but not %lld. */ -# define _LONG_LONG_FORMAT_PREFIX "L" -#else -# define _LONG_LONG_FORMAT_PREFIX "ll" -#endif - -#if !defined PRId8 -# ifdef INT8_MAX -# define PRId8 "d" -# endif -#endif -#if !defined PRIi8 -# ifdef INT8_MAX -# define PRIi8 "i" -# endif -#endif -#if !defined PRIo8 -# ifdef UINT8_MAX -# define PRIo8 "o" -# endif -#endif -#if !defined PRIu8 -# ifdef UINT8_MAX -# define PRIu8 "u" -# endif -#endif -#if !defined PRIx8 -# ifdef UINT8_MAX -# define PRIx8 "x" -# endif -#endif -#if !defined PRIX8 -# ifdef UINT8_MAX -# define PRIX8 "X" -# endif -#endif -#if !defined PRId16 -# ifdef INT16_MAX -# define PRId16 "d" -# endif -#endif -#if !defined PRIi16 -# ifdef INT16_MAX -# define PRIi16 "i" -# endif -#endif -#if !defined PRIo16 -# ifdef UINT16_MAX -# define PRIo16 "o" -# endif -#endif -#if !defined PRIu16 -# ifdef UINT16_MAX -# define PRIu16 "u" -# endif -#endif -#if !defined PRIx16 -# ifdef UINT16_MAX -# define PRIx16 "x" -# endif -#endif -#if !defined PRIX16 -# ifdef UINT16_MAX -# define PRIX16 "X" -# endif -#endif -#if !defined PRId32 -# ifdef INT32_MAX -# define PRId32 "d" -# endif -#endif -#if !defined PRIi32 -# ifdef INT32_MAX -# define PRIi32 "i" -# endif -#endif -#if !defined PRIo32 -# ifdef UINT32_MAX -# define PRIo32 "o" -# endif -#endif -#if !defined PRIu32 -# ifdef UINT32_MAX -# define PRIu32 "u" -# endif -#endif -#if !defined PRIx32 -# ifdef UINT32_MAX -# define PRIx32 "x" -# endif -#endif -#if !defined PRIX32 -# ifdef UINT32_MAX -# define PRIX32 "X" -# endif -#endif -#ifdef INT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) -# define _PRI64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRI64_PREFIX "I64" -# elif LONG_MAX >> 30 == 1 -# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRId64 -# define PRId64 _PRI64_PREFIX "d" -# endif -# if !defined PRIi64 -# define PRIi64 _PRI64_PREFIX "i" -# endif -#endif -#ifdef UINT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) -# define _PRIu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRIu64_PREFIX "I64" -# elif ULONG_MAX >> 31 == 1 -# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRIo64 -# define PRIo64 _PRIu64_PREFIX "o" -# endif -# if !defined PRIu64 -# define PRIu64 _PRIu64_PREFIX "u" -# endif -# if !defined PRIx64 -# define PRIx64 _PRIu64_PREFIX "x" -# endif -# if !defined PRIX64 -# define PRIX64 _PRIu64_PREFIX "X" -# endif -#endif - -#if !defined PRIdLEAST8 -# define PRIdLEAST8 "d" -#endif -#if !defined PRIiLEAST8 -# define PRIiLEAST8 "i" -#endif -#if !defined PRIoLEAST8 -# define PRIoLEAST8 "o" -#endif -#if !defined PRIuLEAST8 -# define PRIuLEAST8 "u" -#endif -#if !defined PRIxLEAST8 -# define PRIxLEAST8 "x" -#endif -#if !defined PRIXLEAST8 -# define PRIXLEAST8 "X" -#endif -#if !defined PRIdLEAST16 -# define PRIdLEAST16 "d" -#endif -#if !defined PRIiLEAST16 -# define PRIiLEAST16 "i" -#endif -#if !defined PRIoLEAST16 -# define PRIoLEAST16 "o" -#endif -#if !defined PRIuLEAST16 -# define PRIuLEAST16 "u" -#endif -#if !defined PRIxLEAST16 -# define PRIxLEAST16 "x" -#endif -#if !defined PRIXLEAST16 -# define PRIXLEAST16 "X" -#endif -#if !defined PRIdLEAST32 -# define PRIdLEAST32 "d" -#endif -#if !defined PRIiLEAST32 -# define PRIiLEAST32 "i" -#endif -#if !defined PRIoLEAST32 -# define PRIoLEAST32 "o" -#endif -#if !defined PRIuLEAST32 -# define PRIuLEAST32 "u" -#endif -#if !defined PRIxLEAST32 -# define PRIxLEAST32 "x" -#endif -#if !defined PRIXLEAST32 -# define PRIXLEAST32 "X" -#endif -#ifdef INT64_MAX -# if !defined PRIdLEAST64 -# define PRIdLEAST64 PRId64 -# endif -# if !defined PRIiLEAST64 -# define PRIiLEAST64 PRIi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined PRIoLEAST64 -# define PRIoLEAST64 PRIo64 -# endif -# if !defined PRIuLEAST64 -# define PRIuLEAST64 PRIu64 -# endif -# if !defined PRIxLEAST64 -# define PRIxLEAST64 PRIx64 -# endif -# if !defined PRIXLEAST64 -# define PRIXLEAST64 PRIX64 -# endif -#endif - -#if !defined PRIdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIdFAST8 PRId64 -# else -# define PRIdFAST8 "d" -# endif -#endif -#if !defined PRIiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIiFAST8 PRIi64 -# else -# define PRIiFAST8 "i" -# endif -#endif -#if !defined PRIoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIoFAST8 PRIo64 -# else -# define PRIoFAST8 "o" -# endif -#endif -#if !defined PRIuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIuFAST8 PRIu64 -# else -# define PRIuFAST8 "u" -# endif -#endif -#if !defined PRIxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIxFAST8 PRIx64 -# else -# define PRIxFAST8 "x" -# endif -#endif -#if !defined PRIXFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIXFAST8 PRIX64 -# else -# define PRIXFAST8 "X" -# endif -#endif -#if !defined PRIdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIdFAST16 PRId64 -# else -# define PRIdFAST16 "d" -# endif -#endif -#if !defined PRIiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIiFAST16 PRIi64 -# else -# define PRIiFAST16 "i" -# endif -#endif -#if !defined PRIoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIoFAST16 PRIo64 -# else -# define PRIoFAST16 "o" -# endif -#endif -#if !defined PRIuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIuFAST16 PRIu64 -# else -# define PRIuFAST16 "u" -# endif -#endif -#if !defined PRIxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIxFAST16 PRIx64 -# else -# define PRIxFAST16 "x" -# endif -#endif -#if !defined PRIXFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIXFAST16 PRIX64 -# else -# define PRIXFAST16 "X" -# endif -#endif -#if !defined PRIdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIdFAST32 PRId64 -# else -# define PRIdFAST32 "d" -# endif -#endif -#if !defined PRIiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIiFAST32 PRIi64 -# else -# define PRIiFAST32 "i" -# endif -#endif -#if !defined PRIoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIoFAST32 PRIo64 -# else -# define PRIoFAST32 "o" -# endif -#endif -#if !defined PRIuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIuFAST32 PRIu64 -# else -# define PRIuFAST32 "u" -# endif -#endif -#if !defined PRIxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIxFAST32 PRIx64 -# else -# define PRIxFAST32 "x" -# endif -#endif -#if !defined PRIXFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIXFAST32 PRIX64 -# else -# define PRIXFAST32 "X" -# endif -#endif -#ifdef INT64_MAX -# if !defined PRIdFAST64 -# define PRIdFAST64 PRId64 -# endif -# if !defined PRIiFAST64 -# define PRIiFAST64 PRIi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined PRIoFAST64 -# define PRIoFAST64 PRIo64 -# endif -# if !defined PRIuFAST64 -# define PRIuFAST64 PRIu64 -# endif -# if !defined PRIxFAST64 -# define PRIxFAST64 PRIx64 -# endif -# if !defined PRIXFAST64 -# define PRIXFAST64 PRIX64 -# endif -#endif - -#if !defined PRIdMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define PRIdMAX PRId64 -# else -# define PRIdMAX "ld" -# endif -#endif -#if !defined PRIiMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define PRIiMAX PRIi64 -# else -# define PRIiMAX "li" -# endif -#endif -#if !defined PRIoMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIoMAX PRIo64 -# else -# define PRIoMAX "lo" -# endif -#endif -#if !defined PRIuMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIuMAX PRIu64 -# else -# define PRIuMAX "lu" -# endif -#endif -#if !defined PRIxMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIxMAX PRIx64 -# else -# define PRIxMAX "lx" -# endif -#endif -#if !defined PRIXMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define PRIXMAX PRIX64 -# else -# define PRIXMAX "lX" -# endif -#endif - -#if !defined PRIdPTR -# ifdef INTPTR_MAX -# define PRIdPTR @PRIPTR_PREFIX@ "d" -# endif -#endif -#if !defined PRIiPTR -# ifdef INTPTR_MAX -# define PRIiPTR @PRIPTR_PREFIX@ "i" -# endif -#endif -#if !defined PRIoPTR -# ifdef UINTPTR_MAX -# define PRIoPTR @PRIPTR_PREFIX@ "o" -# endif -#endif -#if !defined PRIuPTR -# ifdef UINTPTR_MAX -# define PRIuPTR @PRIPTR_PREFIX@ "u" -# endif -#endif -#if !defined PRIxPTR -# ifdef UINTPTR_MAX -# define PRIxPTR @PRIPTR_PREFIX@ "x" -# endif -#endif -#if !defined PRIXPTR -# ifdef UINTPTR_MAX -# define PRIXPTR @PRIPTR_PREFIX@ "X" -# endif -#endif - -#if !defined SCNd8 -# ifdef INT8_MAX -# define SCNd8 "hhd" -# endif -#endif -#if !defined SCNi8 -# ifdef INT8_MAX -# define SCNi8 "hhi" -# endif -#endif -#if !defined SCNo8 -# ifdef UINT8_MAX -# define SCNo8 "hho" -# endif -#endif -#if !defined SCNu8 -# ifdef UINT8_MAX -# define SCNu8 "hhu" -# endif -#endif -#if !defined SCNx8 -# ifdef UINT8_MAX -# define SCNx8 "hhx" -# endif -#endif -#if !defined SCNd16 -# ifdef INT16_MAX -# define SCNd16 "hd" -# endif -#endif -#if !defined SCNi16 -# ifdef INT16_MAX -# define SCNi16 "hi" -# endif -#endif -#if !defined SCNo16 -# ifdef UINT16_MAX -# define SCNo16 "ho" -# endif -#endif -#if !defined SCNu16 -# ifdef UINT16_MAX -# define SCNu16 "hu" -# endif -#endif -#if !defined SCNx16 -# ifdef UINT16_MAX -# define SCNx16 "hx" -# endif -#endif -#if !defined SCNd32 -# ifdef INT32_MAX -# define SCNd32 "d" -# endif -#endif -#if !defined SCNi32 -# ifdef INT32_MAX -# define SCNi32 "i" -# endif -#endif -#if !defined SCNo32 -# ifdef UINT32_MAX -# define SCNo32 "o" -# endif -#endif -#if !defined SCNu32 -# ifdef UINT32_MAX -# define SCNu32 "u" -# endif -#endif -#if !defined SCNx32 -# ifdef UINT32_MAX -# define SCNx32 "x" -# endif -#endif -#ifdef INT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) -# define _SCN64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCN64_PREFIX "I64" -# elif LONG_MAX >> 30 == 1 -# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNd64 -# define SCNd64 _SCN64_PREFIX "d" -# endif -# if !defined SCNi64 -# define SCNi64 _SCN64_PREFIX "i" -# endif -#endif -#ifdef UINT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) -# define _SCNu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCNu64_PREFIX "I64" -# elif ULONG_MAX >> 31 == 1 -# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNo64 -# define SCNo64 _SCNu64_PREFIX "o" -# endif -# if !defined SCNu64 -# define SCNu64 _SCNu64_PREFIX "u" -# endif -# if !defined SCNx64 -# define SCNx64 _SCNu64_PREFIX "x" -# endif -#endif - -#if !defined SCNdLEAST8 -# define SCNdLEAST8 "hhd" -#endif -#if !defined SCNiLEAST8 -# define SCNiLEAST8 "hhi" -#endif -#if !defined SCNoLEAST8 -# define SCNoLEAST8 "hho" -#endif -#if !defined SCNuLEAST8 -# define SCNuLEAST8 "hhu" -#endif -#if !defined SCNxLEAST8 -# define SCNxLEAST8 "hhx" -#endif -#if !defined SCNdLEAST16 -# define SCNdLEAST16 "hd" -#endif -#if !defined SCNiLEAST16 -# define SCNiLEAST16 "hi" -#endif -#if !defined SCNoLEAST16 -# define SCNoLEAST16 "ho" -#endif -#if !defined SCNuLEAST16 -# define SCNuLEAST16 "hu" -#endif -#if !defined SCNxLEAST16 -# define SCNxLEAST16 "hx" -#endif -#if !defined SCNdLEAST32 -# define SCNdLEAST32 "d" -#endif -#if !defined SCNiLEAST32 -# define SCNiLEAST32 "i" -#endif -#if !defined SCNoLEAST32 -# define SCNoLEAST32 "o" -#endif -#if !defined SCNuLEAST32 -# define SCNuLEAST32 "u" -#endif -#if !defined SCNxLEAST32 -# define SCNxLEAST32 "x" -#endif -#ifdef INT64_MAX -# if !defined SCNdLEAST64 -# define SCNdLEAST64 SCNd64 -# endif -# if !defined SCNiLEAST64 -# define SCNiLEAST64 SCNi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined SCNoLEAST64 -# define SCNoLEAST64 SCNo64 -# endif -# if !defined SCNuLEAST64 -# define SCNuLEAST64 SCNu64 -# endif -# if !defined SCNxLEAST64 -# define SCNxLEAST64 SCNx64 -# endif -#endif - -#if !defined SCNdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNdFAST8 SCNd64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNdFAST8 "hd" -# elif INT_FAST8_MAX == 0x7f -# define SCNdFAST8 "hhd" -# else -# define SCNdFAST8 "d" -# endif -#endif -#if !defined SCNiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNiFAST8 SCNi64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNiFAST8 "hi" -# elif INT_FAST8_MAX == 0x7f -# define SCNiFAST8 "hhi" -# else -# define SCNiFAST8 "i" -# endif -#endif -#if !defined SCNoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNoFAST8 SCNo64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNoFAST8 "ho" -# elif UINT_FAST8_MAX == 0xff -# define SCNoFAST8 "hho" -# else -# define SCNoFAST8 "o" -# endif -#endif -#if !defined SCNuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNuFAST8 SCNu64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNuFAST8 "hu" -# elif UINT_FAST8_MAX == 0xff -# define SCNuFAST8 "hhu" -# else -# define SCNuFAST8 "u" -# endif -#endif -#if !defined SCNxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNxFAST8 SCNx64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNxFAST8 "hx" -# elif UINT_FAST8_MAX == 0xff -# define SCNxFAST8 "hhx" -# else -# define SCNxFAST8 "x" -# endif -#endif -#if !defined SCNdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNdFAST16 SCNd64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNdFAST16 "hd" -# else -# define SCNdFAST16 "d" -# endif -#endif -#if !defined SCNiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNiFAST16 SCNi64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNiFAST16 "hi" -# else -# define SCNiFAST16 "i" -# endif -#endif -#if !defined SCNoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNoFAST16 SCNo64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNoFAST16 "ho" -# else -# define SCNoFAST16 "o" -# endif -#endif -#if !defined SCNuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNuFAST16 SCNu64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNuFAST16 "hu" -# else -# define SCNuFAST16 "u" -# endif -#endif -#if !defined SCNxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNxFAST16 SCNx64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNxFAST16 "hx" -# else -# define SCNxFAST16 "x" -# endif -#endif -#if !defined SCNdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNdFAST32 SCNd64 -# else -# define SCNdFAST32 "d" -# endif -#endif -#if !defined SCNiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNiFAST32 SCNi64 -# else -# define SCNiFAST32 "i" -# endif -#endif -#if !defined SCNoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNoFAST32 SCNo64 -# else -# define SCNoFAST32 "o" -# endif -#endif -#if !defined SCNuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNuFAST32 SCNu64 -# else -# define SCNuFAST32 "u" -# endif -#endif -#if !defined SCNxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNxFAST32 SCNx64 -# else -# define SCNxFAST32 "x" -# endif -#endif -#ifdef INT64_MAX -# if !defined SCNdFAST64 -# define SCNdFAST64 SCNd64 -# endif -# if !defined SCNiFAST64 -# define SCNiFAST64 SCNi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined SCNoFAST64 -# define SCNoFAST64 SCNo64 -# endif -# if !defined SCNuFAST64 -# define SCNuFAST64 SCNu64 -# endif -# if !defined SCNxFAST64 -# define SCNxFAST64 SCNx64 -# endif -#endif - -#if !defined SCNdMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define SCNdMAX SCNd64 -# else -# define SCNdMAX "ld" -# endif -#endif -#if !defined SCNiMAX -# if @INT32_MAX_LT_INTMAX_MAX@ -# define SCNiMAX SCNi64 -# else -# define SCNiMAX "li" -# endif -#endif -#if !defined SCNoMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define SCNoMAX SCNo64 -# else -# define SCNoMAX "lo" -# endif -#endif -#if !defined SCNuMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define SCNuMAX SCNu64 -# else -# define SCNuMAX "lu" -# endif -#endif -#if !defined SCNxMAX -# if @UINT32_MAX_LT_UINTMAX_MAX@ -# define SCNxMAX SCNx64 -# else -# define SCNxMAX "lx" -# endif -#endif - -#if !defined SCNdPTR -# ifdef INTPTR_MAX -# define SCNdPTR @PRIPTR_PREFIX@ "d" -# endif -#endif -#if !defined SCNiPTR -# ifdef INTPTR_MAX -# define SCNiPTR @PRIPTR_PREFIX@ "i" -# endif -#endif -#if !defined SCNoPTR -# ifdef UINTPTR_MAX -# define SCNoPTR @PRIPTR_PREFIX@ "o" -# endif -#endif -#if !defined SCNuPTR -# ifdef UINTPTR_MAX -# define SCNuPTR @PRIPTR_PREFIX@ "u" -# endif -#endif -#if !defined SCNxPTR -# ifdef UINTPTR_MAX -# define SCNxPTR @PRIPTR_PREFIX@ "x" -# endif -#endif - -/* 7.8.2 Functions for greatest-width integer types */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if @GNULIB_IMAXABS@ -# if !@HAVE_DECL_IMAXABS@ -extern intmax_t imaxabs (intmax_t); -# endif -#elif defined GNULIB_POSIXCHECK -# undef imaxabs -# if HAVE_RAW_DECL_IMAXABS -_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " - "use gnulib module imaxabs for portability"); -# endif -#endif - -#if @GNULIB_IMAXDIV@ -# if !@HAVE_IMAXDIV_T@ -# if !GNULIB_defined_imaxdiv_t -typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; -# define GNULIB_defined_imaxdiv_t 1 -# endif -# endif -# if !@HAVE_DECL_IMAXDIV@ -extern imaxdiv_t imaxdiv (intmax_t, intmax_t); -# endif -#elif defined GNULIB_POSIXCHECK -# undef imaxdiv -# if HAVE_RAW_DECL_IMAXDIV -_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " - "use gnulib module imaxdiv for portability"); -# endif -#endif - -#if @GNULIB_STRTOIMAX@ -# if @REPLACE_STRTOIMAX@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strtoimax -# define strtoimax rpl_strtoimax -# endif -_GL_FUNCDECL_RPL (strtoimax, intmax_t, - (const char *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoimax, intmax_t, - (const char *restrict, char **restrict, int)); -# else -# if !@HAVE_DECL_STRTOIMAX@ -# undef strtoimax -_GL_FUNCDECL_SYS (strtoimax, intmax_t, - (const char *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoimax, intmax_t, - (const char *restrict, char **restrict, int)); -# endif -_GL_CXXALIASWARN (strtoimax); -#elif defined GNULIB_POSIXCHECK -# undef strtoimax -# if HAVE_RAW_DECL_STRTOIMAX -_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " - "use gnulib module strtoimax for portability"); -# endif -#endif - -#if @GNULIB_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 *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int)); -# else -# if !@HAVE_DECL_STRTOUMAX@ -# undef strtoumax -_GL_FUNCDECL_SYS (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int)); -# endif -_GL_CXXALIASWARN (strtoumax); -#elif defined GNULIB_POSIXCHECK -# undef strtoumax -# if HAVE_RAW_DECL_STRTOUMAX -_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " - "use gnulib module strtoumax for portability"); -# endif -#endif - -/* Don't bother defining or declaring wcstoimax and wcstoumax, since - wide-character functions like this are hardly ever useful. */ - -#ifdef __cplusplus -} -#endif - -#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ diff --git a/gl/itold.c b/gl/itold.c index 0ef4464..9aabc7e 100644 --- a/gl/itold.c +++ b/gl/itold.c @@ -1,19 +1,19 @@ /* Replacement for 'int' to 'long double' conversion routine. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2011. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/langinfo.in.h b/gl/langinfo.in.h index c7555a6..5388ce6 100644 --- a/gl/langinfo.in.h +++ b/gl/langinfo.in.h @@ -1,22 +1,22 @@ /* Substitute for and wrapper around . - Copyright (C) 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* * POSIX for platforms that lack it or have an incomplete one. - * + * */ #ifndef _@GUARD_PREFIX@_LANGINFO_H @@ -49,10 +49,7 @@ typedef int nl_item; # define CODESET 10000 /* nl_langinfo items of the LC_NUMERIC category */ # define RADIXCHAR 10001 -# define DECIMAL_POINT RADIXCHAR # define THOUSEP 10002 -# define THOUSANDS_SEP THOUSEP -# define GROUPING 10114 /* nl_langinfo items of the LC_TIME category */ # define D_T_FMT 10003 # define D_FMT 10004 @@ -86,18 +83,6 @@ typedef int nl_item; # define MON_10 (MON_1 + 9) # define MON_11 (MON_1 + 10) # define MON_12 (MON_1 + 11) -# define ALTMON_1 10200 -# define ALTMON_2 (ALTMON_1 + 1) -# define ALTMON_3 (ALTMON_1 + 2) -# define ALTMON_4 (ALTMON_1 + 3) -# define ALTMON_5 (ALTMON_1 + 4) -# define ALTMON_6 (ALTMON_1 + 5) -# define ALTMON_7 (ALTMON_1 + 6) -# define ALTMON_8 (ALTMON_1 + 7) -# define ALTMON_9 (ALTMON_1 + 8) -# define ALTMON_10 (ALTMON_1 + 9) -# define ALTMON_11 (ALTMON_1 + 10) -# define ALTMON_12 (ALTMON_1 + 11) # define ABMON_1 10035 # define ABMON_2 (ABMON_1 + 1) # define ABMON_3 (ABMON_1 + 2) @@ -117,21 +102,6 @@ typedef int nl_item; # define ALT_DIGITS 10051 /* nl_langinfo items of the LC_MONETARY category */ # define CRNCYSTR 10052 -# define CURRENCY_SYMBOL CRNCYSTR -# define INT_CURR_SYMBOL 10100 -# define MON_DECIMAL_POINT 10101 -# define MON_THOUSANDS_SEP 10102 -# define MON_GROUPING 10103 -# define POSITIVE_SIGN 10104 -# define NEGATIVE_SIGN 10105 -# define FRAC_DIGITS 10106 -# define INT_FRAC_DIGITS 10107 -# define P_CS_PRECEDES 10108 -# define N_CS_PRECEDES 10109 -# define P_SEP_BY_SPACE 10110 -# define N_SEP_BY_SPACE 10111 -# define P_SIGN_POSN 10112 -# define N_SIGN_POSN 10113 /* nl_langinfo items of the LC_MESSAGES category */ # define YESEXPR 10053 # define NOEXPR 10054 @@ -150,22 +120,6 @@ typedef int nl_item; # define GNULIB_defined_T_FMT_AMPM 1 # endif -# if !@HAVE_LANGINFO_ALTMON@ -# define ALTMON_1 10200 -# define ALTMON_2 (ALTMON_1 + 1) -# define ALTMON_3 (ALTMON_1 + 2) -# define ALTMON_4 (ALTMON_1 + 3) -# define ALTMON_5 (ALTMON_1 + 4) -# define ALTMON_6 (ALTMON_1 + 5) -# define ALTMON_7 (ALTMON_1 + 6) -# define ALTMON_8 (ALTMON_1 + 7) -# define ALTMON_9 (ALTMON_1 + 8) -# define ALTMON_10 (ALTMON_1 + 9) -# define ALTMON_11 (ALTMON_1 + 10) -# define ALTMON_12 (ALTMON_1 + 11) -# define GNULIB_defined_ALTMON 1 -# endif - # if !@HAVE_LANGINFO_ERA@ # define ERA 10047 # define ERA_D_FMT 10048 diff --git a/gl/lc-charset-dispatch.c b/gl/lc-charset-dispatch.c deleted file mode 100644 index cd74466..0000000 --- a/gl/lc-charset-dispatch.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Dispatching based on the current locale's character encoding. - Copyright (C) 2018-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2018. */ - -#include - -/* Specification. */ -#include "lc-charset-dispatch.h" - -#if GNULIB_defined_mbstate_t - -# include "localcharset.h" -# include "streq.h" - -# if GNULIB_WCHAR_SINGLE_LOCALE -/* When we know that the locale does not change, provide a speedup by - caching the value of locale_encoding_classification. */ -# define locale_encoding_classification_cached locale_encoding_classification -# else -/* By default, don't make assumptions, hence no caching. */ -# define locale_encoding_classification_uncached locale_encoding_classification -# endif - -# if GNULIB_WCHAR_SINGLE_LOCALE -static inline -# endif -enc_t -locale_encoding_classification_uncached (void) -{ - const char *encoding = locale_charset (); - if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) - return enc_utf8; - if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) - return enc_eucjp; - if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) - || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) - return enc_94; - if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) - return enc_euctw; - if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) - return enc_gb18030; - if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) - return enc_sjis; - return enc_other; -} - -# if GNULIB_WCHAR_SINGLE_LOCALE - -static int cached_locale_enc = -1; - -enc_t -locale_encoding_classification_cached (void) -{ - if (cached_locale_enc < 0) - cached_locale_enc = locale_encoding_classification_uncached (); - return cached_locale_enc; -} - -# endif - -#else - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#endif diff --git a/gl/lc-charset-dispatch.h b/gl/lc-charset-dispatch.h deleted file mode 100644 index c82b6a6..0000000 --- a/gl/lc-charset-dispatch.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Dispatching based on the current locale's character encoding. - Copyright (C) 2018-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2018. */ - -#include - -#if GNULIB_defined_mbstate_t - -/* A classification of special values of the encoding of the current locale. */ -typedef enum - { - enc_other, /* other */ - enc_utf8, /* UTF-8 */ - enc_eucjp, /* EUC-JP */ - enc_94, /* EUC-KR, GB2312, BIG5 */ - enc_euctw, /* EUC-TW */ - enc_gb18030, /* GB18030 */ - enc_sjis /* SJIS */ - } - enc_t; - -/* Returns a classification of special values of the encoding of the current - locale. */ -extern enc_t locale_encoding_classification (void); - -#endif diff --git a/gl/libc-config.h b/gl/libc-config.h deleted file mode 100644 index 1d28e58..0000000 --- a/gl/libc-config.h +++ /dev/null @@ -1,202 +0,0 @@ -/* System definitions for code taken from the GNU C Library - - Copyright 2017-2023 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this program; if not, see - . */ - -/* Written by Paul Eggert. */ - -/* This is intended to be a good-enough substitute for glibc system - macros like those defined in , so that Gnulib code - shared with glibc can do this as the first #include: - - #ifndef _LIBC - # include - #endif - - When compiled as part of glibc this is a no-op; when compiled as - part of Gnulib this includes Gnulib's and defines macros - that glibc library code would normally assume. - - Note: This header file MUST NOT be included by public header files - of Gnulib. */ - -#include - -/* On glibc this includes and and #defines - _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and - DragonFlyBSD 5.9 it includes which defines __nonnull. - Elsewhere it is harmless. */ -#include - -/* From glibc . */ -#ifndef __set_errno -# define __set_errno(val) (errno = (val)) -#endif - -/* From glibc . */ - -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif - -#ifndef __glibc_clang_prereq -# if defined __clang_major__ && defined __clang_minor__ -# ifdef __apple_build_version__ -/* Apple for some reason renumbers __clang_major__ and __clang_minor__. - Gnulib code uses only __glibc_clang_prereq (3, 5); map it to - 6000000 <= __apple_build_version__. Support for other calls to - __glibc_clang_prereq can be added here as needed. */ -# define __glibc_clang_prereq(maj, min) \ - ((maj) == 3 && (min) == 5 ? 6000000 <= __apple_build_version__ : 0) -# else -# define __glibc_clang_prereq(maj, min) \ - ((maj) < __clang_major__ + ((min) <= __clang_minor__)) -# endif -# else -# define __glibc_clang_prereq(maj, min) 0 -# endif -#endif - -#ifndef __attribute_nonnull__ -/* either does not exist, or is too old for Gnulib. - Prepare to include , which is Gnulib's version of a - more-recent glibc . */ - -/* Define _FEATURES_H so that does not include . */ -# ifndef _FEATURES_H -# define _FEATURES_H 1 -# endif -/* Define __GNULIB_CDEFS so that does not attempt to include - nonexistent files. */ -# define __GNULIB_CDEFS -/* Undef the macros unconditionally defined by our copy of glibc - , so that they do not clash with any system-defined - versions. */ -# undef _SYS_CDEFS_H -# undef __ASMNAME -# undef __ASMNAME2 -# undef __BEGIN_DECLS -# undef __CONCAT -# undef __END_DECLS -# undef __HAVE_GENERIC_SELECTION -# undef __LDBL_COMPAT -# undef __LDBL_REDIR -# undef __LDBL_REDIR1 -# undef __LDBL_REDIR1_DECL -# undef __LDBL_REDIR1_NTH -# undef __LDBL_REDIR2_DECL -# undef __LDBL_REDIR_DECL -# undef __LDBL_REDIR_NTH -# undef __LEAF -# undef __LEAF_ATTR -# undef __NTH -# undef __NTHNL -# undef __REDIRECT -# undef __REDIRECT_LDBL -# undef __REDIRECT_NTH -# undef __REDIRECT_NTHNL -# undef __REDIRECT_NTH_LDBL -# undef __STRING -# undef __THROW -# undef __THROWNL -# undef __attr_access -# undef __attr_access_none -# undef __attr_dealloc -# undef __attr_dealloc_free -# undef __attribute__ -# undef __attribute_alloc_align__ -# undef __attribute_alloc_size__ -# undef __attribute_artificial__ -# undef __attribute_const__ -# undef __attribute_deprecated__ -# undef __attribute_deprecated_msg__ -# undef __attribute_format_arg__ -# undef __attribute_format_strfmon__ -# undef __attribute_malloc__ -# undef __attribute_maybe_unused__ -# undef __attribute_noinline__ -# undef __attribute_nonstring__ -# undef __attribute_pure__ -# undef __attribute_returns_twice__ -# undef __attribute_used__ -# undef __attribute_warn_unused_result__ -# undef __bos -# undef __bos0 -# undef __errordecl -# undef __extension__ -# undef __extern_always_inline -# undef __extern_inline -# undef __flexarr -# undef __fortified_attr_access -# undef __fortify_function -# undef __glibc_c99_flexarr_available -# undef __glibc_fortify -# undef __glibc_fortify_n -# undef __glibc_has_attribute -# undef __glibc_has_builtin -# undef __glibc_has_extension -# undef __glibc_likely -# undef __glibc_macro_warning -# undef __glibc_macro_warning1 -# undef __glibc_objsize -# undef __glibc_objsize0 -# undef __glibc_safe_len_cond -# undef __glibc_safe_or_unknown_len -# undef __glibc_unlikely -# undef __glibc_unsafe_len -# undef __glibc_unsigned_or_positive -# undef __inline -# undef __ptr_t -# undef __restrict -# undef __restrict_arr -# undef __va_arg_pack -# undef __va_arg_pack_len -# undef __warnattr -# undef __wur - -/* Include our copy of glibc . */ -# include - -/* __inline is too pessimistic for non-GCC. */ -# undef __inline -# ifndef HAVE___INLINE -# if 199901 <= __STDC_VERSION__ || defined inline -# define __inline inline -# else -# define __inline -# endif -# endif - -#endif /* defined __glibc_likely */ - - -/* A substitute for glibc , good enough for Gnulib. */ -#define attribute_hidden -#define libc_hidden_proto(name) -#define libc_hidden_def(name) -#define libc_hidden_weak(name) -#define libc_hidden_ver(local, name) -#define strong_alias(name, aliasname) -#define weak_alias(name, aliasname) - -/* A substitute for glibc , good enough for Gnulib. */ -#define SHLIB_COMPAT(lib, introduced, obsoleted) 0 -#define compat_symbol(lib, local, symbol, version) extern int dummy -#define versioned_symbol(lib, local, symbol, version) extern int dummy diff --git a/gl/limits.in.h b/gl/limits.in.h deleted file mode 100644 index eaeac47..0000000 --- a/gl/limits.in.h +++ /dev/null @@ -1,131 +0,0 @@ -/* A GNU-like . - - Copyright 2016-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif -@PRAGMA_COLUMNS@ - -#if defined _GL_ALREADY_INCLUDING_LIMITS_H -/* Special invocation convention: - On Haiku/x86_64, we have a sequence of nested includes - -> -> . - In this situation, LONG_MAX and INT_MAX are not yet defined, - therefore we should not attempt to define LONG_BIT. */ - -#@INCLUDE_NEXT@ @NEXT_LIMITS_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _@GUARD_PREFIX@_LIMITS_H - -# define _GL_ALREADY_INCLUDING_LIMITS_H - -/* The include_next requires a split double-inclusion guard. */ -# @INCLUDE_NEXT@ @NEXT_LIMITS_H@ - -# undef _GL_ALREADY_INCLUDING_LIMITS_H - -#ifndef _@GUARD_PREFIX@_LIMITS_H -#define _@GUARD_PREFIX@_LIMITS_H - -#ifndef LLONG_MIN -# if defined LONG_LONG_MIN /* HP-UX 11.31 */ -# define LLONG_MIN LONG_LONG_MIN -# elif defined LONGLONG_MIN /* IRIX 6.5 */ -# define LLONG_MIN LONGLONG_MIN -# elif defined __GNUC__ -# define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) -# endif -#endif -#ifndef LLONG_MAX -# if defined LONG_LONG_MAX /* HP-UX 11.31 */ -# define LLONG_MAX LONG_LONG_MAX -# elif defined LONGLONG_MAX /* IRIX 6.5 */ -# define LLONG_MAX LONGLONG_MAX -# elif defined __GNUC__ -# define LLONG_MAX __LONG_LONG_MAX__ -# endif -#endif -#ifndef ULLONG_MAX -# if defined ULONG_LONG_MAX /* HP-UX 11.31 */ -# define ULLONG_MAX ULONG_LONG_MAX -# elif defined ULONGLONG_MAX /* IRIX 6.5 */ -# define ULLONG_MAX ULONGLONG_MAX -# elif defined __GNUC__ -# define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) -# endif -#endif - -/* The number of usable bits in an unsigned or signed integer type - with minimum value MIN and maximum value MAX, as an int expression - suitable in #if. Cover all known practical hosts. This - implementation exploits the fact that MAX is 1 less than a power of - 2, and merely counts the number of 1 bits in MAX; "COBn" means - "count the number of 1 bits in the low-order n bits"). */ -#define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) -#define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) -#define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) -#define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) -#define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) -#define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) -#define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) - -#ifndef WORD_BIT -/* Assume 'int' is 32 bits wide. */ -# define WORD_BIT 32 -#endif -#ifndef LONG_BIT -/* Assume 'long' is 32 or 64 bits wide. */ -# if LONG_MAX == INT_MAX -# define LONG_BIT 32 -# else -# define LONG_BIT 64 -# endif -#endif - -/* Macros specified by C23 and by ISO/IEC TS 18661-1:2014. */ - -#if (! defined ULLONG_WIDTH \ - && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \ - || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) -# define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) -# define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) -# define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) -# define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) -# define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) -# define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) -# define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) -# define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) -# define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) -# define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) -# define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) -#endif - -/* Macros specified by C23. */ - -#if (! defined BOOL_WIDTH \ - && (defined _GNU_SOURCE \ - || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) -# define BOOL_MAX 1 -# define BOOL_WIDTH 1 -#endif - -#endif /* _@GUARD_PREFIX@_LIMITS_H */ -#endif /* _@GUARD_PREFIX@_LIMITS_H */ -#endif diff --git a/gl/localcharset.c b/gl/localcharset.c index 7ed9c95..a225a2e 100644 --- a/gl/localcharset.c +++ b/gl/localcharset.c @@ -1,19 +1,19 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2006, 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2000-2006, 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ /* Written by Bruno Haible . */ @@ -22,6 +22,7 @@ /* Specification. */ #include "localcharset.h" +#include #include #include #include @@ -31,9 +32,8 @@ # define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ #endif -#if defined _WIN32 && !defined __CYGWIN__ +#if defined _WIN32 || defined __WIN32__ # define WINDOWS_NATIVE -# include #endif #if defined __EMX__ @@ -44,10 +44,11 @@ #endif #if !defined WINDOWS_NATIVE +# include # if HAVE_LANGINFO_CODESET # include # else -# if 0 /* see comment regarding use of setlocale(), below */ +# if 0 /* see comment below */ # include # endif # endif @@ -58,9 +59,6 @@ #elif defined WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include - /* For the use of setlocale() below, the Gnulib override in setlocale.c is - not needed; see the platform lists in setlocale_null.m4. */ -# undef setlocale #endif #if defined OS2 # define INCL_DOS @@ -72,755 +70,288 @@ # include #endif +#if ENABLE_RELOCATABLE +# include "relocatable.h" +#else +# define relocate(pathname) (pathname) +#endif -#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 +/* Get LIBDIR. */ +#ifndef LIBDIR +# include "configmake.h" +#endif -/* On these platforms, we use a mapping from non-canonical encoding name - to GNU canonical encoding name. */ +/* Define O_NOFOLLOW to 0 on platforms where it does not exist. */ +#ifndef O_NOFOLLOW +# define O_NOFOLLOW 0 +#endif -/* With glibc-2.1 or newer, we don't need any canonicalization, - because glibc has iconv and both glibc and libiconv support all - GNU canonical names directly. */ -# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__) +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Native Windows, Cygwin, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +#endif -struct table_entry +#ifndef DIRECTORY_SEPARATOR +# define DIRECTORY_SEPARATOR '/' +#endif + +#ifndef ISSLASH +# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) +#endif + +#if HAVE_DECL_GETC_UNLOCKED +# undef getc +# define getc getc_unlocked +#endif + +/* The following static variable is declared 'volatile' to avoid a + possible multithread problem in the function get_charset_aliases. If we + are running in a threaded environment, and if two threads initialize + 'charset_aliases' simultaneously, both will produce the same value, + and everything will be ok if the two assignments to 'charset_aliases' + are atomic. But I don't know what will happen if the two assignments mix. */ +#if __STDC__ != 1 +# define volatile /* empty */ +#endif +/* Pointer to the contents of the charset.alias file, if it has already been + read, else NULL. Its format is: + ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ +static const char * volatile charset_aliases; + +/* Return a pointer to the contents of the charset.alias file. */ +static const char * +get_charset_aliases (void) { - const char alias[11+1]; - const char canonical[11+1]; -}; + const char *cp; -/* Table of platform-dependent mappings, sorted in ascending order. */ -static const struct table_entry alias_table[] = - { -# if defined __FreeBSD__ /* FreeBSD */ - /*{ "ARMSCII-8", "ARMSCII-8" },*/ - { "Big5", "BIG5" }, - { "C", "ASCII" }, - /*{ "CP1131", "CP1131" },*/ - /*{ "CP1251", "CP1251" },*/ - /*{ "CP866", "CP866" },*/ - /*{ "GB18030", "GB18030" },*/ - /*{ "GB2312", "GB2312" },*/ - /*{ "GBK", "GBK" },*/ - /*{ "ISCII-DEV", "?" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - /*{ "KOI8-R", "KOI8-R" },*/ - /*{ "KOI8-U", "KOI8-U" },*/ - { "SJIS", "SHIFT_JIS" }, - { "US-ASCII", "ASCII" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" } -# define alias_table_defined -# endif -# if defined __NetBSD__ /* NetBSD */ - { "646", "ASCII" }, - /*{ "ARMSCII-8", "ARMSCII-8" },*/ - /*{ "BIG5", "BIG5" },*/ - { "Big5-HKSCS", "BIG5-HKSCS" }, - /*{ "CP1251", "CP1251" },*/ - /*{ "CP866", "CP866" },*/ - /*{ "GB18030", "GB18030" },*/ - /*{ "GB2312", "GB2312" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - /*{ "KOI8-R", "KOI8-R" },*/ - /*{ "KOI8-U", "KOI8-U" },*/ - /*{ "PT154", "PT154" },*/ - { "SJIS", "SHIFT_JIS" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# if defined __OpenBSD__ /* OpenBSD */ - { "646", "ASCII" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "US-ASCII", "ASCII" } -# define alias_table_defined -# endif -# if defined __APPLE__ && defined __MACH__ /* Mac OS X */ - /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is - useless: - - It returns the empty string when LANG is set to a locale of the - form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 - LC_CTYPE file. - - The environment variables LANG, LC_CTYPE, LC_ALL are not set by - the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. - - The documentation says: - "... all code that calls BSD system routines should ensure - that the const *char parameters of these routines are in UTF-8 - encoding. All BSD system functions expect their string - parameters to be in UTF-8 encoding and nothing else." - It also says - "An additional caveat is that string parameters for files, - paths, and other file-system entities must be in canonical - UTF-8. In a canonical UTF-8 Unicode string, all decomposable - characters are decomposed ..." - but this is not true: You can pass non-decomposed UTF-8 strings - to file system functions, and it is the OS which will convert - them to decomposed UTF-8 before accessing the file system. - - The Apple Terminal application displays UTF-8 by default. - - However, other applications are free to use different encodings: - - xterm uses ISO-8859-1 by default. - - TextEdit uses MacRoman by default. - We prefer UTF-8 over decomposed UTF-8-MAC because one should - minimize the use of decomposed Unicode. Unfortunately, through the - Darwin file system, decomposed UTF-8 strings are leaked into user - space nevertheless. - Then there are also the locales with encodings other than US-ASCII - and UTF-8. These locales can be occasionally useful to users (e.g. - when grepping through ISO-8859-1 encoded text files), when all their - file names are in US-ASCII. - */ - { "ARMSCII-8", "ARMSCII-8" }, - { "Big5", "BIG5" }, - { "Big5HKSCS", "BIG5-HKSCS" }, - { "CP1131", "CP1131" }, - { "CP1251", "CP1251" }, - { "CP866", "CP866" }, - { "CP949", "CP949" }, - { "GB18030", "GB18030" }, - { "GB2312", "GB2312" }, - { "GBK", "GBK" }, - /*{ "ISCII-DEV", "?" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - { "KOI8-R", "KOI8-R" }, - { "KOI8-U", "KOI8-U" }, - { "PT154", "PT154" }, - { "SJIS", "SHIFT_JIS" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" } -# define alias_table_defined -# endif -# if defined _AIX /* AIX */ - /*{ "GBK", "GBK" },*/ - { "IBM-1046", "CP1046" }, - { "IBM-1124", "CP1124" }, - { "IBM-1129", "CP1129" }, - { "IBM-1252", "CP1252" }, - { "IBM-850", "CP850" }, - { "IBM-856", "CP856" }, - { "IBM-921", "ISO-8859-13" }, - { "IBM-922", "CP922" }, - { "IBM-932", "CP932" }, - { "IBM-943", "CP943" }, - { "IBM-eucCN", "GB2312" }, - { "IBM-eucJP", "EUC-JP" }, - { "IBM-eucKR", "EUC-KR" }, - { "IBM-eucTW", "EUC-TW" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "TIS-620", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "big5", "BIG5" } -# define alias_table_defined -# endif -# if defined __hpux /* HP-UX */ - { "SJIS", "SHIFT_JIS" }, - { "arabic8", "HP-ARABIC8" }, - { "big5", "BIG5" }, - { "cp1251", "CP1251" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" }, - { "gb18030", "GB18030" }, - { "greek8", "HP-GREEK8" }, - { "hebrew8", "HP-HEBREW8" }, - { "hkbig5", "BIG5-HKSCS" }, - { "hp15CN", "GB2312" }, - { "iso88591", "ISO-8859-1" }, - { "iso885913", "ISO-8859-13" }, - { "iso885915", "ISO-8859-15" }, - { "iso88592", "ISO-8859-2" }, - { "iso88594", "ISO-8859-4" }, - { "iso88595", "ISO-8859-5" }, - { "iso88596", "ISO-8859-6" }, - { "iso88597", "ISO-8859-7" }, - { "iso88598", "ISO-8859-8" }, - { "iso88599", "ISO-8859-9" }, - { "kana8", "HP-KANA8" }, - { "koi8r", "KOI8-R" }, - { "roman8", "HP-ROMAN8" }, - { "tis620", "TIS-620" }, - { "turkish8", "HP-TURKISH8" }, - { "utf8", "UTF-8" } -# define alias_table_defined -# endif -# if defined __sgi /* IRIX */ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# if defined __osf__ /* OSF/1 */ - /*{ "GBK", "GBK" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "KSC5601", "CP949" }, - { "SJIS", "SHIFT_JIS" }, - { "TACTIS", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "big5", "BIG5" }, - { "cp850", "CP850" }, - { "dechanyu", "DEC-HANYU" }, - { "dechanzi", "GB2312" }, - { "deckanji", "DEC-KANJI" }, - { "deckorean", "EUC-KR" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" }, - { "sdeckanji", "EUC-JP" } -# define alias_table_defined -# endif -# if defined __sun /* Solaris */ - { "5601", "EUC-KR" }, - { "646", "ASCII" }, - /*{ "BIG5", "BIG5" },*/ - { "Big5-HKSCS", "BIG5-HKSCS" }, - { "GB18030", "GB18030" }, - /*{ "GBK", "GBK" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-11", "TIS-620" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-3", "ISO-8859-3" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "PCK", "SHIFT_JIS" }, - { "TIS620.2533", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "ansi-1251", "CP1251" }, - { "cns11643", "EUC-TW" }, - { "eucJP", "EUC-JP" }, - { "gb2312", "GB2312" }, - { "koi8-r", "KOI8-R" } -# define alias_table_defined -# endif -# if defined __minix /* Minix */ - { "646", "ASCII" } -# define alias_table_defined -# endif -# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */ - { "CP1361", "JOHAB" }, - { "CP20127", "ASCII" }, - { "CP20866", "KOI8-R" }, - { "CP20936", "GB2312" }, - { "CP21866", "KOI8-RU" }, - { "CP28591", "ISO-8859-1" }, - { "CP28592", "ISO-8859-2" }, - { "CP28593", "ISO-8859-3" }, - { "CP28594", "ISO-8859-4" }, - { "CP28595", "ISO-8859-5" }, - { "CP28596", "ISO-8859-6" }, - { "CP28597", "ISO-8859-7" }, - { "CP28598", "ISO-8859-8" }, - { "CP28599", "ISO-8859-9" }, - { "CP28605", "ISO-8859-15" }, - { "CP38598", "ISO-8859-8" }, - { "CP51932", "EUC-JP" }, - { "CP51936", "GB2312" }, - { "CP51949", "EUC-KR" }, - { "CP51950", "EUC-TW" }, - { "CP54936", "GB18030" }, - { "CP65001", "UTF-8" }, - { "CP936", "GBK" } -# define alias_table_defined -# endif -# if defined OS2 /* OS/2 */ - /* The list of encodings is taken from "List of OS/2 Codepages" - by Alex Taylor: - . - See also "__convcp() of kLIBC": - . */ - { "CP1004", "CP1252" }, - /*{ "CP1041", "CP943" },*/ - /*{ "CP1088", "CP949" },*/ - { "CP1089", "ISO-8859-6" }, - /*{ "CP1114", "CP950" },*/ - /*{ "CP1115", "GB2312" },*/ - { "CP1208", "UTF-8" }, - /*{ "CP1380", "GB2312" },*/ - { "CP1381", "GB2312" }, - { "CP1383", "GB2312" }, - { "CP1386", "GBK" }, - /*{ "CP301", "CP943" },*/ - { "CP3372", "EUC-JP" }, - { "CP4946", "CP850" }, - /*{ "CP5048", "JIS_X0208-1990" },*/ - /*{ "CP5049", "JIS_X0212-1990" },*/ - /*{ "CP5067", "KS_C_5601-1987" },*/ - { "CP813", "ISO-8859-7" }, - { "CP819", "ISO-8859-1" }, - { "CP878", "KOI8-R" }, - /*{ "CP897", "CP943" },*/ - { "CP912", "ISO-8859-2" }, - { "CP913", "ISO-8859-3" }, - { "CP914", "ISO-8859-4" }, - { "CP915", "ISO-8859-5" }, - { "CP916", "ISO-8859-8" }, - { "CP920", "ISO-8859-9" }, - { "CP921", "ISO-8859-13" }, - { "CP923", "ISO-8859-15" }, - /*{ "CP941", "CP943" },*/ - /*{ "CP947", "CP950" },*/ - /*{ "CP951", "CP949" },*/ - /*{ "CP952", "JIS_X0208-1990" },*/ - /*{ "CP953", "JIS_X0212-1990" },*/ - { "CP954", "EUC-JP" }, - { "CP964", "EUC-TW" }, - { "CP970", "EUC-KR" }, - /*{ "CP971", "KS_C_5601-1987" },*/ - { "IBM-1004", "CP1252" }, - /*{ "IBM-1006", "?" },*/ - /*{ "IBM-1008", "?" },*/ - /*{ "IBM-1041", "CP943" },*/ - /*{ "IBM-1051", "?" },*/ - /*{ "IBM-1088", "CP949" },*/ - { "IBM-1089", "ISO-8859-6" }, - /*{ "IBM-1098", "?" },*/ - /*{ "IBM-1114", "CP950" },*/ - /*{ "IBM-1115", "GB2312" },*/ - /*{ "IBM-1116", "?" },*/ - /*{ "IBM-1117", "?" },*/ - /*{ "IBM-1118", "?" },*/ - /*{ "IBM-1119", "?" },*/ - { "IBM-1124", "CP1124" }, - { "IBM-1125", "CP1125" }, - { "IBM-1131", "CP1131" }, - { "IBM-1208", "UTF-8" }, - { "IBM-1250", "CP1250" }, - { "IBM-1251", "CP1251" }, - { "IBM-1252", "CP1252" }, - { "IBM-1253", "CP1253" }, - { "IBM-1254", "CP1254" }, - { "IBM-1255", "CP1255" }, - { "IBM-1256", "CP1256" }, - { "IBM-1257", "CP1257" }, - /*{ "IBM-1275", "?" },*/ - /*{ "IBM-1276", "?" },*/ - /*{ "IBM-1277", "?" },*/ - /*{ "IBM-1280", "?" },*/ - /*{ "IBM-1281", "?" },*/ - /*{ "IBM-1282", "?" },*/ - /*{ "IBM-1283", "?" },*/ - /*{ "IBM-1380", "GB2312" },*/ - { "IBM-1381", "GB2312" }, - { "IBM-1383", "GB2312" }, - { "IBM-1386", "GBK" }, - /*{ "IBM-301", "CP943" },*/ - { "IBM-3372", "EUC-JP" }, - { "IBM-367", "ASCII" }, - { "IBM-437", "CP437" }, - { "IBM-4946", "CP850" }, - /*{ "IBM-5048", "JIS_X0208-1990" },*/ - /*{ "IBM-5049", "JIS_X0212-1990" },*/ - /*{ "IBM-5067", "KS_C_5601-1987" },*/ - { "IBM-813", "ISO-8859-7" }, - { "IBM-819", "ISO-8859-1" }, - { "IBM-850", "CP850" }, - /*{ "IBM-851", "?" },*/ - { "IBM-852", "CP852" }, - { "IBM-855", "CP855" }, - { "IBM-856", "CP856" }, - { "IBM-857", "CP857" }, - /*{ "IBM-859", "?" },*/ - { "IBM-860", "CP860" }, - { "IBM-861", "CP861" }, - { "IBM-862", "CP862" }, - { "IBM-863", "CP863" }, - { "IBM-864", "CP864" }, - { "IBM-865", "CP865" }, - { "IBM-866", "CP866" }, - /*{ "IBM-868", "?" },*/ - { "IBM-869", "CP869" }, - { "IBM-874", "CP874" }, - { "IBM-878", "KOI8-R" }, - /*{ "IBM-895", "?" },*/ - /*{ "IBM-897", "CP943" },*/ - /*{ "IBM-907", "?" },*/ - /*{ "IBM-909", "?" },*/ - { "IBM-912", "ISO-8859-2" }, - { "IBM-913", "ISO-8859-3" }, - { "IBM-914", "ISO-8859-4" }, - { "IBM-915", "ISO-8859-5" }, - { "IBM-916", "ISO-8859-8" }, - { "IBM-920", "ISO-8859-9" }, - { "IBM-921", "ISO-8859-13" }, - { "IBM-922", "CP922" }, - { "IBM-923", "ISO-8859-15" }, - { "IBM-932", "CP932" }, - /*{ "IBM-941", "CP943" },*/ - /*{ "IBM-942", "?" },*/ - { "IBM-943", "CP943" }, - /*{ "IBM-947", "CP950" },*/ - { "IBM-949", "CP949" }, - { "IBM-950", "CP950" }, - /*{ "IBM-951", "CP949" },*/ - /*{ "IBM-952", "JIS_X0208-1990" },*/ - /*{ "IBM-953", "JIS_X0212-1990" },*/ - { "IBM-954", "EUC-JP" }, - /*{ "IBM-955", "?" },*/ - { "IBM-964", "EUC-TW" }, - { "IBM-970", "EUC-KR" }, - /*{ "IBM-971", "KS_C_5601-1987" },*/ - { "IBM-eucCN", "GB2312" }, - { "IBM-eucJP", "EUC-JP" }, - { "IBM-eucKR", "EUC-KR" }, - { "IBM-eucTW", "EUC-TW" }, - { "IBM33722", "EUC-JP" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-3", "ISO-8859-3" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - /*{ "JISX0201-1976", "JISX0201-1976" },*/ - /*{ "JISX0208-1978", "?" },*/ - /*{ "JISX0208-1983", "JIS_X0208-1983" },*/ - /*{ "JISX0208-1990", "JIS_X0208-1990" },*/ - /*{ "JISX0212-1990", "JIS_X0212-1990" },*/ - /*{ "KSC5601-1987", "KS_C_5601-1987" },*/ - { "SJIS-1", "CP943" }, - { "SJIS-2", "CP943" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW-1993", "EUC-TW" } -# define alias_table_defined -# endif -# if defined VMS /* OpenVMS */ - /* The list of encodings is taken from the OpenVMS 7.3-1 documentation - "Compaq C Run-Time Library Reference Manual for OpenVMS systems" - section 10.7 "Handling Different Character Sets". */ - { "DECHANYU", "DEC-HANYU" }, - { "DECHANZI", "GB2312" }, - { "DECKANJI", "DEC-KANJI" }, - { "DECKOREAN", "EUC-KR" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "SDECKANJI", "EUC-JP" }, - { "SJIS", "SHIFT_JIS" }, - { "eucJP", "EUC-JP" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# ifndef alias_table_defined - /* Just a dummy entry, to avoid a C syntax error. */ - { "", "" } -# endif - }; + cp = charset_aliases; + if (cp == NULL) + { +#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__) + const char *dir; + const char *base = "charset.alias"; + char *file_name; -# endif + /* Make it possible to override the charset.alias location. This is + necessary for running the testsuite before "make install". */ + dir = getenv ("CHARSETALIASDIR"); + if (dir == NULL || dir[0] == '\0') + dir = relocate (LIBDIR); + + /* Concatenate dir and base into freshly allocated file_name. */ + { + size_t dir_len = strlen (dir); + size_t base_len = strlen (base); + int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); + file_name = (char *) malloc (dir_len + add_slash + base_len + 1); + if (file_name != NULL) + { + memcpy (file_name, dir, dir_len); + if (add_slash) + file_name[dir_len] = DIRECTORY_SEPARATOR; + memcpy (file_name + dir_len + add_slash, base, base_len + 1); + } + } + + if (file_name == NULL) + /* Out of memory. Treat the file as empty. */ + cp = ""; + else + { + int fd; + + /* Open the file. Reject symbolic links on platforms that support + O_NOFOLLOW. This is a security feature. Without it, an attacker + could retrieve parts of the contents (namely, the tail of the + first line that starts with "* ") of an arbitrary file by placing + a symbolic link to that file under the name "charset.alias" in + some writable directory and defining the environment variable + CHARSETALIASDIR to point to that directory. */ + fd = open (file_name, + O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0)); + if (fd < 0) + /* File not found. Treat it as empty. */ + cp = ""; + else + { + FILE *fp; + + fp = fdopen (fd, "r"); + if (fp == NULL) + { + /* Out of memory. Treat the file as empty. */ + close (fd); + cp = ""; + } + else + { + /* Parse the file's contents. */ + char *res_ptr = NULL; + size_t res_size = 0; + + for (;;) + { + int c; + char buf1[50+1]; + char buf2[50+1]; + size_t l1, l2; + char *old_res_ptr; + + c = getc (fp); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') + { + /* Skip comment, to end of line. */ + do + c = getc (fp); + while (!(c == EOF || c == '\n')); + if (c == EOF) + break; + continue; + } + ungetc (c, fp); + if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) + break; + l1 = strlen (buf1); + l2 = strlen (buf2); + old_res_ptr = res_ptr; + if (res_size == 0) + { + res_size = l1 + 1 + l2 + 1; + res_ptr = (char *) malloc (res_size + 1); + } + else + { + res_size += l1 + 1 + l2 + 1; + res_ptr = (char *) realloc (res_ptr, res_size + 1); + } + if (res_ptr == NULL) + { + /* Out of memory. */ + res_size = 0; + free (old_res_ptr); + break; + } + strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); + strcpy (res_ptr + res_size - (l2 + 1), buf2); + } + fclose (fp); + if (res_size == 0) + cp = ""; + else + { + *(res_ptr + res_size) = '\0'; + cp = res_ptr; + } + } + } + + free (file_name); + } #else -/* On these platforms, we use a mapping from locale name to GNU canonical - encoding name. */ - -struct table_entry -{ - const char locale[17+1]; - const char canonical[11+1]; -}; - -/* Table of platform-dependent mappings, sorted in ascending order. */ -static const struct table_entry locale_table[] = - { -# if defined __FreeBSD__ /* FreeBSD 4.2 */ - { "cs_CZ.ISO_8859-2", "ISO-8859-2" }, - { "da_DK.DIS_8859-15", "ISO-8859-15" }, - { "da_DK.ISO_8859-1", "ISO-8859-1" }, - { "de_AT.DIS_8859-15", "ISO-8859-15" }, - { "de_AT.ISO_8859-1", "ISO-8859-1" }, - { "de_CH.DIS_8859-15", "ISO-8859-15" }, - { "de_CH.ISO_8859-1", "ISO-8859-1" }, - { "de_DE.DIS_8859-15", "ISO-8859-15" }, - { "de_DE.ISO_8859-1", "ISO-8859-1" }, - { "en_AU.DIS_8859-15", "ISO-8859-15" }, - { "en_AU.ISO_8859-1", "ISO-8859-1" }, - { "en_CA.DIS_8859-15", "ISO-8859-15" }, - { "en_CA.ISO_8859-1", "ISO-8859-1" }, - { "en_GB.DIS_8859-15", "ISO-8859-15" }, - { "en_GB.ISO_8859-1", "ISO-8859-1" }, - { "en_US.DIS_8859-15", "ISO-8859-15" }, - { "en_US.ISO_8859-1", "ISO-8859-1" }, - { "es_ES.DIS_8859-15", "ISO-8859-15" }, - { "es_ES.ISO_8859-1", "ISO-8859-1" }, - { "fi_FI.DIS_8859-15", "ISO-8859-15" }, - { "fi_FI.ISO_8859-1", "ISO-8859-1" }, - { "fr_BE.DIS_8859-15", "ISO-8859-15" }, - { "fr_BE.ISO_8859-1", "ISO-8859-1" }, - { "fr_CA.DIS_8859-15", "ISO-8859-15" }, - { "fr_CA.ISO_8859-1", "ISO-8859-1" }, - { "fr_CH.DIS_8859-15", "ISO-8859-15" }, - { "fr_CH.ISO_8859-1", "ISO-8859-1" }, - { "fr_FR.DIS_8859-15", "ISO-8859-15" }, - { "fr_FR.ISO_8859-1", "ISO-8859-1" }, - { "hr_HR.ISO_8859-2", "ISO-8859-2" }, - { "hu_HU.ISO_8859-2", "ISO-8859-2" }, - { "is_IS.DIS_8859-15", "ISO-8859-15" }, - { "is_IS.ISO_8859-1", "ISO-8859-1" }, - { "it_CH.DIS_8859-15", "ISO-8859-15" }, - { "it_CH.ISO_8859-1", "ISO-8859-1" }, - { "it_IT.DIS_8859-15", "ISO-8859-15" }, - { "it_IT.ISO_8859-1", "ISO-8859-1" }, - { "ja_JP.EUC", "EUC-JP" }, - { "ja_JP.SJIS", "SHIFT_JIS" }, - { "ja_JP.Shift_JIS", "SHIFT_JIS" }, - { "ko_KR.EUC", "EUC-KR" }, - { "la_LN.ASCII", "ASCII" }, - { "la_LN.DIS_8859-15", "ISO-8859-15" }, - { "la_LN.ISO_8859-1", "ISO-8859-1" }, - { "la_LN.ISO_8859-2", "ISO-8859-2" }, - { "la_LN.ISO_8859-4", "ISO-8859-4" }, - { "lt_LN.ASCII", "ASCII" }, - { "lt_LN.DIS_8859-15", "ISO-8859-15" }, - { "lt_LN.ISO_8859-1", "ISO-8859-1" }, - { "lt_LN.ISO_8859-2", "ISO-8859-2" }, - { "lt_LT.ISO_8859-4", "ISO-8859-4" }, - { "nl_BE.DIS_8859-15", "ISO-8859-15" }, - { "nl_BE.ISO_8859-1", "ISO-8859-1" }, - { "nl_NL.DIS_8859-15", "ISO-8859-15" }, - { "nl_NL.ISO_8859-1", "ISO-8859-1" }, - { "no_NO.DIS_8859-15", "ISO-8859-15" }, - { "no_NO.ISO_8859-1", "ISO-8859-1" }, - { "pl_PL.ISO_8859-2", "ISO-8859-2" }, - { "pt_PT.DIS_8859-15", "ISO-8859-15" }, - { "pt_PT.ISO_8859-1", "ISO-8859-1" }, - { "ru_RU.CP866", "CP866" }, - { "ru_RU.ISO_8859-5", "ISO-8859-5" }, - { "ru_RU.KOI8-R", "KOI8-R" }, - { "ru_SU.CP866", "CP866" }, - { "ru_SU.ISO_8859-5", "ISO-8859-5" }, - { "ru_SU.KOI8-R", "KOI8-R" }, - { "sl_SI.ISO_8859-2", "ISO-8859-2" }, - { "sv_SE.DIS_8859-15", "ISO-8859-15" }, - { "sv_SE.ISO_8859-1", "ISO-8859-1" }, - { "uk_UA.KOI8-U", "KOI8-U" }, - { "zh_CN.EUC", "GB2312" }, - { "zh_TW.BIG5", "BIG5" }, - { "zh_TW.Big5", "BIG5" } -# define locale_table_defined +# if defined DARWIN7 + /* To avoid the trouble of installing a file that is shared by many + GNU packages -- many packaging systems have problems with this --, + simply inline the aliases here. */ + cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" + "ISO8859-2" "\0" "ISO-8859-2" "\0" + "ISO8859-4" "\0" "ISO-8859-4" "\0" + "ISO8859-5" "\0" "ISO-8859-5" "\0" + "ISO8859-7" "\0" "ISO-8859-7" "\0" + "ISO8859-9" "\0" "ISO-8859-9" "\0" + "ISO8859-13" "\0" "ISO-8859-13" "\0" + "ISO8859-15" "\0" "ISO-8859-15" "\0" + "KOI8-R" "\0" "KOI8-R" "\0" + "KOI8-U" "\0" "KOI8-U" "\0" + "CP866" "\0" "CP866" "\0" + "CP949" "\0" "CP949" "\0" + "CP1131" "\0" "CP1131" "\0" + "CP1251" "\0" "CP1251" "\0" + "eucCN" "\0" "GB2312" "\0" + "GB2312" "\0" "GB2312" "\0" + "eucJP" "\0" "EUC-JP" "\0" + "eucKR" "\0" "EUC-KR" "\0" + "Big5" "\0" "BIG5" "\0" + "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" + "GBK" "\0" "GBK" "\0" + "GB18030" "\0" "GB18030" "\0" + "SJIS" "\0" "SHIFT_JIS" "\0" + "ARMSCII-8" "\0" "ARMSCII-8" "\0" + "PT154" "\0" "PT154" "\0" + /*"ISCII-DEV" "\0" "?" "\0"*/ + "*" "\0" "UTF-8" "\0"; # endif -# if defined __DJGPP__ /* DOS / DJGPP 2.03 */ - /* The encodings given here may not all be correct. - If you find that the encoding given for your language and - country is not the one your DOS machine actually uses, just - correct it in this file, and send a mail to - Juan Manuel Guerrero - and . */ - { "C", "ASCII" }, - { "ar", "CP864" }, - { "ar_AE", "CP864" }, - { "ar_DZ", "CP864" }, - { "ar_EG", "CP864" }, - { "ar_IQ", "CP864" }, - { "ar_IR", "CP864" }, - { "ar_JO", "CP864" }, - { "ar_KW", "CP864" }, - { "ar_MA", "CP864" }, - { "ar_OM", "CP864" }, - { "ar_QA", "CP864" }, - { "ar_SA", "CP864" }, - { "ar_SY", "CP864" }, - { "be", "CP866" }, - { "be_BE", "CP866" }, - { "bg", "CP866" }, /* not CP855 ?? */ - { "bg_BG", "CP866" }, /* not CP855 ?? */ - { "ca", "CP850" }, - { "ca_ES", "CP850" }, - { "cs", "CP852" }, - { "cs_CZ", "CP852" }, - { "da", "CP865" }, /* not CP850 ?? */ - { "da_DK", "CP865" }, /* not CP850 ?? */ - { "de", "CP850" }, - { "de_AT", "CP850" }, - { "de_CH", "CP850" }, - { "de_DE", "CP850" }, - { "el", "CP869" }, - { "el_GR", "CP869" }, - { "en", "CP850" }, - { "en_AU", "CP850" }, /* not CP437 ?? */ - { "en_CA", "CP850" }, - { "en_GB", "CP850" }, - { "en_NZ", "CP437" }, - { "en_US", "CP437" }, - { "en_ZA", "CP850" }, /* not CP437 ?? */ - { "eo", "CP850" }, - { "eo_EO", "CP850" }, - { "es", "CP850" }, - { "es_AR", "CP850" }, - { "es_BO", "CP850" }, - { "es_CL", "CP850" }, - { "es_CO", "CP850" }, - { "es_CR", "CP850" }, - { "es_CU", "CP850" }, - { "es_DO", "CP850" }, - { "es_EC", "CP850" }, - { "es_ES", "CP850" }, - { "es_GT", "CP850" }, - { "es_HN", "CP850" }, - { "es_MX", "CP850" }, - { "es_NI", "CP850" }, - { "es_PA", "CP850" }, - { "es_PE", "CP850" }, - { "es_PY", "CP850" }, - { "es_SV", "CP850" }, - { "es_UY", "CP850" }, - { "es_VE", "CP850" }, - { "et", "CP850" }, - { "et_EE", "CP850" }, - { "eu", "CP850" }, - { "eu_ES", "CP850" }, - { "fi", "CP850" }, - { "fi_FI", "CP850" }, - { "fr", "CP850" }, - { "fr_BE", "CP850" }, - { "fr_CA", "CP850" }, - { "fr_CH", "CP850" }, - { "fr_FR", "CP850" }, - { "ga", "CP850" }, - { "ga_IE", "CP850" }, - { "gd", "CP850" }, - { "gd_GB", "CP850" }, - { "gl", "CP850" }, - { "gl_ES", "CP850" }, - { "he", "CP862" }, - { "he_IL", "CP862" }, - { "hr", "CP852" }, - { "hr_HR", "CP852" }, - { "hu", "CP852" }, - { "hu_HU", "CP852" }, - { "id", "CP850" }, /* not CP437 ?? */ - { "id_ID", "CP850" }, /* not CP437 ?? */ - { "is", "CP861" }, /* not CP850 ?? */ - { "is_IS", "CP861" }, /* not CP850 ?? */ - { "it", "CP850" }, - { "it_CH", "CP850" }, - { "it_IT", "CP850" }, - { "ja", "CP932" }, - { "ja_JP", "CP932" }, - { "kr", "CP949" }, /* not CP934 ?? */ - { "kr_KR", "CP949" }, /* not CP934 ?? */ - { "lt", "CP775" }, - { "lt_LT", "CP775" }, - { "lv", "CP775" }, - { "lv_LV", "CP775" }, - { "mk", "CP866" }, /* not CP855 ?? */ - { "mk_MK", "CP866" }, /* not CP855 ?? */ - { "mt", "CP850" }, - { "mt_MT", "CP850" }, - { "nb", "CP865" }, /* not CP850 ?? */ - { "nb_NO", "CP865" }, /* not CP850 ?? */ - { "nl", "CP850" }, - { "nl_BE", "CP850" }, - { "nl_NL", "CP850" }, - { "nn", "CP865" }, /* not CP850 ?? */ - { "nn_NO", "CP865" }, /* not CP850 ?? */ - { "no", "CP865" }, /* not CP850 ?? */ - { "no_NO", "CP865" }, /* not CP850 ?? */ - { "pl", "CP852" }, - { "pl_PL", "CP852" }, - { "pt", "CP850" }, - { "pt_BR", "CP850" }, - { "pt_PT", "CP850" }, - { "ro", "CP852" }, - { "ro_RO", "CP852" }, - { "ru", "CP866" }, - { "ru_RU", "CP866" }, - { "sk", "CP852" }, - { "sk_SK", "CP852" }, - { "sl", "CP852" }, - { "sl_SI", "CP852" }, - { "sq", "CP852" }, - { "sq_AL", "CP852" }, - { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sv", "CP850" }, - { "sv_SE", "CP850" }, - { "th", "CP874" }, - { "th_TH", "CP874" }, - { "tr", "CP857" }, - { "tr_TR", "CP857" }, - { "uk", "CP1125" }, - { "uk_UA", "CP1125" }, - { "zh_CN", "GBK" }, - { "zh_TW", "CP950" } /* not CP938 ?? */ -# define locale_table_defined -# endif -# ifndef locale_table_defined - /* Just a dummy entry, to avoid a C syntax error. */ - { "", "" } -# endif - }; +# if defined VMS + /* To avoid the troubles of an extra file charset.alias_vms in the + sources of many GNU packages, simply inline the aliases here. */ + /* The list of encodings is taken from the OpenVMS 7.3-1 documentation + "Compaq C Run-Time Library Reference Manual for OpenVMS systems" + section 10.7 "Handling Different Character Sets". */ + cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" + "ISO8859-2" "\0" "ISO-8859-2" "\0" + "ISO8859-5" "\0" "ISO-8859-5" "\0" + "ISO8859-7" "\0" "ISO-8859-7" "\0" + "ISO8859-8" "\0" "ISO-8859-8" "\0" + "ISO8859-9" "\0" "ISO-8859-9" "\0" + /* Japanese */ + "eucJP" "\0" "EUC-JP" "\0" + "SJIS" "\0" "SHIFT_JIS" "\0" + "DECKANJI" "\0" "DEC-KANJI" "\0" + "SDECKANJI" "\0" "EUC-JP" "\0" + /* Chinese */ + "eucTW" "\0" "EUC-TW" "\0" + "DECHANYU" "\0" "DEC-HANYU" "\0" + "DECHANZI" "\0" "GB2312" "\0" + /* Korean */ + "DECKOREAN" "\0" "EUC-KR" "\0"; +# endif + +# if defined WINDOWS_NATIVE || defined __CYGWIN__ + /* To avoid the troubles of installing a separate file in the same + directory as the DLL and of retrieving the DLL's directory at + runtime, simply inline the aliases here. */ + + cp = "CP936" "\0" "GBK" "\0" + "CP1361" "\0" "JOHAB" "\0" + "CP20127" "\0" "ASCII" "\0" + "CP20866" "\0" "KOI8-R" "\0" + "CP20936" "\0" "GB2312" "\0" + "CP21866" "\0" "KOI8-RU" "\0" + "CP28591" "\0" "ISO-8859-1" "\0" + "CP28592" "\0" "ISO-8859-2" "\0" + "CP28593" "\0" "ISO-8859-3" "\0" + "CP28594" "\0" "ISO-8859-4" "\0" + "CP28595" "\0" "ISO-8859-5" "\0" + "CP28596" "\0" "ISO-8859-6" "\0" + "CP28597" "\0" "ISO-8859-7" "\0" + "CP28598" "\0" "ISO-8859-8" "\0" + "CP28599" "\0" "ISO-8859-9" "\0" + "CP28605" "\0" "ISO-8859-15" "\0" + "CP38598" "\0" "ISO-8859-8" "\0" + "CP51932" "\0" "EUC-JP" "\0" + "CP51936" "\0" "GB2312" "\0" + "CP51949" "\0" "EUC-KR" "\0" + "CP51950" "\0" "EUC-TW" "\0" + "CP54936" "\0" "GB18030" "\0" + "CP65001" "\0" "UTF-8" "\0"; +# endif #endif + charset_aliases = cp; + } + + return cp; +} /* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ @@ -831,15 +362,9 @@ const char * locale_charset (void) { const char *codeset; + const char *aliases; - /* This function must be multithread-safe. To achieve this without using - thread-local storage, we use a simple strcpy or memcpy to fill this static - buffer. Filling it through, for example, strcpy + strcat would not be - guaranteed to leave the buffer's contents intact if another thread is - currently accessing it. If necessary, the contents is first assembled in - a stack-allocated buffer. */ - -#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 +#if !(defined WINDOWS_NATIVE || defined OS2) # if HAVE_LANGINFO_CODESET @@ -853,7 +378,7 @@ locale_charset (void) if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) { const char *locale; - static char resultbuf[2 + 10 + 1]; + static char buf[2 + 10 + 1]; locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') @@ -877,12 +402,11 @@ locale_charset (void) modifier = strchr (dot, '@'); if (modifier == NULL) return dot; - if (modifier - dot < sizeof (resultbuf)) + if (modifier - dot < sizeof (buf)) { - /* This way of filling resultbuf is multithread-safe. */ - memcpy (resultbuf, dot, modifier - dot); - resultbuf [modifier - dot] = '\0'; - return resultbuf; + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; } } } @@ -898,65 +422,62 @@ locale_charset (void) converting to GetConsoleOutputCP(). This leads to correct results, except when SetConsoleOutputCP has been called and a raster font is in use. */ - { - char buf[2 + 10 + 1]; - - sprintf (buf, "CP%u", GetACP ()); - strcpy (resultbuf, buf); - codeset = resultbuf; - } + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; } # endif - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; +# else -# elif defined WINDOWS_NATIVE + /* On old systems which lack it, use setlocale or getenv. */ + const char *locale = NULL; - char buf[2 + 10 + 1]; - static char resultbuf[2 + 10 + 1]; - - /* The Windows API has a function returning the locale's codepage as - a number, but the value doesn't change according to what the - 'setlocale' call specified. So we use it as a last resort, in - case the string returned by 'setlocale' doesn't specify the - codepage. */ - char *current_locale = setlocale (LC_CTYPE, NULL); - char *pdot = strrchr (current_locale, '.'); - - if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) - sprintf (buf, "CP%s", pdot + 1); - else + /* But most old systems don't have a complete set of locales. Some + (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't + use setlocale here; it would return "C" when it doesn't support the + locale name the user has set. */ +# if 0 + locale = setlocale (LC_CTYPE, NULL); +# endif + if (locale == NULL || locale[0] == '\0') { - /* The Windows API has a function returning the locale's codepage as a - number: GetACP(). - When the output goes to a console window, it needs to be provided in - GetOEMCP() encoding if the console is using a raster font, or in - GetConsoleOutputCP() encoding if it is using a TrueType font. - But in GUI programs and for output sent to files and pipes, GetACP() - encoding is the best bet. */ - sprintf (buf, "CP%u", GetACP ()); - } - /* For a locale name such as "French_France.65001", in Windows 10, - setlocale now returns "French_France.utf8" instead. */ - if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) - codeset = "UTF-8"; - else - { - strcpy (resultbuf, buf); - codeset = resultbuf; + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } } -# elif defined OS2 + /* On some old systems, one used to set locale = "iso8859_1". On others, + you set it to "language_COUNTRY.charset". In any case, we resolve it + through the charset.alias file. */ + codeset = locale; + +# endif + +#elif defined WINDOWS_NATIVE + + static char buf[2 + 10 + 1]; + + /* The Windows API has a function returning the locale's codepage as a + number: GetACP(). + When the output goes to a console window, it needs to be provided in + GetOEMCP() encoding if the console is using a raster font, or in + GetConsoleOutputCP() encoding if it is using a TrueType font. + But in GUI programs and for output sent to files and pipes, GetACP() + encoding is the best bet. */ + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; + +#elif defined OS2 const char *locale; - static char resultbuf[2 + 10 + 1]; + static char buf[2 + 10 + 1]; ULONG cp[3]; ULONG cplen; - codeset = NULL; - /* Allow user to override the codeset, as set in the operating system, with standard language environment variables. */ locale = getenv ("LC_ALL"); @@ -980,174 +501,52 @@ locale_charset (void) modifier = strchr (dot, '@'); if (modifier == NULL) return dot; - if (modifier - dot < sizeof (resultbuf)) + if (modifier - dot < sizeof (buf)) { - /* This way of filling resultbuf is multithread-safe. */ - memcpy (resultbuf, dot, modifier - dot); - resultbuf [modifier - dot] = '\0'; - return resultbuf; + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; } } - /* For the POSIX locale, don't use the system's codepage. */ - if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0) - codeset = ""; + /* Resolve through the charset.alias file. */ + codeset = locale; } - - if (codeset == NULL) + else { /* OS/2 has a function returning the locale's codepage as a number. */ if (DosQueryCp (sizeof (cp), cp, &cplen)) codeset = ""; else { - char buf[2 + 10 + 1]; - sprintf (buf, "CP%u", cp[0]); - strcpy (resultbuf, buf); - codeset = resultbuf; + codeset = buf; } } -# else - -# error "Add code for other platforms here." - -# endif - - /* Resolve alias. */ - { -# ifdef alias_table_defined - /* On some platforms, UTF-8 locales are the most frequently used ones. - Speed up the common case and slow down the less common cases by - testing for this case first. */ -# if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__ - if (strcmp (codeset, "UTF-8") == 0) - goto done_table_lookup; - else -# endif - { - const struct table_entry * const table = alias_table; - size_t const table_size = - sizeof (alias_table) / sizeof (struct table_entry); - /* The table is sorted. Perform a binary search. */ - size_t hi = table_size; - size_t lo = 0; - while (lo < hi) - { - /* Invariant: - for i < lo, strcmp (table[i].alias, codeset) < 0, - for i >= hi, strcmp (table[i].alias, codeset) > 0. */ - size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ - int cmp = strcmp (table[mid].alias, codeset); - if (cmp < 0) - lo = mid + 1; - else if (cmp > 0) - hi = mid; - else - { - /* Found an i with - strcmp (table[i].alias, codeset) == 0. */ - codeset = table[mid].canonical; - goto done_table_lookup; - } - } - } - if (0) - done_table_lookup: ; - else -# endif - { - /* Did not find it in the table. */ - /* On Mac OS X, all modern locales use the UTF-8 encoding. - BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ -# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ - codeset = "UTF-8"; -# else - /* Don't return an empty string. GNU libc and GNU libiconv interpret - the empty string as denoting "the locale's character encoding", - thus GNU libiconv would call this function a second time. */ - if (codeset[0] == '\0') - codeset = "ASCII"; -# endif - } - } - -#else - - /* On old systems which lack it, use setlocale or getenv. */ - const char *locale = NULL; - - /* But most old systems don't have a complete set of locales. Some - (like DJGPP) have only the C locale. Therefore we don't use setlocale - here; it would return "C" when it doesn't support the locale name the - user has set. */ -# if 0 - locale = setlocale (LC_CTYPE, NULL); -# endif - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - if (locale == NULL) - locale = ""; - } - } - - /* Map locale name to canonical encoding name. */ - { -# ifdef locale_table_defined - const struct table_entry * const table = locale_table; - size_t const table_size = - sizeof (locale_table) / sizeof (struct table_entry); - /* The table is sorted. Perform a binary search. */ - size_t hi = table_size; - size_t lo = 0; - while (lo < hi) - { - /* Invariant: - for i < lo, strcmp (table[i].locale, locale) < 0, - for i >= hi, strcmp (table[i].locale, locale) > 0. */ - size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ - int cmp = strcmp (table[mid].locale, locale); - if (cmp < 0) - lo = mid + 1; - else if (cmp > 0) - hi = mid; - else - { - /* Found an i with - strcmp (table[i].locale, locale) == 0. */ - codeset = table[mid].canonical; - goto done_table_lookup; - } - } - if (0) - done_table_lookup: ; - else -# endif - { - /* Did not find it in the table. */ - /* On Mac OS X, all modern locales use the UTF-8 encoding. - BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ -# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ - codeset = "UTF-8"; -# else - /* The canonical name cannot be determined. */ - /* Don't return an empty string. GNU libc and GNU libiconv interpret - the empty string as denoting "the locale's character encoding", - thus GNU libiconv would call this function a second time. */ - codeset = "ASCII"; -# endif - } - } - #endif + if (codeset == NULL) + /* The canonical name cannot be determined. */ + codeset = ""; + + /* Resolve alias. */ + for (aliases = get_charset_aliases (); + *aliases != '\0'; + aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) + if (strcmp (codeset, aliases) == 0 + || (aliases[0] == '*' && aliases[1] == '\0')) + { + codeset = aliases + strlen (aliases) + 1; + break; + } + + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + if (codeset[0] == '\0') + codeset = "ASCII"; + #ifdef DARWIN7 /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" (the default codeset) does not work when MB_CUR_MAX is 1. */ diff --git a/gl/localcharset.h b/gl/localcharset.h index 29ee8dc..c209829 100644 --- a/gl/localcharset.h +++ b/gl/localcharset.h @@ -1,19 +1,19 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H @@ -25,109 +25,12 @@ extern "C" { /* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); -/* About GNU canonical names for character encodings: - - Every canonical name must be supported by GNU libiconv. Support by GNU libc - is also desirable. - - The name is case insensitive. Usually an upper case MIME charset name is - preferred. - - The current list of these GNU canonical names is: - - name MIME? used by which systems - (darwin = Mac OS X, windows = native Windows) - - ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin - ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-3 Y glibc solaris cygwin - ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin - ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-6 Y glibc aix hpux solaris cygwin - ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos - ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos - ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin - ISO-8859-14 glibc cygwin - ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin - KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin - KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin - KOI8-T glibc - CP437 dos - CP775 dos - CP850 aix osf dos - CP852 dos - CP855 dos - CP856 aix - CP857 dos - CP861 dos - CP862 dos - CP864 dos - CP865 dos - CP866 freebsd netbsd openbsd darwin dos - CP869 dos - CP874 windows dos - CP922 aix - CP932 aix cygwin windows dos - CP943 aix zos - CP949 osf darwin windows dos - CP950 windows dos - CP1046 aix - CP1124 aix - CP1125 dos - CP1129 aix - CP1131 freebsd darwin - CP1250 windows - CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows - CP1252 aix windows - CP1253 windows - CP1254 windows - CP1255 glibc windows - CP1256 windows - CP1257 windows - GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos - EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin - EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos - EUC-TW glibc aix hpux irix osf solaris netbsd - BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos - BIG5-HKSCS glibc hpux solaris netbsd darwin - GBK glibc aix osf solaris freebsd darwin cygwin windows dos - GB18030 glibc hpux solaris freebsd netbsd darwin - SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin - JOHAB glibc solaris windows - TIS-620 glibc aix hpux osf solaris cygwin zos - VISCII Y glibc - TCVN5712-1 glibc - ARMSCII-8 glibc freebsd netbsd darwin - GEORGIAN-PS glibc cygwin - PT154 glibc netbsd cygwin - HP-ROMAN8 hpux - HP-ARABIC8 hpux - HP-GREEK8 hpux - HP-HEBREW8 hpux - HP-TURKISH8 hpux - HP-KANA8 hpux - DEC-KANJI osf - DEC-HANYU osf - UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin zos - - Note: Names which are not marked as being a MIME name should not be used in - Internet protocols for information interchange (mail, news, etc.). - - Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications - must understand both names and treat them as equivalent. - */ - #ifdef __cplusplus } diff --git a/gl/locale.in.h b/gl/locale.in.h index 538b834..264161a 100644 --- a/gl/locale.in.h +++ b/gl/locale.in.h @@ -1,31 +1,28 @@ /* A POSIX . - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ -#if (defined _WIN32 && !defined __CYGWIN__ && defined __need_locale_t) \ - || defined _GL_ALREADY_INCLUDING_LOCALE_H +#ifdef _GL_ALREADY_INCLUDING_LOCALE_H -/* Special invocation convention: - - Inside mingw header files, - - To handle Solaris header files (through Solaris 10) when combined - with gettext's libintl.h. */ +/* Special invocation conventions to handle Solaris header files + (through Solaris 10) when combined with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ @@ -64,18 +61,6 @@ # define LC_MESSAGES 1729 #endif -/* On native Windows with MSVC, 'struct lconv' lacks the members int_p_* and - int_n_*. Instead of overriding 'struct lconv', merely define these member - names as macros. This avoids trouble in C++ mode. */ -#if defined _MSC_VER -# define int_p_cs_precedes p_cs_precedes -# define int_p_sign_posn p_sign_posn -# define int_p_sep_by_space p_sep_by_space -# define int_n_cs_precedes n_cs_precedes -# define int_n_sign_posn n_sign_posn -# define int_n_sep_by_space n_sep_by_space -#endif - /* Bionic libc's 'struct lconv' is just a dummy. */ #if @REPLACE_STRUCT_LCONV@ # define lconv rpl_lconv @@ -84,7 +69,7 @@ struct lconv /* All 'char *' are actually 'const char *'. */ /* Members that depend on the LC_NUMERIC category of the locale. See - */ + */ /* Symbol used as decimal point. */ char *decimal_point; @@ -96,7 +81,7 @@ struct lconv char *grouping; /* Members that depend on the LC_MONETARY category of the locale. See - */ + */ /* Symbol used as decimal point. */ char *mon_decimal_point; @@ -168,9 +153,7 @@ _GL_CXXALIAS_RPL (localeconv, struct lconv *, (void)); # else _GL_CXXALIAS_SYS (localeconv, struct lconv *, (void)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (localeconv); -# endif #elif @REPLACE_STRUCT_LCONV@ # undef localeconv # define localeconv localeconv_used_without_requesting_gnulib_module_localeconv @@ -195,9 +178,7 @@ _GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale)); # else _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (setlocale); -# endif #elif defined GNULIB_POSIXCHECK # undef setlocale # if HAVE_RAW_DECL_SETLOCALE @@ -206,50 +187,11 @@ _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " # endif #endif -#if @GNULIB_SETLOCALE_NULL@ -/* Included here for convenience. */ -# include "setlocale_null.h" -#endif - -#if /*@GNULIB_NEWLOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_NEWLOCALE@) -# if @REPLACE_NEWLOCALE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef newlocale -# define newlocale rpl_newlocale -# define GNULIB_defined_newlocale 1 -# endif -_GL_FUNCDECL_RPL (newlocale, locale_t, - (int category_mask, const char *name, locale_t base) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (newlocale, locale_t, - (int category_mask, const char *name, locale_t base)); -# else -# if @HAVE_NEWLOCALE@ -_GL_CXXALIAS_SYS (newlocale, locale_t, - (int category_mask, const char *name, locale_t base)); -# endif -# endif -# if @HAVE_NEWLOCALE@ -_GL_CXXALIASWARN (newlocale); -# endif -# if @HAVE_NEWLOCALE@ || @REPLACE_NEWLOCALE@ -# ifndef HAVE_WORKING_NEWLOCALE -# define HAVE_WORKING_NEWLOCALE 1 -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# undef newlocale -# if HAVE_RAW_DECL_NEWLOCALE -_GL_WARN_ON_USE (newlocale, "newlocale is not portable"); -# endif -#endif - -#if @GNULIB_DUPLOCALE@ || (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_DUPLOCALE@) +#if @GNULIB_DUPLOCALE@ # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale -# define GNULIB_defined_duplocale 1 # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); @@ -261,11 +203,6 @@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # if @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif -# if @HAVE_DUPLOCALE@ || @REPLACE_DUPLOCALE@ -# ifndef HAVE_WORKING_DUPLOCALE -# define HAVE_WORKING_DUPLOCALE 1 -# endif -# endif #elif defined GNULIB_POSIXCHECK # undef duplocale # if HAVE_RAW_DECL_DUPLOCALE @@ -274,32 +211,6 @@ _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " # endif #endif -#if /*@GNULIB_FREELOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_FREELOCALE@) -# if @REPLACE_FREELOCALE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef freelocale -# define freelocale rpl_freelocale -# define GNULIB_defined_freelocale 1 -# endif -_GL_FUNCDECL_RPL (freelocale, void, (locale_t locale) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (freelocale, void, (locale_t locale)); -# else -# if @HAVE_FREELOCALE@ -/* Need to cast, because on FreeBSD and Mac OS X 10.13, the return type is - int. */ -_GL_CXXALIAS_SYS_CAST (freelocale, void, (locale_t locale)); -# endif -# endif -# if @HAVE_FREELOCALE@ -_GL_CXXALIASWARN (freelocale); -# endif -#elif defined GNULIB_POSIXCHECK -# undef freelocale -# if HAVE_RAW_DECL_FREELOCALE -_GL_WARN_ON_USE (freelocale, "freelocale is not portable"); -# endif -#endif - #endif /* _@GUARD_PREFIX@_LOCALE_H */ +#endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ -#endif /* !(__need_locale_t || _GL_ALREADY_INCLUDING_LOCALE_H) */ diff --git a/gl/localeconv.c b/gl/localeconv.c index 60c050f..7c7c77c 100644 --- a/gl/localeconv.c +++ b/gl/localeconv.c @@ -1,18 +1,18 @@ /* Query locale dependent information for formatting numbers. - Copyright (C) 2012-2023 Free Software Foundation, Inc. + Copyright (C) 2012-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/lseek.c b/gl/lseek.c deleted file mode 100644 index 7919b03..0000000 --- a/gl/lseek.c +++ /dev/null @@ -1,89 +0,0 @@ -/* An lseek() function that detects pipes. - Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -#if defined _WIN32 && ! defined __CYGWIN__ -/* Windows platforms. */ -/* Get GetFileType. */ -# include -/* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif -#else -# include -#endif -#include - -#undef lseek - -off_t -rpl_lseek (int fd, off_t offset, int whence) -{ -#if defined _WIN32 && ! defined __CYGWIN__ - /* mingw lseek mistakenly succeeds on pipes, sockets, and terminals. */ - HANDLE h = (HANDLE) _get_osfhandle (fd); - if (h == INVALID_HANDLE_VALUE) - { - errno = EBADF; - return -1; - } - if (GetFileType (h) != FILE_TYPE_DISK) - { - errno = ESPIPE; - return -1; - } -#elif defined __APPLE__ && defined __MACH__ && defined SEEK_DATA - if (whence == SEEK_DATA) - { - /* If OFFSET points to data, macOS lseek+SEEK_DATA returns the - start S of the first data region that begins *after* OFFSET, - where the region from OFFSET to S consists of possibly-empty - data followed by a possibly-empty hole. To work around this - portability glitch, check whether OFFSET is within data by - using lseek+SEEK_HOLE, and if so return to OFFSET by using - lseek+SEEK_SET. Also, contrary to the macOS documentation, - lseek+SEEK_HOLE can fail with ENXIO if there are no holes on - or after OFFSET. What a mess! */ - off_t next_hole = lseek (fd, offset, SEEK_HOLE); - if (next_hole < 0) - return errno == ENXIO ? offset : next_hole; - if (next_hole != offset) - whence = SEEK_SET; - } -#else - /* BeOS lseek mistakenly succeeds on pipes... */ - struct stat statbuf; - if (fstat (fd, &statbuf) < 0) - return -1; - if (!S_ISREG (statbuf.st_mode)) - { - errno = ESPIPE; - return -1; - } -#endif -#if _GL_WINDOWS_64_BIT_OFF_T || (defined __MINGW32__ && defined _FILE_OFFSET_BITS && (_FILE_OFFSET_BITS == 64)) - return _lseeki64 (fd, offset, whence); -#else - return lseek (fd, offset, whence); -#endif -} diff --git a/gl/m4/00gnulib.m4 b/gl/m4/00gnulib.m4 index 7fe03e0..d4ad759 100644 --- a/gl/m4/00gnulib.m4 +++ b/gl/m4/00gnulib.m4 @@ -1,82 +1,27 @@ -# 00gnulib.m4 serial 8 -dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. +# 00gnulib.m4 serial 2 +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts before all other -dnl gnulib-provided .m4 files. It is needed until the clang fix has -dnl been included in Autoconf. +dnl gnulib-provided .m4 files. It is needed until such time as we can +dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics. -# The following definitions arrange to use a compiler option -# -Werror=implicit-function-declaration in AC_CHECK_DECL, when the -# compiler is clang. Without it, clang implicitly declares "known" -# library functions in C mode, but not in C++ mode, which would cause -# Gnulib to omit a declaration and thus later produce an error in C++ -# mode. As of clang 9.0, these "known" functions are identified through -# LIBBUILTIN invocations in the LLVM source file -# llvm/tools/clang/include/clang/Basic/Builtins.def. -# It's not possible to AC_REQUIRE the extra tests from AC_CHECK_DECL, -# because AC_CHECK_DECL, like other Autoconf built-ins, is not supposed -# to AC_REQUIRE anything: some configure.ac files have their first -# AC_CHECK_DECL executed conditionally. Therefore append the extra tests -# to AC_PROG_CC. -AC_DEFUN([gl_COMPILER_CLANG], -[ -dnl AC_REQUIRE([AC_PROG_CC]) - AC_CACHE_CHECK([whether the compiler is clang], - [gl_cv_compiler_clang], - [dnl Use _AC_COMPILE_IFELSE instead of AC_EGREP_CPP, to avoid error - dnl "circular dependency of AC_LANG_COMPILER(C)" if AC_PROG_CC has - dnl not yet been invoked. - _AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ - #ifdef __clang__ - barfbarf - #endif - ]],[[]]) - ], - [gl_cv_compiler_clang=no], - [gl_cv_compiler_clang=yes]) - ]) -]) -AC_DEFUN([gl_COMPILER_PREPARE_CHECK_DECL], -[ -dnl AC_REQUIRE([AC_PROG_CC]) -dnl AC_REQUIRE([gl_COMPILER_CLANG]) - AC_CACHE_CHECK([for compiler option needed when checking for declarations], - [gl_cv_compiler_check_decl_option], - [if test $gl_cv_compiler_clang = yes; then - dnl Test whether the compiler supports the option - dnl '-Werror=implicit-function-declaration'. - save_ac_compile="$ac_compile" - ac_compile="$ac_compile -Werror=implicit-function-declaration" - dnl Use _AC_COMPILE_IFELSE instead of AC_COMPILE_IFELSE, to avoid a - dnl warning "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". - _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])], - [gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration'], - [gl_cv_compiler_check_decl_option=none]) - ac_compile="$save_ac_compile" - else - gl_cv_compiler_check_decl_option=none - fi - ]) - if test "x$gl_cv_compiler_check_decl_option" != xnone; then - ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" - else - ac_compile_for_check_decl="$ac_compile" - fi -]) -dnl Redefine _AC_CHECK_DECL_BODY so that it references ac_compile_for_check_decl -dnl instead of ac_compile. If, for whatever reason, the override of AC_PROG_CC -dnl in zzgnulib.m4 is inactive, use the original ac_compile. -m4_define([_AC_CHECK_DECL_BODY], -[ ac_save_ac_compile="$ac_compile" - if test -n "$ac_compile_for_check_decl"; then - ac_compile="$ac_compile_for_check_decl" - fi] -m4_defn([_AC_CHECK_DECL_BODY])[ ac_compile="$ac_save_ac_compile" -]) +# AC_DEFUN_ONCE([NAME], VALUE) +# ---------------------------- +# Define NAME to expand to VALUE on the first use (whether by direct +# expansion, or by AC_REQUIRE), and to nothing on all subsequent uses. +# Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This +# definition is slower than the version in Autoconf 2.64, because it +# can only use interfaces that existed since 2.59; but it achieves the +# same effect. Quoting is necessary to avoid confusing Automake. +m4_version_prereq([2.63.263], [], +[m4_define([AC][_DEFUN_ONCE], + [AC][_DEFUN([$1], + [AC_REQUIRE([_gl_DEFUN_ONCE([$1])], + [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl +[AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])]) # gl_00GNULIB # ----------- diff --git a/gl/m4/__inline.m4 b/gl/m4/__inline.m4 deleted file mode 100644 index acf8668..0000000 --- a/gl/m4/__inline.m4 +++ /dev/null @@ -1,22 +0,0 @@ -# Test for __inline keyword -dnl Copyright 2017-2023 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. - -AC_DEFUN([gl___INLINE], -[ - AC_CACHE_CHECK([whether the compiler supports the __inline keyword], - [gl_cv_c___inline], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[typedef int foo_t; - static __inline foo_t foo (void) { return 0; }]], - [[return foo ();]])], - [gl_cv_c___inline=yes], - [gl_cv_c___inline=no])]) - if test $gl_cv_c___inline = yes; then - AC_DEFINE([HAVE___INLINE], [1], - [Define to 1 if the compiler supports the keyword '__inline'.]) - fi -]) diff --git a/gl/m4/absolute-header.m4 b/gl/m4/absolute-header.m4 deleted file mode 100644 index e794764..0000000 --- a/gl/m4/absolute-header.m4 +++ /dev/null @@ -1,100 +0,0 @@ -# absolute-header.m4 serial 17 -dnl Copyright (C) 2006-2023 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 Derek Price. - -# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) -# --------------------------------------- -# Find the absolute name of a header file, testing first if the header exists. -# If the header were sys/inttypes.h, this macro would define -# ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h -# in config.h -# (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). -# The three "///" are to pacify Sun C 5.8, which otherwise would say -# "warning: #include of /usr/include/... may be non-portable". -# Use '""', not '<>', so that the /// cannot be confused with a C99 comment. -# Note: This macro assumes that the header file is not empty after -# preprocessing, i.e. it does not only define preprocessor macros but also -# provides some type/enum definitions or function/variable declarations. -AC_DEFUN([gl_ABSOLUTE_HEADER], -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_LANG_PREPROC_REQUIRE()dnl -m4_foreach_w([gl_HEADER_NAME], [$1], - [AS_VAR_PUSHDEF([gl_absolute_header], - [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl - AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>], - [gl_absolute_header], - [AS_VAR_PUSHDEF([ac_header_exists], - [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl - AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl - if test AS_VAR_GET([ac_header_exists]) = yes; then - gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME])) - fi - AS_VAR_POPDEF([ac_header_exists])dnl - ])dnl - AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])), - ["AS_VAR_GET([gl_absolute_header])"], - [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.]) - AS_VAR_POPDEF([gl_absolute_header])dnl -])dnl -])# gl_ABSOLUTE_HEADER - -# gl_ABSOLUTE_HEADER_ONE(HEADER) -# ------------------------------ -# Like gl_ABSOLUTE_HEADER, except that: -# - it assumes that the header exists, -# - it uses the current CPPFLAGS, -# - it does not cache the result, -# - it is silent. -AC_DEFUN([gl_ABSOLUTE_HEADER_ONE], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])]) - dnl AIX "xlc -E" and "cc -E" omit #line directives for header files - dnl that contain only a #include of other header files and no - dnl non-comment tokens of their own. This leads to a failure to - dnl detect the absolute name of , , - dnl and others. The workaround is to force preservation of comments - dnl through option -C. This ensures all necessary #line directives - dnl are present. GCC supports option -C as well. - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac -changequote(,) - case "$host_os" in - mingw*) - dnl For the sake of native Windows compilers (excluding gcc), - dnl treat backslash as a directory separator, like /. - dnl Actually, these compilers use a double-backslash as - dnl directory separator, inside the - dnl # line "filename" - dnl directives. - gl_dirsep_regex='[/\\]' - ;; - *) - gl_dirsep_regex='\/' - ;; - esac - dnl A sed expression that turns a string into a basic regular - dnl expression, for use within "/.../". - gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' - gl_header_literal_regex=`echo '$1' \ - | sed -e "$gl_make_literal_regex_sed"` - gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ - s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ - s|^/[^/]|//&| - p - q - }' -changequote([,]) - dnl eval is necessary to expand gl_absname_cpp. - dnl Ultrix and Pyramid sh refuse to redirect output of eval, - dnl so use subshell. - AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]), -[`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | - sed -n "$gl_absolute_header_sed"`]) -]) diff --git a/gl/m4/af_alg.m4 b/gl/m4/af_alg.m4 deleted file mode 100644 index f4c0d62..0000000 --- a/gl/m4/af_alg.m4 +++ /dev/null @@ -1,57 +0,0 @@ -# af_alg.m4 serial 6 -dnl Copyright 2018-2023 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 Matteo Croce. - -AC_DEFUN_ONCE([gl_AF_ALG], -[ - AC_REQUIRE([gl_SYS_SOCKET_H]) - AC_REQUIRE([AC_C_INLINE]) - - dnl Check whether linux/if_alg.h has needed features. - AC_CACHE_CHECK([whether linux/if_alg.h has struct sockaddr_alg.], - [gl_cv_header_linux_if_alg_salg], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#include - #include - struct sockaddr_alg salg = { - .salg_family = AF_ALG, - .salg_type = "hash", - .salg_name = "sha1", - };]])], - [gl_cv_header_linux_if_alg_salg=yes], - [gl_cv_header_linux_if_alg_salg=no])]) - if test "$gl_cv_header_linux_if_alg_salg" = yes; then - AC_DEFINE([HAVE_LINUX_IF_ALG_H], [1], - [Define to 1 if you have 'struct sockaddr_alg' defined.]) - fi - - dnl The default is to not use AF_ALG if available, - dnl as it's system dependent as to whether the kernel - dnl routines are faster than libcrypto for example. - use_af_alg=no - AC_ARG_WITH([linux-crypto], - [AS_HELP_STRING([[--with-linux-crypto]], - [use Linux kernel cryptographic API (if available) for the hash functions - MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 on files])], - [use_af_alg=$withval], - [use_af_alg=no]) - dnl We cannot use it if it is not available. - if test "$gl_cv_header_linux_if_alg_salg" != yes; then - if test "$use_af_alg" != no; then - AC_MSG_WARN([Linux kernel cryptographic API not found]) - fi - use_af_alg=no - fi - - if test "$use_af_alg" != no; then - USE_AF_ALG=1 - else - USE_AF_ALG=0 - fi - AC_DEFINE_UNQUOTED([USE_LINUX_CRYPTO_API], [$USE_AF_ALG], - [Define to 1 if you want to use the Linux kernel cryptographic API.]) -]) diff --git a/gl/m4/alloca.m4 b/gl/m4/alloca.m4 index c685fac..270abd0 100644 --- a/gl/m4/alloca.m4 +++ b/gl/m4/alloca.m4 @@ -1,5 +1,5 @@ -# alloca.m4 serial 21 -dnl Copyright (C) 2002-2004, 2006-2007, 2009-2023 Free Software Foundation, +# alloca.m4 serial 14 +dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -26,35 +26,30 @@ AC_DEFUN([gl_FUNC_ALLOCA], AC_DEFINE([HAVE_ALLOCA], [1], [Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution.]) - GL_GENERATE_ALLOCA_H=true + ALLOCA_H=alloca.h else dnl alloca exists as a library function, i.e. it is slow and probably dnl a memory leak. Don't define HAVE_ALLOCA in this case. - GL_GENERATE_ALLOCA_H=false + ALLOCA_H= fi else - GL_GENERATE_ALLOCA_H=true + ALLOCA_H=alloca.h fi - - if test $ac_cv_working_alloca_h = yes; then - HAVE_ALLOCA_H=1 - else - HAVE_ALLOCA_H=0 - fi - AC_SUBST([HAVE_ALLOCA_H]) + AC_SUBST([ALLOCA_H]) + AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"]) ]) # Prerequisites of lib/alloca.c. # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. AC_DEFUN([gl_PREREQ_ALLOCA], [:]) -m4_version_prereq([2.70], [], [ +# This works around a bug in autoconf <= 2.68. +# See . -# This works around a bug in autoconf <= 2.68 and has simplifications -# from 2.70. See: -# https://lists.gnu.org/r/bug-gnulib/2011-06/msg00277.html -# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497 -# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=15edf7fd8094fd14a89d9891dd72a9624762597a +m4_version_prereq([2.69], [] ,[ + +# This is taken from the following Autoconf patch: +# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497 # _AC_LIBOBJ_ALLOCA # ----------------- @@ -70,6 +65,26 @@ AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) +AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray, +[AC_EGREP_CPP(webecray, +[#if defined CRAY && ! defined CRAY2 +webecray +#else +wenotbecray +#endif +], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + AC_CHECK_FUNC($ac_func, + [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, + [Define to one of '_getb67', 'GETB67', + 'getb67' for Cray-2 and Cray-YMP + systems. This function is required for + 'alloca.c' support on those systems.]) + break]) + done +fi + AC_CACHE_CHECK([stack direction for C alloca], [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( @@ -100,7 +115,7 @@ AH_VERBATIM([STACK_DIRECTION], STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION])dnl +@%:@undef STACK_DIRECTION])dnl AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])# _AC_LIBOBJ_ALLOCA ]) diff --git a/gl/m4/arpa_inet_h.m4 b/gl/m4/arpa_inet_h.m4 index fa5fe83..ea69af5 100644 --- a/gl/m4/arpa_inet_h.m4 +++ b/gl/m4/arpa_inet_h.m4 @@ -1,15 +1,15 @@ -# arpa_inet_h.m4 serial 17 -dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc. +# arpa_inet_h.m4 serial 13 +dnl Copyright (C) 2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. dnl Written by Simon Josefsson and Bruno Haible -AC_DEFUN_ONCE([gl_ARPA_INET_H], +AC_DEFUN([gl_HEADER_ARPA_INET], [ - dnl Ensure to expand the default settings once only, before all statements - dnl that occur in other macros. + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) AC_CHECK_HEADERS_ONCE([arpa/inet.h]) @@ -24,8 +24,6 @@ AC_DEFUN_ONCE([gl_ARPA_INET_H], AC_REQUIRE([gl_FEATURES_H]) - gl_PREREQ_SYS_H_WS2TCPIP - dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ @@ -40,32 +38,17 @@ AC_DEFUN_ONCE([gl_ARPA_INET_H], ]], [inet_ntop inet_pton]) ]) -# gl_ARPA_INET_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_ARPA_INET_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_ARPA_INET_H_REQUIRE_DEFAULTS - gl_MODULE_INDICATOR_SET_VARIABLE([$1]) -]) - -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_ARPA_INET_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_ARPA_INET_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_INET_NTOP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_INET_PTON]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_ARPA_INET_H_MODULE_INDICATOR_DEFAULTS]) + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_ARPA_INET_H_DEFAULTS], [ + GNULIB_INET_NTOP=0; AC_SUBST([GNULIB_INET_NTOP]) + GNULIB_INET_PTON=0; AC_SUBST([GNULIB_INET_PTON]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_INET_NTOP=1; AC_SUBST([HAVE_DECL_INET_NTOP]) HAVE_DECL_INET_PTON=1; AC_SUBST([HAVE_DECL_INET_PTON]) diff --git a/gl/m4/assert_h.m4 b/gl/m4/assert_h.m4 deleted file mode 100644 index abba4fa..0000000 --- a/gl/m4/assert_h.m4 +++ /dev/null @@ -1,67 +0,0 @@ -# assert-h.m4 -dnl Copyright (C) 2011-2023 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. - -AC_DEFUN([gl_ASSERT_H], -[ - AC_CACHE_CHECK([for static_assert], [gl_cv_static_assert], - [gl_save_CFLAGS=$CFLAGS - for gl_working in "yes, a keyword" "yes, an macro"; do - AS_CASE([$gl_working], - [*assert.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H"]) - - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#if defined __clang__ && __STDC_VERSION__ < 202311 - #pragma clang diagnostic error "-Wc2x-extensions" - #pragma clang diagnostic error "-Wc++17-extensions" - #endif - #ifdef INCLUDE_ASSERT_H - #include - #endif - static_assert (2 + 2 == 4, "arithmetic does not work"); - static_assert (2 + 2 == 4); - ]], - [[ - static_assert (sizeof (char) == 1, "sizeof does not work"); - static_assert (sizeof (char) == 1); - ]])], - [gl_cv_static_assert=$gl_working], - [gl_cv_static_assert=no]) - CFLAGS=$gl_save_CFLAGS - test "$gl_cv_static_assert" != no && break - done]) - - GL_GENERATE_ASSERT_H=false - AS_CASE([$gl_cv_static_assert], - [yes*keyword*], - [AC_DEFINE([HAVE_C_STATIC_ASSERT], [1], - [Define to 1 if the static_assert keyword works.])], - [no], - [GL_GENERATE_ASSERT_H=true - gl_NEXT_HEADERS([assert.h])]) - - dnl The "zz" puts this toward config.h's end, to avoid potential - dnl collisions with other definitions. #undef assert so that - dnl programs are not tempted to use it without specifically - dnl including assert.h. Break the #undef apart with a comment - dnl so that 'configure' does not comment it out. - AH_VERBATIM([zzstatic_assert], -[#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ - && (!defined __cplusplus \ - || (__cpp_static_assert < 201411 \ - && __GNUG__ < 6 && __clang_major__ < 6))) - #include - #undef/**/assert - /* Solaris 11.4 defines static_assert as a macro with 2 arguments. - We need it also to be invocable with a single argument. */ - #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus - #undef/**/static_assert - #define static_assert _Static_assert - #endif -#endif]) -]) diff --git a/gl/m4/base64.m4 b/gl/m4/base64.m4 index 987930a..fc19893 100644 --- a/gl/m4/base64.m4 +++ b/gl/m4/base64.m4 @@ -1,5 +1,5 @@ # base64.m4 serial 4 -dnl Copyright (C) 2004, 2006, 2009-2023 Free Software Foundation, Inc. +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/btowc.m4 b/gl/m4/btowc.m4 index 77218a7..978a06e 100644 --- a/gl/m4/btowc.m4 +++ b/gl/m4/btowc.m4 @@ -1,5 +1,5 @@ -# btowc.m4 serial 12 -dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. +# btowc.m4 serial 10 +dnl Copyright (C) 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_BTOWC], dnl Check whether is usable at all, first. Otherwise the test dnl program below may lead to an endless loop. See - dnl . + dnl . AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) AC_CHECK_FUNCS_ONCE([btowc]) @@ -28,6 +28,14 @@ AC_DEFUN([gl_FUNC_BTOWC], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ +#include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -42,8 +50,6 @@ changequote(,)dnl case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_btowc_nul="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac @@ -59,19 +65,24 @@ changequote([,])dnl dnl is present. changequote(,)dnl case "$host_os" in - # Guess no on IRIX. - irix*) gl_cv_func_btowc_eof="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_btowc_eof="guessing yes" ;; - # Guess yes otherwise. - *) gl_cv_func_btowc_eof="guessing yes" ;; + # Guess no on IRIX. + irix*) gl_cv_func_btowc_eof="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_btowc_eof="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include +#include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include #include +#include #include int main () { diff --git a/gl/m4/builtin-expect.m4 b/gl/m4/builtin-expect.m4 deleted file mode 100644 index 531ed48..0000000 --- a/gl/m4/builtin-expect.m4 +++ /dev/null @@ -1,49 +0,0 @@ -dnl Check for __builtin_expect. - -dnl Copyright 2016-2023 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 Written by Paul Eggert. - -AC_DEFUN([gl___BUILTIN_EXPECT], -[ - AC_CACHE_CHECK([for __builtin_expect], - [gl_cv___builtin_expect], - [AC_LINK_IFELSE( - [AC_LANG_SOURCE([[ - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - }]])], - [gl_cv___builtin_expect=yes], - [AC_LINK_IFELSE( - [AC_LANG_SOURCE([[ - #include - int - main (int argc, char **argv) - { - argc = __builtin_expect (argc, 100); - return argv[argc != 100][0]; - }]])], - [gl_cv___builtin_expect="in "], - [gl_cv___builtin_expect=no])])]) - if test "$gl_cv___builtin_expect" = yes; then - AC_DEFINE([HAVE___BUILTIN_EXPECT], [1]) - elif test "$gl_cv___builtin_expect" = "in "; then - AC_DEFINE([HAVE___BUILTIN_EXPECT], [2]) - fi - AH_VERBATIM([HAVE___BUILTIN_EXPECT], - [/* Define to 1 if the compiler supports __builtin_expect, - and to 2 if does. */ -#undef HAVE___BUILTIN_EXPECT -#ifndef HAVE___BUILTIN_EXPECT -# define __builtin_expect(e, c) (e) -#elif HAVE___BUILTIN_EXPECT == 2 -# include -#endif - ]) -]) diff --git a/gl/m4/byteswap.m4 b/gl/m4/byteswap.m4 deleted file mode 100644 index 8058d17..0000000 --- a/gl/m4/byteswap.m4 +++ /dev/null @@ -1,17 +0,0 @@ -# byteswap.m4 serial 5 -dnl Copyright (C) 2005, 2007, 2009-2023 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 Written by Oskar Liljeblad. - -AC_DEFUN([gl_BYTESWAP], -[ - dnl Prerequisites of lib/byteswap.in.h. - AC_CHECK_HEADERS([byteswap.h], [ - GL_GENERATE_BYTESWAP_H=false - ], [ - GL_GENERATE_BYTESWAP_H=true - ]) -]) diff --git a/gl/m4/c-bool.m4 b/gl/m4/c-bool.m4 deleted file mode 100644 index f614371..0000000 --- a/gl/m4/c-bool.m4 +++ /dev/null @@ -1,51 +0,0 @@ -# Check for bool that conforms to C2023. - -dnl Copyright 2022-2023 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. - -AC_DEFUN([gl_C_BOOL], -[ - AC_CACHE_CHECK([for bool, true, false], [gl_cv_c_bool], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE([[ - #if true == false - #error "true == false" - #endif - extern bool b; - bool b = true == false;]])], - [gl_cv_c_bool=yes], - [gl_cv_c_bool=no])]) - if test "$gl_cv_c_bool" = yes; then - AC_DEFINE([HAVE_C_BOOL], [1], - [Define to 1 if bool, true and false work as per C2023.]) - fi - - AC_CHECK_HEADERS_ONCE([stdbool.h]) - - dnl The "zz" puts this toward config.h's end, to avoid potential - dnl collisions with other definitions. - dnl If 'bool', 'true' and 'false' do not work, arrange for them to work. - dnl In C, this means including if it is not already included. - dnl However, if the preprocessor mistakenly treats 'true' as 0, - dnl define it to a bool expression equal to 1; this is needed in - dnl Sun C++ 5.11 (Oracle Solaris Studio 12.2, 2010) and older. - AH_VERBATIM([zzbool], -[#ifndef HAVE_C_BOOL -# if !defined __cplusplus && !defined __bool_true_false_are_defined -# if HAVE_STDBOOL_H -# include -# else -# if defined __SUNPRO_C -# error " is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC." -# else -# error " does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'." -# endif -# endif -# endif -# if !true -# define true (!false) -# endif -#endif]) -]) diff --git a/gl/m4/calloc.m4 b/gl/m4/calloc.m4 deleted file mode 100644 index 23c0dd9..0000000 --- a/gl/m4/calloc.m4 +++ /dev/null @@ -1,83 +0,0 @@ -# calloc.m4 serial 29 - -# Copyright (C) 2004-2023 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Written by Jim Meyering. - -# Determine whether calloc (N, S) returns non-NULL when N*S is zero, -# and returns NULL when N*S overflows. -# If so, define HAVE_CALLOC. Otherwise, define calloc to rpl_calloc -# and arrange to use a calloc wrapper function that does work in that case. - -# _AC_FUNC_CALLOC_IF([IF-WORKS], [IF-NOT]) -# ------------------------------------- -# If calloc is compatible with GNU calloc, run IF-WORKS, otherwise, IF-NOT. -AC_DEFUN([_AC_FUNC_CALLOC_IF], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CACHE_CHECK([whether calloc (0, n) and calloc (n, 0) return nonnull], - [ac_cv_func_calloc_0_nonnull], - [if test $cross_compiling != yes; then - ac_cv_func_calloc_0_nonnull=yes - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [AC_INCLUDES_DEFAULT], - [[int result = 0; - char * volatile p = calloc (0, 0); - if (!p) - result |= 1; - free (p); - return result; - ]])], - [], - [ac_cv_func_calloc_0_nonnull=no]) - else - case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; - # Guess yes on native Windows. - mingw*) ac_cv_func_calloc_0_nonnull="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;; - esac - fi - ]) - AS_CASE([$ac_cv_func_calloc_0_nonnull], [*yes], [$1], [$2]) -]) - - -# gl_FUNC_CALLOC_GNU -# ------------------ -# Replace calloc if it is not compatible with GNU libc. -AC_DEFUN([gl_FUNC_CALLOC_GNU], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_CALLOC_POSIX]) - REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX" - if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 0; then - _AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC_FOR_CALLOC_GNU=1]) - fi -])# gl_FUNC_CALLOC_GNU - -# gl_FUNC_CALLOC_POSIX -# -------------------- -# Test whether 'calloc' is POSIX compliant (sets errno to ENOMEM when it -# fails, and doesn't mess up with ptrdiff_t or size_t overflow), -# and replace calloc if it is not. -AC_DEFUN([gl_FUNC_CALLOC_POSIX], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then - REPLACE_CALLOC_FOR_CALLOC_POSIX=1 - fi - dnl Although in theory we should also test for size_t overflow, - dnl in practice testing for ptrdiff_t overflow suffices - dnl since PTRDIFF_MAX <= SIZE_MAX on all known Gnulib porting targets. - dnl A separate size_t test would slow down 'configure'. -]) diff --git a/gl/m4/close.m4 b/gl/m4/close.m4 deleted file mode 100644 index 9f95c67..0000000 --- a/gl/m4/close.m4 +++ /dev/null @@ -1,35 +0,0 @@ -# close.m4 serial 9 -dnl Copyright (C) 2008-2023 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. - -AC_DEFUN([gl_FUNC_CLOSE], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - m4_ifdef([gl_MSVC_INVAL], [ - AC_REQUIRE([gl_MSVC_INVAL]) - if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then - REPLACE_CLOSE=1 - fi - ]) - m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ - gl_PREREQ_SYS_H_WINSOCK2 - if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then - dnl Even if the 'socket' module is not used here, another part of the - dnl application may use it and pass file descriptors that refer to - dnl sockets to the close() function. So enable the support for sockets. - REPLACE_CLOSE=1 - fi - ]) - dnl Replace close() for supporting the gnulib-defined fchdir() function, - dnl to keep fchdir's bookkeeping up-to-date. - m4_ifdef([gl_FUNC_FCHDIR], [ - if test $REPLACE_CLOSE = 0; then - gl_TEST_FCHDIR - if test $HAVE_FCHDIR = 0; then - REPLACE_CLOSE=1 - fi - fi - ]) -]) diff --git a/gl/m4/codeset.m4 b/gl/m4/codeset.m4 index 5804f47..c2761be 100644 --- a/gl/m4/codeset.m4 +++ b/gl/m4/codeset.m4 @@ -1,6 +1,5 @@ # codeset.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2023 Free Software -dnl Foundation, Inc. +dnl Copyright (C) 2000-2002, 2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/configmake.m4 b/gl/m4/configmake.m4 new file mode 100644 index 0000000..823ffc0 --- /dev/null +++ b/gl/m4/configmake.m4 @@ -0,0 +1,50 @@ +# configmake.m4 serial 1 +dnl Copyright (C) 2010-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, +dnl with or without modifications, as long as this notice is preserved. + +# gl_CONFIGMAKE_PREP +# ------------------ +# Guarantee all of the standard directory variables, even when used with +# autoconf 2.59 (datarootdir wasn't supported until 2.59c) or automake +# 1.9.6 (pkglibexecdir wasn't supported until 1.10b.). +AC_DEFUN([gl_CONFIGMAKE_PREP], +[ + dnl Technically, datadir should default to datarootdir. But if + dnl autoconf is too old to provide datarootdir, then reversing the + dnl definition is a reasonable compromise. Only AC_SUBST a variable + dnl if it was not already defined earlier by autoconf. + if test "x$datarootdir" = x; then + AC_SUBST([datarootdir], ['${datadir}']) + fi + dnl Copy the approach used in autoconf 2.60. + if test "x$docdir" = x; then + AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], + ['${datarootdir}/doc/${PACKAGE_TARNAME}'], + ['${datarootdir}/doc/${PACKAGE}'])]) + fi + dnl The remaining variables missing from autoconf 2.59 are easier. + if test "x$htmldir" = x; then + AC_SUBST([htmldir], ['${docdir}']) + fi + if test "x$dvidir" = x; then + AC_SUBST([dvidir], ['${docdir}']) + fi + if test "x$pdfdir" = x; then + AC_SUBST([pdfdir], ['${docdir}']) + fi + if test "x$psdir" = x; then + AC_SUBST([psdir], ['${docdir}']) + fi + if test "x$lispdir" = x; then + AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp']) + fi + if test "x$localedir" = x; then + AC_SUBST([localedir], ['${datarootdir}/locale']) + fi + + dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely + dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe. + AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}']) +]) diff --git a/gl/m4/dirname.m4 b/gl/m4/dirname.m4 new file mode 100644 index 0000000..5897a2a --- /dev/null +++ b/gl/m4/dirname.m4 @@ -0,0 +1,19 @@ +#serial 10 -*- autoconf -*- +dnl Copyright (C) 2002-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, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_DIRNAME], +[ + AC_REQUIRE([gl_DIRNAME_LGPL]) +]) + +AC_DEFUN([gl_DIRNAME_LGPL], +[ + dnl Prerequisites of lib/dirname.h. + AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) + + dnl No prerequisites of lib/basename-lgpl.c, lib/dirname-lgpl.c, + dnl lib/stripslash.c. +]) diff --git a/gl/m4/double-slash-root.m4 b/gl/m4/double-slash-root.m4 index 1776e5e..bd6f867 100644 --- a/gl/m4/double-slash-root.m4 +++ b/gl/m4/double-slash-root.m4 @@ -1,5 +1,5 @@ # double-slash-root.m4 serial 4 -*- Autoconf -*- -dnl Copyright (C) 2006, 2008-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/dup2.m4 b/gl/m4/dup2.m4 deleted file mode 100644 index e1cc73e..0000000 --- a/gl/m4/dup2.m4 +++ /dev/null @@ -1,105 +0,0 @@ -#serial 27 -dnl Copyright (C) 2002, 2005, 2007, 2009-2023 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. - -AC_DEFUN([gl_FUNC_DUP2], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], - [AC_RUN_IFELSE([ - AC_LANG_PROGRAM( - [[#include - #include - #include - #include - #include - ]GL_MDA_DEFINES[ - #ifndef RLIM_SAVED_CUR - # define RLIM_SAVED_CUR RLIM_INFINITY - #endif - #ifndef RLIM_SAVED_MAX - # define RLIM_SAVED_MAX RLIM_INFINITY - #endif - ]], - [[int result = 0; - int bad_fd = INT_MAX; - struct rlimit rlim; - if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 - && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX - && rlim.rlim_cur != RLIM_INFINITY - && rlim.rlim_cur != RLIM_SAVED_MAX - && rlim.rlim_cur != RLIM_SAVED_CUR) - bad_fd = rlim.rlim_cur; - #ifdef FD_CLOEXEC - if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) - result |= 1; - #endif - if (dup2 (1, 1) != 1) - result |= 2; - #ifdef FD_CLOEXEC - if (fcntl (1, F_GETFD) != FD_CLOEXEC) - result |= 4; - #endif - close (0); - if (dup2 (0, 0) != -1) - result |= 8; - /* Many gnulib modules require POSIX conformance of EBADF. */ - if (dup2 (2, bad_fd) == -1 && errno != EBADF) - result |= 16; - /* Flush out some cygwin core dumps. */ - if (dup2 (2, -1) != -1 || errno != EBADF) - result |= 32; - dup2 (2, 255); - dup2 (2, 256); - /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ - { - int fd = open (".", O_RDONLY); - if (fd == -1) - result |= 64; - else if (dup2 (fd, fd + 1) == -1) - result |= 128; - close (fd); - } - return result;]]) - ], - [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], - [case "$host_os" in - mingw*) # on this platform, dup2 always returns 0 for success - gl_cv_func_dup2_works="guessing no" ;; - cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 - gl_cv_func_dup2_works="guessing no" ;; - aix* | freebsd*) - # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, - # not EBADF. - gl_cv_func_dup2_works="guessing no" ;; - haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. - gl_cv_func_dup2_works="guessing no" ;; - *-android*) # implemented using dup3(), which fails if oldfd == newfd - gl_cv_func_dup2_works="guessing no" ;; - os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. - gl_cv_func_dup2_works="guessing no" ;; - *) gl_cv_func_dup2_works="guessing yes" ;; - esac]) - ]) - case "$gl_cv_func_dup2_works" in - *yes) ;; - *) - REPLACE_DUP2=1 - AC_CHECK_FUNCS([setdtablesize]) - ;; - esac - dnl Replace dup2() for supporting the gnulib-defined fchdir() function, - dnl to keep fchdir's bookkeeping up-to-date. - m4_ifdef([gl_FUNC_FCHDIR], [ - gl_TEST_FCHDIR - if test $HAVE_FCHDIR = 0; then - REPLACE_DUP2=1 - fi - ]) -]) - -# Prerequisites of lib/dup2.c. -AC_DEFUN([gl_PREREQ_DUP2], []) diff --git a/gl/m4/eealloc.m4 b/gl/m4/eealloc.m4 index cb3e08f..c640ec1 100644 --- a/gl/m4/eealloc.m4 +++ b/gl/m4/eealloc.m4 @@ -1,5 +1,5 @@ # eealloc.m4 serial 3 -dnl Copyright (C) 2003, 2009-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/environ.m4 b/gl/m4/environ.m4 index 741dfc5..593a33e 100644 --- a/gl/m4/environ.m4 +++ b/gl/m4/environ.m4 @@ -1,5 +1,5 @@ -# environ.m4 serial 8 -dnl Copyright (C) 2001-2004, 2006-2023 Free Software Foundation, Inc. +# environ.m4 serial 6 +dnl Copyright (C) 2001-2004, 2006-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, dnl with or without modifications, as long as this notice is preserved. @@ -29,15 +29,16 @@ AC_DEFUN_ONCE([gl_ENVIRON], AC_DEFUN([gt_CHECK_VAR_DECL], [ define([gt_cv_var], [gt_cv_var_]$2[_declaration]) - AC_CACHE_CHECK([if $2 is properly declared], [gt_cv_var], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[$1 - typedef struct { int foo; } foo_t; - extern foo_t $2;]], - [[$2.foo = 1;]])], - [gt_cv_var=no], - [gt_cv_var=yes])]) + AC_MSG_CHECKING([if $2 is properly declared]) + AC_CACHE_VAL([gt_cv_var], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[$1 + extern struct { int foo; } $2;]], + [[$2.foo = 1;]])], + [gt_cv_var=no], + [gt_cv_var=yes])]) + AC_MSG_RESULT([$gt_cv_var]) if test $gt_cv_var = yes; then AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, [Define if you have the declaration of $2.]) diff --git a/gl/m4/errno_h.m4 b/gl/m4/errno_h.m4 index 4c70d22..c813ea5 100644 --- a/gl/m4/errno_h.m4 +++ b/gl/m4/errno_h.m4 @@ -1,11 +1,9 @@ -# errno_h.m4 serial 14 -dnl Copyright (C) 2004, 2006, 2008-2023 Free Software Foundation, Inc. +# errno_h.m4 serial 12 +dnl Copyright (C) 2004, 2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. -AC_PREREQ([2.61]) - AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) @@ -68,11 +66,13 @@ booboo [gl_cv_header_errno_h_complete=yes]) ]) if test $gl_cv_header_errno_h_complete = yes; then - GL_GENERATE_ERRNO_H=false + ERRNO_H='' else gl_NEXT_HEADERS([errno.h]) - GL_GENERATE_ERRNO_H=true + ERRNO_H='errno.h' fi + AC_SUBST([ERRNO_H]) + AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) @@ -86,7 +86,7 @@ booboo # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [ - if $GL_GENERATE_ERRNO_H; then + if test -n "$ERRNO_H"; then AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ AC_EGREP_CPP([yes],[ #include @@ -129,3 +129,9 @@ yes AC_SUBST($1[_VALUE]) fi ]) + +dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. +dnl Remove this when we can assume autoconf >= 2.61. +m4_ifdef([AC_COMPUTE_INT], [], [ + AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) +]) diff --git a/gl/m4/error.m4 b/gl/m4/error.m4 index 8cc75df..29e6fdc 100644 --- a/gl/m4/error.m4 +++ b/gl/m4/error.m4 @@ -1,6 +1,6 @@ -#serial 15 +#serial 14 -# Copyright (C) 1996-1998, 2001-2004, 2009-2023 Free Software Foundation, Inc. +# Copyright (C) 1996-1998, 2001-2004, 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -22,10 +22,6 @@ AC_DEFUN([gl_ERROR], # Prerequisites of lib/error.c. AC_DEFUN([gl_PREREQ_ERROR], [ - dnl Use system extensions on Android, so that AC_FUNC_STRERROR_R - dnl discovers the GNU API for strerror_r on Android API level 23 and later. - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - AC_REQUIRE([AC_FUNC_STRERROR_R]) : ]) diff --git a/gl/m4/exponentd.m4 b/gl/m4/exponentd.m4 index 2ef4643..09df468 100644 --- a/gl/m4/exponentd.m4 +++ b/gl/m4/exponentd.m4 @@ -1,5 +1,5 @@ # exponentd.m4 serial 3 -dnl Copyright (C) 2007-2008, 2010-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2007-2008, 2010-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/extensions.m4 b/gl/m4/extensions.m4 index 5336b8d..e30f122 100644 --- a/gl/m4/extensions.m4 +++ b/gl/m4/extensions.m4 @@ -1,19 +1,14 @@ -# serial 23 -*- Autoconf -*- +# serial 13 -*- Autoconf -*- # Enable extensions on systems that normally disable them. -# Copyright (C) 2003, 2006-2023 Free Software Foundation, Inc. +# Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -dnl Define to empty for the benefit of Autoconf 2.69 and earlier, so that -dnl AC_USE_SYSTEM_EXTENSIONS (below) can be used unchanged from Autoconf 2.70+. -m4_ifndef([AC_CHECK_INCLUDES_DEFAULT], - [AC_DEFUN([AC_CHECK_INCLUDES_DEFAULT], [])]) - # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git # Autoconf. Perhaps we can remove this once we can assume Autoconf -# is recent-enough everywhere, but since Autoconf mutates rapidly +# 2.70 or later everywhere, but since Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. @@ -31,125 +26,67 @@ m4_ifndef([AC_CHECK_INCLUDES_DEFAULT], # its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS # invocation occurs in gl_EARLY, not in gl_INIT. -m4_version_prereq([2.72], [], [ - # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. -# We unconditionally define as many of the known feature-enabling -# as possible, reserving conditional behavior for macros that are -# known to cause problems on some platforms (such as __EXTENSIONS__). +# +# Remember that #undef in AH_VERBATIM gets replaced with #define by +# AC_DEFINE. The goal here is to define all known feature-enabling +# macros, then, if reports of conflicts are made, disable macros that +# cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], -[AC_BEFORE([$0], [AC_PREPROC_IFELSE])dnl -AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl -AC_BEFORE([$0], [AC_LINK_IFELSE])dnl +[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl AC_BEFORE([$0], [AC_RUN_IFELSE])dnl -AC_BEFORE([$0], [AC_CHECK_INCLUDES_DEFAULT])dnl -dnl #undef in AH_VERBATIM gets replaced with #define by AC_DEFINE. + + AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) + if test "$MINIX" = yes; then + AC_DEFINE([_POSIX_SOURCE], [1], + [Define to 1 if you need to in order for 'stat' and other + things to work.]) + AC_DEFINE([_POSIX_1_SOURCE], [2], + [Define to 2 if the system does not provide POSIX.1 features + except with this defined.]) + AC_DEFINE([_MINIX], [1], + [Define to 1 if on MINIX.]) + AC_DEFINE([_NETBSD_SOURCE], [1], + [Define to 1 to make NetBSD features available. MINIX 3 needs this.]) + fi + dnl Use a different key than __EXTENSIONS__, as that name broke existing dnl configure.ac when using autoheader 2.62. -dnl The macros below are in alphabetical order ignoring leading _ or __ -dnl prefixes. -AH_VERBATIM([USE_SYSTEM_EXTENSIONS], + AH_VERBATIM([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif -/* Enable general extensions on macOS. */ +/* Enable general extensions on OS X. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif -/* Enable X/Open compliant socket functions that do not require linking - with -lxnet on HP-UX 11.11. */ -#ifndef _HPUX_ALT_XOPEN_SOCKET_API -# undef _HPUX_ALT_XOPEN_SOCKET_API -#endif -/* Identify the host operating system as Minix. - This macro does not affect the system headers' behavior. - A future release of Autoconf may stop defining this macro. */ -#ifndef _MINIX -# undef _MINIX -#endif -/* Enable general extensions on NetBSD. - Enable NetBSD compatibility extensions on Minix. */ -#ifndef _NETBSD_SOURCE -# undef _NETBSD_SOURCE -#endif -/* Enable OpenBSD compatibility extensions on NetBSD. - Oddly enough, this does nothing on OpenBSD. */ -#ifndef _OPENBSD_SOURCE -# undef _OPENBSD_SOURCE -#endif -/* Define to 1 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_SOURCE -# undef _POSIX_SOURCE -#endif -/* Define to 2 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_1_SOURCE -# undef _POSIX_1_SOURCE -#endif -/* Enable POSIX-compatible threading on Solaris. */ +/* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif -/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ -#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ -# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ -#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ -# undef __STDC_WANT_IEC_60559_BFP_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ -#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ -# undef __STDC_WANT_IEC_60559_DFP_EXT__ -#endif -/* Enable extensions specified by C23 Annex F. */ -#ifndef __STDC_WANT_IEC_60559_EXT__ -# undef __STDC_WANT_IEC_60559_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ -#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ -# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ -#endif -/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ -#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ -# undef __STDC_WANT_IEC_60559_TYPES_EXT__ -#endif -/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ -#ifndef __STDC_WANT_LIB_EXT2__ -# undef __STDC_WANT_LIB_EXT2__ -#endif -/* Enable extensions specified by ISO/IEC 24747:2009. */ -#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ -# undef __STDC_WANT_MATH_SPEC_FUNCS__ -#endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif -/* Enable X/Open extensions. Define to 500 only if necessary - to make mbstate_t available. */ +/* Enable X/Open extensions if necessary. HP-UX 11.11 defines + mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of + whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif -])dnl - - AC_REQUIRE([AC_CHECK_INCLUDES_DEFAULT])dnl - _AC_CHECK_HEADER_ONCE([wchar.h]) - _AC_CHECK_HEADER_ONCE([minix/config.h]) - -dnl Defining __EXTENSIONS__ may break the system headers on some systems. -dnl (FIXME: Which ones?) +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +]) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( @@ -158,57 +95,30 @@ dnl (FIXME: Which ones?) ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) - -dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to -dnl 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. -dnl But defining _XOPEN_SOURCE may turn *off* extensions on platforms -dnl not covered by turn-on-extensions macros (notably Dragonfly, Free, -dnl and OpenBSD, which don't have any equivalent of _NETBSD_SOURCE) so -dnl it should only be defined when necessary. - AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], - [ac_cv_should_define__xopen_source], - [ac_cv_should_define__xopen_source=no - AS_IF([test $ac_cv_header_wchar_h = yes], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ - #include - mbstate_t x;]])], - [], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ - #define _XOPEN_SOURCE 500 - #include - mbstate_t x;]])], - [ac_cv_should_define__xopen_source=yes])])])]) - + test $ac_cv_safe_to_define___extensions__ = yes && + AC_DEFINE([__EXTENSIONS__]) AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) - AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API]) - AC_DEFINE([_NETBSD_SOURCE]) - AC_DEFINE([_OPENBSD_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) - AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__]) - AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__]) - AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__]) - AC_DEFINE([__STDC_WANT_IEC_60559_EXT__]) - AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__]) - AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__]) - AC_DEFINE([__STDC_WANT_LIB_EXT2__]) - AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__]) AC_DEFINE([_TANDEM_SOURCE]) - AS_IF([test $ac_cv_header_minix_config_h = yes], - [MINIX=yes - AC_DEFINE([_MINIX]) - AC_DEFINE([_POSIX_SOURCE]) - AC_DEFINE([_POSIX_1_SOURCE], [2])], - [MINIX=]) - AS_IF([test $ac_cv_safe_to_define___extensions__ = yes], - [AC_DEFINE([__EXTENSIONS__])]) - AS_IF([test $ac_cv_should_define__xopen_source = yes], - [AC_DEFINE([_XOPEN_SOURCE], [500])]) + AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], + [ac_cv_should_define__xopen_source], + [ac_cv_should_define__xopen_source=no + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #include + mbstate_t x;]])], + [], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #define _XOPEN_SOURCE 500 + #include + mbstate_t x;]])], + [ac_cv_should_define__xopen_source=yes])])]) + test $ac_cv_should_define__xopen_source = yes && + AC_DEFINE([_XOPEN_SOURCE], [500]) ])# AC_USE_SYSTEM_EXTENSIONS -]) # gl_USE_SYSTEM_EXTENSIONS # ------------------------ @@ -216,17 +126,13 @@ dnl it should only be defined when necessary. # typically due to standards-conformance issues. AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [ - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS. + dnl gnulib does not need it. But if it gets required by third-party macros + dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a + dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". + dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE, + dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck. + AC_REQUIRE([AC_GNU_SOURCE]) - dnl On OpenBSD 6.8 with GCC, the include files contain a couple of - dnl definitions that are only activated with an explicit -D_ISOC11_SOURCE. - dnl That's because this version of GCC (4.2.1) supports the option - dnl '-std=gnu99' but not the option '-std=gnu11'. - AC_REQUIRE([AC_CANONICAL_HOST]) - case "$host_os" in - openbsd*) - AC_DEFINE([_ISOC11_SOURCE], [1], - [Define to enable the declarations of ISO C 11 types and functions.]) - ;; - esac + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) diff --git a/gl/m4/extern-inline.m4 b/gl/m4/extern-inline.m4 index c001b1c..c4c5e7f 100644 --- a/gl/m4/extern-inline.m4 +++ b/gl/m4/extern-inline.m4 @@ -1,121 +1,61 @@ dnl 'extern inline' a la ISO C99. -dnl Copyright 2012-2023 Free Software Foundation, Inc. +dnl Copyright 2012-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, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EXTERN_INLINE], [ - AC_CACHE_CHECK([whether ctype.h defines __header_inline], - [gl_cv_have___header_inline], - [AC_PREPROC_IFELSE( - [AC_LANG_SOURCE([[#include - #ifndef __header_inline - #error " does not define __header_inline" - #endif - ]])], - [gl_cv_have___header_inline=yes], - [gl_cv_have___header_inline=no])]) - if test "$gl_cv_have___header_inline" = yes; then - AC_DEFINE([HAVE___HEADER_INLINE], [1], - [Define to 1 if ctype.h defines __header_inline.]) - fi - - AH_VERBATIM([HAVE___HEADER_INLINE_1], + AH_VERBATIM([extern_inline], [/* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see - . + . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. - This bug was observed with Oracle Developer Studio 12.6 - (Sun C 5.15 SunOS_sparc 2017/05/30). + This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. - Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) - on configurations that mistakenly use 'static inline' to implement - functions or macros in standard C headers like . For example, - if isdigit is mistakenly implemented via a static inline function, - a program containing an extern inline function that calls isdigit - may not work since the C standard prohibits extern inline functions - from calling static functions (ISO C 99 section 6.7.4.(3). - This bug is known to occur on: - - OS X 10.8 and earlier; see: - https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html - - DragonFly; see - http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log - - FreeBSD; see: - https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html - - OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. - - GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. It defines a macro - __GNUC_STDC_INLINE__ to indicate this situation or a macro - __GNUC_GNU_INLINE__ to indicate the opposite situation. - GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline - semantics but warns, unless -fgnu89-inline is used: - warning: C99 inline functions are not supported; using GNU89 - warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute - It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. - */ -#if (((defined __APPLE__ && defined __MACH__) \ - || defined __DragonFly__ || defined __FreeBSD__) \ - && (defined HAVE___HEADER_INLINE \ - ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ - && ! defined __clang__) \ - : ((! defined _DONT_USE_CTYPE_INLINE_ \ - && (defined __GNUC__ || defined __cplusplus)) \ - || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ - && defined __GNUC__ && ! defined __cplusplus)))) -# define _GL_EXTERN_INLINE_STDHEADER_BUG -#endif + Suppress the use of extern inline on Apple's platforms, as Libc at least + through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g., + . + Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ - && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) + && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline -# define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ + && !defined __APPLE__) +# if __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern -# define _GL_EXTERN_INLINE_IN_USE #else -# define _GL_INLINE _GL_UNUSED static -# define _GL_EXTERN_INLINE _GL_UNUSED static +# define _GL_INLINE static _GL_UNUSED +# define _GL_EXTERN_INLINE static _GL_UNUSED #endif -/* In GCC 4.6 (inclusive) to 5.1 (exclusive), - suppress bogus "no previous prototype for 'FOO'" - and "no previous declaration for 'FOO'" diagnostics, - when FOO is an inline function in the header; see - and - . */ -#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ +#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif + /* Suppress GCC's bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + . */ # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ diff --git a/gl/m4/fcntl-o.m4 b/gl/m4/fcntl-o.m4 index 59d558b..87cc4bd 100644 --- a/gl/m4/fcntl-o.m4 +++ b/gl/m4/fcntl-o.m4 @@ -1,22 +1,23 @@ -# fcntl-o.m4 serial 7 -dnl Copyright (C) 2006, 2009-2023 Free Software Foundation, Inc. +# fcntl-o.m4 serial 4 +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. -AC_PREREQ([2.60]) - # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc to define O_NOATIME and O_NOFOLLOW. - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes + dnl AC_GNU_SOURCE. + m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], + [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], + [AC_REQUIRE([AC_GNU_SOURCE])]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], @@ -32,7 +33,6 @@ AC_DEFUN([gl_FCNTL_O_FLAGS], # defined sleep(n) _sleep ((n) * 1000) #endif #include - ]GL_MDA_DEFINES[ #ifndef O_NOATIME #define O_NOATIME 0 #endif @@ -116,13 +116,7 @@ AC_DEFUN([gl_FCNTL_O_FLAGS], 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], - [case "$host_os" in - # Guess 'no' on native Windows. - mingw*) gl_cv_header_working_fcntl_h='no' ;; - *) gl_cv_header_working_fcntl_h=cross-compiling ;; - esac - ]) - ]) + [gl_cv_header_working_fcntl_h=cross-compiling])]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( diff --git a/gl/m4/fcntl.m4 b/gl/m4/fcntl.m4 deleted file mode 100644 index 524a99a..0000000 --- a/gl/m4/fcntl.m4 +++ /dev/null @@ -1,151 +0,0 @@ -# fcntl.m4 serial 11 -dnl Copyright (C) 2009-2023 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. - -# For now, this module ensures that fcntl() -# - supports F_DUPFD correctly -# - supports or emulates F_DUPFD_CLOEXEC -# - supports F_GETFD -# Still to be ported to mingw: -# - F_SETFD -# - F_GETFL, F_SETFL -# - F_GETOWN, F_SETOWN -# - F_GETLK, F_SETLK, F_SETLKW -AC_DEFUN([gl_FUNC_FCNTL], -[ - dnl Persuade glibc to expose F_DUPFD_CLOEXEC. - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CHECK_FUNCS_ONCE([fcntl]) - if test $ac_cv_func_fcntl = no; then - gl_REPLACE_FCNTL - else - dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target - dnl haiku alpha 2 F_DUPFD has wrong errno - AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], - [gl_cv_func_fcntl_f_dupfd_works], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include - #include - #include - #include - #include - ]GL_MDA_DEFINES[ - #ifndef RLIM_SAVED_CUR - # define RLIM_SAVED_CUR RLIM_INFINITY - #endif - #ifndef RLIM_SAVED_MAX - # define RLIM_SAVED_MAX RLIM_INFINITY - #endif - ]], - [[int result = 0; - int bad_fd = INT_MAX; - struct rlimit rlim; - if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 - && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX - && rlim.rlim_cur != RLIM_INFINITY - && rlim.rlim_cur != RLIM_SAVED_MAX - && rlim.rlim_cur != RLIM_SAVED_CUR) - bad_fd = rlim.rlim_cur; - if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; - if (errno != EINVAL) result |= 2; - if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; - if (errno != EINVAL) result |= 8; - /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ - { - int fd; - fd = open (".", O_RDONLY); - if (fd == -1) - result |= 16; - else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) - result |= 32; - - close (fd); - } - return result;]])], - [gl_cv_func_fcntl_f_dupfd_works=yes], - [gl_cv_func_fcntl_f_dupfd_works=no], - [case $host_os in - aix* | cygwin* | haiku*) - gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; - *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; - esac])]) - case $gl_cv_func_fcntl_f_dupfd_works in - *yes) ;; - *) gl_REPLACE_FCNTL - AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD - behavior does not match POSIX]) ;; - esac - - dnl Many systems lack F_DUPFD_CLOEXEC. - dnl NetBSD 9.0 declares F_DUPFD_CLOEXEC but it works only like F_DUPFD. - AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC], - [gl_cv_func_fcntl_f_dupfd_cloexec], - [AC_RUN_IFELSE( - [AC_LANG_SOURCE( - [[#include - #include - int main (int argc, char *argv[]) - { - if (argc == 1) - /* parent process */ - { - if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) - return 1; - return execl ("./conftest", "./conftest", "child", NULL); - } - else - /* child process */ - return (fcntl (10, F_GETFL) < 0 ? 0 : 42); - } - ]]) - ], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#ifdef __linux__ -/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace - it to support the semantics on older kernels that failed with EINVAL. */ -choke me -#endif - ]])], - [gl_cv_func_fcntl_f_dupfd_cloexec=yes], - [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"]) - ], - [gl_cv_func_fcntl_f_dupfd_cloexec=no], - [case "$host_os" in - # Guess no on NetBSD. - netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; - *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; - esac - ]) - ]) - case "$gl_cv_func_fcntl_f_dupfd_cloexec" in - *yes) ;; - *) gl_REPLACE_FCNTL - dnl No witness macro needed for this bug. - ;; - esac - fi - dnl Replace fcntl() for supporting the gnulib-defined fchdir() function, - dnl to keep fchdir's bookkeeping up-to-date. - m4_ifdef([gl_FUNC_FCHDIR], [ - gl_TEST_FCHDIR - if test $HAVE_FCHDIR = 0; then - gl_REPLACE_FCNTL - fi - ]) -]) - -AC_DEFUN([gl_REPLACE_FCNTL], -[ - AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) - AC_CHECK_FUNCS_ONCE([fcntl]) - if test $ac_cv_func_fcntl = no; then - HAVE_FCNTL=0 - else - REPLACE_FCNTL=1 - fi -]) diff --git a/gl/m4/fcntl_h.m4 b/gl/m4/fcntl_h.m4 deleted file mode 100644 index 68f4e64..0000000 --- a/gl/m4/fcntl_h.m4 +++ /dev/null @@ -1,70 +0,0 @@ -# serial 20 -# Configure fcntl.h. -dnl Copyright (C) 2006-2007, 2009-2023 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 Written by Paul Eggert. - -AC_DEFUN_ONCE([gl_FCNTL_H], -[ - AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) - AC_REQUIRE([gl_FCNTL_O_FLAGS]) - gl_NEXT_HEADERS([fcntl.h]) - - dnl Ensure the type pid_t gets defined. - AC_REQUIRE([AC_TYPE_PID_T]) - - dnl Ensure the type mode_t gets defined. - AC_REQUIRE([AC_TYPE_MODE_T]) - - dnl Check for declarations of anything we want to poison if the - dnl corresponding gnulib module is not in use, if it is not common - dnl enough to be declared everywhere. - gl_WARN_ON_USE_PREPARE([[#include - ]], [fcntl openat]) -]) - -# gl_FCNTL_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. -AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], -[ - dnl Ensure to expand the default settings once only. - gl_FCNTL_H_REQUIRE_DEFAULTS - gl_MODULE_INDICATOR_SET_VARIABLE([$1]) - dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR_FOR_TESTS([$1]) -]) - -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CREAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCNTL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) -]) - -AC_DEFUN([gl_FCNTL_H_DEFAULTS], -[ - dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) - HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) - REPLACE_CREAT=0; AC_SUBST([REPLACE_CREAT]) - REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) - REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) - REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) -]) diff --git a/gl/m4/fflush.m4 b/gl/m4/fflush.m4 deleted file mode 100644 index 3e3c890..0000000 --- a/gl/m4/fflush.m4 +++ /dev/null @@ -1,100 +0,0 @@ -# fflush.m4 serial 18 - -# Copyright (C) 2007-2023 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -dnl From Eric Blake - -dnl Find out how to obey POSIX semantics of fflush(stdin) discarding -dnl unread input on seekable streams, rather than C99 undefined semantics. - -AC_DEFUN([gl_FUNC_FFLUSH], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - gl_FUNC_FFLUSH_STDIN - case "$gl_cv_func_fflush_stdin" in - *yes) ;; - *) REPLACE_FFLUSH=1 ;; - esac -]) - -dnl Determine whether fflush works on input streams. -dnl Sets gl_cv_func_fflush_stdin. - -AC_DEFUN([gl_FUNC_FFLUSH_STDIN], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CHECK_HEADERS_ONCE([unistd.h]) - AC_CACHE_CHECK([whether fflush works on input streams], - [gl_cv_func_fflush_stdin], - [echo hello world > conftest.txt - AC_RUN_IFELSE([AC_LANG_PROGRAM( - [[ -#include -#if HAVE_UNISTD_H -# include -#else /* on Windows with MSVC */ -# include -#endif - ]GL_MDA_DEFINES], - [[FILE *f = fopen ("conftest.txt", "r"); - char buffer[10]; - int fd; - int c; - if (f == NULL) - return 1; - fd = fileno (f); - if (fd < 0 || fread (buffer, 1, 5, f) != 5) - { fclose (f); return 2; } - /* For deterministic results, ensure f read a bigger buffer. */ - if (lseek (fd, 0, SEEK_CUR) == 5) - { fclose (f); return 3; } - /* POSIX requires fflush-fseek to set file offset of fd. This fails - on BSD systems and on mingw. */ - if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) - { fclose (f); return 4; } - if (lseek (fd, 0, SEEK_CUR) != 5) - { fclose (f); return 5; } - /* Verify behaviour of fflush after ungetc. See - */ - /* Verify behaviour of fflush after a backup ungetc. This fails on - mingw. */ - c = fgetc (f); - ungetc (c, f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 6; } - /* Verify behaviour of fflush after a non-backup ungetc. This fails - on glibc 2.8 and on BSD systems. */ - c = fgetc (f); - ungetc ('@', f); - fflush (f); - if (fgetc (f) != c) - { fclose (f); return 7; } - fclose (f); - return 0; - ]])], - [gl_cv_func_fflush_stdin=yes], - [gl_cv_func_fflush_stdin=no], - [case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_fflush_stdin="guessing no" ;; - *) gl_cv_func_fflush_stdin=cross ;; - esac - ]) - rm conftest.txt - ]) - case "$gl_cv_func_fflush_stdin" in - *yes) gl_func_fflush_stdin=1 ;; - *no) gl_func_fflush_stdin=0 ;; - *) gl_func_fflush_stdin='(-1)' ;; - esac - AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin], - [Define to 1 if fflush is known to work on stdin as per POSIX.1-2008, - 0 if fflush is known to not work, -1 if unknown.]) -]) - -# Prerequisites of lib/fflush.c. -AC_DEFUN([gl_PREREQ_FFLUSH], [:]) diff --git a/gl/m4/float_h.m4 b/gl/m4/float_h.m4 index 2f0c9c4..397f2d1 100644 --- a/gl/m4/float_h.m4 +++ b/gl/m4/float_h.m4 @@ -1,5 +1,5 @@ -# float_h.m4 serial 13 -dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. +# float_h.m4 serial 9 +dnl Copyright (C) 2007, 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, dnl with or without modifications, as long as this notice is preserved. @@ -8,46 +8,42 @@ AC_DEFUN([gl_FLOAT_H], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) - GL_GENERATE_FLOAT_H=false + FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; - freebsd* | dragonfly*) + freebsd*) case "$host_cpu" in changequote(,)dnl i[34567]86 ) changequote([,])dnl - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating # 32-bit code. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __LP64__ || defined __x86_64__ || defined __amd64__ - int ok; - #else - error fail - #endif - ]])], + AC_EGREP_CPP([yes], + [#if defined __LP64__ || defined __x86_64__ || defined __amd64__ + yes + #endif], [], - [GL_GENERATE_FLOAT_H=true]) + [FLOAT_H=float.h]) ;; esac ;; linux*) case "$host_cpu" in powerpc*) - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; esac ;; esac case "$host_os" in - aix* | freebsd* | dragonfly* | linux*) - if $GL_GENERATE_FLOAT_H; then + aix* | freebsd* | linux*) + if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; @@ -73,20 +69,14 @@ int main () [gl_cv_func_itold_works=no], [case "$host" in sparc*-*-linux*) - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __LP64__ || defined __arch64__ - int ok; - #else - error fail - #endif - ]])], + AC_EGREP_CPP([yes], + [#if defined __LP64__ || defined __arch64__ + yes + #endif], [gl_cv_func_itold_works="guessing no"], [gl_cv_func_itold_works="guessing yes"]) ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_itold_works="guessing yes" ;; - *) gl_cv_func_itold_works="guessing yes" ;; + *) gl_cv_func_itold_works="guessing yes" ;; esac ]) ]) @@ -95,12 +85,14 @@ int main () REPLACE_ITOLD=1 dnl We add the workaround to but also to , dnl to increase the chances that the fix function gets pulled in. - GL_GENERATE_FLOAT_H=true + FLOAT_H=float.h ;; esac - if $GL_GENERATE_FLOAT_H; then + if test -n "$FLOAT_H"; then gl_NEXT_HEADERS([float.h]) fi + AC_SUBST([FLOAT_H]) + AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"]) AC_SUBST([REPLACE_ITOLD]) ]) diff --git a/gl/m4/floorf.m4 b/gl/m4/floorf.m4 index c49ffa6..c892ff9 100644 --- a/gl/m4/floorf.m4 +++ b/gl/m4/floorf.m4 @@ -1,5 +1,5 @@ -# floorf.m4 serial 18 -dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. +# floorf.m4 serial 13 +dnl Copyright (C) 2007, 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, dnl with or without modifications, as long as this notice is preserved. @@ -39,7 +39,7 @@ AC_DEFUN([gl_FUNC_FLOORF], static float dummy (float f) { return 0; } int main (int argc, char *argv[]) { - float (* volatile my_floorf) (float) = argc ? floorf : dummy; + float (*my_floorf) (float) = argc ? floorf : dummy; /* Test whether floorf (-0.0f) is -0.0f. */ if (signbitf (minus_zerof) && !signbitf (my_floorf (minus_zerof))) return 1; @@ -49,14 +49,10 @@ int main (int argc, char *argv[]) [gl_cv_func_floorf_ieee=yes], [gl_cv_func_floorf_ieee=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_floorf_ieee="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_floorf_ieee="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_floorf_ieee="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_floorf_ieee="$gl_cross_guess_normal" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_floorf_ieee="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_floorf_ieee="guessing no" ;; esac ]) LIBS="$save_LIBS" diff --git a/gl/m4/fopen.m4 b/gl/m4/fopen.m4 deleted file mode 100644 index 9c39ff7..0000000 --- a/gl/m4/fopen.m4 +++ /dev/null @@ -1,149 +0,0 @@ -# fopen.m4 serial 13 -dnl Copyright (C) 2007-2023 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. - -AC_DEFUN([gl_FUNC_FOPEN], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) - case "$host_os" in - mingw* | pw*) - dnl Replace fopen, for handling of "/dev/null". - REPLACE_FOPEN=1 - dnl fopen on mingw also has the trailing slash bug. - gl_cv_func_fopen_slash="guessing no" - ;; - *) - dnl fopen("foo/", "w") should not create a file when the file name has a - dnl trailing slash. - AC_CACHE_CHECK([whether fopen recognizes a trailing slash], - [gl_cv_func_fopen_slash], - [ - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -int main () -{ - FILE *fp = fopen ("conftest.sl/", "w"); - int result = (fp != NULL); - if (fp != NULL) - fclose (fp); - return result; -}]])], - [gl_cv_func_fopen_slash=yes], - [gl_cv_func_fopen_slash=no], - [ -changequote(,)dnl - case "$host_os" in - aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) - gl_cv_func_fopen_slash="guessing no" ;; - *) - gl_cv_func_fopen_slash="guessing yes" ;; - esac -changequote([,])dnl - ]) - rm -f conftest.sl - ]) - ;; - esac - case "$gl_cv_func_fopen_slash" in - *no) - AC_DEFINE([FOPEN_TRAILING_SLASH_BUG], [1], - [Define to 1 if fopen() fails to recognize a trailing slash.]) - REPLACE_FOPEN=1 - ;; - esac -]) - -AC_DEFUN([gl_FUNC_FOPEN_GNU], -[ - AC_REQUIRE([gl_FUNC_FOPEN]) - AC_CACHE_CHECK([whether fopen supports the mode character 'x'], - [gl_cv_func_fopen_mode_x], - [rm -f conftest.x - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -int main () -{ - FILE *fp; - fp = fopen ("conftest.x", "w"); - fclose (fp); - fp = fopen ("conftest.x", "wx"); - if (fp != NULL) - /* 'x' ignored */ - return 1; - else if (errno == EEXIST) - return 0; - else - /* 'x' rejected */ - return 2; -}]])], - [gl_cv_func_fopen_mode_x=yes], - [gl_cv_func_fopen_mode_x=no], - [case "$host_os" in - # Guess yes on glibc and musl systems. - linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*) - gl_cv_func_fopen_mode_x="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_fopen_mode_x="$gl_cross_guess_normal" ;; - esac - ]) - rm -f conftest.x - ]) - AC_CACHE_CHECK([whether fopen supports the mode character 'e'], - [gl_cv_func_fopen_mode_e], - [echo foo > conftest.x - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -]GL_MDA_DEFINES[ -int main () -{ - FILE *fp = fopen ("conftest.x", "re"); - if (fp != NULL) - { - if (fcntl (fileno (fp), F_GETFD) & FD_CLOEXEC) - return 0; - else - /* 'e' ignored */ - return 1; - } - else - /* 'e' rejected */ - return 2; -}]])], - [gl_cv_func_fopen_mode_e=yes], - [gl_cv_func_fopen_mode_e=no], - [case "$host_os" in - # Guess yes on glibc and musl systems. - linux*-gnu* | gnu* | kfreebsd*-gnu | *-musl*) - gl_cv_func_fopen_mode_e="guessing yes" ;; - # Guess no on native Windows. - mingw*) - gl_cv_func_fopen_mode_e="guessing no" ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_fopen_mode_e="$gl_cross_guess_normal" ;; - esac - ]) - rm -f conftest.x - ]) - REPLACE_FOPEN_FOR_FOPEN_GNU="$REPLACE_FOPEN" - case "$gl_cv_func_fopen_mode_x" in - *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;; - esac - case "$gl_cv_func_fopen_mode_e" in - *no) REPLACE_FOPEN_FOR_FOPEN_GNU=1 ;; - esac -]) - -# Prerequisites of lib/fopen.c. -AC_DEFUN([gl_PREREQ_FOPEN], [:]) diff --git a/gl/m4/fpurge.m4 b/gl/m4/fpurge.m4 deleted file mode 100644 index b365409..0000000 --- a/gl/m4/fpurge.m4 +++ /dev/null @@ -1,73 +0,0 @@ -# fpurge.m4 serial 12 -dnl Copyright (C) 2007, 2009-2023 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. - -AC_DEFUN([gl_FUNC_FPURGE], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CHECK_HEADERS_ONCE([stdio_ext.h]) - AC_CHECK_FUNCS_ONCE([fpurge]) - AC_CHECK_FUNCS_ONCE([__fpurge]) - AC_CHECK_DECLS([fpurge], , , [[#include ]]) - if test "x$ac_cv_func_fpurge" = xyes; then - HAVE_FPURGE=1 - # Detect BSD bug. Only cygwin 1.7 and musl are known to be immune. - AC_CACHE_CHECK([whether fpurge works], [gl_cv_func_fpurge_works], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include -]], - [[FILE *f = fopen ("conftest.txt", "w+"); - if (!f) - return 1; - if (fputc ('a', f) != 'a') - { fclose (f); return 2; } - rewind (f); - if (fgetc (f) != 'a') - { fclose (f); return 3; } - if (fgetc (f) != EOF) - { fclose (f); return 4; } - if (fpurge (f) != 0) - { fclose (f); return 5; } - if (putc ('b', f) != 'b') - { fclose (f); return 6; } - if (fclose (f) != 0) - return 7; - if ((f = fopen ("conftest.txt", "r")) == NULL) - return 8; - if (fgetc (f) != 'a') - { fclose (f); return 9; } - if (fgetc (f) != 'b') - { fclose (f); return 10; } - if (fgetc (f) != EOF) - { fclose (f); return 11; } - if (fclose (f) != 0) - return 12; - if (remove ("conftest.txt") != 0) - return 13; - return 0; - ]])], - [gl_cv_func_fpurge_works=yes], - [gl_cv_func_fpurge_works=no], - [case "$host_os" in - # Guess yes on musl systems. - *-musl*) gl_cv_func_fpurge_works="guessing yes" ;; - # Otherwise obey --enable-cross-guesses. - *) gl_cv_func_fpurge_works="$gl_cross_guess_normal" ;; - esac - ]) - ]) - case "$gl_cv_func_fpurge_works" in - *yes) ;; - *) REPLACE_FPURGE=1 ;; - esac - else - HAVE_FPURGE=0 - fi - if test "x$ac_cv_have_decl_fpurge" = xno; then - HAVE_DECL_FPURGE=0 - fi -]) diff --git a/gl/m4/free.m4 b/gl/m4/free.m4 deleted file mode 100644 index 0389dea..0000000 --- a/gl/m4/free.m4 +++ /dev/null @@ -1,52 +0,0 @@ -# free.m4 serial 6 -# Copyright (C) 2003-2005, 2009-2023 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Written by Paul Eggert and Bruno Haible. - -AC_DEFUN([gl_FUNC_FREE], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - - dnl In the next release of POSIX, free must preserve errno. - dnl https://www.austingroupbugs.net/view.php?id=385 - dnl https://sourceware.org/bugzilla/show_bug.cgi?id=17924 - dnl So far, we know of three platforms that do this: - dnl * glibc >= 2.33, thanks to the fix for this bug: - dnl - dnl * OpenBSD >= 4.5, thanks to this commit: - dnl - dnl * Solaris, because its malloc() implementation is based on brk(), - dnl not mmap(); hence its free() implementation makes no system calls. - dnl For other platforms, you can only be sure if they state it in their - dnl documentation, or by code inspection of the free() implementation in libc. - AC_CACHE_CHECK([whether free is known to preserve errno], - [gl_cv_func_free_preserves_errno], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - ]], - [[#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) - #elif defined __OpenBSD__ - #elif defined __sun - #else - #error "'free' is not known to preserve errno" - #endif - ]])], - [gl_cv_func_free_preserves_errno=yes], - [gl_cv_func_free_preserves_errno=no]) - ]) - - case $gl_cv_func_free_preserves_errno in - *yes) - AC_DEFINE([HAVE_FREE_POSIX], [1], - [Define if the 'free' function is guaranteed to preserve errno.]) - ;; - *) REPLACE_FREE=1 ;; - esac -]) - -# Prerequisites of lib/free.c. -AC_DEFUN([gl_PREREQ_FREE], [:]) diff --git a/gl/m4/fseek.m4 b/gl/m4/fseek.m4 deleted file mode 100644 index c5fe688..0000000 --- a/gl/m4/fseek.m4 +++ /dev/null @@ -1,15 +0,0 @@ -# fseek.m4 serial 4 -dnl Copyright (C) 2007, 2009-2023 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. - -AC_DEFUN([gl_FUNC_FSEEK], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_FSEEKO]) - dnl When fseeko needs fixes, fseek needs them too. - if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then - REPLACE_FSEEK=1 - fi -]) diff --git a/gl/m4/fseeko.m4 b/gl/m4/fseeko.m4 deleted file mode 100644 index 05ee06b..0000000 --- a/gl/m4/fseeko.m4 +++ /dev/null @@ -1,77 +0,0 @@ -# fseeko.m4 serial 20 -dnl Copyright (C) 2007-2023 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. - -AC_DEFUN([gl_FUNC_FSEEKO], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) - AC_REQUIRE([gl_SYS_TYPES_H]) - AC_REQUIRE([AC_PROG_CC]) - - dnl Persuade glibc to declare fseeko(). - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - - AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko], - [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include -]], [[fseeko (stdin, 0, 0);]])], - [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) - ]) - - AC_CHECK_DECLS_ONCE([fseeko]) - if test $ac_cv_have_decl_fseeko = no; then - HAVE_DECL_FSEEKO=0 - fi - - if test $gl_cv_func_fseeko = no; then - HAVE_FSEEKO=0 - else - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_FSEEKO=1 - fi - if test $gl_cv_var_stdin_large_offset = no; then - REPLACE_FSEEKO=1 - fi - m4_ifdef([gl_FUNC_FFLUSH_STDIN], [ - gl_FUNC_FFLUSH_STDIN - case "$gl_cv_func_fflush_stdin" in - *yes) ;; - *) REPLACE_FSEEKO=1 ;; - esac - ]) - fi -]) - -dnl Code shared by fseeko and ftello. Determine if large files are supported, -dnl but stdin does not start as a large file by default. -AC_DEFUN([gl_STDIN_LARGE_OFFSET], - [ - AC_CACHE_CHECK([whether stdin defaults to large file offsets], - [gl_cv_var_stdin_large_offset], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], -[[#if defined __SL64 && defined __SCLE /* cygwin */ - /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making - fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and - it is easier to do a version check than building a runtime test. */ -# include -# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) - choke me -# endif -#endif]])], - [gl_cv_var_stdin_large_offset=yes], - [gl_cv_var_stdin_large_offset=no])]) -]) - -# Prerequisites of lib/fseeko.c. -AC_DEFUN([gl_PREREQ_FSEEKO], -[ - dnl Native Windows has the function _fseeki64. mingw hides it in some - dnl circumstances, but mingw64 makes it usable again. - AC_CHECK_FUNCS([_fseeki64]) - if test $ac_cv_func__fseeki64 = yes; then - AC_CHECK_DECLS([_fseeki64]) - fi -]) diff --git a/gl/m4/fstat.m4 b/gl/m4/fstat.m4 deleted file mode 100644 index 7cb2edb..0000000 --- a/gl/m4/fstat.m4 +++ /dev/null @@ -1,40 +0,0 @@ -# fstat.m4 serial 8 -dnl Copyright (C) 2011-2023 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. - -AC_DEFUN([gl_FUNC_FSTAT], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) - - case "$host_os" in - mingw* | solaris*) - dnl On MinGW, the original stat() returns st_atime, st_mtime, - dnl st_ctime values that are affected by the time zone. - dnl Solaris stat can return a negative tv_nsec. - REPLACE_FSTAT=1 - ;; - esac - - dnl Replace fstat() for supporting the gnulib-defined open() on directories. - m4_ifdef([gl_FUNC_FCHDIR], [ - gl_TEST_FCHDIR - if test $HAVE_FCHDIR = 0; then - case "$gl_cv_func_open_directory_works" in - *yes) ;; - *) - REPLACE_FSTAT=1 - ;; - esac - fi - ]) -]) - -# Prerequisites of lib/fstat.c and lib/stat-w32.c. -AC_DEFUN([gl_PREREQ_FSTAT], [ - AC_REQUIRE([gl_SYS_STAT_H]) - AC_REQUIRE([gl_PREREQ_STAT_W32]) - : -]) diff --git a/gl/m4/fstypename.m4 b/gl/m4/fstypename.m4 index f65c459..c72ecb8 100644 --- a/gl/m4/fstypename.m4 +++ b/gl/m4/fstypename.m4 @@ -6,7 +6,7 @@ dnl See if struct statfs has the f_fstypename member. dnl If so, define HAVE_STRUCT_STATFS_F_FSTYPENAME. dnl -# Copyright (C) 1998-1999, 2001, 2004, 2006, 2009-2023 Free Software +# Copyright (C) 1998-1999, 2001, 2004, 2006, 2009-2013 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/gl/m4/fsusage.m4 b/gl/m4/fsusage.m4 index 88f3ca8..6277bfa 100644 --- a/gl/m4/fsusage.m4 +++ b/gl/m4/fsusage.m4 @@ -1,7 +1,7 @@ -# serial 35 +# serial 30 # Obtaining file system usage information. -# Copyright (C) 1997-1998, 2000-2001, 2003-2023 Free Software Foundation, Inc. +# Copyright (C) 1997-1998, 2000-2001, 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -29,29 +29,27 @@ AC_DEFUN([gl_FSUSAGE], AC_DEFUN([gl_FILE_SYSTEM_USAGE], [ - dnl Enable large-file support. This has the effect of changing the size - dnl of field f_blocks in 'struct statvfs' from 32 bit to 64 bit on - dnl glibc/Hurd, HP-UX 11, Solaris (32-bit mode). It also changes the size - dnl of field f_blocks in 'struct statfs' from 32 bit to 64 bit on - dnl Mac OS X >= 10.5 (32-bit mode). - AC_REQUIRE([AC_SYS_LARGEFILE]) +dnl Enable large-file support. This has the effect of changing the size +dnl of field f_blocks in 'struct statvfs' from 32 bit to 64 bit on +dnl glibc/Hurd, HP-UX 11, Solaris (32-bit mode). It also changes the size +dnl of field f_blocks in 'struct statfs' from 32 bit to 64 bit on +dnl Mac OS X >= 10.5 (32-bit mode). +AC_REQUIRE([AC_SYS_LARGEFILE]) - ac_fsusage_space=no +AC_MSG_NOTICE([checking how to get file system space usage]) +ac_fsusage_space=no - # Perform only the link test since it seems there are no variants of the - # statvfs function. This check is more than just AC_CHECK_FUNCS([statvfs]) - # because that got a false positive on SCO OSR5. Adding the declaration - # of a 'struct statvfs' causes this test to fail (as it should) on such - # systems. That system is reported to work fine with STAT_STATFS4 which - # is what it gets when this test fails. - if test $ac_fsusage_space = no; then - # glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, - # OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS. - AC_CACHE_CHECK([for statvfs function (SVR4)], - [fu_cv_sys_stat_statvfs], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[ -#include +# Perform only the link test since it seems there are no variants of the +# statvfs function. This check is more than just AC_CHECK_FUNCS([statvfs]) +# because that got a false positive on SCO OSR5. Adding the declaration +# of a 'struct statvfs' causes this test to fail (as it should) on such +# systems. That system is reported to work fine with STAT_STATFS4 which +# is what it gets when this test fails. +if test $ac_fsusage_space = no; then + # glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, + # OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS. + AC_CACHE_CHECK([for statvfs function (SVR4)], [fu_cv_sys_stat_statvfs], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include #ifdef __osf__ "Do not use Tru64's statvfs implementation" #endif @@ -70,47 +68,45 @@ struct statvfs fsd; int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1]; #endif ]], - [[statvfs (0, &fsd);]])], - [fu_cv_sys_stat_statvfs=yes], - [fu_cv_sys_stat_statvfs=no]) + [[statvfs (0, &fsd);]])], + [fu_cv_sys_stat_statvfs=yes], + [fu_cv_sys_stat_statvfs=no])]) + if test $fu_cv_sys_stat_statvfs = yes; then + ac_fsusage_space=yes + # AIX >= 5.2 has statvfs64 that has a wider f_blocks field than statvfs. + # glibc, HP-UX, IRIX, Solaris have statvfs64 as well, but on these systems + # statvfs with large-file support is already equivalent to statvfs64. + AC_CACHE_CHECK([whether to use statvfs64], + [fu_cv_sys_stat_statvfs64], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + struct statvfs64 fsd; + int check_f_blocks_larger_in_statvfs64 + [sizeof (((struct statvfs64 *) 0)->f_blocks) + > sizeof (((struct statvfs *) 0)->f_blocks) + ? 1 : -1]; + ]], + [[statvfs64 (0, &fsd);]])], + [fu_cv_sys_stat_statvfs64=yes], + [fu_cv_sys_stat_statvfs64=no]) ]) - if test $fu_cv_sys_stat_statvfs = yes; then - ac_fsusage_space=yes - # AIX >= 5.2 has statvfs64 that has a wider f_blocks field than statvfs. - # glibc, HP-UX, IRIX, Solaris have statvfs64 as well, but on these systems - # statvfs with large-file support is already equivalent to statvfs64. - AC_CACHE_CHECK([whether to use statvfs64], - [fu_cv_sys_stat_statvfs64], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include - #include - struct statvfs64 fsd; - int check_f_blocks_larger_in_statvfs64 - [sizeof (((struct statvfs64 *) 0)->f_blocks) - > sizeof (((struct statvfs *) 0)->f_blocks) - ? 1 : -1]; - ]], - [[statvfs64 (0, &fsd);]])], - [fu_cv_sys_stat_statvfs64=yes], - [fu_cv_sys_stat_statvfs64=no]) - ]) - if test $fu_cv_sys_stat_statvfs64 = yes; then - AC_DEFINE([STAT_STATVFS64], [1], - [Define if statvfs64 should be preferred over statvfs.]) - else - AC_DEFINE([STAT_STATVFS], [1], - [Define if there is a function named statvfs. (SVR4)]) - fi + if test $fu_cv_sys_stat_statvfs64 = yes; then + AC_DEFINE([STAT_STATVFS64], [1], + [ Define if statvfs64 should be preferred over statvfs.]) + else + AC_DEFINE([STAT_STATVFS], [1], + [ Define if there is a function named statvfs. (SVR4)]) fi fi +fi - # Check for this unconditionally so we have a - # good fallback on glibc/Linux > 2.6 < 2.6.36 - AC_CACHE_CHECK([for two-argument statfs with statfs.f_frsize member], - [fu_cv_sys_stat_statfs2_frsize], - [AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ +# Check for this unconditionally so we have a +# good fallback on glibc/Linux > 2.6 < 2.6.36 +AC_MSG_CHECKING([for two-argument statfs with statfs.f_frsize member]) +AC_CACHE_VAL([fu_cv_sys_stat_statfs2_frsize], +[AC_RUN_IFELSE([AC_LANG_SOURCE([[ #ifdef HAVE_SYS_PARAM_H #include #endif @@ -123,26 +119,26 @@ int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1]; int main () { - struct statfs fsd; - fsd.f_frsize = 0; - return statfs (".", &fsd) != 0; + struct statfs fsd; + fsd.f_frsize = 0; + return statfs (".", &fsd) != 0; }]])], - [fu_cv_sys_stat_statfs2_frsize=yes], - [fu_cv_sys_stat_statfs2_frsize=no], - [fu_cv_sys_stat_statfs2_frsize=no]) - ]) - if test $fu_cv_sys_stat_statfs2_frsize = yes; then + [fu_cv_sys_stat_statfs2_frsize=yes], + [fu_cv_sys_stat_statfs2_frsize=no], + [fu_cv_sys_stat_statfs2_frsize=no])]) +AC_MSG_RESULT([$fu_cv_sys_stat_statfs2_frsize]) +if test $fu_cv_sys_stat_statfs2_frsize = yes; then ac_fsusage_space=yes AC_DEFINE([STAT_STATFS2_FRSIZE], [1], - [Define if statfs takes 2 args and struct statfs has a field named f_frsize. - (glibc/Linux > 2.6)]) - fi +[ Define if statfs takes 2 args and struct statfs has a field named f_frsize. + (glibc/Linux > 2.6)]) +fi - if test $ac_fsusage_space = no; then - # DEC Alpha running OSF/1 - AC_CACHE_CHECK([for 3-argument statfs function (DEC OSF/1)], - [fu_cv_sys_stat_statfs3_osf1], - [AC_RUN_IFELSE([AC_LANG_SOURCE([[ +if test $ac_fsusage_space = no; then + # DEC Alpha running OSF/1 + AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) + AC_CACHE_VAL([fu_cv_sys_stat_statfs3_osf1], + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include #include @@ -153,27 +149,28 @@ int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1]; fsd.f_fsize = 0; return statfs (".", &fsd, sizeof (struct statfs)) != 0; }]])], - [fu_cv_sys_stat_statfs3_osf1=yes], - [fu_cv_sys_stat_statfs3_osf1=no], - [fu_cv_sys_stat_statfs3_osf1=no]) - ]) - if test $fu_cv_sys_stat_statfs3_osf1 = yes; then - ac_fsusage_space=yes - AC_DEFINE([STAT_STATFS3_OSF1], [1], - [Define if statfs takes 3 args. (DEC Alpha running OSF/1)]) - fi + [fu_cv_sys_stat_statfs3_osf1=yes], + [fu_cv_sys_stat_statfs3_osf1=no], + [fu_cv_sys_stat_statfs3_osf1=no])]) + AC_MSG_RESULT([$fu_cv_sys_stat_statfs3_osf1]) + if test $fu_cv_sys_stat_statfs3_osf1 = yes; then + ac_fsusage_space=yes + AC_DEFINE([STAT_STATFS3_OSF1], [1], + [ Define if statfs takes 3 args. (DEC Alpha running OSF/1)]) fi +fi - if test $ac_fsusage_space = no; then - # glibc/Linux, Mac OS X, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4. - # (glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, - # OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.) - # (On IRIX you need to include , not only and - # .) - # (On Solaris, statfs has 4 arguments.) - AC_CACHE_CHECK([for two-argument statfs with statfs.f_bsize member (AIX, 4.3BSD)], - [fu_cv_sys_stat_statfs2_bsize], - [AC_RUN_IFELSE([AC_LANG_SOURCE([[ +if test $ac_fsusage_space = no; then + # glibc/Linux, Mac OS X, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4. + # (glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0, + # OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.) + # (On IRIX you need to include , not only and + # .) + # (On Solaris, statfs has 4 arguments.) + AC_MSG_CHECKING([for two-argument statfs with statfs.f_bsize dnl +member (AIX, 4.3BSD)]) + AC_CACHE_VAL([fu_cv_sys_stat_statfs2_bsize], + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #ifdef HAVE_SYS_PARAM_H #include #endif @@ -186,56 +183,57 @@ int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1]; int main () { - struct statfs fsd; - fsd.f_bsize = 0; - return statfs (".", &fsd) != 0; + struct statfs fsd; + fsd.f_bsize = 0; + return statfs (".", &fsd) != 0; }]])], - [fu_cv_sys_stat_statfs2_bsize=yes], - [fu_cv_sys_stat_statfs2_bsize=no], - [fu_cv_sys_stat_statfs2_bsize=no]) - ]) - if test $fu_cv_sys_stat_statfs2_bsize = yes; then - ac_fsusage_space=yes - AC_DEFINE([STAT_STATFS2_BSIZE], [1], - [Define if statfs takes 2 args and struct statfs has a field named f_bsize. - (4.3BSD, SunOS 4, HP-UX)]) - fi + [fu_cv_sys_stat_statfs2_bsize=yes], + [fu_cv_sys_stat_statfs2_bsize=no], + [fu_cv_sys_stat_statfs2_bsize=no])]) + AC_MSG_RESULT([$fu_cv_sys_stat_statfs2_bsize]) + if test $fu_cv_sys_stat_statfs2_bsize = yes; then + ac_fsusage_space=yes + AC_DEFINE([STAT_STATFS2_BSIZE], [1], +[ Define if statfs takes 2 args and struct statfs has a field named f_bsize. + (4.3BSD, SunOS 4, HP-UX, AIX PS/2)]) fi +fi - if test $ac_fsusage_space = no; then - # SVR3 - # (Solaris already handled above.) - AC_CACHE_CHECK([for four-argument statfs (SVR3)], - [fu_cv_sys_stat_statfs4], - [AC_RUN_IFELSE([AC_LANG_SOURCE([[ +if test $ac_fsusage_space = no; then + # SVR3 + # (Solaris already handled above.) + AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) + AC_CACHE_VAL([fu_cv_sys_stat_statfs4], + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include int main () { - struct statfs fsd; - return statfs (".", &fsd, sizeof fsd, 0) != 0; + struct statfs fsd; + return statfs (".", &fsd, sizeof fsd, 0) != 0; }]])], - [fu_cv_sys_stat_statfs4=yes], - [fu_cv_sys_stat_statfs4=no], - [fu_cv_sys_stat_statfs4=no]) - ]) - if test $fu_cv_sys_stat_statfs4 = yes; then - ac_fsusage_space=yes - AC_DEFINE([STAT_STATFS4], [1], - [Define if statfs takes 4 args. (SVR3, old Irix)]) - fi + [fu_cv_sys_stat_statfs4=yes], + [fu_cv_sys_stat_statfs4=no], + [fu_cv_sys_stat_statfs4=no])]) + AC_MSG_RESULT([$fu_cv_sys_stat_statfs4]) + if test $fu_cv_sys_stat_statfs4 = yes; then + ac_fsusage_space=yes + AC_DEFINE([STAT_STATFS4], [1], + [ Define if statfs takes 4 args. (SVR3, Dynix, old Irix, old AIX, Dolphin)]) fi +fi - if test $ac_fsusage_space = no; then - # 4.4BSD and older NetBSD - # (OSF/1 already handled above.) - # (On AIX, you need to include , not only .) - # (On Solaris, statfs has 4 arguments and 'struct statfs' is not declared in - # .) - AC_CACHE_CHECK([for two-argument statfs with statfs.f_fsize member (4.4BSD and NetBSD)], - [fu_cv_sys_stat_statfs2_fsize], - [AC_RUN_IFELSE([AC_LANG_SOURCE([[ +if test $ac_fsusage_space = no; then + # 4.4BSD and older NetBSD + # (OSF/1 already handled above.) + # (On AIX, you need to include , not only .) + # (On Solaris, statfs has 4 arguments and 'struct statfs' is not declared in + # .) + AC_MSG_CHECKING([for two-argument statfs with statfs.f_fsize dnl +member (4.4BSD and NetBSD)]) + AC_CACHE_VAL([fu_cv_sys_stat_statfs2_fsize], + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #ifdef HAVE_SYS_PARAM_H #include @@ -246,23 +244,69 @@ int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1]; int main () { - struct statfs fsd; - fsd.f_fsize = 0; - return statfs (".", &fsd) != 0; + struct statfs fsd; + fsd.f_fsize = 0; + return statfs (".", &fsd) != 0; }]])], - [fu_cv_sys_stat_statfs2_fsize=yes], - [fu_cv_sys_stat_statfs2_fsize=no], - [fu_cv_sys_stat_statfs2_fsize=no]) - ]) - if test $fu_cv_sys_stat_statfs2_fsize = yes; then - ac_fsusage_space=yes - AC_DEFINE([STAT_STATFS2_FSIZE], [1], - [Define if statfs takes 2 args and struct statfs has a field named f_fsize. - (4.4BSD, NetBSD)]) - fi + [fu_cv_sys_stat_statfs2_fsize=yes], + [fu_cv_sys_stat_statfs2_fsize=no], + [fu_cv_sys_stat_statfs2_fsize=no])]) + AC_MSG_RESULT([$fu_cv_sys_stat_statfs2_fsize]) + if test $fu_cv_sys_stat_statfs2_fsize = yes; then + ac_fsusage_space=yes + AC_DEFINE([STAT_STATFS2_FSIZE], [1], +[ Define if statfs takes 2 args and struct statfs has a field named f_fsize. + (4.4BSD, NetBSD)]) fi +fi - AS_IF([test $ac_fsusage_space = yes], [$1], [$2]) +if test $ac_fsusage_space = no; then + # Ultrix + AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) + AC_CACHE_VAL([fu_cv_sys_stat_fs_data], + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_FS_TYPES_H +#include +#endif + int + main () + { + struct fs_data fsd; + /* Ultrix's statfs returns 1 for success, + 0 for not mounted, -1 for failure. */ + return statfs (".", &fsd) != 1; + }]])], + [fu_cv_sys_stat_fs_data=yes], + [fu_cv_sys_stat_fs_data=no], + [fu_cv_sys_stat_fs_data=no])]) + AC_MSG_RESULT([$fu_cv_sys_stat_fs_data]) + if test $fu_cv_sys_stat_fs_data = yes; then + ac_fsusage_space=yes + AC_DEFINE([STAT_STATFS2_FS_DATA], [1], +[ Define if statfs takes 2 args and the second argument has + type struct fs_data. (Ultrix)]) + fi +fi + +if test $ac_fsusage_space = no; then + # SVR2 + # (AIX, HP-UX, OSF/1 already handled above.) + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include + ]])], + [AC_DEFINE([STAT_READ_FILSYS], [1], + [Define if there is no specific function for reading file systems usage + information and you have the header file. (SVR2)]) + ac_fsusage_space=yes]) +fi + +AS_IF([test $ac_fsusage_space = yes], [$1], [$2]) ]) @@ -272,22 +316,18 @@ int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1]; # enable the work-around code in fsusage.c. AC_DEFUN([gl_STATFS_TRUNCATES], [ - AC_CACHE_CHECK([for statfs that truncates block counts], - [fu_cv_sys_truncating_statfs], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ + AC_MSG_CHECKING([for statfs that truncates block counts]) + AC_CACHE_VAL([fu_cv_sys_truncating_statfs], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #if !defined(sun) && !defined(__sun) choke -- this is a workaround for a Sun-specific problem #endif #include -#include - ]], - [[struct statfs t; long c = *(t.f_spare); - if (c) return 0; - ]])], - [fu_cv_sys_truncating_statfs=yes], - [fu_cv_sys_truncating_statfs=no]) - ]) +#include ]], + [[struct statfs t; long c = *(t.f_spare); + if (c) return 0;]])], + [fu_cv_sys_truncating_statfs=yes], + [fu_cv_sys_truncating_statfs=no])]) if test $fu_cv_sys_truncating_statfs = yes; then AC_DEFINE([STATFS_TRUNCATES_BLOCK_COUNTS], [1], [Define if the block counts reported by statfs may be truncated to 2GB @@ -295,12 +335,13 @@ choke -- this is a workaround for a Sun-specific problem (SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem. SunOS 4.1.1 seems not to be affected.)]) fi + AC_MSG_RESULT([$fu_cv_sys_truncating_statfs]) ]) # Prerequisites of lib/fsusage.c not done by gl_FILE_SYSTEM_USAGE. AC_DEFUN([gl_PREREQ_FSUSAGE_EXTRA], [ - AC_CHECK_HEADERS([sys/fs/s5param.h sys/statfs.h]) + AC_CHECK_HEADERS([dustat.h sys/fs/s5param.h sys/filsys.h sys/statfs.h]) gl_STATFS_TRUNCATES ]) diff --git a/gl/m4/ftell.m4 b/gl/m4/ftell.m4 deleted file mode 100644 index 79f1aaf..0000000 --- a/gl/m4/ftell.m4 +++ /dev/null @@ -1,15 +0,0 @@ -# ftell.m4 serial 3 -dnl Copyright (C) 2007, 2009-2023 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. - -AC_DEFUN([gl_FUNC_FTELL], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_FTELLO]) - dnl When ftello needs fixes, ftell needs them too. - if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then - REPLACE_FTELL=1 - fi -]) diff --git a/gl/m4/ftello.m4 b/gl/m4/ftello.m4 deleted file mode 100644 index 4901b16..0000000 --- a/gl/m4/ftello.m4 +++ /dev/null @@ -1,151 +0,0 @@ -# ftello.m4 serial 14 -dnl Copyright (C) 2007-2023 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. - -AC_DEFUN([gl_FUNC_FTELLO], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) - AC_REQUIRE([gl_SYS_TYPES_H]) - - dnl Persuade glibc to declare ftello(). - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - - AC_CHECK_DECLS_ONCE([ftello]) - if test $ac_cv_have_decl_ftello = no; then - HAVE_DECL_FTELLO=0 - fi - - AC_CACHE_CHECK([for ftello], [gl_cv_func_ftello], - [ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[ftello (stdin);]])], - [gl_cv_func_ftello=yes], - [gl_cv_func_ftello=no]) - ]) - if test $gl_cv_func_ftello = no; then - HAVE_FTELLO=0 - else - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_FTELLO=1 - fi - if test $gl_cv_var_stdin_large_offset = no; then - REPLACE_FTELLO=1 - fi - if test $REPLACE_FTELLO = 0; then - dnl Detect bug on Solaris. - dnl ftell and ftello produce incorrect results after putc that followed a - dnl getc call that reached EOF on Solaris. This is because the _IOREAD - dnl flag does not get cleared in this case, even though _IOWRT gets set, - dnl and ftell and ftello look whether the _IOREAD flag is set. - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CACHE_CHECK([whether ftello works], - [gl_cv_func_ftello_works], - [ - dnl Initial guess, used when cross-compiling or when /dev/tty cannot - dnl be opened. -changequote(,)dnl - case "$host_os" in - # Guess no on Solaris. - solaris*) gl_cv_func_ftello_works="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_ftello_works="guessing yes" ;; - # Guess yes otherwise. - *) gl_cv_func_ftello_works="guessing yes" ;; - esac -changequote([,])dnl - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -#define TESTFILE "conftest.tmp" -int -main (void) -{ - FILE *fp; - - /* Create a file with some contents. */ - fp = fopen (TESTFILE, "w"); - if (fp == NULL) - return 70; - if (fwrite ("foogarsh", 1, 8, fp) < 8) - { fclose (fp); return 71; } - if (fclose (fp)) - return 72; - - /* The file's contents is now "foogarsh". */ - - /* Try writing after reading to EOF. */ - fp = fopen (TESTFILE, "r+"); - if (fp == NULL) - return 73; - if (fseek (fp, -1, SEEK_END)) - { fclose (fp); return 74; } - if (!(getc (fp) == 'h')) - { fclose (fp); return 1; } - if (!(getc (fp) == EOF)) - { fclose (fp); return 2; } - if (!(ftell (fp) == 8)) - { fclose (fp); return 3; } - if (!(ftell (fp) == 8)) - { fclose (fp); return 4; } - if (!(putc ('!', fp) == '!')) - { fclose (fp); return 5; } - if (!(ftell (fp) == 9)) - { fclose (fp); return 6; } - if (!(fclose (fp) == 0)) - return 7; - fp = fopen (TESTFILE, "r"); - if (fp == NULL) - return 75; - { - char buf[10]; - if (!(fread (buf, 1, 10, fp) == 9)) - { fclose (fp); return 10; } - if (!(memcmp (buf, "foogarsh!", 9) == 0)) - { fclose (fp); return 11; } - } - if (!(fclose (fp) == 0)) - return 12; - - /* The file's contents is now "foogarsh!". */ - - return 0; -}]])], - [gl_cv_func_ftello_works=yes], - [gl_cv_func_ftello_works=no], [:]) - ]) - case "$gl_cv_func_ftello_works" in - *yes) ;; - *) - REPLACE_FTELLO=1 - AC_DEFINE([FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE], [1], - [Define to 1 if the system's ftello function has the Solaris bug.]) - ;; - esac - fi - if test $REPLACE_FTELLO = 0; then - dnl Detect bug on macOS >= 10.15. - gl_FUNC_UNGETC_WORKS - if test $gl_ftello_broken_after_ungetc = yes; then - REPLACE_FTELLO=1 - AC_DEFINE([FTELLO_BROKEN_AFTER_UNGETC], [1], - [Define to 1 if the system's ftello function has the macOS bug.]) - fi - fi - fi -]) - -# Prerequisites of lib/ftello.c. -AC_DEFUN([gl_PREREQ_FTELLO], -[ - dnl Native Windows has the function _ftelli64. mingw hides it, but mingw64 - dnl makes it usable again. - AC_CHECK_FUNCS([_ftelli64]) -]) diff --git a/gl/m4/getaddrinfo.m4 b/gl/m4/getaddrinfo.m4 index 15f09ff..1d631f8 100644 --- a/gl/m4/getaddrinfo.m4 +++ b/gl/m4/getaddrinfo.m4 @@ -1,13 +1,14 @@ -# getaddrinfo.m4 serial 34 -dnl Copyright (C) 2004-2023 Free Software Foundation, Inc. +# getaddrinfo.m4 serial 30 +dnl Copyright (C) 2004-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, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_GETADDRINFO], [ - AC_REQUIRE([gl_SYS_SOCKET_H])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H - AC_REQUIRE([gl_NETDB_H])dnl for HAVE_NETDB_H + AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H + AC_REQUIRE([gl_HEADER_NETDB])dnl for HAVE_NETDB_H + AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo]) GETADDRINFO_LIB= gai_saved_LIBS="$LIBS" @@ -54,40 +55,10 @@ AC_DEFUN([gl_GETADDRINFO], if test "$gl_cv_w32_getaddrinfo" = "yes"; then GETADDRINFO_LIB="-lws2_32" LIBS="$gai_saved_LIBS $GETADDRINFO_LIB" - dnl Check for correct signature, in particular for a cdecl-compatible - dnl calling convention. - AC_CACHE_CHECK([for getaddrinfo with POSIX signature], - [gl_cv_func_getaddrinfo_posix_signature], - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ -#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETDB_H -#include -#endif -#ifdef HAVE_WS2TCPIP_H -#include -#endif -#include -extern -#ifdef __cplusplus -"C" -#endif -int getaddrinfo (const char *, const char *, const struct addrinfo *, struct addrinfo **); -]])], - [gl_cv_func_getaddrinfo_posix_signature=yes], - [gl_cv_func_getaddrinfo_posix_signature=no]) - ]) - if test $gl_cv_func_getaddrinfo_posix_signature = no; then - REPLACE_GETADDRINFO=1 - fi else HAVE_GETADDRINFO=0 fi fi - AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO], [$HAVE_GETADDRINFO], - [Define to 1 if getaddrinfo exists, or to 0 otherwise.]) # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an # inline function declared in ws2tcpip.h, so we need to get that @@ -156,13 +127,13 @@ const char *gai_strerror(int);]])], # Prerequisites of lib/netdb.in.h and lib/getaddrinfo.c. AC_DEFUN([gl_PREREQ_GETADDRINFO], [ AC_REQUIRE([gl_NETDB_H_DEFAULTS]) - AC_REQUIRE([gl_SYS_SOCKET_H])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H + AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H AC_REQUIRE([gl_HOSTENT]) dnl for HOSTENT_LIB AC_REQUIRE([gl_SERVENT]) dnl for SERVENT_LIB AC_REQUIRE([gl_FUNC_INET_NTOP]) dnl for INET_NTOP_LIB AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_SOCKET_FAMILIES]) - AC_REQUIRE([gl_SYS_SOCKET_H]) + AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl Including sys/socket.h is wrong for Windows, but Windows does not diff --git a/gl/m4/getdelim.m4 b/gl/m4/getdelim.m4 deleted file mode 100644 index 9aaed20..0000000 --- a/gl/m4/getdelim.m4 +++ /dev/null @@ -1,111 +0,0 @@ -# getdelim.m4 serial 16 - -dnl Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc. -dnl -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. - -AC_PREREQ([2.59]) - -AC_DEFUN([gl_FUNC_GETDELIM], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) - - dnl Persuade glibc to declare getdelim(). - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - - AC_CHECK_DECLS_ONCE([getdelim]) - - AC_CHECK_FUNCS_ONCE([getdelim]) - if test $ac_cv_func_getdelim = yes; then - HAVE_GETDELIM=1 - dnl Found it in some library. Verify that it works. - AC_CACHE_CHECK([for working getdelim function], - [gl_cv_func_working_getdelim], - [case "$host_os" in - darwin*) - dnl On macOS 10.13, valgrind detected an out-of-bounds read during - dnl the GNU sed test suite: - dnl Invalid read of size 16 - dnl at 0x100EE6A05: _platform_memchr$VARIANT$Base (in /usr/lib/system/libsystem_platform.dylib) - dnl by 0x100B7B0BD: getdelim (in /usr/lib/system/libsystem_c.dylib) - dnl by 0x10000B0BE: ck_getdelim (utils.c:254) - gl_cv_func_working_getdelim=no ;; - *) - echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -# include -# include -# include - int main () - { - FILE *in = fopen ("./conftest.data", "r"); - if (!in) - return 1; - { - /* Test result for a NULL buffer and a zero size. - Based on a test program from Karl Heuer. */ - char *line = NULL; - size_t siz = 0; - int len = getdelim (&line, &siz, '\n', in); - if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) - { free (line); fclose (in); return 2; } - free (line); - } - { - /* Test result for a NULL buffer and a non-zero size. - This crashes on FreeBSD 8.0. */ - char *line = NULL; - size_t siz = (size_t)(~0) / 4; - if (getdelim (&line, &siz, '\n', in) == -1) - { fclose (in); return 3; } - free (line); - } - fclose (in); - return 0; - } - ]])], - [gl_cv_func_working_getdelim=yes], - [gl_cv_func_working_getdelim=no], - [dnl We're cross compiling. - dnl Guess it works on glibc2 systems and musl systems. - AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ >= 2) && !defined __UCLIBC__ - Lucky GNU user - #endif -#endif - ], - [gl_cv_func_working_getdelim="guessing yes"], - [case "$host_os" in - *-musl*) gl_cv_func_working_getdelim="guessing yes" ;; - *) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;; - esac - ]) - ]) - ;; - esac - ]) - case "$gl_cv_func_working_getdelim" in - *yes) ;; - *) REPLACE_GETDELIM=1 ;; - esac - else - HAVE_GETDELIM=0 - fi - - if test $ac_cv_have_decl_getdelim = no; then - HAVE_DECL_GETDELIM=0 - fi -]) - -# Prerequisites of lib/getdelim.c. -AC_DEFUN([gl_PREREQ_GETDELIM], -[ - AC_CHECK_FUNCS([flockfile funlockfile]) - AC_CHECK_DECLS([getc_unlocked]) -]) diff --git a/gl/m4/getdtablesize.m4 b/gl/m4/getdtablesize.m4 deleted file mode 100644 index 8bcda90..0000000 --- a/gl/m4/getdtablesize.m4 +++ /dev/null @@ -1,63 +0,0 @@ -# getdtablesize.m4 serial 8 -dnl Copyright (C) 2008-2023 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. - -AC_DEFUN([gl_FUNC_GETDTABLESIZE], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CHECK_FUNCS_ONCE([getdtablesize]) - AC_CHECK_DECLS_ONCE([getdtablesize]) - if test $ac_cv_func_getdtablesize = yes && - test $ac_cv_have_decl_getdtablesize = yes; then - AC_CACHE_CHECK([whether getdtablesize works], - [gl_cv_func_getdtablesize_works], - [dnl There are two concepts: the "maximum possible file descriptor value + 1" - dnl and the "maximum number of open file descriptors in a process". - dnl Per SUSv2 and POSIX, getdtablesize() should return the first one. - dnl On most platforms, the first and the second concept are the same. - dnl On OpenVMS, however, they are different and getdtablesize() returns - dnl the second one; thus the test below fails. But we don't care - dnl because there's no good way to write a replacement getdtablesize(). - case "$host_os" in - vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; - *) - dnl Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft - dnl limit up to an unchangeable hard limit; all other platforms - dnl correctly require setrlimit before getdtablesize() can report - dnl a larger value. - AC_RUN_IFELSE([ - AC_LANG_PROGRAM( - [[#include ] - GL_MDA_DEFINES - ], - [[int size = getdtablesize(); - if (dup2 (0, getdtablesize()) != -1) - return 1; - if (size != getdtablesize()) - return 2; - ]])], - [gl_cv_func_getdtablesize_works=yes], - [gl_cv_func_getdtablesize_works=no], - [case "$host_os" in - cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows - gl_cv_func_getdtablesize_works="guessing no" ;; - *) gl_cv_func_getdtablesize_works="guessing yes" ;; - esac - ]) - ;; - esac - ]) - case "$gl_cv_func_getdtablesize_works" in - *yes | "no (limitation)") ;; - *) REPLACE_GETDTABLESIZE=1 ;; - esac - else - HAVE_GETDTABLESIZE=0 - fi -]) - -# Prerequisites of lib/getdtablesize.c. -AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) diff --git a/gl/m4/gethostname.m4 b/gl/m4/gethostname.m4 index 63f5f63..7413f9e 100644 --- a/gl/m4/gethostname.m4 +++ b/gl/m4/gethostname.m4 @@ -1,5 +1,5 @@ -# gethostname.m4 serial 15 -dnl Copyright (C) 2002, 2008-2023 Free Software Foundation, Inc. +# gethostname.m4 serial 13 +dnl Copyright (C) 2002, 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -48,7 +48,7 @@ AC_DEFUN([gl_PREREQ_HOST_NAME_MAX], [ dnl - On most Unix systems, use MAXHOSTNAMELEN from instead. dnl - On Solaris, Cygwin, BeOS, use MAXHOSTNAMELEN from instead. dnl - On mingw, use 256, because - dnl says: + dnl says: dnl "if a buffer of 256 bytes is passed in the name parameter and dnl the namelen parameter is set to 256, the buffer size will always dnl be adequate." @@ -74,7 +74,7 @@ lucky dnl mingw. gl_cv_decl_HOST_NAME_MAX=256 else - AC_COMPUTE_INT([gl_cv_decl_HOST_NAME_MAX], [MAXHOSTNAMELEN], [ + _AC_COMPUTE_INT([MAXHOSTNAMELEN], [gl_cv_decl_HOST_NAME_MAX], [ #include #if HAVE_SYS_PARAM_H # include diff --git a/gl/m4/getline.m4 b/gl/m4/getline.m4 deleted file mode 100644 index 03569f0..0000000 --- a/gl/m4/getline.m4 +++ /dev/null @@ -1,109 +0,0 @@ -# getline.m4 serial 30 - -dnl Copyright (C) 1998-2003, 2005-2007, 2009-2023 Free Software Foundation, -dnl Inc. -dnl -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. - -AC_PREREQ([2.59]) - -dnl See if there's a working, system-supplied version of the getline function. -dnl We can't just do AC_REPLACE_FUNCS([getline]) because some systems -dnl have a function by that name in -linet that doesn't have anything -dnl to do with the function we need. -AC_DEFUN([gl_FUNC_GETLINE], -[ - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - dnl Persuade glibc to declare getline(). - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - - AC_CHECK_DECLS_ONCE([getline]) - - gl_getline_needs_run_time_check=no - AC_CHECK_FUNC([getline], - [dnl Found it in some library. Verify that it works. - gl_getline_needs_run_time_check=yes], - [am_cv_func_working_getline=no]) - if test $gl_getline_needs_run_time_check = yes; then - AC_CACHE_CHECK([for working getline function], - [am_cv_func_working_getline], - [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -# include -# include -# include - int main () - { - FILE *in = fopen ("./conftest.data", "r"); - if (!in) - return 1; - { - /* Test result for a NULL buffer and a zero size. - Based on a test program from Karl Heuer. */ - char *line = NULL; - size_t siz = 0; - int len = getline (&line, &siz, in); - if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) - { free (line); fclose (in); return 2; } - free (line); - } - { - /* Test result for a NULL buffer and a non-zero size. - This crashes on FreeBSD 8.0. */ - char *line = NULL; - size_t siz = (size_t)(~0) / 4; - if (getline (&line, &siz, in) == -1) - { fclose (in); return 3; } - free (line); - } - fclose (in); - return 0; - } - ]])], - [am_cv_func_working_getline=yes], - [am_cv_func_working_getline=no], - [dnl We're cross compiling. - dnl Guess it works on glibc2 systems and musl systems. - AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ >= 2) && !defined __UCLIBC__ - Lucky GNU user - #endif -#endif - ], - [am_cv_func_working_getline="guessing yes"], - [case "$host_os" in - *-musl*) am_cv_func_working_getline="guessing yes" ;; - *) am_cv_func_working_getline="$gl_cross_guess_normal" ;; - esac - ]) - ]) - ]) - fi - - if test $ac_cv_have_decl_getline = no; then - HAVE_DECL_GETLINE=0 - fi - - case "$am_cv_func_working_getline" in - *yes) ;; - *) - dnl Set REPLACE_GETLINE always: Even if we have not found the broken - dnl getline function among $LIBS, it may exist in libinet and the - dnl executable may be linked with -linet. - REPLACE_GETLINE=1 - ;; - esac -]) - -# Prerequisites of lib/getline.c. -AC_DEFUN([gl_PREREQ_GETLINE], -[ - : -]) diff --git a/gl/m4/getloadavg.m4 b/gl/m4/getloadavg.m4 index 79e420b..611372a 100644 --- a/gl/m4/getloadavg.m4 +++ b/gl/m4/getloadavg.m4 @@ -1,13 +1,13 @@ # Check for getloadavg. -# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2023 Free Software +# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2013 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 10 +#serial 6 # Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent. # New applications should use gl_GETLOADAVG instead. @@ -22,7 +22,7 @@ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) gl_save_LIBS=$LIBS -# getloadavg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0, +# getloadvg is present in libc on glibc >= 2.2, Mac OS X, FreeBSD >= 2.0, # NetBSD >= 0.9, OpenBSD >= 2.0, Solaris >= 7. HAVE_GETLOADAVG=1 AC_CHECK_FUNC([getloadavg], [], @@ -45,9 +45,7 @@ AC_CHECK_FUNC([getloadavg], [], # There is a commonly available library for RS/6000 AIX. # Since it is not a standard part of AIX, it might be installed locally. gl_getloadavg_LIBS=$LIBS - if test $cross_compiling != yes; then - LIBS="-L/usr/local/lib $LIBS" - fi + LIBS="-L/usr/local/lib $LIBS" AC_CHECK_LIB([getloadavg], [getloadavg], [LIBS="-lgetloadavg $LIBS" gl_func_getloadavg_done=yes], [LIBS=$gl_getloadavg_LIBS]) @@ -94,9 +92,6 @@ else fi AC_CHECK_DECL([getloadavg], [], [HAVE_DECL_GETLOADAVG=0], [[#if HAVE_SYS_LOADAVG_H - /* OpenIndiana has a bug: must be included before - . */ - # include # include #endif #include ]]) @@ -110,7 +105,7 @@ AC_DEFUN([gl_PREREQ_GETLOADAVG], [ # Figure out what our getloadavg.c needs. -AC_CHECK_HEADERS_ONCE([sys/param.h unistd.h]) +AC_CHECK_HEADERS_ONCE([sys/param.h]) # On HPUX9, an unprivileged user can get load averages this way. if test $gl_func_getloadavg_done = no; then @@ -147,7 +142,7 @@ fi AC_CHECK_HEADERS([nlist.h], [AC_CHECK_MEMBERS([struct nlist.n_un.n_name], [], [], - [#include ]) + [@%:@include ]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct nlist x; #ifdef HAVE_STRUCT_NLIST_N_UN_N_NAME diff --git a/gl/m4/getopt.m4 b/gl/m4/getopt.m4 index 7981a09..50f4509 100644 --- a/gl/m4/getopt.m4 +++ b/gl/m4/getopt.m4 @@ -1,5 +1,5 @@ -# getopt.m4 serial 48 -dnl Copyright (C) 2002-2006, 2008-2023 Free Software Foundation, Inc. +# getopt.m4 serial 44 +dnl Copyright (C) 2002-2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -21,8 +21,6 @@ AC_DEFUN([gl_FUNC_GETOPT_POSIX], REPLACE_GETOPT=1 fi ]) - GL_GENERATE_GETOPT_H=false - GL_GENERATE_GETOPT_CDEFS_H=false if test $REPLACE_GETOPT = 1; then dnl Arrange for getopt.h to be created. gl_GETOPT_SUBSTITUTE_HEADER @@ -34,16 +32,9 @@ AC_DEFUN([gl_FUNC_GETOPT_POSIX], # getopt_long_only. AC_DEFUN([gl_FUNC_GETOPT_GNU], [ - dnl Set the variable gl_getopt_required, so that all invocations of - dnl gl_GETOPT_CHECK_HEADERS in the scope of the current configure file - dnl will check for getopt with GNU extensions. - dnl This means that if one gnulib-tool invocation requests getopt-posix - dnl and another gnulib-tool invocation requests getopt-gnu, it is as if - dnl both had requested getopt-gnu. m4_divert_text([INIT_PREPARE], [gl_getopt_required=GNU]) - dnl No need to invoke gl_FUNC_GETOPT_POSIX here; this is automatically - dnl done through the module dependency getopt-gnu -> getopt-posix. + AC_REQUIRE([gl_FUNC_GETOPT_POSIX]) ]) # Determine whether to replace the entire getopt facility. @@ -304,10 +295,8 @@ dnl is ambiguous with environment values that contain newlines. ]])], [gl_cv_func_getopt_gnu=yes], [gl_cv_func_getopt_gnu=no], - [dnl Cross compiling. - dnl Assume the worst, even on glibc platforms. - dnl But obey --enable-cross-guesses. - gl_cv_func_getopt_gnu="$gl_cross_guess_normal" + [dnl Cross compiling. Assume the worst, even on glibc platforms. + gl_cv_func_getopt_gnu="guessing no" ]) case $gl_had_POSIXLY_CORRECT in exported) ;; @@ -365,17 +354,15 @@ dnl is ambiguous with environment values that contain newlines. AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], [ - AC_CHECK_HEADERS_ONCE([sys/cdefs.h]) - if test $ac_cv_header_sys_cdefs_h = yes; then - HAVE_SYS_CDEFS_H=1 - else - HAVE_SYS_CDEFS_H=0 - fi - AC_SUBST([HAVE_SYS_CDEFS_H]) - + GETOPT_H=getopt.h AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], [Define to rpl_ if the getopt replacement functions and variables should be used.]) - GL_GENERATE_GETOPT_H=true - GL_GENERATE_GETOPT_CDEFS_H=true + AC_SUBST([GETOPT_H]) +]) + +# Prerequisites of lib/getopt*. +AC_DEFUN([gl_PREREQ_GETOPT], +[ + AC_CHECK_DECLS_ONCE([getenv]) ]) diff --git a/gl/m4/getprogname.m4 b/gl/m4/getprogname.m4 deleted file mode 100644 index b67c527..0000000 --- a/gl/m4/getprogname.m4 +++ /dev/null @@ -1,43 +0,0 @@ -# getprogname.m4 - check for getprogname or replacements for it - -# Copyright (C) 2016-2023 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -AC_DEFUN([gl_FUNC_GETPROGNAME], -[ - AC_CHECK_FUNCS_ONCE([getprogname getexecname]) - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - ac_found=0 - AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [], - [#include ]) - AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [], - [#include ]) - AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include ]) - - # Incur the cost of this test only if none of the above worked. - if test $ac_found = 0; then - # On OpenBSD 5.1, using the global __progname variable appears to be - # the only way to implement getprogname. - AC_CACHE_CHECK([whether __progname is defined in default libraries], - [gl_cv_var___progname], - [ - gl_cv_var___progname= - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[extern char *__progname;]], - [[return *__progname;]] - )], - [gl_cv_var___progname=yes] - ) - ] - ) - if test "$gl_cv_var___progname" = yes; then - AC_DEFINE([HAVE_VAR___PROGNAME], 1, - [Define if you have a global __progname variable]) - fi - fi -]) diff --git a/gl/m4/gettext.m4 b/gl/m4/gettext.m4 new file mode 100644 index 0000000..8d1f066 --- /dev/null +++ b/gl/m4/gettext.m4 @@ -0,0 +1,401 @@ +# gettext.m4 serial 66 (gettext-0.18.2) +dnl Copyright (C) 1995-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, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], + [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ]])], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST([BUILD_INCLUDED_LIBINTL]) + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST([DATADIRNAME]) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST([INSTOBJEXT]) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST([GENCAT]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST([INTLOBJS]) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/gl/m4/gl-openssl.m4 b/gl/m4/gl-openssl.m4 deleted file mode 100644 index 7eab4e1..0000000 --- a/gl/m4/gl-openssl.m4 +++ /dev/null @@ -1,76 +0,0 @@ -# gl-openssl.m4 serial 6 -dnl Copyright (C) 2013-2023 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. - -AC_DEFUN([gl_SET_CRYPTO_CHECK_DEFAULT], -[ - m4_define([gl_CRYPTO_CHECK_DEFAULT], [$1]) -]) -gl_SET_CRYPTO_CHECK_DEFAULT([no]) - -AC_DEFUN([gl_CRYPTO_CHECK], -[ - dnl gnulib users set this before gl_INIT with gl_SET_CRYPTO_CHECK_DEFAULT() - m4_divert_once([DEFAULTS], [with_openssl_default='gl_CRYPTO_CHECK_DEFAULT']) - - dnl Only clear once, so crypto routines can be checked for individually - m4_divert_once([DEFAULTS], [LIB_CRYPTO=]) - - AC_ARG_WITH([openssl], - [[ --with-openssl[=ARG] use libcrypto hash routines for the hash functions - MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512. - Valid ARGs are: - 'yes', - 'no', - 'auto' => use if any version available, - 'auto-gpl-compat' => use if GPL compatible version - available, - 'optional' => use if available - and warn if not available; - Default is ']gl_CRYPTO_CHECK_DEFAULT['.]m4_ifdef([gl_AF_ALG], [ - Note also --with-linux-crypto, which will enable the - use of Linux kernel crypto routines (if available), - which has precedence for files.])], - [], - [with_openssl=$with_openssl_default]) - - AC_SUBST([LIB_CRYPTO]) - if test "x$with_openssl" != xno; then - if test "x$with_openssl" = xauto-gpl-compat; then - AC_CACHE_CHECK([whether openssl is GPL compatible], - [gl_cv_openssl_gpl_compat], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ - #include - #if OPENSSL_VERSION_MAJOR < 3 - #error "openssl >= version 3 not found" - #endif - ]])], - [gl_cv_openssl_gpl_compat=yes], - [gl_cv_openssl_gpl_compat=no])]) - fi - if test "x$with_openssl" != xauto-gpl-compat || - test "x$gl_cv_openssl_gpl_compat" = xyes; then - AC_CHECK_LIB([crypto], [$1], - [AC_CHECK_HEADERS( - m4_if([$1], [MD5], [openssl/md5.h], [openssl/sha.h]), - [LIB_CRYPTO=-lcrypto - AC_DEFINE([HAVE_OPENSSL_$1], [1], - [Define to 1 if libcrypto is used for $1.])])]) - fi - if test "x$LIB_CRYPTO" = x; then - message='openssl development library not found for $1. - If you want to install it, first find the pre-built package name: - - On Debian and Debian-based systems: libssl-dev, - - On Red Hat distributions: openssl-devel. - - Other: https://repology.org/project/openssl/versions' - if test "x$with_openssl" = xyes; then - AC_MSG_ERROR([$message]) - elif test "x$with_openssl" = xoptional; then - AC_MSG_WARN([$message]) - fi - fi - fi -]) diff --git a/gl/m4/glibc21.m4 b/gl/m4/glibc21.m4 new file mode 100644 index 0000000..613fb2a --- /dev/null +++ b/gl/m4/glibc21.m4 @@ -0,0 +1,34 @@ +# glibc21.m4 serial 5 +dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 Free Software Foundation, +dnl 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. + +# Test for the GNU C Library, version 2.1 or newer, or uClibc. +# From Bruno Haible. + +AC_DEFUN([gl_GLIBC21], + [ + AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc], + [ac_cv_gnu_library_2_1], + [AC_EGREP_CPP([Lucky], + [ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif +#ifdef __UCLIBC__ + Lucky user +#endif + ], + [ac_cv_gnu_library_2_1=yes], + [ac_cv_gnu_library_2_1=no]) + ] + ) + AC_SUBST([GLIBC21]) + GLIBC21="$ac_cv_gnu_library_2_1" + ] +) diff --git a/gl/m4/gnulib-cache.m4 b/gl/m4/gnulib-cache.m4 index 267f069..90ad4aa 100644 --- a/gl/m4/gnulib-cache.m4 +++ b/gl/m4/gnulib-cache.m4 @@ -1,8 +1,8 @@ -# Copyright (C) 2002-2023 Free Software Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, @@ -11,7 +11,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -27,45 +27,13 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import \ -# --lib=libgnu \ -# --source-base=gl \ -# --m4-base=gl/m4 \ -# --doc-base=doc \ -# --tests-base=tests \ -# --aux-dir=build-aux \ -# --no-conditional-dependencies \ -# --no-libtool \ -# --macro-prefix=gl \ -# --no-vc-files \ -# base64 \ -# crypto/sha256 \ -# dirname \ -# environ \ -# floorf \ -# fsusage \ -# getaddrinfo \ -# gethostname \ -# getloadavg \ -# getopt-gnu \ -# gettext-h \ -# idpriv-droptemp \ -# mountlist \ -# regex \ -# setenv \ -# strcase \ -# strcasestr \ -# strsep \ -# timegm \ -# unsetenv \ -# vasprintf \ -# vsnprintf +# gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname environ floorf fsusage getaddrinfo gethostname getloadavg getopt-gnu gettext idpriv-droptemp mountlist regex setenv strcase strcasestr strsep timegm unsetenv vasprintf vsnprintf # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ base64 - crypto/sha256 + crypto/sha1 dirname environ floorf @@ -74,7 +42,7 @@ gl_MODULES([ gethostname getloadavg getopt-gnu - gettext-h + gettext idpriv-droptemp mountlist regex diff --git a/gl/m4/gnulib-common.m4 b/gl/m4/gnulib-common.m4 index facc340..0ae5a9e 100644 --- a/gl/m4/gnulib-common.m4 +++ b/gl/m4/gnulib-common.m4 @@ -1,59 +1,25 @@ -# gnulib-common.m4 serial 75a -dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. +# gnulib-common.m4 serial 33 +dnl Copyright (C) 2007-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, dnl with or without modifications, as long as this notice is preserved. -AC_PREREQ([2.62]) - # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ dnl Use AC_REQUIRE here, so that the code is expanded once only. AC_REQUIRE([gl_00GNULIB]) AC_REQUIRE([gl_COMMON_BODY]) - AC_REQUIRE([gl_ZZGNULIB]) ]) AC_DEFUN([gl_COMMON_BODY], [ - AH_VERBATIM([_GL_GNUC_PREREQ], -[/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ -#if defined __GNUC__ && defined __GNUC_MINOR__ -# define _GL_GNUC_PREREQ(major, minor) \ - ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) -#else -# define _GL_GNUC_PREREQ(major, minor) 0 -#endif -]) AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif (defined __clang__ && __clang_major__ < 16 \ - && defined _GL_WORK_AROUND_LLVM_BUG_59792) - /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around - that rare LLVM bug, though you may get many false-alarm warnings. */ -# define _Noreturn -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (_GL_GNUC_PREREQ (4, 7) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C +#if ! (defined _Noreturn \ + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) +# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ + || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) +# elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn @@ -70,519 +36,33 @@ AC_DEFUN([gl_COMMON_BODY], [ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif]) - AH_VERBATIM([attribute], -[/* Attributes. */ -#if (defined __has_attribute \ - && (!defined __clang_minor__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))) -# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) + AH_VERBATIM([unused_parameter], +[/* Define as a marker that can be attached to declarations that might not + be used. This helps to reduce warnings, such as from + GCC -Wunused-parameter. */ +#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_UNUSED __attribute__ ((__unused__)) #else -# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr -# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) -# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) -# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_diagnose_if 0 -# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) -# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) -# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) -# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) -# ifdef _ICC -# define _GL_ATTR_may_alias 0 -# else -# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) -# endif -# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) -# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) -# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) -# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) -# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) +# define _GL_UNUSED +#endif +/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name + is a misnomer outside of parameter lists. */ +#define _UNUSED_PARAMETER_ _GL_UNUSED + +/* The __pure__ attribute was added in gcc 2.96. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ #endif -/* Disable GCC -Wpedantic if using __has_c_attribute and this is not C23+. */ -#if (defined __has_c_attribute && _GL_GNUC_PREREQ (4, 6) \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710) -# pragma GCC diagnostic ignored "-Wpedantic" -#endif - -]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's alignas instead. -[ -/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function - is the size of the returned memory block. - _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied - by the Nth argument of the function is the size of the returned memory block. - */ -/* Applies to: function, pointer to function, function types. */ -#ifndef _GL_ATTRIBUTE_ALLOC_SIZE -# if _GL_HAS_ATTRIBUTE (alloc_size) -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) -# else -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) -# endif -#endif - -/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the - function and report an error if it cannot do so. */ -/* Applies to: function. */ -#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE -# if _GL_HAS_ATTRIBUTE (always_inline) -# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) -# else -# define _GL_ATTRIBUTE_ALWAYS_INLINE -# endif -#endif - -/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show - in stack traces when debugging. The compiler should omit the function from - stack traces. */ -/* Applies to: function. */ -#ifndef _GL_ATTRIBUTE_ARTIFICIAL -# if _GL_HAS_ATTRIBUTE (artificial) -# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) -# else -# define _GL_ATTRIBUTE_ARTIFICIAL -# endif -#endif - -/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ -/* Applies to: functions. */ -/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at - . - Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ -#ifndef _GL_ATTRIBUTE_COLD -# if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ -# ifndef __SUNPRO_C -# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) -# else -# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) -# endif -# else -# define _GL_ATTRIBUTE_COLD -# endif -#endif - -/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate - calls to the function with the same arguments. - This attribute is safe for a function that neither depends on nor affects - observable state, and always returns exactly once - e.g., does not loop - forever, and does not call longjmp. - (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_CONST -# if _GL_HAS_ATTRIBUTE (const) -# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -# else -# define _GL_ATTRIBUTE_CONST -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. - _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if _GL_GNUC_PREREQ (11, 0) -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif -/* If gnulib's or has already defined this macro, continue - to use this earlier definition, since may not have been included - yet. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug */ -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) -# else -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC (free, 1) -# endif -#endif - -/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. - The compiler may warn if the entity is used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: namespace, class, template specialization. */ -#ifndef _GL_ATTRIBUTE_DEPRECATED -# ifdef __has_c_attribute -# if __has_c_attribute (__deprecated__) -# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] -# endif -# endif -# if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated) -# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) -# endif -# ifndef _GL_ATTRIBUTE_DEPRECATED -# define _GL_ATTRIBUTE_DEPRECATED -# endif -#endif - -/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and - the function call is not optimized away. - _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and - the function call is not optimized away. */ -/* Applies to: functions. */ -#if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING) -# if _GL_HAS_ATTRIBUTE (error) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) -# elif _GL_HAS_ATTRIBUTE (diagnose_if) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# else -# define _GL_ATTRIBUTE_ERROR(msg) -# define _GL_ATTRIBUTE_WARNING(msg) -# endif -#endif - -/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain - visible to debuggers etc., even with '-fwhole-program'. */ -/* Applies to: functions, variables. */ -#ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE -# if _GL_HAS_ATTRIBUTE (externally_visible) -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) -# else -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE -# endif -#endif - -/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if - the control flow falls through to the immediately following 'case' or - 'default' label. The compiler should not warn in this case. */ -/* Applies to: Empty statement (;), inside a 'switch' statement. */ -/* Always expands to something. */ -#ifndef _GL_ATTRIBUTE_FALLTHROUGH -# ifdef __has_c_attribute -# if __has_c_attribute (__fallthrough__) -# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] -# endif -# endif -# if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough) -# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) -# endif -# ifndef _GL_ATTRIBUTE_FALLTHROUGH -# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) -# endif -#endif - -/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - declares that the STRING-INDEXth function argument is a format string of - style ARCHETYPE, which is one of: - printf, gnu_printf - scanf, gnu_scanf, - strftime, gnu_strftime, - strfmon, - or the same thing prefixed and suffixed with '__'. - If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK - are suitable for the format string. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_FORMAT -# if _GL_HAS_ATTRIBUTE (format) -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -# else -# define _GL_ATTRIBUTE_FORMAT(spec) -# endif -#endif - -/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other - compilation unit, it executes code from that unit only by return or by - exception handling. This declaration lets the compiler optimize that unit - more aggressively. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_LEAF -# if _GL_HAS_ATTRIBUTE (leaf) -# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) -# else -# define _GL_ATTRIBUTE_LEAF -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if _GL_HAS_ATTRIBUTE (malloc) -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the - same storage as pointers to other types. Thus this declaration disables - strict aliasing optimization. */ -/* Applies to: types. */ -/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ -#ifndef _GL_ATTRIBUTE_MAY_ALIAS -# if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C -# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) -# else -# define _GL_ATTRIBUTE_MAY_ALIAS -# endif -#endif - -/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if - the entity is not used. The compiler should not warn if the entity is not - used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: class. */ -/* In C++ and C23, this is spelled [[__maybe_unused__]]. - GCC's syntax is __attribute__ ((__unused__)). - clang supports both syntaxes. */ -#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED -# ifdef __has_c_attribute -# if __has_c_attribute (__maybe_unused__) -# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] -# endif -# endif -# ifndef _GL_ATTRIBUTE_MAYBE_UNUSED -# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED -# endif -#endif -/* Alternative spelling of this macro, for convenience and for - compatibility with glibc/include/libc-symbols.h. */ -#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED -/* Earlier spellings of this macro. */ -#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED - -/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not - discard the return value. The compiler may warn if the caller does not use - the return value, unless the caller uses something like ignore_value. */ -/* Applies to: function, enumeration, class. */ -#ifndef _GL_ATTRIBUTE_NODISCARD -# ifdef __has_c_attribute -# if __has_c_attribute (__nodiscard__) -# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] -# endif -# endif -# if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result) -# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) -# endif -# ifndef _GL_ATTRIBUTE_NODISCARD -# define _GL_ATTRIBUTE_NODISCARD -# endif -#endif - -/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the - function. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NOINLINE -# if _GL_HAS_ATTRIBUTE (noinline) -# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) -# else -# define _GL_ATTRIBUTE_NOINLINE -# endif -#endif - -/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... - must not be NULL. - _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be - null. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NONNULL -# if _GL_HAS_ATTRIBUTE (nonnull) -# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) -# else -# define _GL_ATTRIBUTE_NONNULL(args) -# endif -#endif - -/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is - not meant to be NUL-terminated. */ -/* Applies to: struct/union members and variables that are arrays of element - type '[[un]signed] char'. */ -#ifndef _GL_ATTRIBUTE_NONSTRING -# if _GL_HAS_ATTRIBUTE (nonstring) -# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) -# else -# define _GL_ATTRIBUTE_NONSTRING -# endif -#endif - -/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -#endif - -/* _GL_ATTRIBUTE_PACKED declares: - For struct members: The member has the smallest possible alignment. - For struct, union, class: All members have the smallest possible alignment, - minimizing the memory required. */ -/* Applies to: struct members, struct, union, - in C++ also: class. */ -#ifndef _GL_ATTRIBUTE_PACKED -# if _GL_HAS_ATTRIBUTE (packed) -# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) -# else -# define _GL_ATTRIBUTE_PACKED -# endif -#endif - -/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate - calls to the function with the same arguments if observable state is not - changed between calls. - This attribute is safe for a function that does not affect - observable state, and always returns exactly once. - (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_PURE -# if _GL_HAS_ATTRIBUTE (pure) -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE -# endif -#endif - -/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is - a non-NULL pointer. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_RETURNS_NONNULL -# if _GL_HAS_ATTRIBUTE (returns_nonnull) -# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) -# else -# define _GL_ATTRIBUTE_RETURNS_NONNULL -# endif -#endif - -/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a - trailing NULL argument. - _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). - _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_SENTINEL -# if _GL_HAS_ATTRIBUTE (sentinel) -# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) -# else -# define _GL_ATTRIBUTE_SENTINEL(pos) -# endif -#endif - -/* A helper macro. Don't use it directly. */ -#ifndef _GL_ATTRIBUTE_UNUSED -# if _GL_HAS_ATTRIBUTE (unused) -# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define _GL_ATTRIBUTE_UNUSED -# endif -#endif - -]dnl There is no _GL_ATTRIBUTE_VISIBILITY; see m4/visibility.m4 instead. -[ -/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the - immediately preceding label is not used. The compiler should not warn - if the label is not used. */ -/* Applies to: label (both in C and C++). */ -/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' - syntax. But clang does. */ -#ifndef _GL_UNUSED_LABEL -# if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ -# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED -# else -# define _GL_UNUSED_LABEL -# endif +/* The __const__ attribute was added in gcc 2.95. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) +#else +# define _GL_ATTRIBUTE_CONST /* empty */ #endif ]) - AH_VERBATIM([async_safe], -[/* The _GL_ASYNC_SAFE marker should be attached to functions that are - signal handlers (for signals other than SIGABRT, SIGPIPE) or can be - invoked from such signal handlers. Such functions have some restrictions: - * All functions that it calls should be marked _GL_ASYNC_SAFE as well, - or should be listed as async-signal-safe in POSIX - - section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in - particular, are NOT async-signal-safe. - * All memory locations (variables and struct fields) that these functions - access must be marked 'volatile'. This holds for both read and write - accesses. Otherwise the compiler might optimize away stores to and - reads from such locations that occur in the program, depending on its - data flow analysis. For example, when the program contains a loop - that is intended to inspect a variable set from within a signal handler - while (!signal_occurred) - ; - the compiler is allowed to transform this into an endless loop if the - variable 'signal_occurred' is not declared 'volatile'. - Additionally, recall that: - * A signal handler should not modify errno (except if it is a handler - for a fatal signal and ends by raising the same signal again, thus - provoking the termination of the process). If it invokes a function - that may clobber errno, it needs to save and restore the value of - errno. */ -#define _GL_ASYNC_SAFE -]) - AH_VERBATIM([micro_optimizations], -[/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where - n1 and n2 are expressions without side effects, that evaluate to real - numbers (excluding NaN). - It returns - 1 if n1 > n2 - 0 if n1 == n2 - -1 if n1 < n2 - The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional - jump with nearly all GCC versions up to GCC 10. - This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many - GCC versions up to GCC 9. - The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 - avoids conditional jumps in all GCC versions >= 3.4. */ -#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) -]) - dnl Hint which direction to take regarding cross-compilation guesses: - dnl When a user installs a program on a platform they are not intimately - dnl familiar with, --enable-cross-guesses=conservative is the appropriate - dnl choice. It implements the "If we don't know, assume the worst" principle. - dnl However, when an operating system developer (on a platform which is not - dnl yet known to gnulib) builds packages for their platform, they want to - dnl expose, not hide, possible platform bugs; in this case, - dnl --enable-cross-guesses=risky is the appropriate choice. - dnl Sets the variables - dnl gl_cross_guess_normal (to be used when 'yes' is good and 'no' is bad), - dnl gl_cross_guess_inverted (to be used when 'no' is good and 'yes' is bad). - AC_ARG_ENABLE([cross-guesses], - [AS_HELP_STRING([--enable-cross-guesses={conservative|risky}], - [specify policy for cross-compilation guesses])], - [if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then - AC_MSG_WARN([invalid argument supplied to --enable-cross-guesses]) - enableval=conservative - fi - gl_cross_guesses="$enableval"], - [gl_cross_guesses=conservative]) - if test $gl_cross_guesses = risky; then - gl_cross_guess_normal="guessing yes" - gl_cross_guess_inverted="guessing no" - else - gl_cross_guess_normal="guessing no" - gl_cross_guess_inverted="guessing yes" - fi dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics @@ -591,16 +71,6 @@ AC_DEFUN([gl_COMMON_BODY], [ export LIBC_FATAL_STDERR_ ]) -# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename]) -# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename], [initialvalue]) -# initializes the shell variable that indicates the presence of the given module -# as a C preprocessor expression. -AC_DEFUN([gl_MODULE_INDICATOR_INIT_VARIABLE], -[ - GL_MODULE_INDICATOR_PREFIX[]_[$1]=m4_if([$2], , [0], [$2]) - AC_SUBST(GL_MODULE_INDICATOR_PREFIX[]_[$1]) -]) - # gl_MODULE_INDICATOR_CONDITION # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present @@ -613,9 +83,9 @@ m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ gl_MODULE_INDICATOR_SET_VARIABLE_AUX( - [GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]m4_translit([[$1]], - [abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], + [GNULIB_[]m4_translit([[$1]], + [abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION]) ]) @@ -727,20 +197,42 @@ AC_DEFUN([gl_FEATURES_H], AC_SUBST([HAVE_FEATURES_H]) ]) +# m4_foreach_w +# is a backport of autoconf-2.59c's m4_foreach_w. +# Remove this macro when we can assume autoconf >= 2.60. +m4_ifndef([m4_foreach_w], + [m4_define([m4_foreach_w], + [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) + +# AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) +# ---------------------------------------------------- +# Backport of autoconf-2.63b's macro. +# Remove this macro when we can assume autoconf >= 2.64. +m4_ifndef([AS_VAR_IF], +[m4_define([AS_VAR_IF], +[AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])]) + # gl_PROG_CC_C99 # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. +# This is like AC_PROG_CC_C99, except that +# - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60, +# - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC +# , +# but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99 +# . +# Remaining problems: +# - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options +# to CC twice +# . +# - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard. AC_DEFUN([gl_PROG_CC_C99], [ - dnl Just use AC_PROG_CC_C99. - dnl When AC_PROG_CC_C99 and AC_PROG_CC_STDC are used together, the substituted - dnl value of CC will contain the C99 enabling options twice. But this is only - dnl a cosmetic problem. - dnl With Autoconf >= 2.70, use AC_PROG_CC since it implies AC_PROG_CC_C99; - dnl this avoids a "warning: The macro `AC_PROG_CC_C99' is obsolete." - m4_version_prereq([2.70], - [AC_REQUIRE([AC_PROG_CC])], - [AC_REQUIRE([AC_PROG_CC_C99])]) + dnl Change that version number to the minimum Autoconf version that supports + dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls. + m4_version_prereq([9.0], + [AC_REQUIRE([AC_PROG_CC_C99])], + [AC_REQUIRE([AC_PROG_CC_STDC])]) ]) # gl_PROG_AR_RANLIB @@ -751,11 +243,9 @@ AC_DEFUN([gl_PROG_AR_RANLIB], [ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler dnl as "cc", and GCC as "gcc". They have different object file formats and - dnl library formats. In particular, the GNU binutils programs ar and ranlib + dnl library formats. In particular, the GNU binutils programs ar, ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) - dnl The '][' hides this use from 'aclocal'. - AC_BEFORE([$0], [A][M_PROG_AR]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], @@ -767,39 +257,25 @@ Amsterdam [gl_cv_c_amsterdam_compiler=yes], [gl_cv_c_amsterdam_compiler=no]) ]) - - dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not - dnl building with __ACK__. - if test $gl_cv_c_amsterdam_compiler = yes; then - if test -z "$AR"; then + if test -z "$AR"; then + if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' - fi - if test -z "$ARFLAGS"; then - ARFLAGS='-o' + if test -z "$ARFLAGS"; then + ARFLAGS='-o' + fi + else + dnl Use the Automake-documented default values for AR and ARFLAGS, + dnl but prefer ${host}-ar over ar (useful for cross-compiling). + AC_CHECK_TOOL([AR], [ar], [ar]) + if test -z "$ARFLAGS"; then + ARFLAGS='cru' + fi fi else - dnl AM_PROG_AR was added in automake v1.11.2. AM_PROG_AR does not AC_SUBST - dnl ARFLAGS variable (it is filed into Makefile.in directly by automake - dnl script on-demand, if not specified by ./configure of course). - dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above - dnl will be ignored. Also, pay attention to call AM_PROG_AR in else block - dnl because AM_PROG_AR is written so it could re-set AR variable even for - dnl __ACK__. It may seem like its easier to avoid calling the macro here, - dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good - dnl default value and automake should usually know them). - dnl - dnl The '][' hides this use from 'aclocal'. - m4_ifdef([A][M_PROG_AR], [A][M_PROG_AR], [:]) + if test -z "$ARFLAGS"; then + ARFLAGS='cru' + fi fi - - dnl In case the code above has not helped with setting AR/ARFLAGS, use - dnl Automake-documented default values for AR and ARFLAGS, but prefer - dnl ${host}-ar over ar (useful for cross-compiling). - AC_CHECK_TOOL([AR], [ar], [ar]) - if test -z "$ARFLAGS"; then - ARFLAGS='cr' - fi - AC_SUBST([AR]) AC_SUBST([ARFLAGS]) if test -z "$RANLIB"; then @@ -813,29 +289,46 @@ Amsterdam AC_SUBST([RANLIB]) ]) +# AC_PROG_MKDIR_P +# is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix +# for interoperability with automake-1.9.6 from autoconf-2.62. +# Remove this macro when we can assume autoconf >= 2.62 or +# autoconf >= 2.60 && automake >= 1.10. +# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. +m4_ifndef([AC_AUTOCONF_VERSION],[ +m4_ifdef([AC_PROG_MKDIR_P], [ + dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. + m4_define([AC_PROG_MKDIR_P], + m4_defn([AC_PROG_MKDIR_P])[ + AC_SUBST([MKDIR_P])])], [ + dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. + AC_DEFUN_ONCE([AC_PROG_MKDIR_P], + [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake + MKDIR_P='$(mkdir_p)' + AC_SUBST([MKDIR_P])])]) +]) + # AC_C_RESTRICT -# This definition is copied from post-2.70 Autoconf and overrides the -# AC_C_RESTRICT macro from autoconf 2.60..2.70. -m4_version_prereq([2.70.1], [], [ +# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, +# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ +# works. +# This definition can be removed once autoconf >= 2.62 can be assumed. +# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. +m4_ifndef([AC_AUTOCONF_VERSION],[ AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no - # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: - # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html - # Put 'restrict' last, because C++ lacks it. - for ac_kw in __restrict__ __restrict _Restrict restrict; do - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[typedef int *int_ptr; - int foo (int_ptr $ac_kw ip) { return ip[0]; } - int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ - int bar (int ip[$ac_kw]) { return ip[0]; } - ]], - [[int s[1]; - int *$ac_kw t = s; - t[0] = 0; - return foo (t) + bar (t); - ]])], + # The order here caters to the fact that C++ does not require restrict. + for ac_kw in __restrict __restrict__ _Restrict restrict; do + AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[typedef int * int_ptr; + int foo (int_ptr $ac_kw ip) { + return ip[0]; + }]], + [[int s[1]; + int * $ac_kw t = s; + t[0] = 0; + return foo(t)]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done @@ -843,24 +336,22 @@ AC_DEFUN([AC_C_RESTRICT], AH_VERBATIM([restrict], [/* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is - supported only directly. */ + supported directly. */ #undef restrict -/* Work around a bug in older versions of Sun C++, which did not - #define __restrict__ or support _Restrict or __restrict__ - even though the corresponding Sun C compiler ended up with - "#define restrict _Restrict" or "#define restrict __restrict__" - in the previous line. This workaround can be removed once - we assume Oracle Developer Studio 12.5 (2016) or later. */ -#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ +/* Work around a bug in Sun C++: it does not support _Restrict, even + though the corresponding Sun C compiler does, which causes + "#define restrict _Restrict" in the previous line. Perhaps some future + version of Sun C++ will work with _Restrict; if so, it'll probably + define __RESTRICT, just as Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict -# define __restrict__ #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac -])# AC_C_RESTRICT +]) ]) # gl_BIGENDIAN @@ -872,22 +363,6 @@ AC_DEFUN([gl_BIGENDIAN], AC_C_BIGENDIAN ]) -# A temporary file descriptor. -# Must be less than 10, because dash 0.5.8 does not support redirections -# with multi-digit file descriptors. -m4_define([GL_TMP_FD], 9) - -# gl_SILENT(command) -# executes command, but without the normal configure output. -# This is useful when you want to invoke AC_CACHE_CHECK (or AC_CHECK_FUNC etc.) -# inside another AC_CACHE_CHECK. -AC_DEFUN([gl_SILENT], -[ - exec GL_TMP_FD>&AS_MESSAGE_FD AS_MESSAGE_FD>/dev/null - $1 - exec AS_MESSAGE_FD>&GL_TMP_FD GL_TMP_FD>&- -]) - # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. @@ -895,257 +370,8 @@ AC_DEFUN([gl_SILENT], # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. AC_DEFUN([gl_CACHE_VAL_SILENT], [ - gl_SILENT([ - AC_CACHE_VAL([$1], [$2]) - ]) -]) - -# gl_CONDITIONAL(conditional, condition) -# is like AM_CONDITIONAL(conditional, condition), except that it does not -# produce an error -# configure: error: conditional "..." was never defined. -# Usually this means the macro was only invoked conditionally. -# when only invoked conditionally. Instead, in that case, both the _TRUE -# and the _FALSE case are disabled. -AC_DEFUN([gl_CONDITIONAL], -[ - pushdef([AC_CONFIG_COMMANDS_PRE], [:])dnl - AM_CONDITIONAL([$1], [$2]) - popdef([AC_CONFIG_COMMANDS_PRE])dnl - if test -z "${[$1]_TRUE}" && test -z "${[$1]_FALSE}"; then - [$1]_TRUE='#' - [$1]_FALSE='#' - fi -]) - -# gl_CC_ALLOW_WARNINGS -# sets and substitutes a variable GL_CFLAG_ALLOW_WARNINGS, to a $(CC) option -# that reverts a preceding '-Werror' option, if available. -# This is expected to be '-Wno-error' on gcc, clang (except clang/MSVC), xlclang -# and empty otherwise. -AC_DEFUN([gl_CC_ALLOW_WARNINGS], -[ - AC_REQUIRE([AC_PROG_CC]) - AC_CACHE_CHECK([for C compiler option to allow warnings], - [gl_cv_cc_wallow], - [rm -f conftest* - echo 'int dummy;' > conftest.c - AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err]) >/dev/null - AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err]) >/dev/null - dnl Test the number of error output lines, because AIX xlc accepts the - dnl option '-Wno-error', just to produce a warning - dnl "Option -Wno-error was incorrectly specified. The option will be ignored." - dnl afterwards. - if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then - gl_cv_cc_wallow='-Wno-error' - else - gl_cv_cc_wallow=none - fi - rm -f conftest* - ]) - case "$gl_cv_cc_wallow" in - none) GL_CFLAG_ALLOW_WARNINGS='' ;; - *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; - esac - AC_SUBST([GL_CFLAG_ALLOW_WARNINGS]) -]) - -# gl_CXX_ALLOW_WARNINGS -# sets and substitutes a variable GL_CXXFLAG_ALLOW_WARNINGS, to a $(CC) option -# that reverts a preceding '-Werror' option, if available. -AC_DEFUN([gl_CXX_ALLOW_WARNINGS], -[ - dnl Requires AC_PROG_CXX or gl_PROG_ANSI_CXX. - if test -n "$CXX" && test "$CXX" != no; then - AC_CACHE_CHECK([for C++ compiler option to allow warnings], - [gl_cv_cxx_wallow], - [rm -f conftest* - echo 'int dummy;' > conftest.cc - AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err]) >/dev/null - AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err]) >/dev/null - dnl Test the number of error output lines, because AIX xlC accepts the - dnl option '-Wno-error', just to produce a warning - dnl "Option -Wno-error was incorrectly specified. The option will be ignored." - dnl afterwards. - if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then - gl_cv_cxx_wallow='-Wno-error' - else - gl_cv_cxx_wallow=none - fi - rm -f conftest* - ]) - case "$gl_cv_cxx_wallow" in - none) GL_CXXFLAG_ALLOW_WARNINGS='' ;; - *) GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;; - esac - else - GL_CXXFLAG_ALLOW_WARNINGS='' - fi - AC_SUBST([GL_CXXFLAG_ALLOW_WARNINGS]) -]) - -# gl_CC_GNULIB_WARNINGS -# sets and substitutes a variable GL_CFLAG_GNULIB_WARNINGS, to a $(CC) option -# set that enables or disables warnings as suitable for the Gnulib coding style. -AC_DEFUN([gl_CC_GNULIB_WARNINGS], -[ - AC_REQUIRE([gl_CC_ALLOW_WARNINGS]) - dnl Assume that the compiler supports -Wno-* options only if it also supports - dnl -Wno-error. - GL_CFLAG_GNULIB_WARNINGS='' - if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then - dnl Enable these warning options: - dnl - dnl GCC clang - dnl -Wno-cast-qual >= 3 >= 3.9 - dnl -Wno-conversion >= 3 >= 3.9 - dnl -Wno-float-conversion >= 4.9 >= 3.9 - dnl -Wno-float-equal >= 3 >= 3.9 - dnl -Wimplicit-fallthrough >= 7 >= 3.9 - dnl -Wno-pedantic >= 4.8 >= 3.9 - dnl -Wno-sign-compare >= 3 >= 3.9 - dnl -Wno-sign-conversion >= 4.3 >= 3.9 - dnl -Wno-type-limits >= 4.3 >= 3.9 - dnl -Wno-undef >= 3 >= 3.9 - dnl -Wno-unsuffixed-float-constants >= 4.5 - dnl -Wno-unused-function >= 3 >= 3.9 - dnl -Wno-unused-parameter >= 3 >= 3.9 - dnl - cat > conftest.c <<\EOF - #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-cast-qual - -Wno-conversion - -Wno-float-equal - -Wno-sign-compare - -Wno-undef - -Wno-unused-function - -Wno-unused-parameter - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-float-conversion - #endif - #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wimplicit-fallthrough - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-pedantic - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) - -Wno-sign-conversion - -Wno-type-limits - #endif - #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4 - -Wno-unsuffixed-float-constants - #endif -EOF - gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out" - if AC_TRY_EVAL([gl_command]); then - gl_options=`grep -v '#' conftest.out` - for word in $gl_options; do - GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word" - done - fi - rm -f conftest.c conftest.out - fi - AC_SUBST([GL_CFLAG_GNULIB_WARNINGS]) -]) - -dnl gl_CONDITIONAL_HEADER([foo.h]) -dnl takes a shell variable GL_GENERATE_FOO_H (with value true or false) as input -dnl and produces -dnl - an AC_SUBSTed variable FOO_H that is either a file name or empty, based -dnl on whether GL_GENERATE_FOO_H is true or false, -dnl - an Automake conditional GL_GENERATE_FOO_H that evaluates to the value of -dnl the shell variable GL_GENERATE_FOO_H. -AC_DEFUN([gl_CONDITIONAL_HEADER], -[ - m4_pushdef([gl_header_name], AS_TR_SH(m4_toupper($1))) - m4_pushdef([gl_generate_var], [GL_GENERATE_]AS_TR_SH(m4_toupper($1))) - m4_pushdef([gl_generate_cond], [GL_GENERATE_]AS_TR_SH(m4_toupper($1))) - case "$gl_generate_var" in - false) gl_header_name='' ;; - true) - dnl It is OK to use a .h file in lib/ from within tests/, but not vice - dnl versa. - if test -z "$gl_header_name"; then - gl_header_name="${gl_source_base_prefix}$1" - fi - ;; - *) echo "*** gl_generate_var is not set correctly" 1>&2; exit 1 ;; - esac - AC_SUBST(gl_header_name) - gl_CONDITIONAL(gl_generate_cond, [$gl_generate_var]) - m4_popdef([gl_generate_cond]) - m4_popdef([gl_generate_var]) - m4_popdef([gl_header_name]) -]) - -dnl Expands to some code for use in .c programs that, on native Windows, defines -dnl the Microsoft deprecated alias function names to the underscore-prefixed -dnl actual function names. With this macro, these function names are available -dnl without linking with '-loldnames' and without generating warnings. -dnl Usage: Use it after all system header files are included. -dnl #include <...> -dnl #include <...> -dnl ]GL_MDA_DEFINES[ -dnl ... -AC_DEFUN([GL_MDA_DEFINES],[ -AC_REQUIRE([_GL_MDA_DEFINES]) -[$gl_mda_defines] -]) -AC_DEFUN([_GL_MDA_DEFINES], -[gl_mda_defines=' -#if defined _WIN32 && !defined __CYGWIN__ -#define access _access -#define chdir _chdir -#define chmod _chmod -#define close _close -#define creat _creat -#define dup _dup -#define dup2 _dup2 -#define ecvt _ecvt -#define execl _execl -#define execle _execle -#define execlp _execlp -#define execv _execv -#define execve _execve -#define execvp _execvp -#define execvpe _execvpe -#define fcloseall _fcloseall -#define fcvt _fcvt -#define fdopen _fdopen -#define fileno _fileno -#define gcvt _gcvt -#define getcwd _getcwd -#define getpid _getpid -#define getw _getw -#define isatty _isatty -#define j0 _j0 -#define j1 _j1 -#define jn _jn -#define lfind _lfind -#define lsearch _lsearch -#define lseek _lseek -#define memccpy _memccpy -#define mkdir _mkdir -#define mktemp _mktemp -#define open _open -#define putenv _putenv -#define putw _putw -#define read _read -#define rmdir _rmdir -#define strdup _strdup -#define swab _swab -#define tempnam _tempnam -#define tzset _tzset -#define umask _umask -#define unlink _unlink -#define utime _utime -#define wcsdup _wcsdup -#define write _write -#define y0 _y0 -#define y1 _y1 -#define yn _yn -#endif -' + saved_as_echo_n="$as_echo_n" + as_echo_n=':' + AC_CACHE_VAL([$1], [$2]) + as_echo_n="$saved_as_echo_n" ]) diff --git a/gl/m4/gnulib-comp.m4 b/gl/m4/gnulib-comp.m4 index 4764622..9a4f502 100644 --- a/gl/m4/gnulib-comp.m4 +++ b/gl/m4/gnulib-comp.m4 @@ -1,9 +1,9 @@ # DO NOT EDIT! GENERATED AUTOMATICALLY! -# Copyright (C) 2002-2023 Free Software Foundation, Inc. +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, @@ -12,7 +12,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this file. If not, see . +# along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that @@ -37,91 +37,50 @@ AC_DEFUN([gl_EARLY], m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable - - # Pre-early section. - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_PROG_AR_RANLIB]) - - # Code from module absolute-header: + AC_REQUIRE([AM_PROG_CC_C_O]) # Code from module alloca-opt: # Code from module arpa_inet: - # Code from module assert-h: - # Code from module attribute: # Code from module base64: - # Code from module basename-lgpl: # Code from module btowc: - # Code from module builtin-expect: - # Code from module byteswap: - # Code from module c99: - # Code from module calloc-gnu: - # Code from module calloc-posix: - # Code from module cloexec: - # Code from module close: - # Code from module crypto/af_alg: - # Code from module crypto/sha256: - # Code from module crypto/sha256-buffer: + # Code from module configmake: + # Code from module crypto/sha1: # Code from module dirname: # Code from module dirname-lgpl: + # Code from module dosname: # Code from module double-slash-root: - # Code from module dup2: # Code from module environ: # Code from module errno: # Code from module error: # Code from module exitfail: # Code from module extensions: + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Code from module extern-inline: - # Code from module fcntl: - # Code from module fcntl-h: # Code from module fd-hook: - # Code from module fflush: - AC_REQUIRE([gl_SET_LARGEFILE_SOURCE]) - # Code from module filename: # Code from module float: # Code from module floorf: - # Code from module fopen: - # Code from module fopen-gnu: - # Code from module fpurge: - # Code from module freading: - # Code from module free-posix: - # Code from module fseek: - # Code from module fseeko: - AC_REQUIRE([gl_SET_LARGEFILE_SOURCE]) - # Code from module fstat: # Code from module fsusage: - # Code from module ftell: - # Code from module ftello: - AC_REQUIRE([gl_SET_LARGEFILE_SOURCE]) - # Code from module gen-header: + # Code from module full-read: # Code from module getaddrinfo: - # Code from module getdelim: - # Code from module getdtablesize: # Code from module gethostname: - # Code from module getline: # Code from module getloadavg: # Code from module getopt-gnu: # Code from module getopt-posix: - # Code from module getprogname: + # Code from module gettext: # Code from module gettext-h: - # Code from module glibc-internal/dynarray: - # Code from module hard-locale: + # Code from module havelib: # Code from module hostent: - # Code from module ialloc: # Code from module idpriv-droptemp: - # Code from module idx: # Code from module include_next: # Code from module inet_ntop: # Code from module intprops: - # Code from module inttypes-incomplete: # Code from module langinfo: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) - # Code from module libc-config: - # Code from module limits-h: # Code from module localcharset: # Code from module locale: # Code from module localeconv: # Code from module lock: - # Code from module lseek: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module malloca: @@ -130,7 +89,6 @@ AC_DEFUN([gl_EARLY], # Code from module mbsinit: # Code from module mbtowc: # Code from module memchr: - # Code from module minmax: # Code from module mktime: # Code from module mktime-internal: # Code from module mountlist: @@ -141,15 +99,11 @@ AC_DEFUN([gl_EARLY], # Code from module netinet_in: # Code from module nl_langinfo: # Code from module nocrash: - # Code from module open: - # Code from module pathmax: - # Code from module realloc-gnu: - # Code from module realloc-posix: - # Code from module reallocarray: + # Code from module read: # Code from module regex: + # Code from module safe-read: # Code from module servent: # Code from module setenv: - # Code from module setlocale-null: # Code from module size_max: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: @@ -160,12 +114,8 @@ AC_DEFUN([gl_EARLY], # Code from module sockets: # Code from module socklen: # Code from module ssize_t: - # Code from module stat: - # Code from module stat-time: - # Code from module std-gnu11: # Code from module stdalign: # Code from module stdbool: - # Code from module stdckdint: # Code from module stddef: # Code from module stdint: # Code from module stdio: @@ -178,10 +128,11 @@ AC_DEFUN([gl_EARLY], # Code from module strerror-override: # Code from module string: # Code from module strings: + # Code from module strndup: + # Code from module strnlen: # Code from module strsep: # Code from module strstr-simple: # Code from module sys_socket: - # Code from module sys_stat: # Code from module sys_types: # Code from module sys_uio: # Code from module threadlib: @@ -190,9 +141,7 @@ AC_DEFUN([gl_EARLY], # Code from module time_r: # Code from module timegm: # Code from module unistd: - # Code from module unlocked-io-internal: # Code from module unsetenv: - # Code from module vararrays: # Code from module vasnprintf: # Code from module vasprintf: # Code from module verify: @@ -200,14 +149,11 @@ AC_DEFUN([gl_EARLY], # Code from module wchar: # Code from module wcrtomb: # Code from module wctype-h: - # Code from module windows-mutex: - # Code from module windows-once: - # Code from module windows-recmutex: - # Code from module windows-rwlock: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: # Code from module xsize: + # Code from module xstrndup: ]) # This macro should be invoked from ./configure.ac, in the section @@ -224,300 +170,154 @@ AC_DEFUN([gl_INIT], m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) - m4_pushdef([GL_MACRO_PREFIX], [gl]) - m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) gl_COMMON gl_source_base='gl' - gl_source_base_prefix= gl_FUNC_ALLOCA - gl_CONDITIONAL_HEADER([alloca.h]) - AC_PROG_MKDIR_P - gl_ARPA_INET_H - gl_ARPA_INET_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - gl_ASSERT_H - gl_CONDITIONAL_HEADER([assert.h]) + gl_HEADER_ARPA_INET AC_PROG_MKDIR_P gl_FUNC_BASE64 gl_FUNC_BTOWC - gl_CONDITIONAL([GL_COND_OBJ_BTOWC], - [test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1]) - AM_COND_IF([GL_COND_OBJ_BTOWC], [ + if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then + AC_LIBOBJ([btowc]) gl_PREREQ_BTOWC - ]) + fi gl_WCHAR_MODULE_INDICATOR([btowc]) - gl___BUILTIN_EXPECT - gl_BYTESWAP - gl_CONDITIONAL_HEADER([byteswap.h]) - AC_PROG_MKDIR_P - gl_FUNC_CALLOC_GNU - if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then - AC_LIBOBJ([calloc]) - fi - gl_STDLIB_MODULE_INDICATOR([calloc-gnu]) - gl_FUNC_CALLOC_POSIX - if test $REPLACE_CALLOC_FOR_CALLOC_POSIX = 1; then - AC_LIBOBJ([calloc]) - fi - gl_STDLIB_MODULE_INDICATOR([calloc-posix]) - gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) - gl_FUNC_CLOSE - gl_CONDITIONAL([GL_COND_OBJ_CLOSE], [test $REPLACE_CLOSE = 1]) - gl_UNISTD_MODULE_INDICATOR([close]) - gl_AF_ALG - AC_REQUIRE([AC_C_RESTRICT]) - gl_SHA256 + gl_CONFIGMAKE_PREP + gl_SHA1 + gl_DIRNAME gl_MODULE_INDICATOR([dirname]) + gl_DIRNAME_LGPL gl_DOUBLE_SLASH_ROOT - gl_FUNC_DUP2 - gl_CONDITIONAL([GL_COND_OBJ_DUP2], [test $REPLACE_DUP2 = 1]) - AM_COND_IF([GL_COND_OBJ_DUP2], [ - gl_PREREQ_DUP2 - ]) - gl_UNISTD_MODULE_INDICATOR([dup2]) gl_ENVIRON gl_UNISTD_MODULE_INDICATOR([environ]) gl_HEADER_ERRNO_H - gl_CONDITIONAL_HEADER([errno.h]) - AC_PROG_MKDIR_P gl_ERROR - gl_CONDITIONAL([GL_COND_OBJ_ERROR], [test "$ac_cv_lib_error_at_line" = no]) - AM_COND_IF([GL_COND_OBJ_ERROR], [ + if test $ac_cv_lib_error_at_line = no; then + AC_LIBOBJ([error]) gl_PREREQ_ERROR - ]) + fi m4_ifdef([AM_XGETTEXT_OPTION], [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) AC_REQUIRE([gl_EXTERN_INLINE]) - gl_FUNC_FCNTL - gl_CONDITIONAL([GL_COND_OBJ_FCNTL], - [test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1]) - gl_FCNTL_MODULE_INDICATOR([fcntl]) - gl_FCNTL_H - gl_FCNTL_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - gl_FUNC_FFLUSH - gl_CONDITIONAL([GL_COND_OBJ_FFLUSH], [test $REPLACE_FFLUSH = 1]) - AM_COND_IF([GL_COND_OBJ_FFLUSH], [ - gl_PREREQ_FFLUSH - ]) - gl_MODULE_INDICATOR([fflush]) - gl_STDIO_MODULE_INDICATOR([fflush]) gl_FLOAT_H - gl_CONDITIONAL_HEADER([float.h]) - AC_PROG_MKDIR_P - gl_CONDITIONAL([GL_COND_OBJ_FLOAT], [test $REPLACE_FLOAT_LDBL = 1]) - gl_CONDITIONAL([GL_COND_OBJ_ITOLD], [test $REPLACE_ITOLD = 1]) + if test $REPLACE_FLOAT_LDBL = 1; then + AC_LIBOBJ([float]) + fi + if test $REPLACE_ITOLD = 1; then + AC_LIBOBJ([itold]) + fi gl_FUNC_FLOORF - gl_CONDITIONAL([GL_COND_OBJ_FLOORF], - [test $HAVE_DECL_FLOORF = 0 || test $REPLACE_FLOORF = 1]) + if test $HAVE_DECL_FLOORF = 0 || test $REPLACE_FLOORF = 1; then + AC_LIBOBJ([floorf]) + fi gl_MATH_MODULE_INDICATOR([floorf]) - gl_FUNC_FOPEN - if test $REPLACE_FOPEN = 1; then - AC_LIBOBJ([fopen]) - gl_PREREQ_FOPEN - fi - gl_STDIO_MODULE_INDICATOR([fopen]) - gl_FUNC_FOPEN_GNU - if test $REPLACE_FOPEN_FOR_FOPEN_GNU = 1; then - AC_LIBOBJ([fopen]) - gl_PREREQ_FOPEN - fi - gl_MODULE_INDICATOR([fopen-gnu]) - gl_STDIO_MODULE_INDICATOR([fopen-gnu]) - gl_FUNC_FPURGE - gl_CONDITIONAL([GL_COND_OBJ_FPURGE], - [test $HAVE_FPURGE = 0 || test $REPLACE_FPURGE = 1]) - gl_STDIO_MODULE_INDICATOR([fpurge]) - gl_FUNC_FREADING - gl_FUNC_FREE - gl_CONDITIONAL([GL_COND_OBJ_FREE], [test $REPLACE_FREE = 1]) - AM_COND_IF([GL_COND_OBJ_FREE], [ - gl_PREREQ_FREE - ]) - gl_STDLIB_MODULE_INDICATOR([free-posix]) - gl_FUNC_FSEEK - gl_CONDITIONAL([GL_COND_OBJ_FSEEK], [test $REPLACE_FSEEK = 1]) - gl_STDIO_MODULE_INDICATOR([fseek]) - gl_FUNC_FSEEKO - gl_CONDITIONAL([GL_COND_OBJ_FSEEKO], - [test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1]) - AM_COND_IF([GL_COND_OBJ_FSEEKO], [ - gl_PREREQ_FSEEKO - ]) - gl_STDIO_MODULE_INDICATOR([fseeko]) - gl_FUNC_FSTAT - gl_CONDITIONAL([GL_COND_OBJ_FSTAT], [test $REPLACE_FSTAT = 1]) - AM_COND_IF([GL_COND_OBJ_FSTAT], [ - case "$host_os" in - mingw*) - AC_LIBOBJ([stat-w32]) - ;; - esac - gl_PREREQ_FSTAT - ]) - gl_SYS_STAT_MODULE_INDICATOR([fstat]) gl_FSUSAGE - gl_CONDITIONAL([GL_COND_OBJ_FSUSAGE], [test $gl_cv_fs_space = yes]) - AM_COND_IF([GL_COND_OBJ_FSUSAGE], [ + if test $gl_cv_fs_space = yes; then + AC_LIBOBJ([fsusage]) gl_PREREQ_FSUSAGE_EXTRA - ]) - gl_FUNC_FTELL - gl_CONDITIONAL([GL_COND_OBJ_FTELL], [test $REPLACE_FTELL = 1]) - gl_STDIO_MODULE_INDICATOR([ftell]) - gl_FUNC_FTELLO - gl_CONDITIONAL([GL_COND_OBJ_FTELLO], - [test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1]) - AM_COND_IF([GL_COND_OBJ_FTELLO], [ - gl_PREREQ_FTELLO - ]) - gl_STDIO_MODULE_INDICATOR([ftello]) + fi gl_GETADDRINFO - gl_CONDITIONAL([GL_COND_OBJ_GETADDRINFO], - [test $HAVE_GETADDRINFO = 0 || test $REPLACE_GETADDRINFO = 1]) - gl_CONDITIONAL([GL_COND_OBJ_GAI_STRERROR], - [test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1]) + if test $HAVE_GETADDRINFO = 0; then + AC_LIBOBJ([getaddrinfo]) + fi + if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then + AC_LIBOBJ([gai_strerror]) + fi gl_NETDB_MODULE_INDICATOR([getaddrinfo]) - gl_FUNC_GETDELIM - gl_CONDITIONAL([GL_COND_OBJ_GETDELIM], - [test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1]) - AM_COND_IF([GL_COND_OBJ_GETDELIM], [ - gl_PREREQ_GETDELIM - ]) - gl_STDIO_MODULE_INDICATOR([getdelim]) - gl_FUNC_GETDTABLESIZE - gl_CONDITIONAL([GL_COND_OBJ_GETDTABLESIZE], - [test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1]) - AM_COND_IF([GL_COND_OBJ_GETDTABLESIZE], [ - gl_PREREQ_GETDTABLESIZE - ]) - gl_UNISTD_MODULE_INDICATOR([getdtablesize]) gl_FUNC_GETHOSTNAME - gl_CONDITIONAL([GL_COND_OBJ_GETHOSTNAME], [test $HAVE_GETHOSTNAME = 0]) - AM_COND_IF([GL_COND_OBJ_GETHOSTNAME], [ + if test $HAVE_GETHOSTNAME = 0; then + AC_LIBOBJ([gethostname]) gl_PREREQ_GETHOSTNAME - ]) + fi gl_UNISTD_MODULE_INDICATOR([gethostname]) - gl_FUNC_GETLINE - gl_CONDITIONAL([GL_COND_OBJ_GETLINE], [test $REPLACE_GETLINE = 1]) - AM_COND_IF([GL_COND_OBJ_GETLINE], [ - gl_PREREQ_GETLINE - ]) - gl_STDIO_MODULE_INDICATOR([getline]) - AC_REQUIRE([AC_CANONICAL_HOST]) gl_GETLOADAVG - gl_CONDITIONAL([GL_COND_OBJ_GETLOADAVG], [test $HAVE_GETLOADAVG = 0]) - AM_COND_IF([GL_COND_OBJ_GETLOADAVG], [ + if test $HAVE_GETLOADAVG = 0; then + AC_LIBOBJ([getloadavg]) gl_PREREQ_GETLOADAVG - ]) + fi gl_STDLIB_MODULE_INDICATOR([getloadavg]) gl_FUNC_GETOPT_GNU - dnl Because of the way gl_FUNC_GETOPT_GNU is implemented (the gl_getopt_required - dnl mechanism), there is no need to do any AC_LIBOBJ or AC_SUBST here; they are - dnl done in the getopt-posix module. + if test $REPLACE_GETOPT = 1; then + AC_LIBOBJ([getopt]) + AC_LIBOBJ([getopt1]) + gl_PREREQ_GETOPT + dnl Arrange for unistd.h to include getopt.h. + GNULIB_GL_UNISTD_H_GETOPT=1 + fi + AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) + gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) gl_FUNC_GETOPT_POSIX - gl_CONDITIONAL_HEADER([getopt.h]) - gl_CONDITIONAL_HEADER([getopt-cdefs.h]) - AC_PROG_MKDIR_P - gl_CONDITIONAL([GL_COND_OBJ_GETOPT], [test $REPLACE_GETOPT = 1]) - AM_COND_IF([GL_COND_OBJ_GETOPT], [ - dnl Define the substituted variable GNULIB_UNISTD_H_GETOPT to 1. - gl_UNISTD_H_REQUIRE_DEFAULTS - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT], [1]) - ]) - gl_UNISTD_MODULE_INDICATOR([getopt-posix]) - gl_FUNC_GETPROGNAME + if test $REPLACE_GETOPT = 1; then + AC_LIBOBJ([getopt]) + AC_LIBOBJ([getopt1]) + gl_PREREQ_GETOPT + dnl Arrange for unistd.h to include getopt.h. + GNULIB_GL_UNISTD_H_GETOPT=1 + fi + AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) + dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac. + AM_GNU_GETTEXT_VERSION([0.18.1]) AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) - AC_PROG_MKDIR_P - AC_REQUIRE([gl_FUNC_SETLOCALE_NULL]) - LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL" - AC_SUBST([LIB_HARD_LOCALE]) gl_HOSTENT gl_IDPRIV gl_FUNC_INET_NTOP - gl_CONDITIONAL([GL_COND_OBJ_INET_NTOP], - [test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1]) - AM_COND_IF([GL_COND_OBJ_INET_NTOP], [ + if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then + AC_LIBOBJ([inet_ntop]) gl_PREREQ_INET_NTOP - ]) + fi gl_ARPA_INET_MODULE_INDICATOR([inet_ntop]) - gl_INTTYPES_INCOMPLETE - gl_INTTYPES_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P gl_LANGINFO_H - gl_LANGINFO_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P AC_REQUIRE([gl_LARGEFILE]) - gl___INLINE - gl_LIMITS_H - gl_CONDITIONAL_HEADER([limits.h]) - AC_PROG_MKDIR_P gl_LOCALCHARSET - dnl For backward compatibility. Some packages still use this. - LOCALCHARSET_TESTS_ENVIRONMENT= + LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) gl_LOCALE_H - gl_LOCALE_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P gl_FUNC_LOCALECONV - gl_CONDITIONAL([GL_COND_OBJ_LOCALECONV], [test $REPLACE_LOCALECONV = 1]) - AM_COND_IF([GL_COND_OBJ_LOCALECONV], [ + if test $REPLACE_LOCALECONV = 1; then + AC_LIBOBJ([localeconv]) gl_PREREQ_LOCALECONV - ]) + fi gl_LOCALE_MODULE_INDICATOR([localeconv]) gl_LOCK gl_MODULE_INDICATOR([lock]) - gl_FUNC_LSEEK - gl_CONDITIONAL([GL_COND_OBJ_LSEEK], [test $REPLACE_LSEEK = 1]) - gl_UNISTD_MODULE_INDICATOR([lseek]) gl_FUNC_MALLOC_GNU - if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 1; then + if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi - gl_STDLIB_MODULE_INDICATOR([malloc-gnu]) - AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + gl_MODULE_INDICATOR([malloc-gnu]) + gl_FUNC_MALLOC_POSIX + if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-posix]) gl_MALLOCA gl_MATH_H - gl_MATH_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P gl_FUNC_MBRTOWC - gl_CONDITIONAL([GL_COND_OBJ_MBRTOWC], - [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1]) - AM_COND_IF([GL_COND_OBJ_MBRTOWC], [ - if test $REPLACE_MBSTATE_T = 1; then - AC_LIBOBJ([lc-charset-dispatch]) - AC_LIBOBJ([mbtowc-lock]) - gl_PREREQ_MBTOWC_LOCK - fi + if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then + AC_LIBOBJ([mbrtowc]) gl_PREREQ_MBRTOWC - ]) + fi gl_WCHAR_MODULE_INDICATOR([mbrtowc]) gl_FUNC_MBSINIT - gl_CONDITIONAL([GL_COND_OBJ_MBSINIT], - [test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1]) - AM_COND_IF([GL_COND_OBJ_MBSINIT], [ + if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then + AC_LIBOBJ([mbsinit]) gl_PREREQ_MBSINIT - ]) + fi gl_WCHAR_MODULE_INDICATOR([mbsinit]) gl_FUNC_MBTOWC - gl_CONDITIONAL([GL_COND_OBJ_MBTOWC], - [test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1]) - AM_COND_IF([GL_COND_OBJ_MBTOWC], [ + if test $REPLACE_MBTOWC = 1; then + AC_LIBOBJ([mbtowc]) gl_PREREQ_MBTOWC - ]) + fi gl_STDLIB_MODULE_INDICATOR([mbtowc]) gl_FUNC_MEMCHR - gl_CONDITIONAL([GL_COND_OBJ_MEMCHR], [test $REPLACE_MEMCHR = 1]) - AM_COND_IF([GL_COND_OBJ_MEMCHR], [ + if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then + AC_LIBOBJ([memchr]) gl_PREREQ_MEMCHR - ]) + fi gl_STRING_MODULE_INDICATOR([memchr]) - gl_MINMAX gl_FUNC_MKTIME if test $REPLACE_MKTIME = 1; then AC_LIBOBJ([mktime]) @@ -525,162 +325,73 @@ AC_DEFUN([gl_INIT], fi gl_TIME_MODULE_INDICATOR([mktime]) gl_FUNC_MKTIME_INTERNAL - if test $WANT_MKTIME_INTERNAL = 1; then + if test $REPLACE_MKTIME = 1; then AC_LIBOBJ([mktime]) gl_PREREQ_MKTIME fi gl_MOUNTLIST - gl_CONDITIONAL([GL_COND_OBJ_MOUNTLIST], [test $gl_cv_list_mounted_fs = yes]) - AM_COND_IF([GL_COND_OBJ_MOUNTLIST], [ + if test $gl_cv_list_mounted_fs = yes; then + AC_LIBOBJ([mountlist]) gl_PREREQ_MOUNTLIST_EXTRA - ]) - AC_REQUIRE([gl_MSVC_INVAL]) - gl_CONDITIONAL([GL_COND_OBJ_MSVC_INVAL], - [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1]) - AC_REQUIRE([gl_MSVC_NOTHROW]) - gl_CONDITIONAL([GL_COND_OBJ_MSVC_NOTHROW], - [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1]) - gl_MODULE_INDICATOR([msvc-nothrow]) + fi + gl_MSVC_INVAL + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + AC_LIBOBJ([msvc-inval]) + fi + gl_MSVC_NOTHROW + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + AC_LIBOBJ([msvc-nothrow]) + fi gl_MULTIARCH - gl_NETDB_H - gl_NETDB_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P + gl_HEADER_NETDB gl_HEADER_NETINET_IN - gl_CONDITIONAL_HEADER([netinet/in.h]) AC_PROG_MKDIR_P gl_FUNC_NL_LANGINFO - gl_CONDITIONAL([GL_COND_OBJ_NL_LANGINFO], - [test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1]) - gl_CONDITIONAL([GL_COND_OBJ_NL_LANGINFO_LOCK], - [test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0]) - if test $REPLACE_NL_LANGINFO = 1 && test $NL_LANGINFO_MTSAFE = 0; then - gl_PREREQ_NL_LANGINFO_LOCK + if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then + AC_LIBOBJ([nl_langinfo]) fi gl_LANGINFO_MODULE_INDICATOR([nl_langinfo]) - gl_FUNC_OPEN - gl_CONDITIONAL([GL_COND_OBJ_OPEN], [test $REPLACE_OPEN = 1]) - AM_COND_IF([GL_COND_OBJ_OPEN], [ - gl_PREREQ_OPEN - ]) - gl_FCNTL_MODULE_INDICATOR([open]) - gl_PATHMAX - gl_FUNC_REALLOC_GNU - if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 1; then - AC_LIBOBJ([realloc]) + gl_FUNC_READ + if test $REPLACE_READ = 1; then + AC_LIBOBJ([read]) + gl_PREREQ_READ fi - gl_STDLIB_MODULE_INDICATOR([realloc-gnu]) - gl_FUNC_REALLOC_POSIX - if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then - AC_LIBOBJ([realloc]) - fi - gl_STDLIB_MODULE_INDICATOR([realloc-posix]) - gl_FUNC_REALLOCARRAY - gl_CONDITIONAL([GL_COND_OBJ_REALLOCARRAY], - [test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1]) - AM_COND_IF([GL_COND_OBJ_REALLOCARRAY], [ - gl_PREREQ_REALLOCARRAY - ]) - gl_MODULE_INDICATOR([reallocarray]) - gl_STDLIB_MODULE_INDICATOR([reallocarray]) + gl_UNISTD_MODULE_INDICATOR([read]) gl_REGEX - gl_CONDITIONAL([GL_COND_OBJ_REGEX], [test $ac_use_included_regex = yes]) - AM_COND_IF([GL_COND_OBJ_REGEX], [ + if test $ac_use_included_regex = yes; then + AC_LIBOBJ([regex]) gl_PREREQ_REGEX - ]) + fi + gl_PREREQ_SAFE_READ gl_SERVENT gl_FUNC_SETENV - gl_CONDITIONAL([GL_COND_OBJ_SETENV], - [test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1]) + if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then + AC_LIBOBJ([setenv]) + fi gl_STDLIB_MODULE_INDICATOR([setenv]) - gl_FUNC_SETLOCALE_NULL - gl_CONDITIONAL([GL_COND_OBJ_SETLOCALE_LOCK], - [test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0]) - AM_COND_IF([GL_COND_OBJ_SETLOCALE_LOCK], [ - gl_PREREQ_SETLOCALE_LOCK - ]) - gl_LOCALE_MODULE_INDICATOR([setlocale_null]) gl_SIZE_MAX gl_FUNC_SNPRINTF gl_STDIO_MODULE_INDICATOR([snprintf]) gl_MODULE_INDICATOR([snprintf]) - AC_REQUIRE([gl_SOCKETLIB]) - AC_REQUIRE([gl_SOCKETS]) + gl_SOCKETLIB + gl_SOCKETS gl_TYPE_SOCKLEN_T gt_TYPE_SSIZE_T - gl_FUNC_STAT - gl_CONDITIONAL([GL_COND_OBJ_STAT], [test $REPLACE_STAT = 1]) - AM_COND_IF([GL_COND_OBJ_STAT], [ - case "$host_os" in - mingw*) - AC_LIBOBJ([stat-w32]) - ;; - esac - gl_PREREQ_STAT - ]) - gl_SYS_STAT_MODULE_INDICATOR([stat]) - gl_STAT_TIME - gl_STAT_BIRTHTIME gl_STDALIGN_H - gl_CONDITIONAL_HEADER([stdalign.h]) - AC_PROG_MKDIR_P - gl_C_BOOL - AC_CHECK_HEADERS_ONCE([stdckdint.h]) - if test $ac_cv_header_stdckdint_h = yes; then - GL_GENERATE_STDCKDINT_H=false - else - GL_GENERATE_STDCKDINT_H=true - fi - gl_CONDITIONAL_HEADER([stdckdint.h]) - AC_PROG_MKDIR_P + AM_STDBOOL_H gl_STDDEF_H - gl_STDDEF_H_REQUIRE_DEFAULTS - gl_CONDITIONAL_HEADER([stddef.h]) - AC_PROG_MKDIR_P gl_STDINT_H - gl_CONDITIONAL_HEADER([stdint.h]) - dnl Because of gl_REPLACE_LIMITS_H: - gl_CONDITIONAL_HEADER([limits.h]) - AC_PROG_MKDIR_P gl_STDIO_H - gl_STDIO_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - gl_CONDITIONAL([GL_COND_OBJ_STDIO_READ], [test $REPLACE_STDIO_READ_FUNCS = 1]) - gl_CONDITIONAL([GL_COND_OBJ_STDIO_WRITE], [test $REPLACE_STDIO_WRITE_FUNCS = 1]) - dnl No need to create extra modules for these functions. Everyone who uses - dnl likely needs them. - gl_STDIO_MODULE_INDICATOR([fscanf]) - gl_MODULE_INDICATOR([fscanf]) - gl_STDIO_MODULE_INDICATOR([scanf]) - gl_MODULE_INDICATOR([scanf]) - gl_STDIO_MODULE_INDICATOR([fgetc]) - gl_STDIO_MODULE_INDICATOR([getc]) - gl_STDIO_MODULE_INDICATOR([getchar]) - gl_STDIO_MODULE_INDICATOR([fgets]) - gl_STDIO_MODULE_INDICATOR([fread]) - dnl No need to create extra modules for these functions. Everyone who uses - dnl likely needs them. - gl_STDIO_MODULE_INDICATOR([fprintf]) - gl_STDIO_MODULE_INDICATOR([printf]) - gl_STDIO_MODULE_INDICATOR([vfprintf]) - gl_STDIO_MODULE_INDICATOR([vprintf]) - gl_STDIO_MODULE_INDICATOR([fputc]) - gl_STDIO_MODULE_INDICATOR([putc]) - gl_STDIO_MODULE_INDICATOR([putchar]) - gl_STDIO_MODULE_INDICATOR([fputs]) - gl_STDIO_MODULE_INDICATOR([puts]) - gl_STDIO_MODULE_INDICATOR([fwrite]) gl_STDLIB_H - gl_STDLIB_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P gl_STRCASE - gl_CONDITIONAL([GL_COND_OBJ_STRCASECMP], [test $HAVE_STRCASECMP = 0]) - AM_COND_IF([GL_COND_OBJ_STRCASECMP], [ + if test $HAVE_STRCASECMP = 0; then + AC_LIBOBJ([strcasecmp]) gl_PREREQ_STRCASECMP - ]) - gl_CONDITIONAL([GL_COND_OBJ_STRNCASECMP], [test $HAVE_STRNCASECMP = 0]) - AM_COND_IF([GL_COND_OBJ_STRNCASECMP], [ + fi + if test $HAVE_STRNCASECMP = 0; then + AC_LIBOBJ([strncasecmp]) gl_PREREQ_STRNCASECMP - ]) + fi gl_FUNC_STRCASESTR if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then AC_LIBOBJ([strcasestr]) @@ -693,76 +404,68 @@ AC_DEFUN([gl_INIT], fi gl_STRING_MODULE_INDICATOR([strcasestr]) gl_FUNC_STRERROR - gl_CONDITIONAL([GL_COND_OBJ_STRERROR], [test $REPLACE_STRERROR = 1]) + if test $REPLACE_STRERROR = 1; then + AC_LIBOBJ([strerror]) + fi gl_MODULE_INDICATOR([strerror]) gl_STRING_MODULE_INDICATOR([strerror]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) - gl_CONDITIONAL([GL_COND_OBJ_STRERROR_OVERRIDE], - [test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1]) - AM_COND_IF([GL_COND_OBJ_STRERROR_OVERRIDE], [ + if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then + AC_LIBOBJ([strerror-override]) gl_PREREQ_SYS_H_WINSOCK2 - ]) - gl_STRING_H - gl_STRING_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - gl_STRINGS_H - gl_STRINGS_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P + fi + gl_HEADER_STRING_H + gl_HEADER_STRINGS_H + gl_FUNC_STRNDUP + if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then + AC_LIBOBJ([strndup]) + fi + gl_STRING_MODULE_INDICATOR([strndup]) + gl_FUNC_STRNLEN + if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then + AC_LIBOBJ([strnlen]) + gl_PREREQ_STRNLEN + fi + gl_STRING_MODULE_INDICATOR([strnlen]) gl_FUNC_STRSEP - gl_CONDITIONAL([GL_COND_OBJ_STRSEP], [test $HAVE_STRSEP = 0]) - AM_COND_IF([GL_COND_OBJ_STRSEP], [ + if test $HAVE_STRSEP = 0; then + AC_LIBOBJ([strsep]) gl_PREREQ_STRSEP - ]) + fi gl_STRING_MODULE_INDICATOR([strsep]) gl_FUNC_STRSTR_SIMPLE if test $REPLACE_STRSTR = 1; then AC_LIBOBJ([strstr]) fi gl_STRING_MODULE_INDICATOR([strstr]) - gl_SYS_SOCKET_H - gl_SYS_SOCKET_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - gl_SYS_STAT_H - gl_SYS_STAT_H_REQUIRE_DEFAULTS + gl_HEADER_SYS_SOCKET AC_PROG_MKDIR_P gl_SYS_TYPES_H - gl_SYS_TYPES_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P - gl_SYS_UIO_H - gl_SYS_UIO_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - AC_REQUIRE([gl_THREADLIB]) - gl_TIME_H - gl_TIME_H_REQUIRE_DEFAULTS + gl_HEADER_SYS_UIO AC_PROG_MKDIR_P + gl_THREADLIB + gl_HEADER_TIME_H gl_TIME_R - gl_CONDITIONAL([GL_COND_OBJ_TIME_R], - [test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1]) - AM_COND_IF([GL_COND_OBJ_TIME_R], [ + if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then + AC_LIBOBJ([time_r]) gl_PREREQ_TIME_R - ]) + fi gl_TIME_MODULE_INDICATOR([time_r]) gl_FUNC_TIMEGM - gl_CONDITIONAL([GL_COND_OBJ_TIMEGM], - [test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1]) - AM_COND_IF([GL_COND_OBJ_TIMEGM], [ + if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then + AC_LIBOBJ([timegm]) gl_PREREQ_TIMEGM - ]) + fi gl_TIME_MODULE_INDICATOR([timegm]) gl_UNISTD_H - gl_UNISTD_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - gl_FUNC_GLIBC_UNLOCKED_IO gl_FUNC_UNSETENV - gl_CONDITIONAL([GL_COND_OBJ_UNSETENV], - [test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1]) - AM_COND_IF([GL_COND_OBJ_UNSETENV], [ + if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then + AC_LIBOBJ([unsetenv]) gl_PREREQ_UNSETENV - ]) + fi gl_STDLIB_MODULE_INDICATOR([unsetenv]) - AC_C_VARARRAYS - AC_REQUIRE([AC_C_RESTRICT]) gl_FUNC_VASNPRINTF gl_FUNC_VASPRINTF gl_STDIO_MODULE_INDICATOR([vasprintf]) @@ -772,34 +475,16 @@ AC_DEFUN([gl_INIT], gl_FUNC_VSNPRINTF gl_STDIO_MODULE_INDICATOR([vsnprintf]) gl_WCHAR_H - gl_WCHAR_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P gl_FUNC_WCRTOMB - gl_CONDITIONAL([GL_COND_OBJ_WCRTOMB], - [test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1]) - AM_COND_IF([GL_COND_OBJ_WCRTOMB], [ + if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then + AC_LIBOBJ([wcrtomb]) gl_PREREQ_WCRTOMB - ]) + fi gl_WCHAR_MODULE_INDICATOR([wcrtomb]) gl_WCTYPE_H - gl_WCTYPE_H_REQUIRE_DEFAULTS - AC_PROG_MKDIR_P - AC_REQUIRE([AC_CANONICAL_HOST]) - gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_MUTEX], - [case "$host_os" in mingw*) true;; *) false;; esac]) - AC_REQUIRE([AC_CANONICAL_HOST]) - gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_ONCE], - [case "$host_os" in mingw*) true;; *) false;; esac]) - AC_REQUIRE([AC_CANONICAL_HOST]) - gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_RECMUTEX], - [case "$host_os" in mingw*) true;; *) false;; esac]) - AC_REQUIRE([AC_CANONICAL_HOST]) - gl_CONDITIONAL([GL_COND_OBJ_WINDOWS_RWLOCK], - [case "$host_os" in mingw*) true;; *) false;; esac]) gl_XALLOC - gl_MODULE_INDICATOR([xalloc]) - gl_MODULE_INDICATOR([xalloc-die]) gl_XSIZE + gl_XSTRNDUP # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || @@ -812,8 +497,6 @@ AC_DEFUN([gl_INIT], m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) - m4_popdef([GL_MODULE_INDICATOR_PREFIX]) - m4_popdef([GL_MACRO_PREFIX]) m4_popdef([gl_LIBSOURCES_DIR]) m4_popdef([gl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) @@ -822,28 +505,16 @@ AC_DEFUN([gl_INIT], AC_CONFIG_COMMANDS_PRE([ gl_libobjs= gl_ltlibobjs= - gl_libobjdeps= if test -n "$gl_LIBOBJS"; then # Remove the extension. -changequote(,)dnl sed_drop_objext='s/\.o$//;s/\.obj$//' - sed_dirname1='s,//*,/,g' - sed_dirname2='s,\(.\)/$,\1,' - sed_dirname3='s,^[^/]*$,.,' - sed_dirname4='s,\(.\)/[^/]*$,\1,' - sed_basename1='s,.*/,,' -changequote([, ])dnl for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" - i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` - i_base=`echo "$i" | sed -e "$sed_basename1"` - gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" done fi AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) - AC_SUBST([gl_LIBOBJDEPS], [$gl_libobjdeps]) ]) gltests_libdeps= gltests_ltlibdeps= @@ -852,11 +523,8 @@ changequote([, ])dnl m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) - m4_pushdef([GL_MACRO_PREFIX], [gltests]) - m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) gl_COMMON gl_source_base='tests' - gl_source_base_prefix= changequote(,)dnl gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl @@ -875,8 +543,6 @@ changequote([, ])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) - m4_popdef([GL_MODULE_INDICATOR_PREFIX]) - m4_popdef([GL_MACRO_PREFIX]) m4_popdef([gltests_LIBSOURCES_DIR]) m4_popdef([gltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) @@ -885,30 +551,17 @@ changequote([, ])dnl AC_CONFIG_COMMANDS_PRE([ gltests_libobjs= gltests_ltlibobjs= - gltests_libobjdeps= if test -n "$gltests_LIBOBJS"; then # Remove the extension. -changequote(,)dnl sed_drop_objext='s/\.o$//;s/\.obj$//' - sed_dirname1='s,//*,/,g' - sed_dirname2='s,\(.\)/$,\1,' - sed_dirname3='s,^[^/]*$,.,' - sed_dirname4='s,\(.\)/[^/]*$,\1,' - sed_basename1='s,.*/,,' -changequote([, ])dnl for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" - i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` - i_base=`echo "$i" | sed -e "$sed_basename1"` - gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" done fi AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) - AC_SUBST([gltests_LIBOBJDEPS], [$gltests_libobjdeps]) ]) - AC_REQUIRE([gl_CC_GNULIB_WARNINGS]) LIBGNU_LIBDEPS="$gl_libdeps" AC_SUBST([LIBGNU_LIBDEPS]) LIBGNU_LTLIBDEPS="$gl_ltlibdeps" @@ -972,130 +625,76 @@ AC_DEFUN([gltests_LIBSOURCES], [ # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ - lib/_Noreturn.h - lib/af_alg.c - lib/af_alg.h + build-aux/config.rpath + build-aux/snippet/_Noreturn.h + build-aux/snippet/arg-nonnull.h + build-aux/snippet/c++defs.h + build-aux/snippet/warn-on-use.h lib/alloca.in.h - lib/arg-nonnull.h lib/arpa_inet.in.h lib/asnprintf.c lib/asprintf.c - lib/assert.in.h - lib/attribute.h lib/base64.c lib/base64.h lib/basename-lgpl.c - lib/basename-lgpl.h lib/basename.c lib/btowc.c - lib/byteswap.in.h - lib/c++defs.h - lib/calloc.c - lib/cdefs.h - lib/cloexec.c - lib/cloexec.h - lib/close.c + lib/config.charset lib/dirname-lgpl.c lib/dirname.c lib/dirname.h - lib/dup2.c - lib/dynarray.h + lib/dosname.h lib/errno.in.h lib/error.c lib/error.h lib/exitfail.c lib/exitfail.h - lib/fcntl.c - lib/fcntl.in.h lib/fd-hook.c lib/fd-hook.h - lib/fflush.c - lib/filename.h lib/float+.h lib/float.c lib/float.in.h lib/floor.c lib/floorf.c - lib/fopen.c - lib/fpurge.c - lib/freading.c - lib/freading.h - lib/free.c - lib/fseek.c - lib/fseeko.c - lib/fstat.c lib/fsusage.c lib/fsusage.h - lib/ftell.c - lib/ftello.c + lib/full-read.c + lib/full-read.h + lib/full-write.c lib/gai_strerror.c lib/getaddrinfo.c - lib/getdelim.c - lib/getdtablesize.c lib/gethostname.c - lib/getline.c lib/getloadavg.c - lib/getopt-cdefs.in.h - lib/getopt-core.h - lib/getopt-ext.h - lib/getopt-pfx-core.h - lib/getopt-pfx-ext.h lib/getopt.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h - lib/getprogname.c - lib/getprogname.h lib/gettext.h - lib/gl_openssl.h lib/glthread/lock.c lib/glthread/lock.h lib/glthread/threadlib.c - lib/hard-locale.c - lib/hard-locale.h - lib/ialloc.c - lib/ialloc.h lib/idpriv-droptemp.c lib/idpriv.h - lib/idx.h lib/inet_ntop.c - lib/intprops-internal.h lib/intprops.h - lib/inttypes.in.h lib/itold.c lib/langinfo.in.h - lib/lc-charset-dispatch.c - lib/lc-charset-dispatch.h - lib/libc-config.h - lib/limits.in.h lib/localcharset.c lib/localcharset.h lib/locale.in.h lib/localeconv.c - lib/lseek.c lib/malloc.c - lib/malloc/dynarray-skeleton.c - lib/malloc/dynarray.h - lib/malloc/dynarray_at_failure.c - lib/malloc/dynarray_emplace_enlarge.c - lib/malloc/dynarray_finalize.c - lib/malloc/dynarray_resize.c - lib/malloc/dynarray_resize_clear.c lib/malloca.c lib/malloca.h + lib/malloca.valgrind lib/math.c lib/math.in.h - lib/mbrtowc-impl-utf8.h - lib/mbrtowc-impl.h lib/mbrtowc.c lib/mbsinit.c lib/mbtowc-impl.h - lib/mbtowc-lock.c - lib/mbtowc-lock.h lib/mbtowc.c lib/memchr.c lib/memchr.valgrind - lib/minmax.h lib/mktime-internal.h lib/mktime.c lib/mountlist.c @@ -1106,45 +705,33 @@ AC_DEFUN([gl_FILE_LIST], [ lib/msvc-nothrow.h lib/netdb.in.h lib/netinet_in.in.h - lib/nl_langinfo-lock.c lib/nl_langinfo.c - lib/open.c - lib/pathmax.h lib/printf-args.c lib/printf-args.h lib/printf-parse.c lib/printf-parse.h - lib/realloc.c - lib/reallocarray.c + lib/read.c + lib/ref-add.sin + lib/ref-del.sin lib/regcomp.c lib/regex.c lib/regex.h lib/regex_internal.c lib/regex_internal.h lib/regexec.c + lib/safe-read.c + lib/safe-read.h lib/setenv.c - lib/setlocale-lock.c - lib/setlocale_null.c - lib/setlocale_null.h - lib/sha256-stream.c - lib/sha256.c - lib/sha256.h + lib/sha1.c + lib/sha1.h lib/size_max.h lib/snprintf.c lib/sockets.c lib/sockets.h - lib/stat-time.c - lib/stat-time.h - lib/stat-w32.c - lib/stat-w32.h - lib/stat.c lib/stdalign.in.h - lib/stdckdint.in.h + lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h - lib/stdio-impl.h - lib/stdio-read.c - lib/stdio-write.c lib/stdio.in.h lib/stdlib.in.h lib/str-two-way.h @@ -1158,12 +745,12 @@ AC_DEFUN([gl_FILE_LIST], [ lib/strings.in.h lib/stripslash.c lib/strncasecmp.c + lib/strndup.c + lib/strnlen.c lib/strsep.c lib/strstr.c - lib/sys-limits.h lib/sys_socket.c lib/sys_socket.in.h - lib/sys_stat.in.h lib/sys_types.in.h lib/sys_uio.in.h lib/time.in.h @@ -1171,7 +758,6 @@ AC_DEFUN([gl_FILE_LIST], [ lib/timegm.c lib/unistd.c lib/unistd.in.h - lib/unlocked-io.h lib/unsetenv.c lib/vasnprintf.c lib/vasnprintf.h @@ -1179,43 +765,27 @@ AC_DEFUN([gl_FILE_LIST], [ lib/verify.h lib/vsnprintf.c lib/w32sock.h - lib/warn-on-use.h lib/wchar.in.h lib/wcrtomb.c lib/wctype-h.c lib/wctype.in.h - lib/windows-initguard.h - lib/windows-mutex.c - lib/windows-mutex.h - lib/windows-once.c - lib/windows-once.h - lib/windows-recmutex.c - lib/windows-recmutex.h - lib/windows-rwlock.c - lib/windows-rwlock.h lib/xalloc-die.c lib/xalloc-oversized.h lib/xalloc.h lib/xmalloc.c lib/xsize.c lib/xsize.h + lib/xstrndup.c + lib/xstrndup.h m4/00gnulib.m4 - m4/__inline.m4 - m4/absolute-header.m4 - m4/af_alg.m4 m4/alloca.m4 m4/arpa_inet_h.m4 - m4/assert_h.m4 m4/base64.m4 m4/btowc.m4 - m4/builtin-expect.m4 - m4/byteswap.m4 - m4/c-bool.m4 - m4/calloc.m4 - m4/close.m4 m4/codeset.m4 + m4/configmake.m4 + m4/dirname.m4 m4/double-slash-root.m4 - m4/dup2.m4 m4/eealloc.m4 m4/environ.m4 m4/errno_h.m4 @@ -1224,42 +794,37 @@ AC_DEFUN([gl_FILE_LIST], [ m4/extensions.m4 m4/extern-inline.m4 m4/fcntl-o.m4 - m4/fcntl.m4 - m4/fcntl_h.m4 - m4/fflush.m4 m4/float_h.m4 m4/floorf.m4 - m4/fopen.m4 - m4/fpurge.m4 - m4/freading.m4 - m4/free.m4 - m4/fseek.m4 - m4/fseeko.m4 - m4/fstat.m4 m4/fstypename.m4 m4/fsusage.m4 - m4/ftell.m4 - m4/ftello.m4 m4/getaddrinfo.m4 - m4/getdelim.m4 - m4/getdtablesize.m4 m4/gethostname.m4 - m4/getline.m4 m4/getloadavg.m4 m4/getopt.m4 - m4/getprogname.m4 - m4/gl-openssl.m4 + m4/gettext.m4 + m4/glibc2.m4 + m4/glibc21.m4 m4/gnulib-common.m4 m4/hostent.m4 + m4/iconv.m4 m4/idpriv.m4 m4/include_next.m4 m4/inet_ntop.m4 + m4/intdiv0.m4 + m4/intl.m4 + m4/intldir.m4 + m4/intlmacosx.m4 + m4/intmax.m4 m4/intmax_t.m4 - m4/inttypes.m4 + m4/inttypes-pri.m4 m4/inttypes_h.m4 m4/langinfo_h.m4 m4/largefile.m4 - m4/limits-h.m4 + m4/lcmessage.m4 + m4/lib-ld.m4 + m4/lib-link.m4 + m4/lib-prefix.m4 m4/localcharset.m4 m4/locale-fr.m4 m4/locale-ja.m4 @@ -1267,7 +832,8 @@ AC_DEFUN([gl_FILE_LIST], [ m4/locale_h.m4 m4/localeconv.m4 m4/lock.m4 - m4/lseek.m4 + m4/longlong.m4 + m4/ls-mntd-fs.m4 m4/malloc.m4 m4/malloca.m4 m4/math_h.m4 @@ -1276,10 +842,8 @@ AC_DEFUN([gl_FILE_LIST], [ m4/mbstate_t.m4 m4/mbtowc.m4 m4/memchr.m4 - m4/minmax.m4 m4/mktime.m4 m4/mmap-anon.m4 - m4/mode_t.m4 m4/mountlist.m4 m4/msvc-inval.m4 m4/msvc-nothrow.m4 @@ -1287,22 +851,20 @@ AC_DEFUN([gl_FILE_LIST], [ m4/netdb_h.m4 m4/netinet_in_h.m4 m4/nl_langinfo.m4 + m4/nls.m4 m4/nocrash.m4 m4/off_t.m4 - m4/open-cloexec.m4 - m4/open-slash.m4 - m4/open.m4 - m4/pathmax.m4 - m4/pid_t.m4 + m4/onceonly.m4 + m4/po.m4 + m4/printf-posix.m4 m4/printf.m4 - m4/pthread_rwlock_rdlock.m4 - m4/realloc.m4 - m4/reallocarray.m4 + m4/progtest.m4 + m4/read.m4 m4/regex.m4 + m4/safe-read.m4 m4/servent.m4 m4/setenv.m4 - m4/setlocale_null.m4 - m4/sha256.m4 + m4/sha1.m4 m4/size_max.m4 m4/snprintf.m4 m4/socketlib.m4 @@ -1310,10 +872,8 @@ AC_DEFUN([gl_FILE_LIST], [ m4/socklen.m4 m4/sockpfaf.m4 m4/ssize_t.m4 - m4/stat-time.m4 - m4/stat.m4 - m4/std-gnu11.m4 m4/stdalign.m4 + m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdint_h.m4 @@ -1324,20 +884,19 @@ AC_DEFUN([gl_FILE_LIST], [ m4/strerror.m4 m4/string_h.m4 m4/strings_h.m4 + m4/strndup.m4 + m4/strnlen.m4 m4/strsep.m4 m4/strstr.m4 m4/sys_socket_h.m4 - m4/sys_stat_h.m4 m4/sys_types_h.m4 m4/sys_uio_h.m4 m4/threadlib.m4 m4/time_h.m4 m4/time_r.m4 m4/timegm.m4 - m4/ungetc.m4 + m4/uintmax_t.m4 m4/unistd_h.m4 - m4/unlocked-io.m4 - m4/vararrays.m4 m4/vasnprintf.m4 m4/vasprintf.m4 m4/visibility.m4 @@ -1350,5 +909,5 @@ AC_DEFUN([gl_FILE_LIST], [ m4/wint_t.m4 m4/xalloc.m4 m4/xsize.m4 - m4/zzgnulib.m4 + m4/xstrndup.m4 ]) diff --git a/gl/m4/hostent.m4 b/gl/m4/hostent.m4 index 3b2cc2b..72be876 100644 --- a/gl/m4/hostent.m4 +++ b/gl/m4/hostent.m4 @@ -1,5 +1,5 @@ -# hostent.m4 serial 4 -dnl Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc. +# hostent.m4 serial 2 +dnl Copyright (C) 2008, 2010-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, dnl with or without modifications, as long as this notice is preserved. @@ -8,12 +8,12 @@ AC_DEFUN([gl_HOSTENT], [ dnl Where are gethostent(), sethostent(), endhostent(), gethostbyname(), dnl gethostbyaddr() defined? - dnl - On Solaris < 11.4, they are in libnsl. Ignore libxnet. + dnl - On Solaris, they are in libnsl. Ignore libxnet. dnl - On Haiku, they are in libnetwork. dnl - On BeOS, they are in libnet. dnl - On native Windows, they are in ws2_32.dll. dnl - Otherwise they are in libc. - AC_REQUIRE([gl_SYS_SOCKET_H])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H + AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H HOSTENT_LIB= gl_saved_libs="$LIBS" AC_SEARCH_LIBS([gethostbyname], [nsl network net], diff --git a/gl/m4/iconv.m4 b/gl/m4/iconv.m4 new file mode 100644 index 0000000..a503646 --- /dev/null +++ b/gl/m4/iconv.m4 @@ -0,0 +1,268 @@ +# iconv.m4 serial 18 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2007-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, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +int main () +{ + int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +}]])], + [am_cv_func_iconv_works=yes], + [am_cv_func_iconv_works=no], + [ +changequote(,)dnl + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +changequote([,])dnl + ]) + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +m4_define([gl_iconv_AC_DEFUN], + m4_version_prereq([2.64], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [m4_ifdef([gl_00GNULIB], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [[AC_DEFUN( + [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + ]], + [[]])], + [am_cv_proto_iconv_arg1=""], + [am_cv_proto_iconv_arg1="const"]) + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) + fi +]) diff --git a/gl/m4/idpriv.m4 b/gl/m4/idpriv.m4 index fc3dd17..167f523 100644 --- a/gl/m4/idpriv.m4 +++ b/gl/m4/idpriv.m4 @@ -1,5 +1,5 @@ # idpriv.m4 serial 1 -dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/include_next.m4 b/gl/m4/include_next.m4 index 9f19215..108d945 100644 --- a/gl/m4/include_next.m4 +++ b/gl/m4/include_next.m4 @@ -1,13 +1,12 @@ -# include_next.m4 serial 26 -dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. +# include_next.m4 serial 23 +dnl Copyright (C) 2006-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, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Derek Price. -dnl Sets INCLUDE_NEXT, INCLUDE_NEXT_AS_FIRST_DIRECTIVE, PRAGMA_SYSTEM_HEADER, -dnl and PRAGMA_COLUMNS. +dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER. dnl dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to dnl 'include' otherwise. @@ -106,21 +105,19 @@ 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]) - - 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], + 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], [ #ifdef __TANDEM choke me #endif ], - [gl_cv_source_line_length_unlimited=no], - [gl_cv_source_line_length_unlimited=yes]) + [gl_cv_pragma_columns=yes], + [gl_cv_pragma_columns=no]) ]) - if test $gl_cv_source_line_length_unlimited = no; then + if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= @@ -178,40 +175,89 @@ AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [AC_CHECK_HEADERS_ONCE([$1]) ]) +dnl FIXME: gl_next_header and gl_header_exists must be used unquoted +dnl until we can assume autoconf 2.64 or newer. m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then - AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) + AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( [absolute name of <]m4_defn([gl_HEADER_NAME])[>], - [gl_next_header], + m4_defn([gl_next_header]), [m4_if([$2], [check], [AS_VAR_PUSHDEF([gl_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME])) - if test AS_VAR_GET([gl_header_exists]) = yes; then + if test AS_VAR_GET(gl_header_exists) = yes; then AS_VAR_POPDEF([gl_header_exists]) ]) - gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME) - AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME)) - AS_VAR_SET([gl_next_header], ['"'$gl_header'"']) + AC_LANG_CONFTEST( + [AC_LANG_SOURCE( + [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]] + )]) + dnl AIX "xlc -E" and "cc -E" omit #line directives for header + dnl files that contain only a #include of other header files and + dnl no non-comment tokens of their own. This leads to a failure + dnl to detect the absolute name of , , + dnl and others. The workaround is to force preservation + dnl of comments through option -C. This ensures all necessary + dnl #line directives are present. GCC supports option -C as well. + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac +changequote(,) + case "$host_os" in + mingw*) + dnl For the sake of native Windows compilers (excluding gcc), + dnl treat backslash as a directory separator, like /. + dnl Actually, these compilers use a double-backslash as + dnl directory separator, inside the + dnl # line "filename" + dnl directives. + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + dnl A sed expression that turns a string into a basic regular + dnl expression, for use within "/.../". + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' +changequote([,]) + gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ +changequote(,)dnl + s|^/[^/]|//&| +changequote([,])dnl + p + q + }' + dnl eval is necessary to expand gl_absname_cpp. + dnl Ultrix and Pyramid sh refuse to redirect output of eval, + dnl so use subshell. + AS_VAR_SET(gl_next_header, + ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | + sed -n "$gl_absolute_header_sed"`'"']) m4_if([$2], [check], [else - AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) + AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) fi ]) ]) fi AC_SUBST( AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), - [AS_VAR_GET([gl_next_header])]) + [AS_VAR_GET(gl_next_header)]) if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'gl_HEADER_NAME'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' - gl_next_as_first_directive=AS_VAR_GET([gl_next_header]) + gl_next_as_first_directive=AS_VAR_GET(gl_next_header) fi AC_SUBST( AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), diff --git a/gl/m4/inet_ntop.m4 b/gl/m4/inet_ntop.m4 index 48822d6..476f063 100644 --- a/gl/m4/inet_ntop.m4 +++ b/gl/m4/inet_ntop.m4 @@ -1,5 +1,5 @@ -# inet_ntop.m4 serial 21 -dnl Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. +# inet_ntop.m4 serial 19 +dnl Copyright (C) 2005-2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -16,7 +16,6 @@ AC_DEFUN([gl_FUNC_INET_NTOP], dnl Most platforms that provide inet_ntop define it in libc. dnl Solaris 8..10 provide inet_ntop in libnsl instead. dnl Solaris 2.6..7 provide inet_ntop in libresolv instead. - dnl Haiku provides it in -lnetwork. dnl Native Windows provides it in -lws2_32 instead, with a declaration in dnl , and it uses stdcall calling convention, not cdecl dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it). @@ -24,20 +23,19 @@ AC_DEFUN([gl_FUNC_INET_NTOP], INET_NTOP_LIB= gl_PREREQ_SYS_H_WINSOCK2 if test $HAVE_WINSOCK2_H = 1; then - dnl It needs to be overridden, because the stdcall calling convention - dnl is not compliant with POSIX. Set REPLACE_INET_NTOP in order to avoid - dnl a name conflict at the linker level, even though the header file - dnl declares inet_ntop only if _WIN32_WINNT >= 0x0600. - REPLACE_INET_NTOP=1 AC_CHECK_DECLS([inet_ntop],,, [[#include ]]) if test $ac_cv_have_decl_inet_ntop = yes; then + dnl It needs to be overridden, because the stdcall calling convention + dnl is not compliant with POSIX. + REPLACE_INET_NTOP=1 INET_NTOP_LIB="-lws2_32" else HAVE_DECL_INET_NTOP=0 + HAVE_INET_NTOP=0 fi else gl_save_LIBS=$LIBS - AC_SEARCH_LIBS([inet_ntop], [nsl resolv network], [], + AC_SEARCH_LIBS([inet_ntop], [nsl resolv], [], [AC_CHECK_FUNCS([inet_ntop]) if test $ac_cv_func_inet_ntop = no; then HAVE_INET_NTOP=0 diff --git a/gl/m4/intlmacosx.m4 b/gl/m4/intlmacosx.m4 new file mode 100644 index 0000000..ab97d39 --- /dev/null +++ b/gl/m4/intlmacosx.m4 @@ -0,0 +1,56 @@ +# intlmacosx.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2004-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, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in Mac OS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyCurrent();]])], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/gl/m4/intmax_t.m4 b/gl/m4/intmax_t.m4 index ef32e1b..6ea7053 100644 --- a/gl/m4/intmax_t.m4 +++ b/gl/m4/intmax_t.m4 @@ -1,5 +1,5 @@ -# intmax_t.m4 serial 9 -dnl Copyright (C) 1997-2004, 2006-2007, 2009-2023 Free Software Foundation, +# intmax_t.m4 serial 8 +dnl Copyright (C) 1997-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -19,7 +19,11 @@ AC_DEFUN([gl_AC_TYPE_INTMAX_T], AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then - AC_DEFINE_UNQUOTED([intmax_t], [long long], + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) + test $ac_cv_type_long_long_int = yes \ + && ac_type='long long' \ + || ac_type='long' + AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if and don't define.]) else AC_DEFINE([HAVE_INTMAX_T], [1], @@ -53,7 +57,11 @@ AC_DEFUN([gt_AC_TYPE_INTMAX_T], AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in or .]) else - AC_DEFINE_UNQUOTED([intmax_t], [long long], + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) + test $ac_cv_type_long_long_int = yes \ + && ac_type='long long' \ + || ac_type='long' + AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if and don't define.]) fi ]) diff --git a/gl/m4/inttypes.m4 b/gl/m4/inttypes.m4 deleted file mode 100644 index bf2eab2..0000000 --- a/gl/m4/inttypes.m4 +++ /dev/null @@ -1,180 +0,0 @@ -# inttypes.m4 serial 36 -dnl Copyright (C) 2006-2023 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 Derek Price, Bruno Haible. -dnl Test whether is supported or must be substituted. - -AC_DEFUN_ONCE([gl_INTTYPES_H], -[ - AC_REQUIRE([gl_INTTYPES_INCOMPLETE]) - gl_INTTYPES_PRI_SCN -]) - -AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE], -[ - AC_REQUIRE([gl_STDINT_H]) - AC_CHECK_HEADERS_ONCE([inttypes.h]) - - dnl Override always, so that the portability warnings work. - AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) - gl_CHECK_NEXT_HEADERS([inttypes.h]) - - AC_REQUIRE([gl_MULTIARCH]) - - dnl Check for declarations of anything we want to poison if the - dnl corresponding gnulib module is not in use. - gl_WARN_ON_USE_PREPARE([[#include - ]], [imaxabs imaxdiv strtoimax strtoumax]) - - AC_REQUIRE([AC_C_RESTRICT]) -]) - -# Ensure that the PRI* and SCN* macros are defined appropriately. -AC_DEFUN([gl_INTTYPES_PRI_SCN], -[ - PRIPTR_PREFIX= - if $GL_GENERATE_STDINT_H; then - dnl Using the gnulib . It defines intptr_t to 'long' or - dnl 'long long', depending on _WIN64. - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ - #ifdef _WIN64 - LLP64 - #endif - ]]) - ], - [PRIPTR_PREFIX='"l"'], - [PRIPTR_PREFIX='"ll"']) - else - dnl Using the system's . - for glpfx in '' l ll I64; do - case $glpfx in - '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - I64) gltype1='__int64';; - esac - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#include - extern intptr_t foo; - extern $gltype1 foo;]])], - [PRIPTR_PREFIX='"'$glpfx'"']) - test -n "$PRIPTR_PREFIX" && break - done - fi - AC_SUBST([PRIPTR_PREFIX]) - - gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [INT32_MAX_LT_INTMAX_MAX], - [defined INT32_MAX && defined INTMAX_MAX], - [INT32_MAX < INTMAX_MAX], - [sizeof (int) < sizeof (long long int)]) - if test $APPLE_UNIVERSAL_BUILD = 0; then - gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [INT64_MAX_EQ_LONG_MAX], - [defined INT64_MAX], - [INT64_MAX == LONG_MAX], - [sizeof (long long int) == sizeof (long int)]) - else - INT64_MAX_EQ_LONG_MAX=-1 - fi - gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [UINT32_MAX_LT_UINTMAX_MAX], - [defined UINT32_MAX && defined UINTMAX_MAX], - [UINT32_MAX < UINTMAX_MAX], - [sizeof (unsigned int) < sizeof (unsigned long long int)]) - if test $APPLE_UNIVERSAL_BUILD = 0; then - gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [UINT64_MAX_EQ_ULONG_MAX], - [defined UINT64_MAX], - [UINT64_MAX == ULONG_MAX], - [sizeof (unsigned long long int) == sizeof (unsigned long int)]) - else - UINT64_MAX_EQ_ULONG_MAX=-1 - fi -]) - -# Define the symbol $1 to be 1 if the condition is true, 0 otherwise. -# If $2 is true, the condition is $3; otherwise if long long int is supported -# approximate the condition with $4; otherwise, assume the condition is false. -# The condition should work on all C99 platforms; the approximations should be -# good enough to work on all practical pre-C99 platforms. -# $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants. -AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION], -[ - AC_CACHE_CHECK([whether $3], - [gl_cv_test_$1], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[/* Work also in C++ mode. */ - #define __STDC_LIMIT_MACROS 1 - - /* Work if build is not clean. */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H - - #include - #if HAVE_STDINT_H - #include - #endif - - #if $2 - #define CONDITION ($3) - #else - #define CONDITION ($4) - #endif - int test[CONDITION ? 1 : -1];]])], - [gl_cv_test_$1=yes], - [gl_cv_test_$1=no])]) - if test $gl_cv_test_$1 = yes; then - $1=1; - else - $1=0; - fi - AC_SUBST([$1]) -]) - -# gl_INTTYPES_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. -AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR], -[ - dnl Ensure to expand the default settings once only. - gl_INTTYPES_H_REQUIRE_DEFAULTS - gl_MODULE_INDICATOR_SET_VARIABLE([$1]) -]) - -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_INTTYPES_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXABS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXDIV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOIMAX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUMAX]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) -]) - -AC_DEFUN([gl_INTTYPES_H_DEFAULTS], -[ - dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS]) - HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV]) - HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) - HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) - HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T]) - 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]) - PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX]) - UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX]) - UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX]) -]) diff --git a/gl/m4/inttypes_h.m4 b/gl/m4/inttypes_h.m4 index 68c60e9..5f05ac5 100644 --- a/gl/m4/inttypes_h.m4 +++ b/gl/m4/inttypes_h.m4 @@ -1,5 +1,5 @@ # inttypes_h.m4 serial 10 -dnl Copyright (C) 1997-2004, 2006, 2008-2023 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2004, 2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/langinfo_h.m4 b/gl/m4/langinfo_h.m4 index b17a526..73bef8b 100644 --- a/gl/m4/langinfo_h.m4 +++ b/gl/m4/langinfo_h.m4 @@ -1,10 +1,10 @@ -# langinfo_h.m4 serial 12 -dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. +# langinfo_h.m4 serial 7 +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_LANGINFO_H], +AC_DEFUN([gl_LANGINFO_H], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) @@ -17,17 +17,13 @@ AC_DEFUN_ONCE([gl_LANGINFO_H], dnl Determine whether exists. It is missing on mingw and BeOS. HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 - HAVE_LANGINFO_ALTMON=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 AC_CHECK_HEADERS_ONCE([langinfo.h]) if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 - dnl Determine what defines. - dnl CODESET is missing on OpenBSD 3.8. - dnl ERA etc. are missing on OpenBSD 6.7. - dnl T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3. - dnl ALTMON_* are missing on glibc 2.26 and many other systems. + dnl Determine what defines. CODESET and ERA etc. are missing + dnl on OpenBSD 3.8. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3. AC_CACHE_CHECK([whether langinfo.h defines CODESET], [gl_cv_header_langinfo_codeset], [AC_COMPILE_IFELSE( @@ -52,18 +48,6 @@ int a = T_FMT_AMPM; if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi - AC_CACHE_CHECK([whether langinfo.h defines ALTMON_1], - [gl_cv_header_langinfo_altmon], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#include -int a = ALTMON_1; -]])], - [gl_cv_header_langinfo_altmon=yes], - [gl_cv_header_langinfo_altmon=no]) - ]) - if test $gl_cv_header_langinfo_altmon = yes; then - HAVE_LANGINFO_ALTMON=1 - fi AC_CACHE_CHECK([whether langinfo.h defines ERA], [gl_cv_header_langinfo_era], [AC_COMPILE_IFELSE( @@ -94,7 +78,6 @@ int a = YESEXPR; AC_SUBST([HAVE_LANGINFO_H]) AC_SUBST([HAVE_LANGINFO_CODESET]) AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM]) - AC_SUBST([HAVE_LANGINFO_ALTMON]) AC_SUBST([HAVE_LANGINFO_ERA]) AC_SUBST([HAVE_LANGINFO_YESEXPR]) @@ -104,33 +87,18 @@ int a = YESEXPR; ]], [nl_langinfo]) ]) -# gl_LANGINFO_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_LANGINFO_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_LANGINFO_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NL_LANGINFO]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) -]) - AC_DEFUN([gl_LANGINFO_H_DEFAULTS], [ + GNULIB_NL_LANGINFO=0; AC_SUBST([GNULIB_NL_LANGINFO]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO]) REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO]) diff --git a/gl/m4/largefile.m4 b/gl/m4/largefile.m4 index 7fb81b8..1e605e3 100644 --- a/gl/m4/largefile.m4 +++ b/gl/m4/largefile.m4 @@ -1,319 +1,104 @@ # Enable large files on systems where this is not the default. -# Enable support for files on Linux file systems with 64-bit inode numbers. -# Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc. +# Copyright 1992-1996, 1998-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# The following macro works around a problem in Autoconf's AC_FUNC_FSEEKO: -# It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this -# setting of _LARGEFILE_SOURCE is needed so that declares fseeko -# and ftello in C++ mode as well. -# Fixed in Autoconf 2.72, which has AC_SYS_YEAR2038. -AC_DEFUN([gl_SET_LARGEFILE_SOURCE], - m4_ifndef([AC_SYS_YEAR2038], [[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_FUNC_FSEEKO - case "$host_os" in - hpux*) - AC_DEFINE([_LARGEFILE_SOURCE], [1], - [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).]) - ;; - esac - ]]) -) - -# Work around a problem in autoconf <= 2.69: +# The following implementation works around a problem in autoconf <= 2.69; # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, # or configures them incorrectly in some cases. -m4_version_prereq([2.70], [], [ +m4_version_prereq([2.70], [] ,[ # _AC_SYS_LARGEFILE_TEST_INCLUDES # ------------------------------- m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], -[#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]];[]dnl -]) -])# m4_version_prereq 2.70 - -# Support AC_SYS_YEAR2038, even if Autoconf 2.71 or earlier. -# This code is taken from Autoconf master. -m4_ifndef([AC_SYS_YEAR2038], [ - -# _AC_SYS_YEAR2038_TEST_CODE -# -------------------------- -# C code used to probe for time_t that can represent time points more -# than 2**31 - 1 seconds after the epoch. With the usual Unix epoch, -# these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian), -# hence the name. -AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE], -[[ - #include - /* Check that time_t can represent 2**32 - 1 correctly. */ - #define LARGE_TIME_T \\ - ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) - int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 - && LARGE_TIME_T % 65537 == 0) - ? 1 : -1]; -]]) - -# _AC_SYS_YEAR2038_OPTIONS -# ------------------------ -# List of known ways to enable support for large time_t. If you change -# this list you probably also need to change the AS_CASE at the end of -# _AC_SYS_YEAR2038_PROBE. -m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize( - ["none needed"] dnl 64-bit and newer 32-bit Unix - ["-D_TIME_BITS=64"] dnl glibc 2.34 with some 32-bit ABIs - ["-D__MINGW_USE_VC2005_COMPAT"] dnl 32-bit MinGW - ["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"] - dnl 32-bit MinGW (misconfiguration) -)) - -# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED]) -# ----------------------------------------- -# Subroutine of AC_SYS_YEAR2038. Probe for time_t that can represent -# time points more than 2**31 - 1 seconds after the epoch (dates after -# 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts -# to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to -# "support not detected" if none of them worked. Then, set compilation -# options and #defines as necessary to enable large time_t support. -# -# Note that we do not test whether mktime, localtime, etc. handle -# large values of time_t correctly, as that would require use of -# AC_TRY_RUN. Note also that some systems only support large time_t -# together with large off_t. -# -# If support is not detected, the behavior depends on which of the -# top-level AC_SYS_YEAR2038 macros was used (see below). -# -# If you change this macro you may also need to change -# _AC_SYS_YEAR2038_OPTIONS. -AC_DEFUN([_AC_SYS_YEAR2038_PROBE], -[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038], - [ac_cv_sys_year2038_opts], - [ac_save_CPPFLAGS="$CPPFLAGS" - ac_opt_found=no - for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do - AS_IF([test x"$ac_opt" != x"none needed"], - [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])], - [ac_cv_sys_year2038_opts="$ac_opt" - ac_opt_found=yes]) - test $ac_opt_found = no || break - done - CPPFLAGS="$ac_save_CPPFLAGS" - test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"]) - -ac_have_year2038=yes -AS_CASE([$ac_cv_sys_year2038_opts], - ["none needed"], [], - ["support not detected"], - [ac_have_year2038=no - AS_CASE([$enable_year2038], - [yes], - [# If we're not cross compiling and 'touch' works with a large - # timestamp, then we can presume the system supports wider time_t - # *somehow* and we just weren't able to detect it. One common - # case that we deliberately *don't* probe for is a system that - # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers - # wide time_t. (It would be inappropriate for us to override an - # intentional use of -m32.) Error out, demanding use of - # --disable-year2038 if this is intentional. - AS_IF([test $cross_compiling = no], - [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null], - [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`], - [*'Feb 7 2106'* | *'Feb 7 17:10'*], - [AC_MSG_FAILURE(m4_text_wrap( - [this system appears to support timestamps after January 2038, - but no mechanism for enabling wide 'time_t' was detected. - Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.) - To proceed with 32-bit time_t, configure with '--disable-year2038'.], - [], [], [55]))])])])])], - - ["-D_TIME_BITS=64"], - [AC_DEFINE([_TIME_BITS], [64], - [Number of bits in time_t, on hosts where this is settable.])], - - ["-D__MINGW_USE_VC2005_COMPAT=1"], - [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1], - [Define to 1 on platforms where this makes time_t a 64-bit type.])], - - ["-U_USE_32_BIT_TIME_T"*], - [AC_MSG_FAILURE(m4_text_wrap( - [the 'time_t' type is currently forced to be 32-bit. - It will stop working after January 2038. - Remove _USE_32BIT_TIME_T from the compiler flags.], - [], [], [55]))], - - [AC_MSG_ERROR( - [internal error: bad value for \$ac_cv_sys_year2038_opts])]) -]) - -# _AC_SYS_YEAR2038_ENABLE -# ----------------------- -# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN. -# Depending on which of the YEAR2038 macros was used, add either an -# --enable-year2038, or a --disable-year2038, or no option at all to -# the configure script. Note that this is expanded very late and -# therefore there cannot be any code in the AC_ARG_ENABLE. The -# default value for enable_year2038 is emitted unconditionally -# because the generated code always looks at this variable. -m4_define([_AC_SYS_YEAR2038_ENABLE], -[m4_divert_text([DEFAULTS], - m4_provide_if([AC_SYS_YEAR2038], - [enable_year2038=yes], - [enable_year2038=no]))]dnl -[AC_ARG_ENABLE([year2038], - m4_provide_if([AC_SYS_YEAR2038], - [AS_HELP_STRING([--disable-year2038], - [do not support timestamps after 2038])], - [AS_HELP_STRING([--enable-year2038], - [support timestamps after 2038])]))]) - -# _AC_SYS_YEAR2038_OPT_IN -# ----------------------- -# If the --enable-year2038 option is given to configure, attempt to -# detect and activate support for large time_t on 32-bit systems. -# This macro is automatically invoked by AC_SYS_LARGEFILE when large -# *file* support is detected. It does not AC_REQUIRE AC_SYS_LARGEFILE -# to avoid a dependency loop, and is therefore unsafe to expose as a -# documented macro. -AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN], -[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl - AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE]) - AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) -])]) - -# AC_SYS_YEAR2038 -# --------------- -# Attempt to detect and activate support for large time_t. -# On systems where time_t is not always 64 bits, this probe can be -# skipped by passing the --disable-year2038 option to configure. -AC_DEFUN([AC_SYS_YEAR2038], -[AC_REQUIRE([AC_SYS_LARGEFILE])]dnl -[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl - AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE]) - AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) -])]) - -# _AC_SYS_LARGEFILE_TEST_CODE -# --------------------------- -# C code used to probe for large file support. -m4_define([_AC_SYS_LARGEFILE_TEST_CODE], [@%:@include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]];[]dnl + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]];[]dnl ]) -# _AC_SYS_LARGEFILE_OPTIONS -# ------------------------- -# List of known ways to enable support for large files. If you change -# this list you probably also need to change the AS_CASE at the end of -# _AC_SYS_LARGEFILE_PROBE. -m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize( - ["none needed"] dnl Most current systems - ["-D_FILE_OFFSET_BITS=64"] dnl X/Open LFS spec - ["-D_LARGE_FILES=1"] dnl AIX (which versions?) - ["-n32"] dnl Irix 6.2 w/ SGI compiler -)) -# _AC_SYS_LARGEFILE_PROBE -# ----------------------- -# Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set -# the cache variable ac_cv_sys_largefile_opts to one of the values in -# the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if -# none of the options in that list worked. Then, set compilation -# options and #defines as necessary to enable large file support. -# -# If large file support is not detected, the behavior depends on which of -# the top-level AC_SYS_LARGEFILE macros was used (see below). -# -# If you change this macro you may also need to change -# _AC_SYS_LARGEFILE_OPTIONS. -AC_DEFUN([_AC_SYS_LARGEFILE_PROBE], -[AC_CACHE_CHECK([for $CC option to enable large file support], - [ac_cv_sys_largefile_opts], - [ac_save_CC="$CC" - ac_opt_found=no - for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do - AS_IF([test x"$ac_opt" != x"none needed"], - [CC="$ac_save_CC $ac_opt"]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])], - [ac_cv_sys_largefile_opts="$ac_opt" - ac_opt_found=yes]) - test $ac_opt_found = no || break - done - CC="$ac_save_CC" - test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"]) +# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, +# CACHE-VAR, +# DESCRIPTION, +# PROLOGUE, [FUNCTION-BODY]) +# -------------------------------------------------------- +m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], +[AC_CACHE_CHECK([for $1 value needed for large files], [$3], +[while :; do + m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( + [AC_LANG_PROGRAM([$5], [$6])], + [$3=no; break]) + m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( + [AC_LANG_PROGRAM([@%:@define $1 $2 +$5], [$6])], + [$3=$2; break]) + $3=unknown + break +done]) +case $$3 in #( + no | unknown) ;; + *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; +esac +rm -rf conftest*[]dnl +])# _AC_SYS_LARGEFILE_MACRO_VALUE -ac_have_largefile=yes -AS_CASE([$ac_cv_sys_largefile_opts], - ["none needed"], [], - ["support not detected"], - [ac_have_largefile=no], - - ["-D_FILE_OFFSET_BITS=64"], - [AC_DEFINE([_FILE_OFFSET_BITS], [64], - [Number of bits in a file offset, on hosts where this is settable.])], - - ["-D_LARGE_FILES=1"], - [AC_DEFINE([_LARGE_FILES], [1], - [Define to 1 on platforms where this makes off_t a 64-bit type.])], - - ["-n32"], - [CC="$CC -n32"], - - [AC_MSG_ERROR( - [internal error: bad value for \$ac_cv_sys_largefile_opts])]) - -_AC_SYS_YEAR2038_OPT_IN -]) - -# _AC_SYS_LARGEFILE_ENABLE -# ------------------------ -# Subroutine of AC_SYS_LARGEFILE. Note that this -# is expanded very late and therefore there cannot be any code in the -# AC_ARG_ENABLE. The default value for enable_largefile is emitted -# unconditionally because the generated shell code always looks at -# this variable. -m4_define([_AC_SYS_LARGEFILE_ENABLE], -[m4_divert_text([DEFAULTS], - enable_largefile=yes)]dnl -[AC_ARG_ENABLE([largefile], - [AS_HELP_STRING([--disable-largefile], [omit support for large files])])]) # AC_SYS_LARGEFILE # ---------------- # By default, many hosts won't let programs access large files; # one must use special compiler options to get large-file access to work. # For more details about this brain damage please see: -# http://www.unix.org/version2/whatsnew/lfs20mar.html -# Additionally, on Linux file systems with 64-bit inodes a file that happens -# to have a 64-bit inode number cannot be accessed by 32-bit applications on -# Linux x86/x86_64. This can occur with file systems such as XFS and NFS. -# This macro allows configuration to continue if the system doesn't support -# large files. +# http://www.unix-systems.org/version2/whatsnew/lfs20mar.html AC_DEFUN([AC_SYS_LARGEFILE], -[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl - AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE]) - AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE]) -])]) -])# m4_ifndef AC_SYS_YEAR2038 +[AC_ARG_ENABLE(largefile, + [ --disable-largefile omit support for large files]) +if test "$enable_largefile" != no; then + + AC_CACHE_CHECK([for special C compiler options needed for large files], + ac_cv_sys_largefile_CC, + [ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) + AC_COMPILE_IFELSE([], [break]) + CC="$CC -n32" + AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi]) + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, + ac_cv_sys_file_offset_bits, + [Number of bits in a file offset, on hosts where this is settable.], + [_AC_SYS_LARGEFILE_TEST_INCLUDES]) + if test $ac_cv_sys_file_offset_bits = unknown; then + _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, + ac_cv_sys_large_files, + [Define for large files, on AIX-style hosts.], + [_AC_SYS_LARGEFILE_TEST_INCLUDES]) + fi + + AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1], + [Enable large inode numbers on Mac OS X 10.5.]) +fi +])# AC_SYS_LARGEFILE +])# m4_version_prereq 2.70 # Enable large files on systems where this is implemented by Gnulib, not by the # system headers. @@ -341,24 +126,9 @@ AC_DEFUN([gl_LARGEFILE], else WINDOWS_64_BIT_OFF_T=0 fi - dnl Some mingw versions define, if _FILE_OFFSET_BITS=64, 'struct stat' - dnl to 'struct _stat32i64' or 'struct _stat64' (depending on - dnl _USE_32BIT_TIME_T), which has a 32-bit st_size member. - AC_CACHE_CHECK([for 64-bit st_size], [gl_cv_member_st_size_64], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - struct stat buf; - int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; - ]], - [[]])], - [gl_cv_member_st_size_64=yes], [gl_cv_member_st_size_64=no]) - ]) - if test $gl_cv_member_st_size_64 = no; then - WINDOWS_64_BIT_ST_SIZE=1 - else - WINDOWS_64_BIT_ST_SIZE=0 - fi + dnl But all native Windows platforms (including mingw64) have a 32-bit + dnl st_size member in 'struct stat'. + WINDOWS_64_BIT_ST_SIZE=1 ;; *) dnl Nothing to do on gnulib's side. diff --git a/gl/m4/lib-ld.m4 b/gl/m4/lib-ld.m4 new file mode 100644 index 0000000..c145e47 --- /dev/null +++ b/gl/m4/lib-ld.m4 @@ -0,0 +1,119 @@ +# lib-ld.m4 serial 6 +dnl Copyright (C) 1996-2003, 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, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 /dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/gl/m4/lib-prefix.m4 b/gl/m4/lib-prefix.m4 new file mode 100644 index 0000000..60908e8 --- /dev/null +++ b/gl/m4/lib-prefix.m4 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-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, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) diff --git a/gl/m4/limits-h.m4 b/gl/m4/limits-h.m4 deleted file mode 100644 index 5088fa1..0000000 --- a/gl/m4/limits-h.m4 +++ /dev/null @@ -1,41 +0,0 @@ -dnl Check whether limits.h has needed features. - -dnl Copyright 2016-2023 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. - -AC_DEFUN_ONCE([gl_LIMITS_H], -[ - gl_CHECK_NEXT_HEADERS([limits.h]) - - AC_CACHE_CHECK([whether limits.h has WORD_BIT, BOOL_WIDTH etc.], - [gl_cv_header_limits_width], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ - #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 - #endif - #include - long long llm = LLONG_MAX; - int wb = WORD_BIT; - int ullw = ULLONG_WIDTH; - int bw = BOOL_WIDTH; - ]])], - [gl_cv_header_limits_width=yes], - [gl_cv_header_limits_width=no])]) - if test "$gl_cv_header_limits_width" = yes; then - GL_GENERATE_LIMITS_H=false - else - GL_GENERATE_LIMITS_H=true - fi -]) - -dnl Unconditionally enables the replacement of . -AC_DEFUN([gl_REPLACE_LIMITS_H], -[ - AC_REQUIRE([gl_LIMITS_H]) - GL_GENERATE_LIMITS_H=true -]) diff --git a/gl/m4/localcharset.m4 b/gl/m4/localcharset.m4 index 15b6b2a..2e93e58 100644 --- a/gl/m4/localcharset.m4 +++ b/gl/m4/localcharset.m4 @@ -1,5 +1,5 @@ -# localcharset.m4 serial 8 -dnl Copyright (C) 2002, 2004, 2006, 2009-2023 Free Software Foundation, Inc. +# localcharset.m4 serial 7 +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, dnl with or without modifications, as long as this notice is preserved. @@ -8,4 +8,10 @@ AC_DEFUN([gl_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_REQUIRE([gl_FCNTL_O_FLAGS]) + AC_CHECK_DECLS_ONCE([getc_unlocked]) + + dnl Prerequisites of the lib/Makefile.am snippet. + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_GLIBC21]) ]) diff --git a/gl/m4/locale-fr.m4 b/gl/m4/locale-fr.m4 index 8c41fad..ef199e3 100644 --- a/gl/m4/locale-fr.m4 +++ b/gl/m4/locale-fr.m4 @@ -1,5 +1,5 @@ -# locale-fr.m4 serial 20 -dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. +# locale-fr.m4 serial 17 +dnl Copyright (C) 2003, 2005-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, dnl with or without modifications, as long as this notice is preserved. @@ -12,7 +12,8 @@ AC_DEFUN([gt_LOCALE_FR], AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ - AC_LANG_CONFTEST([AC_LANG_SOURCE([[ + AC_LANG_CONFTEST([AC_LANG_SOURCE([ +changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET @@ -23,14 +24,8 @@ AC_DEFUN([gt_LOCALE_FR], struct tm t; char buf[16]; int main () { - /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl - imitates locale dependent behaviour by looking at the environment - variables, and all locales use the UTF-8 encoding. */ -#if defined __BEOS__ || defined __HAIKU__ - return 1; -#else /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -38,9 +33,9 @@ int main () { if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -# else +#else if (setlocale (LC_ALL, "") == NULL) return 1; -# endif +#endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -49,35 +44,35 @@ int main () { some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -# if HAVE_LANGINFO_CODESET +#if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -# endif -# ifdef __CYGWIN__ +#endif +#ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -# endif +#endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; -# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ +#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; -# endif - return 0; #endif + return 0; } - ]])]) +changequote([,])dnl + ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets @@ -141,7 +136,8 @@ AC_DEFUN([gt_LOCALE_FR_UTF8], [ AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ - AC_LANG_CONFTEST([AC_LANG_SOURCE([[ + AC_LANG_CONFTEST([AC_LANG_SOURCE([ +changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET @@ -157,7 +153,7 @@ int main () { variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -203,7 +199,8 @@ int main () { #endif return 0; } - ]])]) +changequote([,])dnl + ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets diff --git a/gl/m4/locale-ja.m4 b/gl/m4/locale-ja.m4 index 2590173..132a3e7 100644 --- a/gl/m4/locale-ja.m4 +++ b/gl/m4/locale-ja.m4 @@ -1,5 +1,5 @@ -# locale-ja.m4 serial 15 -dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. +# locale-ja.m4 serial 12 +dnl Copyright (C) 2003, 2005-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, dnl with or without modifications, as long as this notice is preserved. @@ -12,7 +12,8 @@ AC_DEFUN([gt_LOCALE_JA], AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ - AC_LANG_CONFTEST([AC_LANG_SOURCE([[ + AC_LANG_CONFTEST([AC_LANG_SOURCE([ +changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET @@ -24,14 +25,9 @@ struct tm t; char buf[16]; int main () { - /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl - imitates locale dependent behaviour by looking at the environment - variables, and all locales use the UTF-8 encoding. */ -#if defined __BEOS__ || defined __HAIKU__ - return 1; -#else + const char *p; /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -39,9 +35,9 @@ int main () if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -# else +#else if (setlocale (LC_ALL, "") == NULL) return 1; -# endif +#endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -50,38 +46,35 @@ int main () some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -# if HAVE_LANGINFO_CODESET +#if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -# endif -# ifdef __CYGWIN__ +#endif +#ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -# endif +#endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ - { - const char *p; - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; - } + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; return 0; -#endif } - ]])]) +changequote([,])dnl + ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets diff --git a/gl/m4/locale-zh.m4 b/gl/m4/locale-zh.m4 index b9f9eef..4eed73f 100644 --- a/gl/m4/locale-zh.m4 +++ b/gl/m4/locale-zh.m4 @@ -1,5 +1,5 @@ -# locale-zh.m4 serial 15 -dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. +# locale-zh.m4 serial 12 +dnl Copyright (C) 2003, 2005-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, dnl with or without modifications, as long as this notice is preserved. @@ -12,7 +12,8 @@ AC_DEFUN([gt_LOCALE_ZH_CN], AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ - AC_LANG_CONFTEST([AC_LANG_SOURCE([[ + AC_LANG_CONFTEST([AC_LANG_SOURCE([ +changequote(,)dnl #include #include #include @@ -25,14 +26,9 @@ struct tm t; char buf[16]; int main () { - /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl - imitates locale dependent behaviour by looking at the environment - variables, and all locales use the UTF-8 encoding. */ -#if defined __BEOS__ || defined __HAIKU__ - return 1; -#else + const char *p; /* Check whether the given locale name is recognized by the system. */ -# if defined _WIN32 && !defined __CYGWIN__ +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -40,9 +36,9 @@ int main () if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; -# else +#else if (setlocale (LC_ALL, "") == NULL) return 1; -# endif +#endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. @@ -51,38 +47,35 @@ int main () some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ -# if HAVE_LANGINFO_CODESET +#if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } -# endif -# ifdef __CYGWIN__ +#endif +#ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; -# endif +#endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ - { - const char *p; - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; - } + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; -#endif } - ]])]) +changequote([,])dnl + ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets diff --git a/gl/m4/locale_h.m4 b/gl/m4/locale_h.m4 index a33a0a4..8bd12e8 100644 --- a/gl/m4/locale_h.m4 +++ b/gl/m4/locale_h.m4 @@ -1,13 +1,13 @@ -# locale_h.m4 serial 28 -dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. +# locale_h.m4 serial 19 +dnl Copyright (C) 2007, 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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_LOCALE_H], +AC_DEFUN([gl_LOCALE_H], [ - dnl Ensure to expand the default settings once only, before all statements - dnl that occur in other macros. + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) dnl Persuade glibc to define locale_t and the int_p_*, int_n_* @@ -17,9 +17,7 @@ AC_DEFUN_ONCE([gl_LOCALE_H], dnl If is replaced, then must also be replaced. AC_REQUIRE([gl_STDDEF_H]) - AC_REQUIRE([gl_LOCALE_T]) - - dnl Solaris 11.0 defines the int_p_*, int_n_* members of 'struct lconv' + dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv' dnl only if _LCONV_C99 is defined. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in @@ -39,6 +37,34 @@ AC_DEFUN_ONCE([gl_LOCALE_H], [gl_cv_header_locale_h_posix2001=yes], [gl_cv_header_locale_h_posix2001=no])]) + dnl Check for . + AC_CHECK_HEADERS_ONCE([xlocale.h]) + if test $ac_cv_header_xlocale_h = yes; then + HAVE_XLOCALE_H=1 + dnl Check whether use of locale_t requires inclusion of , + dnl e.g. on Mac OS X 10.5. If does not define locale_t by + dnl itself, we assume that will do so. + AC_CACHE_CHECK([whether locale.h defines locale_t], + [gl_cv_header_locale_has_locale_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + locale_t x;]], + [[]])], + [gl_cv_header_locale_has_locale_t=yes], + [gl_cv_header_locale_has_locale_t=no]) + ]) + if test $gl_cv_header_locale_has_locale_t = yes; then + gl_cv_header_locale_h_needs_xlocale_h=no + else + gl_cv_header_locale_h_needs_xlocale_h=yes + fi + else + HAVE_XLOCALE_H=0 + gl_cv_header_locale_h_needs_xlocale_h=no + fi + AC_SUBST([HAVE_XLOCALE_H]) + dnl Check whether 'struct lconv' is complete. dnl Bionic libc's 'struct lconv' is just a dummy. dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, @@ -56,20 +82,7 @@ AC_DEFUN_ONCE([gl_LOCALE_H], [gl_cv_sys_struct_lconv_ok=no]) ]) if test $gl_cv_sys_struct_lconv_ok = no; then - dnl On native Windows with MSVC, merely define these member names as macros. - dnl This avoids trouble in C++ mode. - case "$host_os" in - mingw*) - AC_EGREP_CPP([Special], [ -#ifdef _MSC_VER - Special -#endif - ], - [], - [REPLACE_STRUCT_LCONV=1]) - ;; - *) REPLACE_STRUCT_LCONV=1 ;; - esac + REPLACE_STRUCT_LCONV=1 fi dnl is always overridden, because of GNULIB_POSIXCHECK. @@ -83,92 +96,27 @@ AC_DEFUN_ONCE([gl_LOCALE_H], # include #endif ]], - [setlocale newlocale duplocale freelocale]) + [setlocale duplocale]) ]) -dnl Checks to determine whether the system has the locale_t type, -dnl and how to obtain it. -AC_DEFUN([gl_LOCALE_T], -[ - dnl Persuade glibc and Solaris to define locale_t. - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - - dnl Check whether use of locale_t requires inclusion of , - dnl e.g. on Mac OS X 10.5. If does not define locale_t by - dnl itself, we assume that will do so. - AC_CACHE_CHECK([whether locale.h defines locale_t], - [gl_cv_header_locale_has_locale_t], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - locale_t x;]], - [[]])], - [gl_cv_header_locale_has_locale_t=yes], - [gl_cv_header_locale_has_locale_t=no]) - ]) - - dnl Check for . - AC_CHECK_HEADERS_ONCE([xlocale.h]) - if test $ac_cv_header_xlocale_h = yes; then - HAVE_XLOCALE_H=1 - if test $gl_cv_header_locale_has_locale_t = yes; then - gl_cv_header_locale_h_needs_xlocale_h=no - else - gl_cv_header_locale_h_needs_xlocale_h=yes - fi - HAVE_LOCALE_T=1 - else - HAVE_XLOCALE_H=0 - gl_cv_header_locale_h_needs_xlocale_h=no - if test $gl_cv_header_locale_has_locale_t = yes; then - HAVE_LOCALE_T=1 - else - HAVE_LOCALE_T=0 - fi - fi - AC_SUBST([HAVE_XLOCALE_H]) -]) - -# gl_LOCALE_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_LOCALE_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALECONV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE_NULL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUPLOCALE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALENAME]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) -]) - AC_DEFUN([gl_LOCALE_H_DEFAULTS], [ + GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV]) + GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE]) + GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE]) HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) - HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) - REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) - REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) - LOCALENAME_ENHANCE_LOCALE_FUNCS=0; AC_SUBST([LOCALENAME_ENHANCE_LOCALE_FUNCS]) ]) diff --git a/gl/m4/localeconv.m4 b/gl/m4/localeconv.m4 index ae225fe..b8bb596 100644 --- a/gl/m4/localeconv.m4 +++ b/gl/m4/localeconv.m4 @@ -1,5 +1,5 @@ # localeconv.m4 serial 1 -dnl Copyright (C) 2012-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2012-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/lock.m4 b/gl/m4/lock.m4 index 88cf557..aae1701 100644 --- a/gl/m4/lock.m4 +++ b/gl/m4/lock.m4 @@ -1,5 +1,5 @@ -# lock.m4 serial 14 -dnl Copyright (C) 2005-2023 Free Software Foundation, Inc. +# lock.m4 serial 13 (gettext-0.18.2) +dnl Copyright (C) 2005-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, dnl with or without modifications, as long as this notice is preserved. @@ -12,16 +12,11 @@ AC_DEFUN([gl_LOCK], if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. - has_rwlock=false AC_CHECK_TYPE([pthread_rwlock_t], - [has_rwlock=true - AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], + [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) - if $has_rwlock; then - gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER - fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( diff --git a/gl/m4/longlong.m4 b/gl/m4/longlong.m4 new file mode 100644 index 0000000..3af6ab5 --- /dev/null +++ b/gl/m4/longlong.m4 @@ -0,0 +1,113 @@ +# longlong.m4 serial 17 +dnl Copyright (C) 1999-2007, 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, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# Define HAVE_LONG_LONG_INT if 'long long int' works. +# This fixes a bug in Autoconf 2.61, and can be faster +# than what's in Autoconf 2.62 through 2.68. + +# Note: If the type 'long long int' exists but is only 32 bits large +# (as on some very old compilers), HAVE_LONG_LONG_INT will not be +# defined. In this case you can treat 'long long int' like 'long int'. + +AC_DEFUN([AC_TYPE_LONG_LONG_INT], +[ + AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) + AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], + [ac_cv_type_long_long_int=yes + if test "x${ac_cv_prog_cc_c99-no}" = xno; then + ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int + if test $ac_cv_type_long_long_int = yes; then + dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. + dnl If cross compiling, assume the bug is not important, since + dnl nobody cross compiles for this platform as far as we know. + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[@%:@include + @%:@ifndef LLONG_MAX + @%:@ define HALF \ + (1LL << (sizeof (long long int) * CHAR_BIT - 2)) + @%:@ define LLONG_MAX (HALF - 1 + HALF) + @%:@endif]], + [[long long int n = 1; + int i; + for (i = 0; ; i++) + { + long long int m = n << i; + if (m >> i != n) + return 1; + if (LLONG_MAX / 2 < m) + break; + } + return 0;]])], + [], + [ac_cv_type_long_long_int=no], + [:]) + fi + fi]) + if test $ac_cv_type_long_long_int = yes; then + AC_DEFINE([HAVE_LONG_LONG_INT], [1], + [Define to 1 if the system has the type 'long long int'.]) + fi +]) + +# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. +# This fixes a bug in Autoconf 2.61, and can be faster +# than what's in Autoconf 2.62 through 2.68. + +# Note: If the type 'unsigned long long int' exists but is only 32 bits +# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT +# will not be defined. In this case you can treat 'unsigned long long int' +# like 'unsigned long int'. + +AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], +[ + AC_CACHE_CHECK([for unsigned long long int], + [ac_cv_type_unsigned_long_long_int], + [ac_cv_type_unsigned_long_long_int=yes + if test "x${ac_cv_prog_cc_c99-no}" = xno; then + AC_LINK_IFELSE( + [_AC_TYPE_LONG_LONG_SNIPPET], + [], + [ac_cv_type_unsigned_long_long_int=no]) + fi]) + if test $ac_cv_type_unsigned_long_long_int = yes; then + AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], + [Define to 1 if the system has the type 'unsigned long long int'.]) + fi +]) + +# Expands to a C program that can be used to test for simultaneous support +# of 'long long' and 'unsigned long long'. We don't want to say that +# 'long long' is available if 'unsigned long long' is not, or vice versa, +# because too many programs rely on the symmetry between signed and unsigned +# integer types (excluding 'bool'). +AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], +[ + AC_LANG_PROGRAM( + [[/* For now, do not test the preprocessor; as of 2007 there are too many + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ + /* Test literals. */ + long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + unsigned long long int ull = 18446744073709551615ULL; + /* Test constant expressions. */ + typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) + ? 1 : -1)]; + typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63;]], + [[/* Test availability of runtime routines for shift and division. */ + long long int llmax = 9223372036854775807ll; + unsigned long long int ullmax = 18446744073709551615ull; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull));]]) +]) diff --git a/gl/m4/ls-mntd-fs.m4 b/gl/m4/ls-mntd-fs.m4 new file mode 100644 index 0000000..fb116c8 --- /dev/null +++ b/gl/m4/ls-mntd-fs.m4 @@ -0,0 +1,357 @@ +# serial 30 +# How to list mounted file systems. + +# Copyright (C) 1998-2004, 2006, 2009-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +dnl From Jim Meyering. +dnl +dnl This is not pretty. I've just taken the autoconf code and wrapped +dnl it in an AC_DEFUN and made some other fixes. +dnl + +# Replace Autoconf's AC_FUNC_GETMNTENT to work around a bug in Autoconf +# through Autoconf 2.59. We can remove this once we assume Autoconf 2.60 +# or later. +AC_DEFUN([AC_FUNC_GETMNTENT], +[# getmntent is in the standard C library on UNICOS, in -lsun on Irix 4, +# -lseq on Dynix/PTX, -lgen on Unixware. +AC_SEARCH_LIBS([getmntent], [sun seq gen]) +AC_CHECK_FUNCS([getmntent]) +]) + +# gl_LIST_MOUNTED_FILE_SYSTEMS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +AC_DEFUN([gl_LIST_MOUNTED_FILE_SYSTEMS], + [ +AC_CHECK_FUNCS([listmntent getmntinfo]) +AC_CHECK_HEADERS_ONCE([sys/param.h sys/statvfs.h]) + +# We must include grp.h before ucred.h on OSF V4.0, since ucred.h uses +# NGROUPS (as the array dimension for a struct member) without a definition. +AC_CHECK_HEADERS([sys/ucred.h], [], [], [#include ]) + +AC_CHECK_HEADERS([sys/mount.h], [], [], + [AC_INCLUDES_DEFAULT + [#if HAVE_SYS_PARAM_H + #include + #endif]]) + +AC_CHECK_HEADERS([mntent.h sys/fs_types.h]) + getfsstat_includes="\ +$ac_includes_default +#if HAVE_SYS_PARAM_H +# include /* needed by powerpc-apple-darwin1.3.7 */ +#endif +#if HAVE_SYS_UCRED_H +# include /* needed for definition of NGROUPS */ +# include /* needed by powerpc-apple-darwin1.3.7 */ +#endif +#if HAVE_SYS_MOUNT_H +# include +#endif +#if HAVE_SYS_FS_TYPES_H +# include /* needed by powerpc-apple-darwin1.3.7 */ +#endif +" +AC_CHECK_MEMBERS([struct fsstat.f_fstypename],,,[$getfsstat_includes]) + +# Determine how to get the list of mounted file systems. +ac_list_mounted_fs= + +# If the getmntent function is available but not in the standard library, +# make sure LIBS contains the appropriate -l option. +AC_FUNC_GETMNTENT + +# This test must precede the ones for getmntent because Unicos-9 is +# reported to have the getmntent function, but its support is incompatible +# with other getmntent implementations. + +# NOTE: Normally, I wouldn't use a check for system type as I've done for +# 'CRAY' below since that goes against the whole autoconf philosophy. But +# I think there is too great a chance that some non-Cray system has a +# function named listmntent to risk the false positive. + +if test -z "$ac_list_mounted_fs"; then + # Cray UNICOS 9 + AC_MSG_CHECKING([for listmntent of Cray/Unicos-9]) + AC_CACHE_VAL([fu_cv_sys_mounted_cray_listmntent], + [fu_cv_sys_mounted_cray_listmntent=no + AC_EGREP_CPP([yes], + [#ifdef _CRAY +yes +#endif + ], [test $ac_cv_func_listmntent = yes \ + && fu_cv_sys_mounted_cray_listmntent=yes] + ) + ] + ) + AC_MSG_RESULT([$fu_cv_sys_mounted_cray_listmntent]) + if test $fu_cv_sys_mounted_cray_listmntent = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_LISTMNTENT], [1], + [Define if there is a function named listmntent that can be used to + list all mounted file systems. (UNICOS)]) + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # AIX. + AC_MSG_CHECKING([for mntctl function and struct vmount]) + AC_CACHE_VAL([fu_cv_sys_mounted_vmount], + [AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include ]])], + [fu_cv_sys_mounted_vmount=yes], + [fu_cv_sys_mounted_vmount=no])]) + AC_MSG_RESULT([$fu_cv_sys_mounted_vmount]) + if test $fu_cv_sys_mounted_vmount = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_VMOUNT], [1], + [Define if there is a function named mntctl that can be used to read + the list of mounted file systems, and there is a system header file + that declares 'struct vmount'. (AIX)]) + fi +fi + +if test $ac_cv_func_getmntent = yes; then + + # This system has the getmntent function. + # Determine whether it's the one-argument variant or the two-argument one. + + if test -z "$ac_list_mounted_fs"; then + # 4.3BSD, SunOS, HP-UX, Dynix, Irix + AC_MSG_CHECKING([for one-argument getmntent function]) + AC_CACHE_VAL([fu_cv_sys_mounted_getmntent1], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +/* SunOS 4.1.x /usr/include/mntent.h needs this for FILE */ +#include + +#include +#if !defined MOUNTED +# if defined _PATH_MOUNTED /* GNU libc */ +# define MOUNTED _PATH_MOUNTED +# endif +# if defined MNT_MNTTAB /* HP-UX. */ +# define MOUNTED MNT_MNTTAB +# endif +# if defined MNTTABNAME /* Dynix. */ +# define MOUNTED MNTTABNAME +# endif +#endif +]], + [[ struct mntent *mnt = 0; char *table = MOUNTED; + if (sizeof mnt && sizeof table) return 0;]])], + [fu_cv_sys_mounted_getmntent1=yes], + [fu_cv_sys_mounted_getmntent1=no])]) + AC_MSG_RESULT([$fu_cv_sys_mounted_getmntent1]) + if test $fu_cv_sys_mounted_getmntent1 = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_GETMNTENT1], [1], + [Define if there is a function named getmntent for reading the list + of mounted file systems, and that function takes a single argument. + (4.3BSD, SunOS, HP-UX, Dynix, Irix)]) + fi + fi + + if test -z "$ac_list_mounted_fs"; then + # SVR4 + AC_MSG_CHECKING([for two-argument getmntent function]) + AC_CACHE_VAL([fu_cv_sys_mounted_getmntent2], + [AC_EGREP_HEADER([getmntent], [sys/mnttab.h], + fu_cv_sys_mounted_getmntent2=yes, + fu_cv_sys_mounted_getmntent2=no)]) + AC_MSG_RESULT([$fu_cv_sys_mounted_getmntent2]) + if test $fu_cv_sys_mounted_getmntent2 = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_GETMNTENT2], [1], + [Define if there is a function named getmntent for reading the list of + mounted file systems, and that function takes two arguments. (SVR4)]) + AC_CHECK_FUNCS([hasmntopt]) + fi + fi + +fi + +if test -z "$ac_list_mounted_fs"; then + # DEC Alpha running OSF/1, and Apple Darwin 1.3. + # powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h + + AC_MSG_CHECKING([for getfsstat function]) + AC_CACHE_VAL([fu_cv_sys_mounted_getfsstat], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#include +#if HAVE_STRUCT_FSSTAT_F_FSTYPENAME +# define FS_TYPE(Ent) ((Ent).f_fstypename) +#else +# define FS_TYPE(Ent) mnt_names[(Ent).f_type] +#endif +$getfsstat_includes]] +, + [[struct statfs *stats; + int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); + char *t = FS_TYPE (*stats); ]])], + [fu_cv_sys_mounted_getfsstat=yes], + [fu_cv_sys_mounted_getfsstat=no])]) + AC_MSG_RESULT([$fu_cv_sys_mounted_getfsstat]) + if test $fu_cv_sys_mounted_getfsstat = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_GETFSSTAT], [1], + [Define if there is a function named getfsstat for reading the + list of mounted file systems. (DEC Alpha running OSF/1)]) + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # SVR3 + AC_MSG_CHECKING([for FIXME existence of three headers]) + AC_CACHE_VAL([fu_cv_sys_mounted_fread_fstyp], + [AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ +#include +#include +#include ]])], + [fu_cv_sys_mounted_fread_fstyp=yes], + [fu_cv_sys_mounted_fread_fstyp=no])]) + AC_MSG_RESULT([$fu_cv_sys_mounted_fread_fstyp]) + if test $fu_cv_sys_mounted_fread_fstyp = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_FREAD_FSTYP], [1], + [Define if (like SVR2) there is no specific function for reading the + list of mounted file systems, and your system has these header files: + and . (SVR3)]) + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # 4.4BSD and DEC OSF/1. + AC_MSG_CHECKING([for getmntinfo function]) + AC_CACHE_VAL([fu_cv_sys_mounted_getmntinfo], + [ + test "$ac_cv_func_getmntinfo" = yes \ + && fu_cv_sys_mounted_getmntinfo=yes \ + || fu_cv_sys_mounted_getmntinfo=no + ]) + AC_MSG_RESULT([$fu_cv_sys_mounted_getmntinfo]) + if test $fu_cv_sys_mounted_getmntinfo = yes; then + AC_MSG_CHECKING([whether getmntinfo returns statvfs structures]) + AC_CACHE_VAL([fu_cv_sys_mounted_getmntinfo2], + [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#if HAVE_SYS_PARAM_H +# include +#endif +#include +#if HAVE_SYS_MOUNT_H +# include +#endif +#if HAVE_SYS_STATVFS_H +# include +#endif +extern +#ifdef __cplusplus +"C" +#endif +int getmntinfo (struct statfs **, int); + ]], [])], + [fu_cv_sys_mounted_getmntinfo2=no], + [fu_cv_sys_mounted_getmntinfo2=yes]) + ]) + AC_MSG_RESULT([$fu_cv_sys_mounted_getmntinfo2]) + if test $fu_cv_sys_mounted_getmntinfo2 = no; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_GETMNTINFO], [1], + [Define if there is a function named getmntinfo for reading the + list of mounted file systems and it returns an array of + 'struct statfs'. (4.4BSD, Darwin)]) + else + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_GETMNTINFO2], [1], + [Define if there is a function named getmntinfo for reading the + list of mounted file systems and it returns an array of + 'struct statvfs'. (NetBSD 3.0)]) + fi + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # Ultrix + AC_MSG_CHECKING([for getmnt function]) + AC_CACHE_VAL([fu_cv_sys_mounted_getmnt], + [AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ +#include +#include ]])], + [fu_cv_sys_mounted_getmnt=yes], + [fu_cv_sys_mounted_getmnt=no])]) + AC_MSG_RESULT([$fu_cv_sys_mounted_getmnt]) + if test $fu_cv_sys_mounted_getmnt = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_GETMNT], [1], + [Define if there is a function named getmnt for reading the list of + mounted file systems. (Ultrix)]) + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # BeOS + AC_CHECK_FUNCS([next_dev fs_stat_dev]) + AC_CHECK_HEADERS([fs_info.h]) + AC_MSG_CHECKING([for BEOS mounted file system support functions]) + if test $ac_cv_header_fs_info_h = yes \ + && test $ac_cv_func_next_dev = yes \ + && test $ac_cv_func_fs_stat_dev = yes; then + fu_result=yes + else + fu_result=no + fi + AC_MSG_RESULT([$fu_result]) + if test $fu_result = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_FS_STAT_DEV], [1], + [Define if there are functions named next_dev and fs_stat_dev for + reading the list of mounted file systems. (BeOS)]) + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # SVR2 + AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab]) + AC_CACHE_VAL([fu_cv_sys_mounted_fread], + [AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include ]])], + [fu_cv_sys_mounted_fread=yes], + [fu_cv_sys_mounted_fread=no])]) + AC_MSG_RESULT([$fu_cv_sys_mounted_fread]) + if test $fu_cv_sys_mounted_fread = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_FREAD], [1], + [Define if there is no specific function for reading the list of + mounted file systems. fread will be used to read /etc/mnttab. + (SVR2) ]) + fi +fi + +if test -z "$ac_list_mounted_fs"; then + # Interix / BSD alike statvfs + # the code is really interix specific, so make sure, we're on it. + case "$host" in + *-interix*) + AC_CHECK_FUNCS([statvfs]) + if test $ac_cv_func_statvfs = yes; then + ac_list_mounted_fs=found + AC_DEFINE([MOUNTED_INTERIX_STATVFS], [1], + [Define if we are on interix, and ought to use statvfs plus + some special knowledge on where mounted file systems can be + found. (Interix)]) + fi + ;; + esac +fi + +if test -z "$ac_list_mounted_fs"; then + AC_MSG_ERROR([could not determine how to read list of mounted file systems]) + # FIXME -- no need to abort building the whole package + # Can't build mountlist.c or anything that needs its functions +fi + +AS_IF([test $ac_list_mounted_fs = found], [$1], [$2]) + + ]) diff --git a/gl/m4/lseek.m4 b/gl/m4/lseek.m4 deleted file mode 100644 index fd4f1f2..0000000 --- a/gl/m4/lseek.m4 +++ /dev/null @@ -1,78 +0,0 @@ -# lseek.m4 serial 12 -dnl Copyright (C) 2007, 2009-2023 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. - -AC_DEFUN([gl_FUNC_LSEEK], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_PROG_CC]) - AC_CHECK_HEADERS_ONCE([unistd.h]) - AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe], - [case "$host_os" in - mingw*) - dnl Native Windows. - dnl The result of lseek (fd, (off_t)0, SEEK_CUR) or - dnl SetFilePointer(handle, 0, NULL, FILE_CURRENT) - dnl for a pipe depends on the environment: In a Cygwin 1.5 - dnl environment it succeeds (wrong); in a Cygwin 1.7 environment - dnl it fails with a wrong errno value. - gl_cv_func_lseek_pipe=no - ;; - *) - if test $cross_compiling = no; then - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#include /* for off_t */ -#include /* for SEEK_CUR */ -#if HAVE_UNISTD_H -# include -#else /* on Windows with MSVC */ -# include -#endif -]GL_MDA_DEFINES], -[[ - /* Exit with success only if stdin is seekable. */ - return lseek (0, (off_t)0, SEEK_CUR) < 0; -]])], - [if test -s conftest$ac_exeext \ - && ./conftest$ac_exeext < conftest.$ac_ext \ - && test 1 = "`echo hi \ - | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then - gl_cv_func_lseek_pipe=yes - else - gl_cv_func_lseek_pipe=no - fi - ], - [gl_cv_func_lseek_pipe=no]) - else - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE([[ -#if defined __BEOS__ -/* BeOS mistakenly return 0 when trying to seek on pipes. */ - Choke me. -#endif]])], - [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) - fi - ;; - esac - ]) - if test "$gl_cv_func_lseek_pipe" = no; then - REPLACE_LSEEK=1 - AC_DEFINE([LSEEK_PIPE_BROKEN], [1], - [Define to 1 if lseek does not detect pipes.]) - fi - - AC_REQUIRE([gl_SYS_TYPES_H]) - if test $WINDOWS_64_BIT_OFF_T = 1; then - REPLACE_LSEEK=1 - fi - - dnl macOS SEEK_DATA is incompatible with other platforms. - case $host_os in - darwin*) - REPLACE_LSEEK=1;; - esac -]) diff --git a/gl/m4/malloc.m4 b/gl/m4/malloc.m4 index 5540292..4b24a0b 100644 --- a/gl/m4/malloc.m4 +++ b/gl/m4/malloc.m4 @@ -1,175 +1,98 @@ -# malloc.m4 serial 28 -dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. +# malloc.m4 serial 14 +dnl Copyright (C) 2007, 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, dnl with or without modifications, as long as this notice is preserved. -# This is adapted with modifications from upstream Autoconf here: -# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949 +m4_version_prereq([2.70], [] ,[ + +# This is taken from the following Autoconf patch: +# http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 AC_DEFUN([_AC_FUNC_MALLOC_IF], [ + AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles - AC_CACHE_CHECK([whether malloc (0) returns nonnull], + AC_CHECK_HEADERS([stdlib.h]) + AC_CACHE_CHECK([for GNU libc compatible malloc], [ac_cv_func_malloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( - [[#include + [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H + # include + #else + char *malloc (); + #endif ]], - [[void *p = malloc (0); - int result = !p; - free (p); - return result;]]) + [[return ! malloc (0);]]) ], [ac_cv_func_malloc_0_nonnull=yes], [ac_cv_func_malloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ - | gnu* | *-musl* | midnightbsd* \ - | hpux* | solaris* | cygwin* | mingw* | msys* ) - ac_cv_func_malloc_0_nonnull="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; + *-gnu* | freebsd* | netbsd* | openbsd* \ + | hpux* | solaris* | cygwin* | mingw*) + ac_cv_func_malloc_0_nonnull=yes ;; + # If we don't know, assume the worst. + *) ac_cv_func_malloc_0_nonnull=no ;; esac ]) ]) - AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2]) + AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2]) ])# _AC_FUNC_MALLOC_IF +]) + # gl_FUNC_MALLOC_GNU # ------------------ -# Replace malloc if it is not compatible with GNU libc. +# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if +# it is not. AC_DEFUN([gl_FUNC_MALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) - REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX" - if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then - _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC_FOR_MALLOC_GNU=1]) - fi -]) - -# gl_FUNC_MALLOC_PTRDIFF -# ---------------------- -# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX, -# and replace malloc otherwise. -AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) - test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1 -]) - -# Test whether malloc, realloc, calloc refuse to create objects -# larger than what can be expressed in ptrdiff_t. -# Set gl_cv_func_malloc_gnu to yes or no accordingly. -AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF], -[ - AC_CACHE_CHECK([whether malloc is ptrdiff_t safe], - [gl_cv_malloc_ptrdiff], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - ]], - [[/* 64-bit ptrdiff_t is so wide that no practical platform - can exceed it. */ - #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) - - /* On rare machines where size_t fits in ptrdiff_t there - is no problem. */ - #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) - - /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t - bounds even on 32-bit platforms. We don't know which - non-glibc systems are safe. */ - #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) - - #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE - return 0; - #else - #error "malloc might not be ptrdiff_t safe" - syntax error - #endif - ]])], - [gl_cv_malloc_ptrdiff=yes], - [gl_cv_malloc_ptrdiff=no]) + dnl _AC_FUNC_MALLOC_IF is defined in Autoconf. + _AC_FUNC_MALLOC_IF( + [AC_DEFINE([HAVE_MALLOC_GNU], [1], + [Define to 1 if your system has a GNU libc compatible 'malloc' + function, and to 0 otherwise.])], + [AC_DEFINE([HAVE_MALLOC_GNU], [0]) + REPLACE_MALLOC=1 ]) ]) # gl_FUNC_MALLOC_POSIX # -------------------- # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it -# fails, and doesn't mess up with ptrdiff_t overflow), and replace -# malloc if it is not. +# fails), and replace malloc if it is not. AC_DEFUN([gl_FUNC_MALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) - if test "$gl_cv_func_malloc_posix" = yes; then + if test $gl_cv_func_malloc_posix = yes; then AC_DEFINE([HAVE_MALLOC_POSIX], [1], - [Define if malloc, realloc, and calloc set errno on allocation failure.]) + [Define if the 'malloc' function is POSIX compliant.]) else - REPLACE_MALLOC_FOR_MALLOC_POSIX=1 + REPLACE_MALLOC=1 fi ]) -# Test whether malloc, realloc, calloc set errno to ENOMEM on failure. +# Test whether malloc, realloc, calloc are POSIX compliant, # Set gl_cv_func_malloc_posix to yes or no accordingly. AC_DEFUN([gl_CHECK_MALLOC_POSIX], [ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure], + AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], [gl_cv_func_malloc_posix], [ dnl It is too dangerous to try to allocate a large amount of memory: dnl some systems go to their knees when you do that. So assume that - dnl all Unix implementations of the function set errno on failure, - dnl except on those platforms where we have seen 'test-malloc-gnu', - dnl 'test-realloc-gnu', 'test-calloc-gnu' fail. - case "$host_os" in - mingw*) - gl_cv_func_malloc_posix=no ;; - irix* | solaris*) - dnl On IRIX 6.5, the three functions return NULL with errno unset - dnl when the argument is larger than PTRDIFF_MAX. - dnl On Solaris 11.3, the three functions return NULL with errno set - dnl to EAGAIN, not ENOMEM, when the argument is larger than - dnl PTRDIFF_MAX. - dnl Here is a test program: -m4_divert_push([KILL]) -#include -#include -#include -#define ptrdiff_t long -#ifndef PTRDIFF_MAX -# define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1)) -#endif - -int main () -{ - void *p; - - fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX); - - errno = 0; - p = malloc ((unsigned long) PTRDIFF_MAX + 1); - fprintf (stderr, "p=%p errno=%d\n", p, errno); - - errno = 0; - p = calloc (PTRDIFF_MAX / 2 + 1, 2); - fprintf (stderr, "p=%p errno=%d\n", p, errno); - - errno = 0; - p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1); - fprintf (stderr, "p=%p errno=%d\n", p, errno); - - return 0; -} -m4_divert_pop([KILL]) - gl_cv_func_malloc_posix=no ;; - *) - gl_cv_func_malloc_posix=yes ;; - esac + dnl all Unix implementations of the function are POSIX compliant. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[]], + [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + choke me + #endif + ]])], + [gl_cv_func_malloc_posix=yes], + [gl_cv_func_malloc_posix=no]) ]) ]) diff --git a/gl/m4/malloca.m4 b/gl/m4/malloca.m4 index 1d777eb..791ce10 100644 --- a/gl/m4/malloca.m4 +++ b/gl/m4/malloca.m4 @@ -1,5 +1,5 @@ -# malloca.m4 serial 2 -dnl Copyright (C) 2003-2004, 2006-2007, 2009-2023 Free Software Foundation, +# malloca.m4 serial 1 +dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -11,4 +11,5 @@ AC_DEFUN([gl_MALLOCA], dnl @ALLOCA@ and @LTALLOCA@. dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. AC_REQUIRE([gl_EEMALLOC]) + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) ]) diff --git a/gl/m4/math_h.m4 b/gl/m4/math_h.m4 index d2e90ff..bf0845f 100644 --- a/gl/m4/math_h.m4 +++ b/gl/m4/math_h.m4 @@ -1,16 +1,16 @@ -# math_h.m4 serial 125 -dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. +# math_h.m4 serial 114 +dnl Copyright (C) 2007-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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_MATH_H], +AC_DEFUN([gl_MATH_H], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([math.h]) AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[/* Solaris 10 has a broken definition of NAN. Other platforms fail to provide NAN, or provide it only in C99 mode; this test only needs to fail when NAN is provided but wrong. */ @@ -25,7 +25,7 @@ AC_DEFUN_ONCE([gl_MATH_H], REPLACE_NAN=1 fi AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[/* Solaris 10 has a broken definition of HUGE_VAL. */ double d = HUGE_VAL; return d == 0;]])], @@ -53,310 +53,272 @@ AC_DEFUN_ONCE([gl_MATH_H], tanf tanl tanhf trunc truncf truncl]) ]) -# gl_MATH_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_MATH_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_MATH_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_MATH_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_MATH_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACOSF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACOSL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ASINF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ASINL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATANF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATANL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATAN2F]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CBRT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CBRTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CBRTL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CEIL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CEILF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CEILL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPYSIGN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPYSIGNF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPYSIGNL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COSF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COSL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COSHF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXP2]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXP2F]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXP2L]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPM1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPM1F]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPM1L]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FABSF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FABSL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FLOOR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FLOORF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FLOORL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMA]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMAF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMAL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMOD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMODF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FMODL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXPF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREXPL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_HYPOTL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGB]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGBF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGBL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISFINITE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISINF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNAN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNANF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNAND]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNANL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LDEXPF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LDEXPL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG10]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG10F]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG10L]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG1P]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG1PF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG1PL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG2]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG2F]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOG2L]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGB]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGBF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOGBL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODFF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MODFL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POWF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMAINDER]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMAINDERF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMAINDERL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RINT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RINTL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUND]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUNDF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ROUNDL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNBIT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINHF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SQRTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SQRTL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TANF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TANL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TANHF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCL]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_J0], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_J1], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_JN], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_Y0], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_Y1], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_YN], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_MATH_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_MATH_H_DEFAULTS]) -]) - AC_DEFUN([gl_MATH_H_DEFAULTS], [ + GNULIB_ACOSF=0; AC_SUBST([GNULIB_ACOSF]) + GNULIB_ACOSL=0; AC_SUBST([GNULIB_ACOSL]) + GNULIB_ASINF=0; AC_SUBST([GNULIB_ASINF]) + GNULIB_ASINL=0; AC_SUBST([GNULIB_ASINL]) + GNULIB_ATANF=0; AC_SUBST([GNULIB_ATANF]) + GNULIB_ATANL=0; AC_SUBST([GNULIB_ATANL]) + GNULIB_ATAN2F=0; AC_SUBST([GNULIB_ATAN2F]) + GNULIB_CBRT=0; AC_SUBST([GNULIB_CBRT]) + GNULIB_CBRTF=0; AC_SUBST([GNULIB_CBRTF]) + GNULIB_CBRTL=0; AC_SUBST([GNULIB_CBRTL]) + GNULIB_CEIL=0; AC_SUBST([GNULIB_CEIL]) + GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF]) + GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL]) + GNULIB_COPYSIGN=0; AC_SUBST([GNULIB_COPYSIGN]) + GNULIB_COPYSIGNF=0; AC_SUBST([GNULIB_COPYSIGNF]) + GNULIB_COPYSIGNL=0; AC_SUBST([GNULIB_COPYSIGNL]) + GNULIB_COSF=0; AC_SUBST([GNULIB_COSF]) + GNULIB_COSL=0; AC_SUBST([GNULIB_COSL]) + GNULIB_COSHF=0; AC_SUBST([GNULIB_COSHF]) + GNULIB_EXPF=0; AC_SUBST([GNULIB_EXPF]) + GNULIB_EXPL=0; AC_SUBST([GNULIB_EXPL]) + GNULIB_EXP2=0; AC_SUBST([GNULIB_EXP2]) + GNULIB_EXP2F=0; AC_SUBST([GNULIB_EXP2F]) + GNULIB_EXP2L=0; AC_SUBST([GNULIB_EXP2L]) + GNULIB_EXPM1=0; AC_SUBST([GNULIB_EXPM1]) + GNULIB_EXPM1F=0; AC_SUBST([GNULIB_EXPM1F]) + GNULIB_EXPM1L=0; AC_SUBST([GNULIB_EXPM1L]) + GNULIB_FABSF=0; AC_SUBST([GNULIB_FABSF]) + GNULIB_FABSL=0; AC_SUBST([GNULIB_FABSL]) + GNULIB_FLOOR=0; AC_SUBST([GNULIB_FLOOR]) + GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF]) + GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL]) + GNULIB_FMA=0; AC_SUBST([GNULIB_FMA]) + GNULIB_FMAF=0; AC_SUBST([GNULIB_FMAF]) + GNULIB_FMAL=0; AC_SUBST([GNULIB_FMAL]) + GNULIB_FMOD=0; AC_SUBST([GNULIB_FMOD]) + GNULIB_FMODF=0; AC_SUBST([GNULIB_FMODF]) + GNULIB_FMODL=0; AC_SUBST([GNULIB_FMODL]) + GNULIB_FREXPF=0; AC_SUBST([GNULIB_FREXPF]) + GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP]) + GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL]) + GNULIB_HYPOT=0; AC_SUBST([GNULIB_HYPOT]) + GNULIB_HYPOTF=0; AC_SUBST([GNULIB_HYPOTF]) + GNULIB_HYPOTL=0; AC_SUBST([GNULIB_HYPOTL]) + GNULIB_ILOGB=0; AC_SUBST([GNULIB_ILOGB]) + GNULIB_ILOGBF=0; AC_SUBST([GNULIB_ILOGBF]) + GNULIB_ILOGBL=0; AC_SUBST([GNULIB_ILOGBL]) + GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE]) + GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF]) + GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN]) + GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF]) + GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND]) + GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL]) + GNULIB_LDEXPF=0; AC_SUBST([GNULIB_LDEXPF]) + GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL]) + GNULIB_LOG=0; AC_SUBST([GNULIB_LOG]) + GNULIB_LOGF=0; AC_SUBST([GNULIB_LOGF]) + GNULIB_LOGL=0; AC_SUBST([GNULIB_LOGL]) + GNULIB_LOG10=0; AC_SUBST([GNULIB_LOG10]) + GNULIB_LOG10F=0; AC_SUBST([GNULIB_LOG10F]) + GNULIB_LOG10L=0; AC_SUBST([GNULIB_LOG10L]) + GNULIB_LOG1P=0; AC_SUBST([GNULIB_LOG1P]) + GNULIB_LOG1PF=0; AC_SUBST([GNULIB_LOG1PF]) + GNULIB_LOG1PL=0; AC_SUBST([GNULIB_LOG1PL]) + GNULIB_LOG2=0; AC_SUBST([GNULIB_LOG2]) + GNULIB_LOG2F=0; AC_SUBST([GNULIB_LOG2F]) + GNULIB_LOG2L=0; AC_SUBST([GNULIB_LOG2L]) + GNULIB_LOGB=0; AC_SUBST([GNULIB_LOGB]) + GNULIB_LOGBF=0; AC_SUBST([GNULIB_LOGBF]) + GNULIB_LOGBL=0; AC_SUBST([GNULIB_LOGBL]) + GNULIB_MODF=0; AC_SUBST([GNULIB_MODF]) + GNULIB_MODFF=0; AC_SUBST([GNULIB_MODFF]) + GNULIB_MODFL=0; AC_SUBST([GNULIB_MODFL]) + GNULIB_POWF=0; AC_SUBST([GNULIB_POWF]) + GNULIB_REMAINDER=0; AC_SUBST([GNULIB_REMAINDER]) + GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF]) + GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL]) + GNULIB_RINT=0; AC_SUBST([GNULIB_RINT]) + GNULIB_RINTF=0; AC_SUBST([GNULIB_RINTF]) + GNULIB_RINTL=0; AC_SUBST([GNULIB_RINTL]) + GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND]) + GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF]) + GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL]) + GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT]) + GNULIB_SINF=0; AC_SUBST([GNULIB_SINF]) + GNULIB_SINL=0; AC_SUBST([GNULIB_SINL]) + GNULIB_SINHF=0; AC_SUBST([GNULIB_SINHF]) + GNULIB_SQRTF=0; AC_SUBST([GNULIB_SQRTF]) + GNULIB_SQRTL=0; AC_SUBST([GNULIB_SQRTL]) + GNULIB_TANF=0; AC_SUBST([GNULIB_TANF]) + GNULIB_TANL=0; AC_SUBST([GNULIB_TANL]) + GNULIB_TANHF=0; AC_SUBST([GNULIB_TANHF]) + GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC]) + GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF]) + GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF]) - HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL]) - HAVE_ASINF=1; AC_SUBST([HAVE_ASINF]) - HAVE_ASINL=1; AC_SUBST([HAVE_ASINL]) - HAVE_ATANF=1; AC_SUBST([HAVE_ATANF]) - HAVE_ATANL=1; AC_SUBST([HAVE_ATANL]) - HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F]) - HAVE_CBRT=1; AC_SUBST([HAVE_CBRT]) - HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF]) - HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL]) - HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN]) - HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL]) - HAVE_COSF=1; AC_SUBST([HAVE_COSF]) - HAVE_COSL=1; AC_SUBST([HAVE_COSL]) - HAVE_COSHF=1; AC_SUBST([HAVE_COSHF]) - HAVE_EXPF=1; AC_SUBST([HAVE_EXPF]) - HAVE_EXPL=1; AC_SUBST([HAVE_EXPL]) - HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1]) - HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F]) - HAVE_FABSF=1; AC_SUBST([HAVE_FABSF]) - HAVE_FABSL=1; AC_SUBST([HAVE_FABSL]) - HAVE_FMA=1; AC_SUBST([HAVE_FMA]) - HAVE_FMAF=1; AC_SUBST([HAVE_FMAF]) - HAVE_FMAL=1; AC_SUBST([HAVE_FMAL]) - HAVE_FMODF=1; AC_SUBST([HAVE_FMODF]) - HAVE_FMODL=1; AC_SUBST([HAVE_FMODL]) - HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF]) - HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF]) - HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL]) - HAVE_ILOGB=1; AC_SUBST([HAVE_ILOGB]) - HAVE_ILOGBF=1; AC_SUBST([HAVE_ILOGBF]) - HAVE_ILOGBL=1; AC_SUBST([HAVE_ILOGBL]) - HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF]) - HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND]) - HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL]) - HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF]) - HAVE_LOGF=1; AC_SUBST([HAVE_LOGF]) - HAVE_LOGL=1; AC_SUBST([HAVE_LOGL]) - HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F]) - HAVE_LOG10L=1; AC_SUBST([HAVE_LOG10L]) - HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P]) - HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF]) - HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL]) - HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF]) - HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL]) - HAVE_MODFF=1; AC_SUBST([HAVE_MODFF]) - HAVE_MODFL=1; AC_SUBST([HAVE_MODFL]) - HAVE_POWF=1; AC_SUBST([HAVE_POWF]) - HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER]) - HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF]) - HAVE_RINT=1; AC_SUBST([HAVE_RINT]) - HAVE_RINTL=1; AC_SUBST([HAVE_RINTL]) - HAVE_SINF=1; AC_SUBST([HAVE_SINF]) - HAVE_SINL=1; AC_SUBST([HAVE_SINL]) - HAVE_SINHF=1; AC_SUBST([HAVE_SINHF]) - HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF]) - HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL]) - HAVE_TANF=1; AC_SUBST([HAVE_TANF]) - HAVE_TANL=1; AC_SUBST([HAVE_TANL]) - HAVE_TANHF=1; AC_SUBST([HAVE_TANHF]) - HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL]) - HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL]) - HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL]) - HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF]) - HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL]) - HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF]) - HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL]) - HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF]) - HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL]) - HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL]) - HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2]) - HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F]) - HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L]) - HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L]) - HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF]) - HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL]) - HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL]) - HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL]) - HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL]) - HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L]) - HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2]) - HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F]) - HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L]) - HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB]) - HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER]) - HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL]) - HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF]) - HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND]) - HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF]) - HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL]) - HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL]) - HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL]) - HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL]) - HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC]) - HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF]) - HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL]) - REPLACE_ACOSF=0; AC_SUBST([REPLACE_ACOSF]) - REPLACE_ASINF=0; AC_SUBST([REPLACE_ASINF]) - REPLACE_ATANF=0; AC_SUBST([REPLACE_ATANF]) - REPLACE_ATAN2F=0; AC_SUBST([REPLACE_ATAN2F]) - REPLACE_CBRTF=0; AC_SUBST([REPLACE_CBRTF]) - REPLACE_CBRTL=0; AC_SUBST([REPLACE_CBRTL]) - REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL]) - REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF]) - REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL]) - REPLACE_COSF=0; AC_SUBST([REPLACE_COSF]) - REPLACE_COSHF=0; AC_SUBST([REPLACE_COSHF]) - REPLACE_EXPF=0; AC_SUBST([REPLACE_EXPF]) - REPLACE_EXPL=0; AC_SUBST([REPLACE_EXPL]) - REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1]) - REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F]) - REPLACE_EXPM1L=0; AC_SUBST([REPLACE_EXPM1L]) - REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2]) - REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L]) - REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL]) - REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR]) - REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF]) - REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL]) - REPLACE_FMA=0; AC_SUBST([REPLACE_FMA]) - REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF]) - REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL]) - REPLACE_FMOD=0; AC_SUBST([REPLACE_FMOD]) - REPLACE_FMODF=0; AC_SUBST([REPLACE_FMODF]) - REPLACE_FMODL=0; AC_SUBST([REPLACE_FMODL]) - REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF]) - REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP]) - REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL]) - REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL]) - REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT]) - REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF]) - REPLACE_HYPOTL=0; AC_SUBST([REPLACE_HYPOTL]) - REPLACE_ILOGB=0; AC_SUBST([REPLACE_ILOGB]) - REPLACE_ILOGBF=0; AC_SUBST([REPLACE_ILOGBF]) - REPLACE_ILOGBL=0; AC_SUBST([REPLACE_ILOGBL]) - REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE]) - REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF]) - REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN]) - REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL]) - REPLACE_LOG=0; AC_SUBST([REPLACE_LOG]) - REPLACE_LOGF=0; AC_SUBST([REPLACE_LOGF]) - REPLACE_LOGL=0; AC_SUBST([REPLACE_LOGL]) - REPLACE_LOG10=0; AC_SUBST([REPLACE_LOG10]) - REPLACE_LOG10F=0; AC_SUBST([REPLACE_LOG10F]) - REPLACE_LOG10L=0; AC_SUBST([REPLACE_LOG10L]) - REPLACE_LOG1P=0; AC_SUBST([REPLACE_LOG1P]) - REPLACE_LOG1PF=0; AC_SUBST([REPLACE_LOG1PF]) - REPLACE_LOG1PL=0; AC_SUBST([REPLACE_LOG1PL]) - REPLACE_LOG2=0; AC_SUBST([REPLACE_LOG2]) - REPLACE_LOG2F=0; AC_SUBST([REPLACE_LOG2F]) - REPLACE_LOG2L=0; AC_SUBST([REPLACE_LOG2L]) - REPLACE_LOGB=0; AC_SUBST([REPLACE_LOGB]) - REPLACE_LOGBF=0; AC_SUBST([REPLACE_LOGBF]) - REPLACE_LOGBL=0; AC_SUBST([REPLACE_LOGBL]) - REPLACE_MODF=0; AC_SUBST([REPLACE_MODF]) - REPLACE_MODFF=0; AC_SUBST([REPLACE_MODFF]) - REPLACE_MODFL=0; AC_SUBST([REPLACE_MODFL]) - REPLACE_NAN=0; AC_SUBST([REPLACE_NAN]) - REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER]) - REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF]) - REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL]) - REPLACE_RINTL=0; AC_SUBST([REPLACE_RINTL]) - REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND]) - REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF]) - REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL]) - REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT]) - REPLACE_SIGNBIT_USING_BUILTINS=0; AC_SUBST([REPLACE_SIGNBIT_USING_BUILTINS]) - REPLACE_SINF=0; AC_SUBST([REPLACE_SINF]) - REPLACE_SINHF=0; AC_SUBST([REPLACE_SINHF]) - REPLACE_SQRTF=0; AC_SUBST([REPLACE_SQRTF]) - REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL]) - REPLACE_TANF=0; AC_SUBST([REPLACE_TANF]) - REPLACE_TANHF=0; AC_SUBST([REPLACE_TANHF]) - REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC]) - REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF]) - REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL]) + HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF]) + HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL]) + HAVE_ASINF=1; AC_SUBST([HAVE_ASINF]) + HAVE_ASINL=1; AC_SUBST([HAVE_ASINL]) + HAVE_ATANF=1; AC_SUBST([HAVE_ATANF]) + HAVE_ATANL=1; AC_SUBST([HAVE_ATANL]) + HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F]) + HAVE_CBRT=1; AC_SUBST([HAVE_CBRT]) + HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF]) + HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL]) + HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN]) + HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL]) + HAVE_COSF=1; AC_SUBST([HAVE_COSF]) + HAVE_COSL=1; AC_SUBST([HAVE_COSL]) + HAVE_COSHF=1; AC_SUBST([HAVE_COSHF]) + HAVE_EXPF=1; AC_SUBST([HAVE_EXPF]) + HAVE_EXPL=1; AC_SUBST([HAVE_EXPL]) + HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1]) + HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F]) + HAVE_FABSF=1; AC_SUBST([HAVE_FABSF]) + HAVE_FABSL=1; AC_SUBST([HAVE_FABSL]) + HAVE_FMA=1; AC_SUBST([HAVE_FMA]) + HAVE_FMAF=1; AC_SUBST([HAVE_FMAF]) + HAVE_FMAL=1; AC_SUBST([HAVE_FMAL]) + HAVE_FMODF=1; AC_SUBST([HAVE_FMODF]) + HAVE_FMODL=1; AC_SUBST([HAVE_FMODL]) + HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF]) + HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF]) + HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL]) + HAVE_ILOGB=1; AC_SUBST([HAVE_ILOGB]) + HAVE_ILOGBF=1; AC_SUBST([HAVE_ILOGBF]) + HAVE_ILOGBL=1; AC_SUBST([HAVE_ILOGBL]) + HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF]) + HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND]) + HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL]) + HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF]) + HAVE_LOGF=1; AC_SUBST([HAVE_LOGF]) + HAVE_LOGL=1; AC_SUBST([HAVE_LOGL]) + HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F]) + HAVE_LOG10L=1; AC_SUBST([HAVE_LOG10L]) + HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P]) + HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF]) + HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL]) + HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF]) + HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL]) + HAVE_MODFF=1; AC_SUBST([HAVE_MODFF]) + HAVE_MODFL=1; AC_SUBST([HAVE_MODFL]) + HAVE_POWF=1; AC_SUBST([HAVE_POWF]) + HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER]) + HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF]) + HAVE_RINT=1; AC_SUBST([HAVE_RINT]) + HAVE_RINTL=1; AC_SUBST([HAVE_RINTL]) + HAVE_SINF=1; AC_SUBST([HAVE_SINF]) + HAVE_SINL=1; AC_SUBST([HAVE_SINL]) + HAVE_SINHF=1; AC_SUBST([HAVE_SINHF]) + HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF]) + HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL]) + HAVE_TANF=1; AC_SUBST([HAVE_TANF]) + HAVE_TANL=1; AC_SUBST([HAVE_TANL]) + HAVE_TANHF=1; AC_SUBST([HAVE_TANHF]) + HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL]) + HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL]) + HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL]) + HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF]) + HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL]) + HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF]) + HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL]) + HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF]) + HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL]) + HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL]) + HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2]) + HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F]) + HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L]) + HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L]) + HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF]) + HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL]) + HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL]) + HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL]) + HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL]) + HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L]) + HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2]) + HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F]) + HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L]) + HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB]) + HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER]) + HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL]) + HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF]) + HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND]) + HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF]) + HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL]) + HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL]) + HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL]) + HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL]) + HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC]) + HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF]) + HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL]) + REPLACE_CBRTF=0; AC_SUBST([REPLACE_CBRTF]) + REPLACE_CBRTL=0; AC_SUBST([REPLACE_CBRTL]) + REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL]) + REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF]) + REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL]) + REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1]) + REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F]) + REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2]) + REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L]) + REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL]) + REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR]) + REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF]) + REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL]) + REPLACE_FMA=0; AC_SUBST([REPLACE_FMA]) + REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF]) + REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL]) + REPLACE_FMOD=0; AC_SUBST([REPLACE_FMOD]) + REPLACE_FMODF=0; AC_SUBST([REPLACE_FMODF]) + REPLACE_FMODL=0; AC_SUBST([REPLACE_FMODL]) + REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF]) + REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP]) + REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL]) + REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL]) + REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT]) + REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF]) + REPLACE_HYPOTL=0; AC_SUBST([REPLACE_HYPOTL]) + REPLACE_ILOGB=0; AC_SUBST([REPLACE_ILOGB]) + REPLACE_ILOGBF=0; AC_SUBST([REPLACE_ILOGBF]) + REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE]) + REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF]) + REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN]) + REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL]) + REPLACE_LOG=0; AC_SUBST([REPLACE_LOG]) + REPLACE_LOGF=0; AC_SUBST([REPLACE_LOGF]) + REPLACE_LOGL=0; AC_SUBST([REPLACE_LOGL]) + REPLACE_LOG10=0; AC_SUBST([REPLACE_LOG10]) + REPLACE_LOG10F=0; AC_SUBST([REPLACE_LOG10F]) + REPLACE_LOG10L=0; AC_SUBST([REPLACE_LOG10L]) + REPLACE_LOG1P=0; AC_SUBST([REPLACE_LOG1P]) + REPLACE_LOG1PF=0; AC_SUBST([REPLACE_LOG1PF]) + REPLACE_LOG1PL=0; AC_SUBST([REPLACE_LOG1PL]) + REPLACE_LOG2=0; AC_SUBST([REPLACE_LOG2]) + REPLACE_LOG2F=0; AC_SUBST([REPLACE_LOG2F]) + REPLACE_LOG2L=0; AC_SUBST([REPLACE_LOG2L]) + REPLACE_LOGB=0; AC_SUBST([REPLACE_LOGB]) + REPLACE_LOGBF=0; AC_SUBST([REPLACE_LOGBF]) + REPLACE_LOGBL=0; AC_SUBST([REPLACE_LOGBL]) + REPLACE_MODF=0; AC_SUBST([REPLACE_MODF]) + REPLACE_MODFF=0; AC_SUBST([REPLACE_MODFF]) + REPLACE_MODFL=0; AC_SUBST([REPLACE_MODFL]) + REPLACE_NAN=0; AC_SUBST([REPLACE_NAN]) + REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER]) + REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF]) + REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL]) + REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND]) + REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF]) + REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL]) + REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT]) + REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC]) + REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL]) + REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC]) + REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF]) + REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL]) ]) # gl_LONG_DOUBLE_VS_DOUBLE diff --git a/gl/m4/mbrtowc.m4 b/gl/m4/mbrtowc.m4 index bb39304..4c9f388 100644 --- a/gl/m4/mbrtowc.m4 +++ b/gl/m4/mbrtowc.m4 @@ -1,5 +1,5 @@ -# mbrtowc.m4 serial 38 -*- coding: utf-8 -*- -dnl Copyright (C) 2001-2002, 2004-2005, 2008-2023 Free Software Foundation, +# mbrtowc.m4 serial 25 +dnl Copyright (C) 2001-2002, 2004-2005, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -8,8 +8,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBRTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) - AC_REQUIRE([gl_PTHREADLIB]) - AC_CHECK_HEADERS_ONCE([threads.h]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN @@ -18,8 +16,15 @@ AC_DEFUN([gl_FUNC_MBRTOWC], if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 AC_CHECK_DECLS([mbrtowc],,, [[ - #include - ]]) +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include +]]) if test $ac_cv_have_decl_mbrtowc = yes; then dnl On Minix 3.1.8, the system's declares mbrtowc() although dnl it does not have the function. Avoid a collision with gnulib's @@ -34,9 +39,6 @@ AC_DEFUN([gl_FUNC_MBRTOWC], gl_MBRTOWC_NULL_ARG2 gl_MBRTOWC_RETVAL gl_MBRTOWC_NUL_RETVAL - gl_MBRTOWC_STORES_INCOMPLETE - gl_MBRTOWC_EMPTY_INPUT - gl_MBRTOWC_C_LOCALE case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1], @@ -65,47 +67,8 @@ AC_DEFUN([gl_FUNC_MBRTOWC], REPLACE_MBRTOWC=1 ;; esac - case "$gl_cv_func_mbrtowc_stores_incomplete" in - *no) ;; - *) AC_DEFINE([MBRTOWC_STORES_INCOMPLETE_BUG], [1], - [Define if the mbrtowc function stores a wide character when reporting incomplete input.]) - REPLACE_MBRTOWC=1 - ;; - esac - case "$gl_cv_func_mbrtowc_empty_input" in - *yes) ;; - *) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1], - [Define if the mbrtowc function does not return (size_t) -2 - for empty input.]) - REPLACE_MBRTOWC=1 - ;; - esac - case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in - *yes) ;; - *) AC_DEFINE([MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ], [1], - [Define if the mbrtowc function may signal encoding errors in the C locale.]) - REPLACE_MBRTOWC=1 - ;; - esac fi fi - if test $REPLACE_MBSTATE_T = 1; then - case "$host_os" in - mingw*) LIB_MBRTOWC= ;; - *) - gl_WEAK_SYMBOLS - case "$gl_cv_have_weak" in - *yes) LIB_MBRTOWC= ;; - *) LIB_MBRTOWC="$LIBPTHREAD" ;; - esac - ;; - esac - else - LIB_MBRTOWC= - fi - dnl LIB_MBRTOWC is expected to be '-pthread' or '-lpthread' on AIX - dnl with gcc or xlc, and empty otherwise. - AC_SUBST([LIB_MBRTOWC]) ]) dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that @@ -117,19 +80,11 @@ dnl avoid inconsistencies. AC_DEFUN([gl_MBSTATE_T_BROKEN], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_CHECK_FUNCS_ONCE([mbsinit]) AC_CHECK_FUNCS_ONCE([mbrtowc]) - dnl On native Windows, we know exactly how mbsinit() behaves and don't need - dnl to override it, even if - like on MSVC - mbsinit() is only defined as - dnl an inline function, not as a global function. - if case "$host_os" in - mingw*) true ;; - *) test $ac_cv_func_mbsinit = yes ;; - esac \ - && test $ac_cv_func_mbrtowc = yes; then + if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then gl_MBRTOWC_INCOMPLETE_STATE gl_MBRTOWC_SANITYCHECK REPLACE_MBSTATE_T=0 @@ -154,7 +109,6 @@ AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_JA]) - AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles incomplete characters], [gl_cv_func_mbrtowc_incomplete_state], @@ -174,6 +128,13 @@ changequote([,])dnl [AC_LANG_SOURCE([[ #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -186,39 +147,13 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) - return 2; + return 1; } return 0; }]])], [gl_cv_func_mbrtowc_incomplete_state=yes], [gl_cv_func_mbrtowc_incomplete_state=no], [:]) - else - if test $LOCALE_FR_UTF8 != none; then - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -int main () -{ - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) - { - const char input[] = "B\303\274\303\237er"; /* "Büßer" */ - mbstate_t state; - wchar_t wc; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) - if (mbsinit (&state)) - return 2; - } - return 0; -}]])], - [gl_cv_func_mbrtowc_incomplete_state=yes], - [gl_cv_func_mbrtowc_incomplete_state=no], - [:]) - fi fi ]) ]) @@ -250,6 +185,13 @@ changequote([,])dnl #include #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -265,7 +207,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) - return 2; + return 1; } return 0; }]])], @@ -303,6 +245,13 @@ changequote([,])dnl #include #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -365,6 +314,13 @@ changequote([,])dnl [AC_LANG_SOURCE([[ #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -379,7 +335,7 @@ int main () mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) - return 2; + return 1; } return 0; }]])], @@ -420,6 +376,13 @@ changequote([,])dnl [AC_LANG_SOURCE([[ #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -541,6 +504,13 @@ changequote([,])dnl [AC_LANG_SOURCE([[ #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include int main () { @@ -552,7 +522,7 @@ int main () memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) - return 2; + return 1; } return 0; }]])], @@ -563,206 +533,11 @@ int main () ]) ]) -dnl Test whether mbrtowc stores a wide character when reporting incomplete -dnl input. - -AC_DEFUN([gl_MBRTOWC_STORES_INCOMPLETE], -[ - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CACHE_CHECK([whether mbrtowc stores incomplete characters], - [gl_cv_func_mbrtowc_stores_incomplete], - [ - dnl Initial guess, used when cross-compiling or when no suitable locale - dnl is present. -changequote(,)dnl - case "$host_os" in - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;; - *) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;; - esac -changequote([,])dnl - case "$host_os" in - mingw*) - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -int main () -{ - int result = 0; - if (setlocale (LC_ALL, "French_France.65001") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 1; - } - if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 2; - } - if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 4; - } - if (setlocale (LC_ALL, "Chinese_China.936") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - result |= 8; - } - return result; -}]])], - [gl_cv_func_mbrtowc_stores_incomplete=no], - [gl_cv_func_mbrtowc_stores_incomplete=yes], - [:]) - ;; - *) - AC_REQUIRE([gt_LOCALE_FR_UTF8]) - if test $LOCALE_FR_UTF8 != none; then - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -int main () -{ - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) - { - wchar_t wc = (wchar_t) 0xBADFACE; - mbstate_t state; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) - && wc != (wchar_t) 0xBADFACE) - return 1; - } - return 0; -}]])], - [gl_cv_func_mbrtowc_stores_incomplete=no], - [gl_cv_func_mbrtowc_stores_incomplete=yes], - [:]) - fi - ;; - esac - ]) -]) - -dnl Test whether mbrtowc returns the correct value on empty input. - -AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT], -[ - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CACHE_CHECK([whether mbrtowc works on empty input], - [gl_cv_func_mbrtowc_empty_input], - [ - dnl Initial guess, used when cross-compiling or when no suitable locale - dnl is present. -changequote(,)dnl - case "$host_os" in - # Guess no on AIX and glibc systems. - aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - esac -changequote([,])dnl - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ - #include - static wchar_t wc; - static mbstate_t mbs; - int - main (void) - { - return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; - }]])], - [gl_cv_func_mbrtowc_empty_input=yes], - [gl_cv_func_mbrtowc_empty_input=no], - [:]) - ]) -]) - -dnl Test whether mbrtowc reports encoding errors in the C locale. -dnl Although POSIX was never intended to allow this, the GNU C Library -dnl and other implementations do it. See: -dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932 - -AC_DEFUN([gl_MBRTOWC_C_LOCALE], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CACHE_CHECK([whether the C locale is free of encoding errors], - [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ], - [ - dnl Initial guess, used when cross-compiling or when no suitable locale - dnl is present. - gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal" - - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include - #include - #include - ]], [[ - int i; - char *locale = setlocale (LC_ALL, "C"); - if (! locale) - return 2; - for (i = CHAR_MIN; i <= CHAR_MAX; i++) - { - char c = i; - wchar_t wc; - mbstate_t mbs = { 0, }; - size_t ss = mbrtowc (&wc, &c, 1, &mbs); - if (1 < ss) - return 3; - } - return 0; - ]])], - [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes], - [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no], - [case "$host_os" in - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;; - esac - ]) - ]) -]) - -# Prerequisites of lib/mbrtowc.c and lib/lc-charset-dispatch.c. +# Prerequisites of lib/mbrtowc.c. AC_DEFUN([gl_PREREQ_MBRTOWC], [ - AC_REQUIRE([AC_C_INLINE]) : ]) -# Prerequisites of lib/mbtowc-lock.c. -AC_DEFUN([gl_PREREQ_MBTOWC_LOCK], -[ - gl_VISIBILITY -]) - dnl From Paul Eggert @@ -772,17 +547,24 @@ AC_DEFUN([AC_FUNC_MBRTOWC], [ dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], - [gl_cv_func_mbrtowc], + gl_cv_func_mbrtowc, [AC_LINK_IFELSE( [AC_LANG_PROGRAM( - [[#include ]], + [[/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include ]], [[wchar_t wc; char const s[] = ""; size_t n = 1; mbstate_t state; return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], - [gl_cv_func_mbrtowc=yes], - [gl_cv_func_mbrtowc=no])]) + gl_cv_func_mbrtowc=yes, + gl_cv_func_mbrtowc=no)]) if test $gl_cv_func_mbrtowc = yes; then AC_DEFINE([HAVE_MBRTOWC], [1], [Define to 1 if mbrtowc and mbstate_t are properly declared.]) diff --git a/gl/m4/mbsinit.m4 b/gl/m4/mbsinit.m4 index c388a8b..2e6d092 100644 --- a/gl/m4/mbsinit.m4 +++ b/gl/m4/mbsinit.m4 @@ -1,5 +1,5 @@ -# mbsinit.m4 serial 9 -dnl Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc. +# mbsinit.m4 serial 8 +dnl Copyright (C) 2008, 2010-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, dnl with or without modifications, as long as this notice is preserved. @@ -16,8 +16,15 @@ AC_DEFUN([gl_FUNC_MBSINIT], if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 AC_CHECK_DECLS([mbsinit],,, [[ - #include - ]]) +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include +]]) if test $ac_cv_have_decl_mbsinit = yes; then dnl On Minix 3.1.8, the system's declares mbsinit() although dnl it does not have the function. Avoid a collision with gnulib's diff --git a/gl/m4/mbstate_t.m4 b/gl/m4/mbstate_t.m4 index dcd66b9..ed00117 100644 --- a/gl/m4/mbstate_t.m4 +++ b/gl/m4/mbstate_t.m4 @@ -1,5 +1,5 @@ -# mbstate_t.m4 serial 14 -dnl Copyright (C) 2000-2002, 2008-2023 Free Software Foundation, Inc. +# mbstate_t.m4 serial 13 +dnl Copyright (C) 2000-2002, 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -20,7 +20,14 @@ AC_DEFUN([AC_TYPE_MBSTATE_T], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT[ - #include ]], +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include ]], [[mbstate_t x; return sizeof x;]])], [ac_cv_type_mbstate_t=yes], [ac_cv_type_mbstate_t=no])]) diff --git a/gl/m4/mbtowc.m4 b/gl/m4/mbtowc.m4 index 7823be0..e479461 100644 --- a/gl/m4/mbtowc.m4 +++ b/gl/m4/mbtowc.m4 @@ -1,5 +1,5 @@ -# mbtowc.m4 serial 3 -dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. +# mbtowc.m4 serial 2 +dnl Copyright (C) 2011-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, dnl with or without modifications, as long as this notice is preserved. @@ -8,13 +8,8 @@ AC_DEFUN([gl_FUNC_MBTOWC], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_CHECK_FUNCS([mbtowc]) - if test $ac_cv_func_mbtowc = no; then - HAVE_MBTOWC=0 - else - if false; then - REPLACE_MBTOWC=1 - fi + if false; then + REPLACE_MBTOWC=1 fi ]) diff --git a/gl/m4/memchr.m4 b/gl/m4/memchr.m4 index 4f1aed0..2d8abe7 100644 --- a/gl/m4/memchr.m4 +++ b/gl/m4/memchr.m4 @@ -1,30 +1,35 @@ -# memchr.m4 serial 18 -dnl Copyright (C) 2002-2004, 2009-2023 Free Software Foundation, Inc. +# memchr.m4 serial 12 +dnl Copyright (C) 2002-2004, 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, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_FUNC_MEMCHR], [ - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - dnl Check for prerequisites for memory fence checks. gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) - AC_REQUIRE([gl_STRING_H_DEFAULTS]) - # Detect platform-specific bugs in some versions of glibc: - # memchr should not dereference anything with length 0 - # https://bugzilla.redhat.com/show_bug.cgi?id=499689 - # memchr should not dereference overestimated length after a match - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 - # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 - # memchr should cast the second argument to 'unsigned char'. - # This bug exists in Android 4.3. - # Assume that memchr works on platforms that lack mprotect. - AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], - [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [ + dnl These days, we assume memchr is present. But if support for old + dnl platforms is desired: + AC_CHECK_FUNCS_ONCE([memchr]) + if test $ac_cv_func_memchr = no; then + HAVE_MEMCHR=0 + fi + ]) + if test $HAVE_MEMCHR = 1; then + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # http://bugzilla.redhat.com/499689 + # memchr should not dereference overestimated length after a match + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # Assume that memchr works on platforms that lack mprotect. + AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #if HAVE_SYS_MMAN_H # include @@ -59,7 +64,6 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR], #endif if (fence) { - /* Test against bugs on glibc systems. */ if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); @@ -67,37 +71,15 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR], result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; - /* Test against bug on AIX 7.2. */ - if (memchr (fence - 4, '6', 16) != fence - 4) - result |= 8; } - /* Test against bug on Android 4.3. */ - { - char input[3]; - input[0] = 'a'; - input[1] = 'b'; - input[2] = 'c'; - if (memchr (input, 0x789abc00 | 'b', 3) != input + 1) - result |= 16; - } return result; -]])], - [gl_cv_func_memchr_works=yes], - [gl_cv_func_memchr_works=no], - [case "$host_os" in - # Guess no on Android. - linux*-android*) gl_cv_func_memchr_works="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_memchr_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_memchr_works="$gl_cross_guess_normal" ;; - esac - ]) - ]) - case "$gl_cv_func_memchr_works" in - *yes) ;; - *) REPLACE_MEMCHR=1 ;; - esac +]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no], + [dnl Be pessimistic for now. + gl_cv_func_memchr_works="guessing no"])]) + if test "$gl_cv_func_memchr_works" != yes; then + REPLACE_MEMCHR=1 + fi + fi ]) # Prerequisites of lib/memchr.c. diff --git a/gl/m4/minmax.m4 b/gl/m4/minmax.m4 deleted file mode 100644 index fd09846..0000000 --- a/gl/m4/minmax.m4 +++ /dev/null @@ -1,44 +0,0 @@ -# minmax.m4 serial 4 -dnl Copyright (C) 2005, 2009-2023 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. - -AC_PREREQ([2.53]) - -AC_DEFUN([gl_MINMAX], -[ - AC_REQUIRE([gl_PREREQ_MINMAX]) -]) - -# Prerequisites of lib/minmax.h. -AC_DEFUN([gl_PREREQ_MINMAX], -[ - gl_MINMAX_IN_HEADER([limits.h]) - gl_MINMAX_IN_HEADER([sys/param.h]) -]) - -dnl gl_MINMAX_IN_HEADER(HEADER) -dnl The parameter has to be a literal header name; it cannot be macro, -dnl nor a shell variable. (Because autoheader collects only AC_DEFINE -dnl invocations with a literal macro name.) -AC_DEFUN([gl_MINMAX_IN_HEADER], -[ - m4_pushdef([header], AS_TR_SH([$1])) - m4_pushdef([HEADER], AS_TR_CPP([$1])) - AC_CACHE_CHECK([whether <$1> defines MIN and MAX], - [gl_cv_minmax_in_]header, - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include <$1> - int x = MIN (42, 17);]], - [[]])], - [gl_cv_minmax_in_]header[=yes], - [gl_cv_minmax_in_]header[=no])]) - if test $gl_cv_minmax_in_[]header = yes; then - AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1, - [Define to 1 if <$1> defines the MIN and MAX macros.]) - fi - m4_popdef([HEADER]) - m4_popdef([header]) -]) diff --git a/gl/m4/mktime.m4 b/gl/m4/mktime.m4 index e9d31f3..faefb77 100644 --- a/gl/m4/mktime.m4 +++ b/gl/m4/mktime.m4 @@ -1,5 +1,5 @@ -# serial 37 -dnl Copyright (C) 2002-2003, 2005-2007, 2009-2023 Free Software Foundation, +# serial 25 +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -7,40 +7,24 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. -AC_DEFUN([gl_TIME_T_IS_SIGNED], +AC_DEFUN([gl_FUNC_MKTIME], [ - AC_CACHE_CHECK([whether time_t is signed], - [gl_cv_time_t_is_signed], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#include - char time_t_signed[(time_t) -1 < 0 ? 1 : -1];]])], - [gl_cv_time_t_is_signed=yes], - [gl_cv_time_t_is_signed=no])]) - if test $gl_cv_time_t_is_signed = yes; then - AC_DEFINE([TIME_T_IS_SIGNED], [1], [Define to 1 if time_t is signed.]) - fi -]) - -dnl Test whether mktime works. Set gl_cv_func_working_mktime. -AC_DEFUN([gl_FUNC_MKTIME_WORKS], -[ - AC_REQUIRE([gl_TIME_T_IS_SIGNED]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained dnl in Autoconf and because it invokes AC_LIBOBJ. AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_DECLS_ONCE([alarm]) AC_REQUIRE([gl_MULTIARCH]) + if test $APPLE_UNIVERSAL_BUILD = 1; then + # A universal build on Apple Mac OS X platforms. + # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode. + # But we need a configuration result that is valid in both modes. + gl_cv_func_working_mktime=no + fi AC_CACHE_CHECK([for working mktime], [gl_cv_func_working_mktime], - [if test $APPLE_UNIVERSAL_BUILD = 1; then - # A universal build on Apple Mac OS X platforms. - # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode. - # But we need a configuration result that is valid in both modes. - gl_cv_func_working_mktime="guessing no" - else - AC_RUN_IFELSE( - [AC_LANG_SOURCE( + [AC_RUN_IFELSE( + [AC_LANG_SOURCE( [[/* Test program from Paul Eggert and Tony Leneis. */ #include #include @@ -54,11 +38,8 @@ AC_DEFUN([gl_FUNC_MKTIME_WORKS], # include #endif -]GL_MDA_DEFINES[ - -#ifndef TIME_T_IS_SIGNED -# define TIME_T_IS_SIGNED 0 -#endif +/* Work around redefinition to rpl_putenv by other config tests. */ +#undef putenv static time_t time_t_max; static time_t time_t_min; @@ -82,8 +63,7 @@ spring_forward_gap () instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ - if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0) - return -1; + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; @@ -171,8 +151,7 @@ year_2050_test () instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ - if (putenv ("TZ=PST8PDT,M4.1.0,M10.5.0") != 0) - return -1; + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); t = mktime (&tm); @@ -183,25 +162,6 @@ year_2050_test () || (0 < t && answer - 120 <= t && t <= answer + 120)); } -static int -indiana_test () -{ - if (putenv ("TZ=America/Indiana/Indianapolis") != 0) - return -1; - struct tm tm; - tm.tm_year = 1986 - 1900; tm.tm_mon = 4 - 1; tm.tm_mday = 28; - tm.tm_hour = 16; tm.tm_min = 24; tm.tm_sec = 50; tm.tm_isdst = 0; - time_t std = mktime (&tm); - if (! (std == 515107490 || std == 515107503)) - return 1; - - /* This platform supports TZDB, either without or with leap seconds. - Return true if GNU Bug#48085 is absent. */ - tm.tm_isdst = 1; - time_t dst = mktime (&tm); - return std - dst == 60 * 60; -} - int main () { @@ -209,6 +169,7 @@ main () time_t t, delta; int i, j; int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1; + int time_t_signed = ! ((time_t) 0 < (time_t) -1); #if HAVE_DECL_ALARM /* This test makes some buggy mktime implementations loop. @@ -218,11 +179,11 @@ main () alarm (60); #endif - time_t_max = (! TIME_T_IS_SIGNED + time_t_max = (! time_t_signed ? (time_t) -1 : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1) * 2 + 1)); - time_t_min = (! TIME_T_IS_SIGNED + time_t_min = (! time_t_signed ? (time_t) 0 : time_t_signed_magnitude ? ~ (time_t) 0 @@ -257,62 +218,35 @@ main () result |= 16; if (! spring_forward_gap ()) result |= 32; - if (! year_2050_test () || ! indiana_test ()) + if (! year_2050_test ()) result |= 64; return result; }]])], - [gl_cv_func_working_mktime=yes], - [gl_cv_func_working_mktime=no], - [case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_working_mktime="guessing no" ;; - *) gl_cv_func_working_mktime="$gl_cross_guess_normal" ;; - esac - ]) - fi + [gl_cv_func_working_mktime=yes], + [gl_cv_func_working_mktime=no], + [gl_cv_func_working_mktime=no]) ]) -]) -dnl Main macro of module 'mktime'. -AC_DEFUN([gl_FUNC_MKTIME], -[ - AC_REQUIRE([gl_TIME_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_FUNC_MKTIME_WORKS]) - - REPLACE_MKTIME=0 - if test "$gl_cv_func_working_mktime" != yes; then + if test $gl_cv_func_working_mktime = no; then REPLACE_MKTIME=1 - AC_DEFINE([NEED_MKTIME_WORKING], [1], - [Define if the compilation of mktime.c should define 'mktime' - with the algorithmic workarounds.]) + else + REPLACE_MKTIME=0 fi - case "$host_os" in - mingw*) - REPLACE_MKTIME=1 - AC_DEFINE([NEED_MKTIME_WINDOWS], [1], - [Define if the compilation of mktime.c should define 'mktime' - with the native Windows TZ workaround.]) - ;; - esac ]) -dnl Main macro of module 'mktime-internal'. AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [ - AC_REQUIRE([gl_FUNC_MKTIME_WORKS]) - - WANT_MKTIME_INTERNAL=0 - dnl BeOS has __mktime_internal in libc, but other platforms don't. - AC_CHECK_FUNC([__mktime_internal], - [AC_DEFINE([mktime_internal], [__mktime_internal], - [Define to the real name of the mktime_internal function.]) - ], - [dnl mktime works but it doesn't export __mktime_internal, - dnl so we need to substitute our own mktime implementation. - WANT_MKTIME_INTERNAL=1 - AC_DEFINE([NEED_MKTIME_INTERNAL], [1], - [Define if the compilation of mktime.c should define 'mktime_internal'.]) - ]) + AC_REQUIRE([gl_FUNC_MKTIME]) + if test $REPLACE_MKTIME = 0; then + dnl BeOS has __mktime_internal in libc, but other platforms don't. + AC_CHECK_FUNC([__mktime_internal], + [AC_DEFINE([mktime_internal], [__mktime_internal], + [Define to the real name of the mktime_internal function.]) + ], + [dnl mktime works but it doesn't export __mktime_internal, + dnl so we need to substitute our own mktime implementation. + REPLACE_MKTIME=1 + ]) + fi ]) # Prerequisites of lib/mktime.c. diff --git a/gl/m4/mmap-anon.m4 b/gl/m4/mmap-anon.m4 index d07d26e..9b60ddf 100644 --- a/gl/m4/mmap-anon.m4 +++ b/gl/m4/mmap-anon.m4 @@ -1,5 +1,5 @@ -# mmap-anon.m4 serial 12 -dnl Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc. +# mmap-anon.m4 serial 10 +dnl Copyright (C) 2005, 2007, 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, dnl with or without modifications, as long as this notice is preserved. @@ -9,11 +9,11 @@ dnl with or without modifications, as long as this notice is preserved. # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS # and MAP_ANON exist and have the same value. # - On HP-UX, only MAP_ANONYMOUS exists. -# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix, only MAP_ANON exists. +# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists. # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be # used. -AC_DEFUN_ONCE([gl_FUNC_MMAP_ANON], +AC_DEFUN([gl_FUNC_MMAP_ANON], [ dnl Persuade glibc to define MAP_ANONYMOUS. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) diff --git a/gl/m4/mode_t.m4 b/gl/m4/mode_t.m4 deleted file mode 100644 index 82197c0..0000000 --- a/gl/m4/mode_t.m4 +++ /dev/null @@ -1,26 +0,0 @@ -# mode_t.m4 serial 2 -dnl Copyright (C) 2009-2023 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. - -# For using mode_t, it's sufficient to use AC_TYPE_MODE_T and -# include . - -# Define PROMOTED_MODE_T to the type that is the result of "default argument -# promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. -AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], -[ - AC_REQUIRE([AC_TYPE_MODE_T]) - AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ - dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', - dnl and to itself otherwise. This assumption is not guaranteed by the ISO C - dnl standard, but we don't know of any real-world counterexamples. - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], - [gl_cv_promoted_mode_t='int'], - [gl_cv_promoted_mode_t='mode_t']) - ]) - AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], - [Define to the type that is the result of default argument promotions of type mode_t.]) -]) diff --git a/gl/m4/mountlist.m4 b/gl/m4/mountlist.m4 index a9b4edb..cd137c9 100644 --- a/gl/m4/mountlist.m4 +++ b/gl/m4/mountlist.m4 @@ -1,338 +1,19 @@ -# serial 15 -dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc. +# serial 11 +dnl Copyright (C) 2002-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, dnl with or without modifications, as long as this notice is preserved. -dnl From Jim Meyering. - -AC_PREREQ([2.60]) - AC_DEFUN([gl_MOUNTLIST], [ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CHECK_FUNCS([listmntent]) - AC_CHECK_HEADERS_ONCE([sys/param.h sys/statvfs.h]) - - # We must include grp.h before ucred.h on OSF V4.0, since ucred.h uses - # NGROUPS (as the array dimension for a struct member) without a definition. - AC_CHECK_HEADERS([sys/ucred.h], [], [], [#include ]) - - AC_CHECK_HEADERS([sys/mount.h], [], [], - [AC_INCLUDES_DEFAULT - [#if HAVE_SYS_PARAM_H - #include - #endif - ]]) - - AC_CHECK_HEADERS([mntent.h sys/fs_types.h]) - getfsstat_includes="\ -$ac_includes_default -#if HAVE_SYS_PARAM_H -# include /* needed by powerpc-apple-darwin1.3.7 */ -#endif -#if HAVE_SYS_UCRED_H -# include /* needed for definition of NGROUPS */ -# include /* needed by powerpc-apple-darwin1.3.7 */ -#endif -#if HAVE_SYS_MOUNT_H -# include -#endif -#if HAVE_SYS_FS_TYPES_H -# include /* needed by powerpc-apple-darwin1.3.7 */ -#endif -" - AC_CHECK_MEMBERS([struct fsstat.f_fstypename],,,[$getfsstat_includes]) - - # Determine how to get the list of mounted file systems. - ac_list_mounted_fs= - - # If the getmntent function is available but not in the standard library, - # make sure LIBS contains the appropriate -l option. - AC_FUNC_GETMNTENT - - if test -z "$ac_list_mounted_fs"; then - # AIX. - AC_CACHE_CHECK([for mntctl function and struct vmount], - [fu_cv_sys_mounted_vmount], - [AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include ]])], - [fu_cv_sys_mounted_vmount=yes], - [fu_cv_sys_mounted_vmount=no])]) - if test $fu_cv_sys_mounted_vmount = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_VMOUNT], [1], - [Define if there is a function named mntctl that can be used to read - the list of mounted file systems, and there is a system header file - that declares 'struct vmount'. (AIX)]) - fi - fi - - if test $ac_cv_func_getmntent = yes; then - - # This system has the getmntent function. - # Determine whether it's the one-argument variant or the two-argument one. - - if test -z "$ac_list_mounted_fs"; then - # glibc, HP-UX, IRIX, Cygwin, Android, also (obsolete) 4.3BSD, SunOS. - AC_CACHE_CHECK([for one-argument getmntent function], - [fu_cv_sys_mounted_getmntent1], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ -/* SunOS 4.1.x /usr/include/mntent.h needs this for FILE */ -#include - -#include -#if defined __ANDROID__ /* Android */ -# undef MOUNTED -# define MOUNTED "/proc/mounts" -#elif !defined MOUNTED -# if defined _PATH_MOUNTED /* GNU libc */ -# define MOUNTED _PATH_MOUNTED -# endif -# if defined MNT_MNTTAB /* HP-UX. */ -# define MOUNTED MNT_MNTTAB -# endif -#endif -]], - [[struct mntent *mnt = 0; char *table = MOUNTED; - if (sizeof mnt && sizeof table) return 0; - ]])], - [fu_cv_sys_mounted_getmntent1=yes], - [fu_cv_sys_mounted_getmntent1=no]) - ]) - if test $fu_cv_sys_mounted_getmntent1 = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_GETMNTENT1], [1], - [Define if there is a function named getmntent for reading the list - of mounted file systems, and that function takes a single argument. - (4.3BSD, SunOS, HP-UX, Irix)]) - AC_CHECK_FUNCS([setmntent endmntent hasmntopt]) - fi - fi - - if test -z "$ac_list_mounted_fs"; then - # Solaris >= 8. - AC_CACHE_CHECK([for getextmntent function], - [fu_cv_sys_mounted_getextmntent], - [AC_EGREP_HEADER([getextmntent], [sys/mnttab.h], - [fu_cv_sys_mounted_getextmntent=yes], - [fu_cv_sys_mounted_getextmntent=no])]) - if test $fu_cv_sys_mounted_getextmntent = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_GETEXTMNTENT], [1], - [Define if there is a function named getextmntent for reading the list - of mounted file systems. (Solaris)]) - fi - fi - - if test -z "$ac_list_mounted_fs"; then - # Solaris < 8, also (obsolete) SVR4. - # Solaris >= 8 has the two-argument getmntent but is already handled above. - AC_CACHE_CHECK([for two-argument getmntent function], - [fu_cv_sys_mounted_getmntent2], - [AC_EGREP_HEADER([getmntent], [sys/mnttab.h], - [fu_cv_sys_mounted_getmntent2=yes], - [fu_cv_sys_mounted_getmntent2=no]) - ]) - if test $fu_cv_sys_mounted_getmntent2 = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_GETMNTENT2], [1], - [Define if there is a function named getmntent for reading the list of - mounted file systems, and that function takes two arguments. (SVR4)]) - AC_CHECK_FUNCS([hasmntopt]) - fi - fi - - fi - - if test -z "$ac_list_mounted_fs"; then - # OSF/1, also (obsolete) Apple Darwin 1.3. - # powerpc-apple-darwin1.3.7 needs sys/param.h sys/ucred.h sys/fs_types.h - - AC_CACHE_CHECK([for getfsstat function], - [fu_cv_sys_mounted_getfsstat], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[ -#include -#if HAVE_STRUCT_FSSTAT_F_FSTYPENAME -# define FS_TYPE(Ent) ((Ent).f_fstypename) -#else -# define FS_TYPE(Ent) mnt_names[(Ent).f_type] -#endif -$getfsstat_includes - ]], - [[struct statfs *stats; - int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); - char *t = FS_TYPE (*stats); - ]])], - [fu_cv_sys_mounted_getfsstat=yes], - [fu_cv_sys_mounted_getfsstat=no]) - ]) - if test $fu_cv_sys_mounted_getfsstat = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_GETFSSTAT], [1], - [Define if there is a function named getfsstat for reading the - list of mounted file systems. (DEC Alpha running OSF/1)]) - fi - fi - - if test -z "$ac_list_mounted_fs"; then - # (obsolete) SVR3 - AC_CACHE_CHECK([for FIXME existence of three headers], - [fu_cv_sys_mounted_fread_fstyp], - [AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ -#include -#include -#include -]])], - [fu_cv_sys_mounted_fread_fstyp=yes], - [fu_cv_sys_mounted_fread_fstyp=no]) - ]) - if test $fu_cv_sys_mounted_fread_fstyp = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_FREAD_FSTYP], [1], - [Define if (like SVR2) there is no specific function for reading the - list of mounted file systems, and your system has these header files: - and . (SVR3)]) - fi - fi - - if test -z "$ac_list_mounted_fs"; then - # Mac OS X, FreeBSD, NetBSD, OpenBSD, Minix, also (obsolete) 4.4BSD. - # OSF/1 also has getmntinfo but is already handled above. - # We cannot use AC_CHECK_FUNCS([getmntinfo]) here, because at the linker - # level the function is sometimes called getmntinfo64 or getmntinfo$INODE64 - # on Mac OS X, __getmntinfo13 on NetBSD and Minix, _F64_getmntinfo on OSF/1. - AC_CACHE_CHECK([for getmntinfo function], - [fu_cv_sys_mounted_getmntinfo], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[ -#if HAVE_SYS_PARAM_H -# include -#endif -#include -#if HAVE_SYS_MOUNT_H -# include -#endif -#if HAVE_SYS_STATVFS_H -# include -#endif -#include - ]], - [[int count = getmntinfo (NULL, MNT_WAIT); - ]])], - [fu_cv_sys_mounted_getmntinfo=yes], - [fu_cv_sys_mounted_getmntinfo=no]) - ]) - if test $fu_cv_sys_mounted_getmntinfo = yes; then - AC_CACHE_CHECK([whether getmntinfo returns statvfs structures], - [fu_cv_sys_mounted_getmntinfo2], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ -#if HAVE_SYS_PARAM_H -# include -#endif -#include -#if HAVE_SYS_MOUNT_H -# include -#endif -#if HAVE_SYS_STATVFS_H -# include -#endif -extern -#ifdef __cplusplus -"C" -#endif -int getmntinfo (struct statfs **, int); - ]], [[]])], - [fu_cv_sys_mounted_getmntinfo2=no], - [fu_cv_sys_mounted_getmntinfo2=yes]) - ]) - if test $fu_cv_sys_mounted_getmntinfo2 = no; then - # Mac OS X, FreeBSD, OpenBSD, also (obsolete) 4.4BSD. - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_GETMNTINFO], [1], - [Define if there is a function named getmntinfo for reading the - list of mounted file systems and it returns an array of - 'struct statfs'. (4.4BSD, Darwin)]) - else - # NetBSD, Minix. - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_GETMNTINFO2], [1], - [Define if there is a function named getmntinfo for reading the - list of mounted file systems and it returns an array of - 'struct statvfs'. (NetBSD 3.0)]) - fi - fi - fi - - if test -z "$ac_list_mounted_fs"; then - # Haiku, also (obsolete) BeOS. - AC_CHECK_FUNCS([next_dev fs_stat_dev]) - AC_CHECK_HEADERS([fs_info.h]) - AC_CACHE_CHECK([for BEOS mounted file system support functions], - [fu_cv_sys_mounted_fs_stat_dev], - [if test $ac_cv_header_fs_info_h = yes \ - && test $ac_cv_func_next_dev = yes \ - && test $ac_cv_func_fs_stat_dev = yes; then - fu_cv_sys_mounted_fs_stat_dev=yes - else - fu_cv_sys_mounted_fs_stat_dev=no - fi - ]) - if test $fu_cv_sys_mounted_fs_stat_dev = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_FS_STAT_DEV], [1], - [Define if there are functions named next_dev and fs_stat_dev for - reading the list of mounted file systems. (BeOS)]) - fi - fi - - if test -z "$ac_list_mounted_fs"; then - # Interix / BSD alike statvfs - # the code is really interix specific, so make sure, we're on it. - case "$host" in - *-interix*) - AC_CHECK_FUNCS([statvfs]) - if test $ac_cv_func_statvfs = yes; then - ac_list_mounted_fs=found - AC_DEFINE([MOUNTED_INTERIX_STATVFS], [1], - [Define if we are on interix, and ought to use statvfs plus - some special knowledge on where mounted file systems can be - found. (Interix)]) - fi - ;; - esac - fi - - if test -z "$ac_list_mounted_fs"; then - AC_MSG_ERROR([could not determine how to read list of mounted file systems]) - # FIXME -- no need to abort building the whole package - # Can't build mountlist.c or anything that needs its functions - fi - - if test $ac_list_mounted_fs = found; then - gl_cv_list_mounted_fs=yes - else - gl_cv_list_mounted_fs=no - fi + gl_LIST_MOUNTED_FILE_SYSTEMS([gl_cv_list_mounted_fs=yes], + [gl_cv_list_mounted_fs=no]) ]) -# Prerequisites of lib/mountlist.c not done by gl_MOUNTLIST. +# Prerequisites of lib/mountlist.c not done by gl_LIST_MOUNTED_FILE_SYSTEMS. AC_DEFUN([gl_PREREQ_MOUNTLIST_EXTRA], [ - dnl Note gl_MOUNTLIST checks for mntent.h, not sys/mntent.h. + dnl Note gl_LIST_MOUNTED_FILE_SYSTEMS checks for mntent.h, not sys/mntent.h. AC_CHECK_HEADERS([sys/mntent.h]) - AC_HEADER_MAJOR()dnl for use of makedev () gl_FSTYPENAME ]) - -# Replace Autoconf's AC_FUNC_GETMNTENT to omit checks that are unnecessary -# nowadays. -AC_DEFUN([AC_FUNC_GETMNTENT], -[ - # getmntent is in the standard C library on most systems, but in -lgen on - # Unixware. - AC_SEARCH_LIBS([getmntent], [gen]) - AC_CHECK_FUNCS([getmntent]) -]) diff --git a/gl/m4/msvc-inval.m4 b/gl/m4/msvc-inval.m4 index 8d9d21b..9a6a47a 100644 --- a/gl/m4/msvc-inval.m4 +++ b/gl/m4/msvc-inval.m4 @@ -1,5 +1,5 @@ # msvc-inval.m4 serial 1 -dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2011-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/msvc-nothrow.m4 b/gl/m4/msvc-nothrow.m4 index 0263e49..a39618a 100644 --- a/gl/m4/msvc-nothrow.m4 +++ b/gl/m4/msvc-nothrow.m4 @@ -1,5 +1,5 @@ # msvc-nothrow.m4 serial 1 -dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2011-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/multiarch.m4 b/gl/m4/multiarch.m4 index 3ba5b0f..552ec7e 100644 --- a/gl/m4/multiarch.m4 +++ b/gl/m4/multiarch.m4 @@ -1,5 +1,5 @@ -# multiarch.m4 serial 9 -dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. +# multiarch.m4 serial 7 +dnl Copyright (C) 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -21,40 +21,37 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. - AC_CACHE_CHECK([whether the compiler produces multi-arch binaries], - [gl_cv_c_multiarch], - [gl_cv_c_multiarch=no - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - ]])], - [ - dnl Check for potential -arch flags. It is not universal unless - dnl there are at least two -arch flags with different values. - arch= - prev= - for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do - if test -n "$prev"; then - case $word in - i?86 | x86_64 | ppc | ppc64 | arm | arm64) - if test -z "$arch" || test "$arch" = "$word"; then - arch="$word" - else - gl_cv_c_multiarch=yes - fi - ;; - esac - prev= - else - if test "x$word" = "x-arch"; then - prev=arch - fi - fi - done - ]) + gl_cv_c_multiarch=no + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + ]])], + [ + dnl Check for potential -arch flags. It is not universal unless + dnl there are at least two -arch flags with different values. + arch= + prev= + for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do + if test -n "$prev"; then + case $word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$arch" || test "$arch" = "$word"; then + arch="$word" + else + gl_cv_c_multiarch=yes + fi + ;; + esac + prev= + else + if test "x$word" = "x-arch"; then + prev=arch + fi + fi + done ]) if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 diff --git a/gl/m4/netdb_h.m4 b/gl/m4/netdb_h.m4 index e6aa892..2c69f99 100644 --- a/gl/m4/netdb_h.m4 +++ b/gl/m4/netdb_h.m4 @@ -1,10 +1,10 @@ -# netdb_h.m4 serial 15 -dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. +# netdb_h.m4 serial 11 +dnl Copyright (C) 2008-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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_NETDB_H], +AC_DEFUN([gl_HEADER_NETDB], [ AC_REQUIRE([gl_NETDB_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([netdb.h]) @@ -21,33 +21,18 @@ AC_DEFUN_ONCE([gl_NETDB_H], [getaddrinfo freeaddrinfo gai_strerror getnameinfo]) ]) -# gl_NETDB_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_NETDB_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_NETDB_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_NETDB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_NETDB_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_NETDB_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETADDRINFO]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_NETDB_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_NETDB_H_DEFAULTS]) -]) - AC_DEFUN([gl_NETDB_H_DEFAULTS], [ + GNULIB_GETADDRINFO=0; AC_SUBST([GNULIB_GETADDRINFO]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_STRUCT_ADDRINFO=1; AC_SUBST([HAVE_STRUCT_ADDRINFO]) HAVE_DECL_FREEADDRINFO=1; AC_SUBST([HAVE_DECL_FREEADDRINFO]) @@ -55,5 +40,4 @@ AC_DEFUN([gl_NETDB_H_DEFAULTS], HAVE_DECL_GETADDRINFO=1; AC_SUBST([HAVE_DECL_GETADDRINFO]) HAVE_DECL_GETNAMEINFO=1; AC_SUBST([HAVE_DECL_GETNAMEINFO]) REPLACE_GAI_STRERROR=0; AC_SUBST([REPLACE_GAI_STRERROR]) - REPLACE_GETADDRINFO=0; AC_SUBST([REPLACE_GETADDRINFO]) ]) diff --git a/gl/m4/netinet_in_h.m4 b/gl/m4/netinet_in_h.m4 index 7115419..21971b2 100644 --- a/gl/m4/netinet_in_h.m4 +++ b/gl/m4/netinet_in_h.m4 @@ -1,5 +1,5 @@ -# netinet_in_h.m4 serial 6 -dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. +# netinet_in_h.m4 serial 5 +dnl Copyright (C) 2006-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, dnl with or without modifications, as long as this notice is preserved. @@ -14,9 +14,9 @@ AC_DEFUN([gl_HEADER_NETINET_IN], [gl_cv_header_netinet_in_h_selfcontained=no]) ]) if test $gl_cv_header_netinet_in_h_selfcontained = yes; then - GL_GENERATE_NETINET_IN_H=false + NETINET_IN_H='' else - GL_GENERATE_NETINET_IN_H=true + NETINET_IN_H='netinet/in.h' AC_CHECK_HEADERS([netinet/in.h]) gl_CHECK_NEXT_HEADERS([netinet/in.h]) if test $ac_cv_header_netinet_in_h = yes; then @@ -26,4 +26,6 @@ AC_DEFUN([gl_HEADER_NETINET_IN], fi AC_SUBST([HAVE_NETINET_IN_H]) fi + AC_SUBST([NETINET_IN_H]) + AM_CONDITIONAL([GL_GENERATE_NETINET_IN_H], [test -n "$NETINET_IN_H"]) ]) diff --git a/gl/m4/nl_langinfo.m4 b/gl/m4/nl_langinfo.m4 index 51e783c..25e2101 100644 --- a/gl/m4/nl_langinfo.m4 +++ b/gl/m4/nl_langinfo.m4 @@ -1,5 +1,5 @@ -# nl_langinfo.m4 serial 8 -dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. +# nl_langinfo.m4 serial 5 +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. @@ -9,10 +9,7 @@ AC_DEFUN([gl_FUNC_NL_LANGINFO], AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) AC_REQUIRE([gl_LANGINFO_H]) AC_CHECK_FUNCS_ONCE([nl_langinfo]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_FUNC_SETLOCALE_NULL]) - AC_REQUIRE([gl_PTHREADLIB]) - AC_CHECK_HEADERS_ONCE([threads.h]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. AC_CACHE_CHECK([whether YESEXPR works], @@ -39,19 +36,8 @@ AC_DEFUN([gl_FUNC_NL_LANGINFO], AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS], [$FUNC_NL_LANGINFO_YESEXPR_WORKS], [Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.]) - # On Solaris 10 and Solaris 11.3, nl_langinfo is not multithread-safe. - case "$host_os" in - solaris*) NL_LANGINFO_MTSAFE=0 ;; - *) NL_LANGINFO_MTSAFE=1 ;; - esac - AC_DEFINE_UNQUOTED([NL_LANGINFO_MTSAFE], [$NL_LANGINFO_MTSAFE], - [Define to 1 if nl_langinfo is multithread-safe.]) - if test $HAVE_LANGINFO_CODESET = 1 \ - && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ - && test $HAVE_LANGINFO_ALTMON = 1 \ - && test $HAVE_LANGINFO_ERA = 1 \ - && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1 \ - && test $NL_LANGINFO_MTSAFE = 1; then + if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \ + && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 @@ -61,17 +47,4 @@ AC_DEFUN([gl_FUNC_NL_LANGINFO], else HAVE_NL_LANGINFO=0 fi - if test $HAVE_NL_LANGINFO = 0 || test $HAVE_LANGINFO_CODESET = 0; then - LIB_NL_LANGINFO="$LIB_SETLOCALE_NULL" - else - LIB_NL_LANGINFO= - fi - dnl LIB_NL_LANGINFO is expected to be empty everywhere. - AC_SUBST([LIB_NL_LANGINFO]) -]) - -# Prerequisites of lib/nl_langinfo-lock.c. -AC_DEFUN([gl_PREREQ_NL_LANGINFO_LOCK], -[ - gl_VISIBILITY ]) diff --git a/gl/m4/nls.m4 b/gl/m4/nls.m4 new file mode 100644 index 0000000..8f8a147 --- /dev/null +++ b/gl/m4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, +dnl 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 +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/gl/m4/nocrash.m4 b/gl/m4/nocrash.m4 index 6a76638..105b884 100644 --- a/gl/m4/nocrash.m4 +++ b/gl/m4/nocrash.m4 @@ -1,5 +1,5 @@ -# nocrash.m4 serial 5 -dnl Copyright (C) 2005, 2009-2023 Free Software Foundation, Inc. +# nocrash.m4 serial 4 +dnl Copyright (C) 2005, 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, dnl with or without modifications, as long as this notice is preserved. @@ -53,7 +53,7 @@ nocrash_init (void) /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { - /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { @@ -72,14 +72,14 @@ nocrash_init (void) for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. - See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } -#elif defined _WIN32 && ! defined __CYGWIN__ +#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include @@ -110,12 +110,11 @@ nocrash_init (void) #else /* Avoid a crash on POSIX systems. */ #include -#include /* A POSIX signal handler. */ static void exception_handler (int sig) { - _exit (1); + exit (1); } static void nocrash_init (void) diff --git a/gl/m4/off_t.m4 b/gl/m4/off_t.m4 index 880f347..d355d01 100644 --- a/gl/m4/off_t.m4 +++ b/gl/m4/off_t.m4 @@ -1,5 +1,5 @@ # off_t.m4 serial 1 -dnl Copyright (C) 2012-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2012-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/onceonly.m4 b/gl/m4/onceonly.m4 new file mode 100644 index 0000000..0a875a3 --- /dev/null +++ b/gl/m4/onceonly.m4 @@ -0,0 +1,104 @@ +# onceonly.m4 serial 9 +dnl Copyright (C) 2002-2003, 2005-2006, 2008-2013 Free Software Foundation, +dnl Inc. +dnl +dnl This file is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This file is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this file. If not, see . +dnl +dnl As a special exception to the GNU General Public License, +dnl this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl This file defines some "once only" variants of standard autoconf macros. +dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS +dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS +dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS +dnl AC_REQUIRE([AC_FUNC_STRCOLL]) like AC_FUNC_STRCOLL +dnl The advantage is that the check for each of the headers/functions/decls +dnl will be put only once into the 'configure' file. It keeps the size of +dnl the 'configure' file down, and avoids redundant output when 'configure' +dnl is run. +dnl The drawback is that the checks cannot be conditionalized. If you write +dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi +dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to +dnl empty, and the check will be inserted before the body of the AC_DEFUNed +dnl function. + +dnl The original code implemented AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE +dnl in terms of AC_DEFUN and AC_REQUIRE. This implementation uses diversions to +dnl named sections DEFAULTS and INIT_PREPARE in order to check all requested +dnl headers at once, thus reducing the size of 'configure'. It is known to work +dnl with autoconf 2.57..2.62 at least . The size reduction is ca. 9%. + +dnl Autoconf version 2.59 plus gnulib is required; this file is not needed +dnl with Autoconf 2.60 or greater. But note that autoconf's implementation of +dnl AC_CHECK_DECLS_ONCE expects a comma-separated list of symbols as first +dnl argument! +AC_PREREQ([2.59]) + +# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of +# AC_CHECK_HEADERS(HEADER1 HEADER2 ...). +AC_DEFUN([AC_CHECK_HEADERS_ONCE], [ + : + m4_foreach_w([gl_HEADER_NAME], [$1], [ + AC_DEFUN([gl_CHECK_HEADER_]m4_quote(m4_translit(gl_HEADER_NAME, + [./-], [___])), [ + m4_divert_text([INIT_PREPARE], + [gl_header_list="$gl_header_list gl_HEADER_NAME"]) + gl_HEADERS_EXPANSION + AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])), + [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.]) + ]) + AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(m4_translit(gl_HEADER_NAME, + [./-], [___]))) + ]) +]) +m4_define([gl_HEADERS_EXPANSION], [ + m4_divert_text([DEFAULTS], [gl_header_list=]) + AC_CHECK_HEADERS([$gl_header_list]) + m4_define([gl_HEADERS_EXPANSION], []) +]) + +# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of +# AC_CHECK_FUNCS(FUNC1 FUNC2 ...). +AC_DEFUN([AC_CHECK_FUNCS_ONCE], [ + : + m4_foreach_w([gl_FUNC_NAME], [$1], [ + AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [ + m4_divert_text([INIT_PREPARE], + [gl_func_list="$gl_func_list gl_FUNC_NAME"]) + gl_FUNCS_EXPANSION + AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])), + [Define to 1 if you have the ']m4_defn([gl_FUNC_NAME])[' function.]) + ]) + AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME])) + ]) +]) +m4_define([gl_FUNCS_EXPANSION], [ + m4_divert_text([DEFAULTS], [gl_func_list=]) + AC_CHECK_FUNCS([$gl_func_list]) + m4_define([gl_FUNCS_EXPANSION], []) +]) + +# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of +# AC_CHECK_DECLS(DECL1, DECL2, ...). +AC_DEFUN([AC_CHECK_DECLS_ONCE], [ + : + m4_foreach_w([gl_DECL_NAME], [$1], [ + AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [ + AC_CHECK_DECLS(m4_defn([gl_DECL_NAME])) + ]) + AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME])) + ]) +]) diff --git a/gl/m4/open-cloexec.m4 b/gl/m4/open-cloexec.m4 deleted file mode 100644 index fd572fc..0000000 --- a/gl/m4/open-cloexec.m4 +++ /dev/null @@ -1,21 +0,0 @@ -# Test whether O_CLOEXEC is defined. - -dnl Copyright 2017-2023 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. - -AC_DEFUN([gl_PREPROC_O_CLOEXEC], -[ - AC_CACHE_CHECK([for O_CLOEXEC], - [gl_cv_macro_O_CLOEXEC], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#include - #ifndef O_CLOEXEC - choke me; - #endif - ]], - [[return O_CLOEXEC;]])], - [gl_cv_macro_O_CLOEXEC=yes], - [gl_cv_macro_O_CLOEXEC=no])]) -]) diff --git a/gl/m4/open-slash.m4 b/gl/m4/open-slash.m4 deleted file mode 100644 index 1f731f8..0000000 --- a/gl/m4/open-slash.m4 +++ /dev/null @@ -1,60 +0,0 @@ -# open-slash.m4 serial 2 -dnl Copyright (C) 2007-2023 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 Tests whether open() and creat() recognize a trailing slash. -dnl Sets gl_cv_func_open_slash. -AC_DEFUN([gl_OPEN_TRAILING_SLASH_BUG], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - dnl open("foo/") should not create a file when the file name has a - dnl trailing slash. FreeBSD only has the problem on symlinks. - AC_CHECK_FUNCS_ONCE([lstat]) - AC_CACHE_CHECK([whether open recognizes a trailing slash], - [gl_cv_func_open_slash], - [# Assume that if we have lstat, we can also check symlinks. - if test $ac_cv_func_lstat = yes; then - touch conftest.tmp - ln -s conftest.tmp conftest.lnk - fi - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#if HAVE_UNISTD_H -# include -#endif -]GL_MDA_DEFINES[ -int main () -{ - int result = 0; -#if HAVE_LSTAT - if (open ("conftest.lnk/", O_RDONLY) != -1) - result |= 1; -#endif - if (open ("conftest.sl/", O_CREAT, 0600) >= 0) - result |= 2; - return result; -}]])], - [gl_cv_func_open_slash=yes], - [gl_cv_func_open_slash=no], - [ -changequote(,)dnl - case "$host_os" in - freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) - gl_cv_func_open_slash="guessing no" ;; - *) - gl_cv_func_open_slash="guessing yes" ;; - esac -changequote([,])dnl - ]) - rm -f conftest.sl conftest.tmp conftest.lnk - ]) - case "$gl_cv_func_open_slash" in - *no) - AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1], - [Define to 1 if open() fails to recognize a trailing slash.]) - ;; - esac -]) diff --git a/gl/m4/open.m4 b/gl/m4/open.m4 deleted file mode 100644 index 94fa2bb..0000000 --- a/gl/m4/open.m4 +++ /dev/null @@ -1,56 +0,0 @@ -# open.m4 serial 15 -dnl Copyright (C) 2007-2023 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. - -AC_DEFUN([gl_FUNC_OPEN], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_PREPROC_O_CLOEXEC]) - case "$host_os" in - mingw* | pw*) - REPLACE_OPEN=1 - ;; - *) - dnl open("foo/") should not create a file when the file name has a - dnl trailing slash. FreeBSD only has the problem on symlinks. - AC_CHECK_FUNCS_ONCE([lstat]) - if test "$gl_cv_macro_O_CLOEXEC" != yes; then - REPLACE_OPEN=1 - fi - gl_OPEN_TRAILING_SLASH_BUG - case "$gl_cv_func_open_slash" in - *no) - REPLACE_OPEN=1 - ;; - esac - ;; - esac - dnl Replace open() for supporting the gnulib-defined fchdir() function, - dnl to keep fchdir's bookkeeping up-to-date. - m4_ifdef([gl_FUNC_FCHDIR], [ - if test $REPLACE_OPEN = 0; then - gl_TEST_FCHDIR - if test $HAVE_FCHDIR = 0; then - REPLACE_OPEN=1 - fi - fi - ]) - dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. - m4_ifdef([gl_NONBLOCKING_IO], [ - if test $REPLACE_OPEN = 0; then - gl_NONBLOCKING_IO - if test $gl_cv_have_open_O_NONBLOCK != yes; then - REPLACE_OPEN=1 - fi - fi - ]) -]) - -# Prerequisites of lib/open.c. -AC_DEFUN([gl_PREREQ_OPEN], -[ - AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) - : -]) diff --git a/gl/m4/pathmax.m4 b/gl/m4/pathmax.m4 deleted file mode 100644 index 6d47d2c..0000000 --- a/gl/m4/pathmax.m4 +++ /dev/null @@ -1,42 +0,0 @@ -# pathmax.m4 serial 11 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2023 Free Software Foundation, -dnl 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. - -AC_DEFUN([gl_PATHMAX], -[ - dnl Prerequisites of lib/pathmax.h. - AC_CHECK_HEADERS_ONCE([sys/param.h]) -]) - -# Expands to a piece of C program that defines PATH_MAX in the same way as -# "pathmax.h" will do. -AC_DEFUN([gl_PATHMAX_SNIPPET], [[ -/* Arrange to define PATH_MAX, like "pathmax.h" does. */ -#if HAVE_UNISTD_H -# include -#endif -#include -#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN -# include -#endif -#if !defined PATH_MAX && defined MAXPATHLEN -# define PATH_MAX MAXPATHLEN -#endif -#ifdef __hpux -# undef PATH_MAX -# define PATH_MAX 1024 -#endif -#if defined _WIN32 && ! defined __CYGWIN__ -# undef PATH_MAX -# define PATH_MAX 260 -#endif -]]) - -# Prerequisites of gl_PATHMAX_SNIPPET. -AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], -[ - AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) -]) diff --git a/gl/m4/po.m4 b/gl/m4/po.m4 new file mode 100644 index 0000000..1c70b6c --- /dev/null +++ b/gl/m4/po.m4 @@ -0,0 +1,453 @@ +# po.m4 serial 21 (gettext-0.18.3) +dnl Copyright (C) 1995-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, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.60]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <= 5. - freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";; + freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; - midnightbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";; darwin*) gl_cv_func_printf_sizes_c99="guessing yes";; @@ -82,21 +77,10 @@ changequote(,)dnl netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_sizes_c99="guessing no";; netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; - # Guess yes on Android. - linux*-android*) gl_cv_func_printf_sizes_c99="guessing yes";; -changequote([,])dnl - # Guess yes on MSVC, no on mingw. - mingw*) AC_EGREP_CPP([Known], [ -#ifdef _MSC_VER - Known -#endif - ], - [gl_cv_func_printf_sizes_c99="guessing yes"], - [gl_cv_func_printf_sizes_c99="guessing no"]) - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_printf_sizes_c99="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_sizes_c99="guessing no";; esac +changequote([,])dnl ]) ]) ]) @@ -136,22 +120,14 @@ int main () }]])], [gl_cv_func_printf_long_double=yes], [gl_cv_func_printf_long_double=no], - [case "$host_os" in - # Guess no on BeOS. - beos*) gl_cv_func_printf_long_double="guessing no";; - # Guess yes on Android. - linux*-android*) gl_cv_func_printf_long_double="guessing yes";; - # Guess yes on MSVC, no on mingw. - mingw*) AC_EGREP_CPP([Known], [ -#ifdef _MSC_VER - Known -#endif - ], - [gl_cv_func_printf_long_double="guessing yes"], - [gl_cv_func_printf_long_double="guessing no"]) - ;; - *) gl_cv_func_printf_long_double="guessing yes";; + [ +changequote(,)dnl + case "$host_os" in + beos*) gl_cv_func_printf_long_double="guessing no";; + mingw* | pw*) gl_cv_func_printf_long_double="guessing no";; + *) gl_cv_func_printf_long_double="guessing yes";; esac +changequote([,])dnl ]) ]) ]) @@ -239,16 +215,13 @@ int main () [gl_cv_func_printf_infinite=yes], [gl_cv_func_printf_infinite=no], [ - case "$host_os" in changequote(,)dnl + case "$host_os" in # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_printf_infinite="guessing yes";; + *-gnu*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on FreeBSD >= 6. - freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; + freebsd[1-5]*) gl_cv_func_printf_infinite="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; - midnightbsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";; darwin*) gl_cv_func_printf_infinite="guessing yes";; @@ -259,26 +232,12 @@ changequote(,)dnl netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_infinite="guessing no";; netbsd*) gl_cv_func_printf_infinite="guessing yes";; - # Guess yes on OpenBSD >= 6.0. - openbsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; - openbsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_infinite="guessing yes";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_infinite="guessing no";; -changequote([,])dnl - # Guess yes on MSVC, no on mingw. - mingw*) AC_EGREP_CPP([Known], [ -#ifdef _MSC_VER - Known -#endif - ], - [gl_cv_func_printf_infinite="guessing yes"], - [gl_cv_func_printf_infinite="guessing no"]) - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_printf_infinite="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_infinite="guessing no";; esac +changequote([,])dnl ]) ]) ]) @@ -369,7 +328,7 @@ int main () # ifdef WORDS_BIGENDIAN # define LDBL80_WORDS(exponent,manthi,mantlo) \ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ - ((unsigned int) (manthi) << 16) | ((unsigned int) (mantlo) >> 16), \ + ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \ (unsigned int) (mantlo) << 16 \ } # else @@ -406,51 +365,66 @@ int main () { /* Pseudo-NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; - if (sprintf (buf, "%Lf", x.value) <= 0) + if (sprintf (buf, "%Lf", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 4; - if (sprintf (buf, "%Le", x.value) <= 0) + if (sprintf (buf, "%Le", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 4; - if (sprintf (buf, "%Lg", x.value) <= 0) + if (sprintf (buf, "%Lg", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 4; } { /* Pseudo-Infinity. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; - if (sprintf (buf, "%Lf", x.value) <= 0) + if (sprintf (buf, "%Lf", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 8; - if (sprintf (buf, "%Le", x.value) <= 0) + if (sprintf (buf, "%Le", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 8; - if (sprintf (buf, "%Lg", x.value) <= 0) + if (sprintf (buf, "%Lg", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 8; } { /* Pseudo-Zero. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; - if (sprintf (buf, "%Lf", x.value) <= 0) + if (sprintf (buf, "%Lf", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 16; - if (sprintf (buf, "%Le", x.value) <= 0) + if (sprintf (buf, "%Le", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 16; - if (sprintf (buf, "%Lg", x.value) <= 0) + if (sprintf (buf, "%Lg", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 16; } { /* Unnormalized number. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; - if (sprintf (buf, "%Lf", x.value) <= 0) + if (sprintf (buf, "%Lf", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 32; - if (sprintf (buf, "%Le", x.value) <= 0) + if (sprintf (buf, "%Le", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 32; - if (sprintf (buf, "%Lg", x.value) <= 0) + if (sprintf (buf, "%Lg", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 32; } { /* Pseudo-Denormal. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; - if (sprintf (buf, "%Lf", x.value) <= 0) + if (sprintf (buf, "%Lf", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 64; - if (sprintf (buf, "%Le", x.value) <= 0) + if (sprintf (buf, "%Le", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 64; - if (sprintf (buf, "%Lg", x.value) <= 0) + if (sprintf (buf, "%Lg", x.value) < 0 + || !strisnan (buf, 0, strlen (buf))) result |= 64; } #endif @@ -458,43 +432,27 @@ int main () }]])], [gl_cv_func_printf_infinite_long_double=yes], [gl_cv_func_printf_infinite_long_double=no], - [case "$host_cpu" in + [ +changequote(,)dnl + case "$host_cpu" in # Guess no on ia64, x86_64, i386. ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";; *) case "$host_os" in -changequote(,)dnl # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_printf_infinite_long_double="guessing yes";; + *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on FreeBSD >= 6. - freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; + freebsd[1-5]*) gl_cv_func_printf_infinite_long_double="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; - midnightbsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";; - # Guess yes on OpenBSD >= 6.0. - openbsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; - openbsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_infinite_long_double="guessing no";; -changequote([,])dnl - # Guess yes on MSVC, no on mingw. - mingw*) AC_EGREP_CPP([Known], [ -#ifdef _MSC_VER - Known -#endif - ], - [gl_cv_func_printf_infinite_long_double="guessing yes"], - [gl_cv_func_printf_infinite_long_double="guessing no"]) - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_printf_infinite_long_double="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_infinite_long_double="guessing no";; esac ;; esac +changequote([,])dnl ]) ]) ;; @@ -537,22 +495,15 @@ int main () && strcmp (buf, "-0X6.488P-1 33") != 0 && strcmp (buf, "-0XC.91P-2 33") != 0)) result |= 2; - /* This catches a FreeBSD 13.0 bug: it doesn't round. */ + /* This catches a FreeBSD 6.1 bug: it doesn't round. */ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 || (strcmp (buf, "0x1.83p+0 33") != 0 && strcmp (buf, "0x3.05p-1 33") != 0 && strcmp (buf, "0x6.0ap-2 33") != 0 && strcmp (buf, "0xc.14p-3 33") != 0)) result |= 4; - /* This catches a Mac OS X 10.12.4 (Darwin 16.5) bug: it doesn't round. */ - if (sprintf (buf, "%.0a %d", 1.51, 33, 44, 55) < 0 - || (strcmp (buf, "0x2p+0 33") != 0 - && strcmp (buf, "0x3p-1 33") != 0 - && strcmp (buf, "0x6p-2 33") != 0 - && strcmp (buf, "0xcp-3 33") != 0)) - result |= 4; /* This catches a FreeBSD 6.1 bug. See - */ + */ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0 || buf[0] == '0') result |= 8; @@ -564,7 +515,7 @@ int main () && strcmp (buf, "0x8.0p-2") != 0)) result |= 16; /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a - glibc 2.4 bug . */ + glibc 2.4 bug . */ if (sprintf (buf, "%.1La", 1.999L) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 @@ -578,7 +529,7 @@ int main () [ case "$host_os" in # Guess yes on glibc >= 2.5 systems. - *-gnu* | gnu*) + *-gnu*) AC_EGREP_CPP([BZ2908], [ #include #ifdef __GNU_LIBRARY__ @@ -590,14 +541,8 @@ int main () [gl_cv_func_printf_directive_a="guessing yes"], [gl_cv_func_printf_directive_a="guessing no"]) ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_printf_directive_a="guessing yes";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_directive_a="guessing no";; - # Guess no on native Windows. - mingw*) gl_cv_func_printf_directive_a="guessing no";; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_printf_directive_a="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_directive_a="guessing no";; esac ]) ]) @@ -638,40 +583,23 @@ int main () [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no], [ - case "$host_os" in changequote(,)dnl + case "$host_os" in # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_printf_directive_f="guessing yes";; + *-gnu*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on FreeBSD >= 6. - freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; + freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; - midnightbsd*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";; darwin*) gl_cv_func_printf_directive_f="guessing yes";; - # Guess yes on OpenBSD >= 6.0. - openbsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; - openbsd*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Solaris >= 2.10. - solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";; - solaris*) gl_cv_func_printf_directive_f="guessing no";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_directive_f="guessing no";; -changequote([,])dnl - # Guess yes on MSVC, no on mingw. - mingw*) AC_EGREP_CPP([Known], [ -#ifdef _MSC_VER - Known -#endif - ], - [gl_cv_func_printf_directive_f="guessing yes"], - [gl_cv_func_printf_directive_f="guessing no"]) - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_printf_directive_f="$gl_cross_guess_normal";; + solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; + solaris*) gl_cv_func_printf_sizes_c99="guessing no";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_directive_f="guessing no";; esac +changequote([,])dnl ]) ]) ]) @@ -693,10 +621,7 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_N], #include #include #ifdef _MSC_VER -#include -/* See page about "Parameter Validation" on msdn.microsoft.com. - - */ +/* See page about "Parameter Validation" on msdn.microsoft.com. */ static void cdecl invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, @@ -726,23 +651,13 @@ int main () }]])], [gl_cv_func_printf_directive_n=yes], [gl_cv_func_printf_directive_n=no], - [case "$host_os" in - # Guess no on glibc when _FORTIFY_SOURCE >= 2. - *-gnu* | gnu*) AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if _FORTIFY_SOURCE >= 2 - error fail - #endif - ]])], - [gl_cv_func_printf_directive_n="guessing yes"], - [gl_cv_func_printf_directive_n="guessing no"]) - ;; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_directive_n="guessing no";; - # Guess no on native Windows. - mingw*) gl_cv_func_printf_directive_n="guessing no";; - *) gl_cv_func_printf_directive_n="guessing yes";; + [ +changequote(,)dnl + case "$host_os" in + mingw*) gl_cv_func_printf_directive_n="guessing no";; + *) gl_cv_func_printf_directive_n="guessing yes";; esac +changequote([,])dnl ]) ]) ]) @@ -763,7 +678,13 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_LS], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include #include +#include #include #include int main () @@ -811,17 +732,11 @@ int main () [ changequote(,)dnl case "$host_os" in - # Guess yes on OpenBSD >= 6.0. - openbsd[1-5].*) gl_cv_func_printf_directive_ls="guessing no";; - openbsd*) gl_cv_func_printf_directive_ls="guessing yes";; + openbsd*) gl_cv_func_printf_directive_ls="guessing no";; irix*) gl_cv_func_printf_directive_ls="guessing no";; solaris*) gl_cv_func_printf_directive_ls="guessing no";; cygwin*) gl_cv_func_printf_directive_ls="guessing no";; beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_directive_ls="guessing no";; - # Guess yes on native Windows. - mingw*) gl_cv_func_printf_directive_ls="guessing yes";; *) gl_cv_func_printf_directive_ls="guessing yes";; esac changequote([,])dnl @@ -859,13 +774,10 @@ int main () changequote(,)dnl case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) - gl_cv_func_printf_positions="guessing no";; - beos*) gl_cv_func_printf_positions="guessing no";; - # Guess yes on Android. - linux*-android*) gl_cv_func_printf_positions="guessing yes";; - # Guess no on native Windows. - mingw* | pw*) gl_cv_func_printf_positions="guessing no";; - *) gl_cv_func_printf_positions="guessing yes";; + gl_cv_func_printf_positions="guessing no";; + beos*) gl_cv_func_printf_positions="guessing no";; + mingw* | pw*) gl_cv_func_printf_positions="guessing no";; + *) gl_cv_func_printf_positions="guessing yes";; esac changequote([,])dnl ]) @@ -900,13 +812,10 @@ int main () [ changequote(,)dnl case "$host_os" in - cygwin*) gl_cv_func_printf_flag_grouping="guessing no";; - netbsd*) gl_cv_func_printf_flag_grouping="guessing no";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_flag_grouping="guessing no";; - # Guess no on native Windows. - mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";; - *) gl_cv_func_printf_flag_grouping="guessing yes";; + cygwin*) gl_cv_func_printf_flag_grouping="guessing no";; + netbsd*) gl_cv_func_printf_flag_grouping="guessing no";; + mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";; + *) gl_cv_func_printf_flag_grouping="guessing yes";; esac changequote([,])dnl ]) @@ -915,7 +824,7 @@ changequote([,])dnl dnl Test whether the *printf family of functions supports the - flag correctly. dnl (ISO C99.) See -dnl +dnl dnl Result is gl_cv_func_printf_flag_leftadjust. AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST], @@ -943,16 +852,12 @@ int main () [ changequote(,)dnl case "$host_os" in - # Guess yes on HP-UX 11. - hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";; - # Guess no on HP-UX 10 and older. - hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";; - # Guess yes on Android. - linux*-android*) gl_cv_func_printf_flag_leftadjust="guessing yes";; - # Guess yes on native Windows. - mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";; - # Guess yes otherwise. - *) gl_cv_func_printf_flag_leftadjust="guessing yes";; + # Guess yes on HP-UX 11. + hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";; + # Guess no on HP-UX 10 and older. + hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";; + # Guess yes otherwise. + *) gl_cv_func_printf_flag_leftadjust="guessing yes";; esac changequote([,])dnl ]) @@ -961,7 +866,7 @@ changequote([,])dnl dnl Test whether the *printf family of functions supports padding of non-finite dnl values with the 0 flag correctly. (ISO C99 + TC1 + TC2.) See -dnl +dnl dnl Result is gl_cv_func_printf_flag_zero. AC_DEFUN([gl_PRINTF_FLAG_ZERO], @@ -990,18 +895,12 @@ int main () [ changequote(,)dnl case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_printf_flag_zero="guessing yes";; - # Guess yes on BeOS. - beos*) gl_cv_func_printf_flag_zero="guessing yes";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_flag_zero="guessing no";; - # Guess no on native Windows. - mingw*) gl_cv_func_printf_flag_zero="guessing no";; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_printf_flag_zero="$gl_cross_guess_normal";; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_printf_flag_zero="guessing yes";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_flag_zero="guessing no";; esac changequote([,])dnl ]) @@ -1054,12 +953,10 @@ int main () changequote(,)dnl case "$host_os" in # Guess no only on Solaris, native Windows, and BeOS systems. - solaris*) gl_cv_func_printf_precision="guessing no" ;; - mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;; - beos*) gl_cv_func_printf_precision="guessing no" ;; - # Guess yes on Android. - linux*-android*) gl_cv_func_printf_precision="guessing yes" ;; - *) gl_cv_func_printf_precision="guessing yes" ;; + solaris*) gl_cv_func_printf_precision="guessing no" ;; + mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;; + beos*) gl_cv_func_printf_precision="guessing no" ;; + *) gl_cv_func_printf_precision="guessing yes" ;; esac changequote([,])dnl ]) @@ -1081,8 +978,9 @@ AC_DEFUN([gl_PRINTF_ENOMEM], gl_cv_func_printf_enomem="guessing no" if test "$cross_compiling" = no; then if test $APPLE_UNIVERSAL_BUILD = 0; then - AC_LANG_CONFTEST([AC_LANG_SOURCE([[ + AC_LANG_CONFTEST([AC_LANG_SOURCE([ ]GL_NOCRASH[ +changequote(,)dnl #include #include #include @@ -1127,7 +1025,8 @@ int main() ret = printf ("%.5000000f", 1.0); return !(ret == 5000002 || (ret < 0 && errno == ENOMEM)); } - ]])]) +changequote([,])dnl + ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then (./conftest 2>&AS_MESSAGE_LOG_FD result=$? @@ -1154,30 +1053,28 @@ int main() if test "$gl_cv_func_printf_enomem" = "guessing no"; then changequote(,)dnl case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on Solaris. - solaris*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on AIX. - aix*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on HP-UX/hppa. - hpux*) case "$host_cpu" in - hppa*) gl_cv_func_printf_enomem="guessing yes";; - *) gl_cv_func_printf_enomem="guessing no";; - esac - ;; - # Guess yes on IRIX. - irix*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on OSF/1. - osf*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on BeOS. - beos*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on Haiku. - haiku*) gl_cv_func_printf_enomem="guessing yes";; - # Guess no on Android. - linux*-android*) gl_cv_func_printf_enomem="guessing no";; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_printf_enomem="$gl_cross_guess_normal";; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on Solaris. + solaris*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on AIX. + aix*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on HP-UX/hppa. + hpux*) case "$host_cpu" in + hppa*) gl_cv_func_printf_enomem="guessing yes";; + *) gl_cv_func_printf_enomem="guessing no";; + esac + ;; + # Guess yes on IRIX. + irix*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on OSF/1. + osf*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on Haiku. + haiku*) gl_cv_func_printf_enomem="guessing yes";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_enomem="guessing no";; esac changequote([,])dnl fi @@ -1196,7 +1093,7 @@ dnl Test whether the string produced by the snprintf function is always NUL dnl terminated. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_snprintf_truncation_c99. -AC_DEFUN_ONCE([gl_SNPRINTF_TRUNCATION_C99], +AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles @@ -1237,13 +1134,10 @@ int main () changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on FreeBSD >= 5. - freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; + freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - midnightbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; @@ -1272,12 +1166,8 @@ changequote(,)dnl netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess yes on Android. - linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";; - # Guess no on native Windows. - mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_snprintf_truncation_c99="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_snprintf_truncation_c99="guessing no";; esac changequote([,])dnl ]) @@ -1339,16 +1229,14 @@ int main () }]])], [gl_cv_func_snprintf_retval_c99=yes], [gl_cv_func_snprintf_retval_c99=no], - [case "$host_os" in + [ changequote(,)dnl + case "$host_os" in # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";; + *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. - freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; + freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; - midnightbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; @@ -1368,21 +1256,10 @@ changequote(,)dnl netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; - # Guess yes on Android. - linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";; -changequote([,])dnl - # Guess yes on MSVC, no on mingw. - mingw*) AC_EGREP_CPP([Known], [ -#ifdef _MSC_VER - Known -#endif - ], - [gl_cv_func_snprintf_retval_c99="guessing yes"], - [gl_cv_func_snprintf_retval_c99="guessing no"]) - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_snprintf_retval_c99="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_snprintf_retval_c99="guessing no";; esac +changequote([,])dnl ]) ]) ]) @@ -1434,24 +1311,13 @@ int main () [gl_cv_func_snprintf_directive_n=yes], [gl_cv_func_snprintf_directive_n=no], [ - case "$host_os" in - # Guess no on glibc when _FORTIFY_SOURCE >= 2. - *-gnu* | gnu*) AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if _FORTIFY_SOURCE >= 2 - error fail - #endif - ]])], - [gl_cv_func_snprintf_directive_n="guessing yes"], - [gl_cv_func_snprintf_directive_n="guessing no"]) - ;; changequote(,)dnl - # Guess yes on musl systems. - *-musl*) gl_cv_func_snprintf_directive_n="guessing yes";; + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on FreeBSD >= 5. - freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";; + freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; - midnightbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";; darwin*) gl_cv_func_snprintf_directive_n="guessing yes";; @@ -1473,14 +1339,10 @@ changequote(,)dnl netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_directive_n="guessing yes";; - # Guess no on Android. - linux*-android*) gl_cv_func_snprintf_directive_n="guessing no";; - # Guess no on native Windows. - mingw*) gl_cv_func_snprintf_directive_n="guessing no";; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_snprintf_directive_n="$gl_cross_guess_normal";; -changequote([,])dnl + # If we don't know, assume the worst. + *) gl_cv_func_snprintf_directive_n="guessing no";; esac +changequote([,])dnl ]) ]) ]) @@ -1493,7 +1355,6 @@ dnl Result is gl_cv_func_snprintf_size1. AC_DEFUN([gl_SNPRINTF_SIZE1], [ AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf respects a size of 1], [gl_cv_func_snprintf_size1], @@ -1523,14 +1384,7 @@ int main() }]])], [gl_cv_func_snprintf_size1=yes], [gl_cv_func_snprintf_size1=no], - [case "$host_os" in - # Guess yes on Android. - linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; - *) gl_cv_func_snprintf_size1="guessing yes" ;; - esac - ]) + [gl_cv_func_snprintf_size1="guessing yes"]) ]) ]) @@ -1602,13 +1456,10 @@ int main() changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; - # Guess yes on musl systems. - *-musl*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on FreeBSD >= 5. - freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; + freebsd[1-4]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; - midnightbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; @@ -1629,12 +1480,10 @@ changequote(,)dnl netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; - # Guess yes on Android. - linux*-android*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; - # Guess yes on native Windows. + # Guess yes on mingw. mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_vsnprintf_zerosize_c99="$gl_cross_guess_normal";; + # If we don't know, assume the worst. + *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; esac changequote([,])dnl ]) @@ -1690,19 +1539,14 @@ dnl dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . . dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . . -dnl FreeBSD 13.0 . . . . # . . . . . . . . # . . . . . . dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . # . # . . . . . . -dnl Mac OS X 10.13.5 . . . # # . # . . . . . . . . . . # . . dnl Mac OS X 10.5.8 . . . # # . . . . . . # . . . . . . . . dnl Mac OS X 10.3.9 . . . . # . . . . . . # . # . . . . . . -dnl OpenBSD 6.0, 6.7 . . . . # . . . . . . . . # . . . . . . dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . # . # . . . . . . dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . . dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . . dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . . -dnl Solaris 11.4 . . # # # . . # . . . # . . . . . . . . -dnl Solaris 11.3 . . . . # . . # . . . . . . . . . . . . -dnl Solaris 11.0 . . # # # . . # . . . # . . . . . . . . +dnl Solaris 11 2011-11 . . # # # . . # . . . # . . . . . . . . dnl Solaris 10 . . # # # . . # . . . # # . . . . . . . dnl Solaris 2.6 ... 9 # . # # # # . # . . . # # . . . # . . . dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # # @@ -1715,13 +1559,11 @@ dnl HP-UX 10.20 # . # . # # . ? . . # # . . . dnl IRIX 6.5 # . # # # # . # . . . # . . . . # . . . dnl OSF/1 5.1 # . # # # # . . . . . # . . . . # . . # dnl OSF/1 4.0d # . # # # # . . . . . # . . # # # # # # -dnl NetBSD 9.0 . . . . # . . . . . . . . . . . . . . . dnl NetBSD 5.0 . . . # # . . . . . . # . # . . . . . . dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? . . . ? ? ? dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . . dnl Haiku . . . # # # . # . . . . . ? . . ? . . . dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . . -dnl Android 4.3 . . # # # # # # . # . # . # . . . # . . dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . . dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . . dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . . diff --git a/gl/m4/progtest.m4 b/gl/m4/progtest.m4 new file mode 100644 index 0000000..7b39123 --- /dev/null +++ b/gl/m4/progtest.m4 @@ -0,0 +1,91 @@ +# progtest.m4 serial 7 (gettext-0.18.2) +dnl Copyright (C) 1996-2003, 2005, 2008-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, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1996. + +AC_PREREQ([2.50]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/gl/m4/pthread_rwlock_rdlock.m4 b/gl/m4/pthread_rwlock_rdlock.m4 deleted file mode 100644 index ae6a885..0000000 --- a/gl/m4/pthread_rwlock_rdlock.m4 +++ /dev/null @@ -1,185 +0,0 @@ -# pthread_rwlock_rdlock.m4 serial 4 -dnl Copyright (C) 2017-2023 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 Bruno Haible. -dnl Inspired by -dnl https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/2-2.c -dnl by Intel Corporation. - -dnl Test whether in a situation where -dnl - an rwlock is taken by a reader and has a writer waiting, -dnl - an additional reader requests the lock, -dnl - the waiting writer and the requesting reader threads have the same -dnl priority, -dnl the requesting reader thread gets blocked, so that at some point the -dnl waiting writer can acquire the lock. -dnl Without such a guarantee, when there a N readers and each of the readers -dnl spends more than 1/Nth of the time with the lock held, there is a high -dnl probability that the waiting writer will not get the lock in a given finite -dnl time, a phenomenon called "writer starvation". -dnl Without such a guarantee, applications have a hard time avoiding writer -dnl starvation. -dnl -dnl POSIX:2017 makes this requirement only for implementations that support TPS -dnl (Thread Priority Scheduling) and only for the scheduling policies SCHED_FIFO -dnl and SCHED_RR, see -dnl https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html -dnl but this test verifies the guarantee regardless of TPS and regardless of -dnl scheduling policy. -dnl Glibc does not provide this guarantee (and never will on Linux), see -dnl https://sourceware.org/bugzilla/show_bug.cgi?id=13701 -dnl https://bugzilla.redhat.com/show_bug.cgi?id=1410052 -AC_DEFUN([gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], -[ - AC_REQUIRE([gl_THREADLIB_EARLY]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CACHE_CHECK([whether pthread_rwlock_rdlock prefers a writer to a reader], - [gl_cv_pthread_rwlock_rdlock_prefer_writer], - [save_LIBS="$LIBS" - LIBS="$LIBS $LIBMULTITHREAD" - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -#include - -#define SUCCEED() exit (0) -#define FAILURE() exit (1) -#define UNEXPECTED(n) (exit (10 + (n))) - -/* The main thread creates the waiting writer and the requesting reader threads - in the default way; this guarantees that they have the same priority. - We can reuse the main thread as first reader thread. */ - -static pthread_rwlock_t lock; -static pthread_t reader1; -static pthread_t writer; -static pthread_t reader2; -static pthread_t timer; -/* Used to pass control from writer to reader2 and from reader2 to timer, - as in a relay race. - Passing control from one running thread to another running thread - is most likely faster than to create the second thread. */ -static pthread_mutex_t baton; - -static void * -timer_func (void *ignored) -{ - /* Step 13 (can be before or after step 12): - The timer thread takes the baton, then waits a moment to make sure - it can tell whether the second reader thread is blocked at step 12. */ - if (pthread_mutex_lock (&baton)) - UNEXPECTED (13); - usleep (100000); - /* By the time we get here, it's clear that the second reader thread is - blocked at step 12. This is the desired behaviour. */ - SUCCEED (); -} - -static void * -reader2_func (void *ignored) -{ - int err; - - /* Step 8 (can be before or after step 7): - The second reader thread takes the baton, then waits a moment to make sure - the writer thread has reached step 7. */ - if (pthread_mutex_lock (&baton)) - UNEXPECTED (8); - usleep (100000); - /* Step 9: The second reader thread requests the lock. */ - err = pthread_rwlock_tryrdlock (&lock); - if (err == 0) - FAILURE (); - else if (err != EBUSY) - UNEXPECTED (9); - /* Step 10: Launch a timer, to test whether the next call blocks. */ - if (pthread_create (&timer, NULL, timer_func, NULL)) - UNEXPECTED (10); - /* Step 11: Release the baton. */ - if (pthread_mutex_unlock (&baton)) - UNEXPECTED (11); - /* Step 12: The second reader thread requests the lock. */ - err = pthread_rwlock_rdlock (&lock); - if (err == 0) - FAILURE (); - else - UNEXPECTED (12); -} - -static void * -writer_func (void *ignored) -{ - /* Step 4: Take the baton, so that the second reader thread does not go ahead - too early. */ - if (pthread_mutex_lock (&baton)) - UNEXPECTED (4); - /* Step 5: Create the second reader thread. */ - if (pthread_create (&reader2, NULL, reader2_func, NULL)) - UNEXPECTED (5); - /* Step 6: Release the baton. */ - if (pthread_mutex_unlock (&baton)) - UNEXPECTED (6); - /* Step 7: The writer thread requests the lock. */ - if (pthread_rwlock_wrlock (&lock)) - UNEXPECTED (7); - return NULL; -} - -int -main () -{ - reader1 = pthread_self (); - - /* Step 1: The main thread initializes the lock and the baton. */ - if (pthread_rwlock_init (&lock, NULL)) - UNEXPECTED (1); - if (pthread_mutex_init (&baton, NULL)) - UNEXPECTED (1); - /* Step 2: The main thread acquires the lock as a reader. */ - if (pthread_rwlock_rdlock (&lock)) - UNEXPECTED (2); - /* Step 3: Create the writer thread. */ - if (pthread_create (&writer, NULL, writer_func, NULL)) - UNEXPECTED (3); - /* Job done. Go to sleep. */ - for (;;) - { - sleep (1); - } -} -]])], - [gl_cv_pthread_rwlock_rdlock_prefer_writer=yes], - [gl_cv_pthread_rwlock_rdlock_prefer_writer=no], - [case "$host_os" in - # Guess no on glibc systems. - *-gnu* | gnu*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; - # Guess no on musl systems. - *-musl*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; - # Guess no on bionic systems. - *-android*) gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" ;; - # Guess yes on native Windows with the mingw-w64 winpthreads library. - # Guess no on native Windows with the gnulib windows-rwlock module. - mingw*) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" - else - gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing no" - fi - ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_pthread_rwlock_rdlock_prefer_writer="$gl_cross_guess_normal" ;; - esac - ]) - LIBS="$save_LIBS" - ]) - case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in - *yes) - AC_DEFINE([HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [1], - [Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader.]) - ;; - esac -]) diff --git a/gl/m4/read.m4 b/gl/m4/read.m4 new file mode 100644 index 0000000..81f0f3a --- /dev/null +++ b/gl/m4/read.m4 @@ -0,0 +1,26 @@ +# read.m4 serial 4 +dnl Copyright (C) 2011-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, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_READ], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([gl_MSVC_INVAL]) + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_READ=1 + fi + dnl This ifdef is just an optimization, to avoid performing a configure + dnl check whose result is not used. It does not make the test of + dnl GNULIB_UNISTD_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. + m4_ifdef([gl_NONBLOCKING_IO], [ + gl_NONBLOCKING_IO + if test $gl_cv_have_nonblocking != yes; then + REPLACE_READ=1 + fi + ]) +]) + +# Prerequisites of lib/read.c. +AC_DEFUN([gl_PREREQ_READ], [:]) diff --git a/gl/m4/realloc.m4 b/gl/m4/realloc.m4 deleted file mode 100644 index d22138f..0000000 --- a/gl/m4/realloc.m4 +++ /dev/null @@ -1,63 +0,0 @@ -# realloc.m4 serial 26 -dnl Copyright (C) 2007, 2009-2023 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. - -# This is adapted with modifications from upstream Autoconf here: -# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n1455 -AC_DEFUN([_AC_FUNC_REALLOC_IF], -[ - AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles - AC_CACHE_CHECK([whether realloc (0, 0) returns nonnull], - [ac_cv_func_realloc_0_nonnull], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include - ]], - [[void *p = realloc (0, 0); - int result = !p; - free (p); - return result;]]) - ], - [ac_cv_func_realloc_0_nonnull=yes], - [ac_cv_func_realloc_0_nonnull=no], - [case "$host_os" in - # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ - | gnu* | *-musl* | midnightbsd* \ - | hpux* | solaris* | cygwin* | mingw* | msys* ) - ac_cv_func_realloc_0_nonnull="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; - esac - ]) - ]) - AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2]) -])# AC_FUNC_REALLOC - -# gl_FUNC_REALLOC_GNU -# ------------------- -# Replace realloc if it is not compatible with GNU libc. -AC_DEFUN([gl_FUNC_REALLOC_GNU], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_REALLOC_POSIX]) - if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then - _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1]) - fi -])# gl_FUNC_REALLOC_GNU - -# gl_FUNC_REALLOC_POSIX -# --------------------- -# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it -# fails, and doesn't mess up with ptrdiff_t overflow), -# and replace realloc if it is not. -AC_DEFUN([gl_FUNC_REALLOC_POSIX], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) - if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then - REPLACE_REALLOC_FOR_REALLOC_POSIX=1 - fi -]) diff --git a/gl/m4/reallocarray.m4 b/gl/m4/reallocarray.m4 deleted file mode 100644 index 1607b7a..0000000 --- a/gl/m4/reallocarray.m4 +++ /dev/null @@ -1,23 +0,0 @@ -# reallocarray.m4 serial 3 -dnl Copyright (C) 2017-2023 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. - -AC_DEFUN([gl_FUNC_REALLOCARRAY], -[ - dnl Persuade glibc to declare reallocarray. - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) - AC_CHECK_FUNCS([reallocarray]) - if test "$ac_cv_func_reallocarray" = no; then - HAVE_REALLOCARRAY=0 - elif test "$gl_cv_malloc_ptrdiff" = no; then - REPLACE_REALLOCARRAY=1 - fi -]) - -# Prerequisites of lib/reallocarray.c. -AC_DEFUN([gl_PREREQ_REALLOCARRAY], [:]) diff --git a/gl/m4/regex.m4 b/gl/m4/regex.m4 index c89a143..0945c11 100644 --- a/gl/m4/regex.m4 +++ b/gl/m4/regex.m4 @@ -1,6 +1,6 @@ -# serial 73 +# serial 64 -# Copyright (C) 1996-2001, 2003-2023 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -13,7 +13,6 @@ AC_PREREQ([2.50]) AC_DEFUN([gl_REGEX], [ - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_ARG_WITH([included-regex], [AS_HELP_STRING([--without-included-regex], [don't compile regex; this is the default on systems @@ -29,7 +28,6 @@ AC_DEFUN([gl_REGEX], # If cross compiling, assume the test would fail and use the included # regex.c. AC_CHECK_DECLS_ONCE([alarm]) - AC_CHECK_HEADERS_ONCE([malloc.h]) AC_CACHE_CHECK([for working re_compile_pattern], [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( @@ -39,19 +37,9 @@ AC_DEFUN([gl_REGEX], #include #include #include - - #if defined M_CHECK_ACTION || HAVE_DECL_ALARM - # include + #if HAVE_DECL_ALARM # include - #endif - - #if HAVE_MALLOC_H - # include - #endif - - #ifdef M_CHECK_ACTION - /* Exit with distinguishable exit code. */ - static void sigabrt_no_core (int sig) { raise (SIGTERM); } + # include #endif ]], [[int result = 0; @@ -61,22 +49,15 @@ AC_DEFUN([gl_REGEX], const char *s; struct re_registers regs; - /* Some builds of glibc go into an infinite loop on this - test. Use alarm to force death, and mallopt to avoid - malloc recursion in diagnosing the corrupted heap. */ #if HAVE_DECL_ALARM + /* Some builds of glibc go into an infinite loop on this test. */ signal (SIGALRM, SIG_DFL); alarm (2); #endif -#ifdef M_CHECK_ACTION - signal (SIGABRT, sigabrt_no_core); - mallopt (M_CHECK_ACTION, 2); -#endif - if (setlocale (LC_ALL, "en_US.UTF-8")) { { - /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html + /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the @@ -90,20 +71,16 @@ AC_DEFUN([gl_REGEX], s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; - else - { - if (re_search (®ex, data, sizeof data - 1, - 0, sizeof data - 1, ®s) - != -1) - result |= 1; - regfree (®ex); - } + else if (re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, ®s) + != -1) + result |= 1; } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in - . + . */ static char const pat[] = "[^x]x"; static char const data[] = @@ -128,7 +105,6 @@ AC_DEFUN([gl_REGEX], 0, sizeof data - 1, 0); if (i != 0 && i != 21) result |= 1; - regfree (®ex); } } @@ -142,13 +118,9 @@ AC_DEFUN([gl_REGEX], s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; - else - { - /* This should fail, but succeeds for glibc-2.5. */ - if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) - result |= 2; - regfree (®ex); - } + /* This should fail, but succeeds for glibc-2.5. */ + else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ @@ -160,10 +132,7 @@ AC_DEFUN([gl_REGEX], s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) - { - result |= 4; - regfree (®ex); - } + result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ @@ -171,18 +140,13 @@ AC_DEFUN([gl_REGEX], memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) - { - result |= 8; - regfree (®ex); - } + result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; - else - regfree (®ex); /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ @@ -190,35 +154,17 @@ AC_DEFUN([gl_REGEX], s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; - else - { - /* This should match, but does not for glibc-2.2.1. */ - if (re_match (®ex, "an", 2, 0, ®s) != 2) - result |= 8; - else - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } + /* This should match, but does not for glibc-2.2.1. */ + else if (re_match (®ex, "an", 2, 0, ®s) != 2) + result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; - else - { - /* glibc-2.2.93 does not work with a negative RANGE argument. */ - if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) - result |= 8; - else - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } + /* glibc-2.2.93 does not work with a negative RANGE argument. */ + else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) + result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ @@ -227,89 +173,25 @@ AC_DEFUN([gl_REGEX], s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; - else - { - if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) - result |= 16; - else - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } + else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) + result |= 16; /* Catch a bug reported by Vin Shelton in - https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html + http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("[[:alnum:]_-]\\\\+\$", 16, ®ex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; - else - regfree (®ex); /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; - /* Matching with the compiled form of this regexp would provoke - an assertion failure prior to glibc-2.28: - regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed - With glibc-2.28, compilation fails and reports the invalid - back reference. */ - re_set_syntax (RE_SYNTAX_POSIX_EGREP); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("0|()0|\\\\1|0", 10, ®ex); - if (!s) - { - memset (®s, 0, sizeof regs); - i = re_search (®ex, "x", 1, 0, 1, ®s); - if (i != -1) - result |= 64; - if (0 <= i) - { - free (regs.start); - free (regs.end); - } - regfree (®ex); - } - else - { - if (strcmp (s, "Invalid back reference")) - result |= 64; - } - - /* glibc bug 11053. */ - re_set_syntax (RE_SYNTAX_POSIX_BASIC); - memset (®ex, 0, sizeof regex); - static char const pat_sub2[] = "\\\\(a*\\\\)*a*\\\\1"; - s = re_compile_pattern (pat_sub2, sizeof pat_sub2 - 1, ®ex); - if (s) - result |= 64; - else - { - memset (®s, 0, sizeof regs); - static char const data[] = "a"; - int datalen = sizeof data - 1; - i = re_search (®ex, data, datalen, 0, datalen, ®s); - if (i != 0) - result |= 64; - else if (regs.num_regs < 2) - result |= 64; - else if (! (regs.start[0] == 0 && regs.end[0] == 1)) - result |= 64; - else if (! (regs.start[1] == 0 && regs.end[1] == 0)) - result |= 64; - regfree (®ex); - free (regs.start); - free (regs.end); - } - #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and @@ -324,19 +206,13 @@ AC_DEFUN([gl_REGEX], return result; ]])], - [gl_cv_func_re_compile_pattern_working=yes], - [gl_cv_func_re_compile_pattern_working=no], - [case "$host_os" in - # Guess no on native Windows. - mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;; - # Otherwise obey --enable-cross-guesses. - *) gl_cv_func_re_compile_pattern_working="$gl_cross_guess_normal" ;; - esac - ]) - ]) - case "$gl_cv_func_re_compile_pattern_working" in #( - *yes) ac_use_included_regex=no;; #( - *no) ac_use_included_regex=yes;; + [gl_cv_func_re_compile_pattern_working=yes], + [gl_cv_func_re_compile_pattern_working=no], + dnl When crosscompiling, assume it is not working. + [gl_cv_func_re_compile_pattern_working=no])]) + case $gl_cv_func_re_compile_pattern_working in #( + yes) ac_use_included_regex=no;; #( + no) ac_use_included_regex=yes;; esac ;; *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex]) @@ -390,7 +266,8 @@ AC_DEFUN([gl_PREREQ_REGEX], AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_REQUIRE([gl_EEMALLOC]) + AC_REQUIRE([gl_GLIBC21]) AC_CHECK_HEADERS([libintl.h]) - AC_CHECK_FUNCS_ONCE([isblank iswctype]) + AC_CHECK_FUNCS_ONCE([isblank iswctype wcscoll]) AC_CHECK_DECLS([isblank], [], [], [[#include ]]) ]) diff --git a/gl/m4/safe-read.m4 b/gl/m4/safe-read.m4 new file mode 100644 index 0000000..be5207a --- /dev/null +++ b/gl/m4/safe-read.m4 @@ -0,0 +1,12 @@ +# safe-read.m4 serial 6 +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation, +dnl 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. + +# Prerequisites of lib/safe-read.c. +AC_DEFUN([gl_PREREQ_SAFE_READ], +[ + AC_REQUIRE([gt_TYPE_SSIZE_T]) +]) diff --git a/gl/m4/servent.m4 b/gl/m4/servent.m4 index 0f35b8b..01c037a 100644 --- a/gl/m4/servent.m4 +++ b/gl/m4/servent.m4 @@ -1,5 +1,5 @@ -# servent.m4 serial 4 -dnl Copyright (C) 2008, 2010-2023 Free Software Foundation, Inc. +# servent.m4 serial 2 +dnl Copyright (C) 2008, 2010-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, dnl with or without modifications, as long as this notice is preserved. @@ -10,12 +10,12 @@ AC_DEFUN([gl_SERVENT], dnl getservbyport() defined? dnl Where are getprotoent(), setprotoent(), endprotoent(), getprotobyname(), dnl getprotobynumber() defined? - dnl - On Solaris < 11.4, they are in libsocket. Ignore libxnet. + dnl - On Solaris, they are in libsocket. Ignore libxnet. dnl - On Haiku, they are in libnetwork. dnl - On BeOS, they are in libnet. dnl - On native Windows, they are in ws2_32.dll. dnl - Otherwise they are in libc. - AC_REQUIRE([gl_SYS_SOCKET_H])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H + AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H SERVENT_LIB= gl_saved_libs="$LIBS" AC_SEARCH_LIBS([getservbyname], [socket network net], diff --git a/gl/m4/setenv.m4 b/gl/m4/setenv.m4 index 16f9eb5..cb5351a 100644 --- a/gl/m4/setenv.m4 +++ b/gl/m4/setenv.m4 @@ -1,5 +1,5 @@ -# setenv.m4 serial 30 -dnl Copyright (C) 2001-2004, 2006-2023 Free Software Foundation, Inc. +# setenv.m4 serial 26 +dnl Copyright (C) 2001-2004, 2006-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, dnl with or without modifications, as long as this notice is preserved. @@ -35,12 +35,10 @@ AC_DEFUN([gl_FUNC_SETENV], ]])], [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_setenv_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_setenv_works="$gl_cross_guess_normal" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_setenv_works="guessing no" ;; esac ])]) case "$gl_cv_func_setenv_works" in @@ -106,39 +104,35 @@ int unsetenv (const char *name); dnl OpenBSD 4.7 unsetenv("") does not fail. AC_CACHE_CHECK([whether unsetenv obeys POSIX], [gl_cv_func_unsetenv_works], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[ - #include - #include - extern char **environ; - ]GL_MDA_DEFINES], - [[ - char entry1[] = "a=1"; - char entry2[] = "b=2"; - char *env[] = { entry1, entry2, NULL }; - if (putenv ((char *) "a=1")) return 1; - if (putenv (entry2)) return 2; - entry2[0] = 'a'; - unsetenv ("a"); - if (getenv ("a")) return 3; - if (!unsetenv ("") || errno != EINVAL) return 4; - entry2[0] = 'b'; - environ = env; - if (!getenv ("a")) return 5; - entry2[0] = 'a'; - unsetenv ("a"); - if (getenv ("a")) return 6; - ]])], - [gl_cv_func_unsetenv_works=yes], - [gl_cv_func_unsetenv_works=no], - [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_unsetenv_works="$gl_cross_guess_normal" ;; - esac - ]) - ]) + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #include + #include + extern char **environ; + ]], [[ + char entry1[] = "a=1"; + char entry2[] = "b=2"; + char *env[] = { entry1, entry2, NULL }; + if (putenv ((char *) "a=1")) return 1; + if (putenv (entry2)) return 2; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 3; + if (!unsetenv ("") || errno != EINVAL) return 4; + entry2[0] = 'b'; + environ = env; + if (!getenv ("a")) return 5; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 6; + ]])], + [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_unsetenv_works="guessing no" ;; + esac + ])]) case "$gl_cv_func_unsetenv_works" in *yes) ;; *) diff --git a/gl/m4/setlocale_null.m4 b/gl/m4/setlocale_null.m4 deleted file mode 100644 index 032119d..0000000 --- a/gl/m4/setlocale_null.m4 +++ /dev/null @@ -1,98 +0,0 @@ -# setlocale_null.m4 serial 5 -dnl Copyright (C) 2019-2023 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. - -AC_DEFUN([gl_FUNC_SETLOCALE_NULL], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_PTHREADLIB]) - AC_CHECK_HEADERS_ONCE([threads.h]) - - AC_CACHE_CHECK([whether setlocale (LC_ALL, NULL) is multithread-safe], - [gl_cv_func_setlocale_null_all_mtsafe], - [case "$host_os" in - # Guess no on musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin. - *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | openbsd* | aix* | haiku* | cygwin*) - gl_cv_func_setlocale_null_all_mtsafe=no ;; - # Guess yes on glibc, HP-UX, IRIX, Solaris, native Windows. - *-gnu* | gnu* | hpux* | irix* | solaris* | mingw*) - gl_cv_func_setlocale_null_all_mtsafe=yes ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_setlocale_null_all_mtsafe="$gl_cross_guess_normal" ;; - esac - ]) - dnl On platforms without multithreading, there is no issue. - case "$host_os" in - mingw*) ;; - *) - if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then - gl_cv_func_setlocale_null_all_mtsafe="trivially yes" - fi - ;; - esac - case "$gl_cv_func_setlocale_null_all_mtsafe" in - *yes) SETLOCALE_NULL_ALL_MTSAFE=1 ;; - *) SETLOCALE_NULL_ALL_MTSAFE=0 ;; - esac - AC_DEFINE_UNQUOTED([SETLOCALE_NULL_ALL_MTSAFE], [$SETLOCALE_NULL_ALL_MTSAFE], - [Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe.]) - - dnl This is about a single category (not LC_ALL). - AC_CACHE_CHECK([whether setlocale (category, NULL) is multithread-safe], - [gl_cv_func_setlocale_null_one_mtsafe], - [case "$host_os" in - # Guess no on OpenBSD, AIX. - openbsd* | aix*) - gl_cv_func_setlocale_null_one_mtsafe=no ;; - # Guess yes on glibc, musl libc, macOS, FreeBSD, NetBSD, HP-UX, IRIX, Solaris, Haiku, Cygwin, native Windows. - *-gnu* | gnu* | *-musl* | darwin* | freebsd* | midnightbsd* | netbsd* | hpux* | irix* | solaris* | haiku* | cygwin* | mingw*) - gl_cv_func_setlocale_null_one_mtsafe=yes ;; - # If we don't know, obey --enable-cross-guesses. - *) - gl_cv_func_setlocale_null_one_mtsafe="$gl_cross_guess_normal" ;; - esac - ]) - dnl On platforms without multithreading, there is no issue. - case "$host_os" in - mingw*) ;; - *) - if test $gl_pthread_api = no && test $ac_cv_header_threads_h = no; then - gl_cv_func_setlocale_null_one_mtsafe="trivially yes" - fi - ;; - esac - case "$gl_cv_func_setlocale_null_one_mtsafe" in - *yes) SETLOCALE_NULL_ONE_MTSAFE=1 ;; - *) SETLOCALE_NULL_ONE_MTSAFE=0 ;; - esac - AC_DEFINE_UNQUOTED([SETLOCALE_NULL_ONE_MTSAFE], [$SETLOCALE_NULL_ONE_MTSAFE], - [Define to 1 if setlocale (category, NULL) is multithread-safe.]) - - dnl Determine link dependencies of lib/setlocale_null.c and lib/setlocale-lock.c. - if test $SETLOCALE_NULL_ALL_MTSAFE = 0 || test $SETLOCALE_NULL_ONE_MTSAFE = 0; then - case "$host_os" in - mingw*) LIB_SETLOCALE_NULL= ;; - *) - gl_WEAK_SYMBOLS - case "$gl_cv_have_weak" in - *yes) LIB_SETLOCALE_NULL= ;; - *) LIB_SETLOCALE_NULL="$LIBPTHREAD" ;; - esac - ;; - esac - else - LIB_SETLOCALE_NULL= - fi - dnl LIB_SETLOCALE_NULL is expected to be '-pthread' or '-lpthread' on AIX - dnl with gcc or xlc, and empty otherwise. - AC_SUBST([LIB_SETLOCALE_NULL]) -]) - -# Prerequisites of lib/setlocale-lock.c. -AC_DEFUN([gl_PREREQ_SETLOCALE_LOCK], -[ - gl_VISIBILITY -]) diff --git a/gl/m4/freading.m4 b/gl/m4/sha1.m4 similarity index 51% rename from gl/m4/freading.m4 rename to gl/m4/sha1.m4 index 3533336..21c775e 100644 --- a/gl/m4/freading.m4 +++ b/gl/m4/sha1.m4 @@ -1,11 +1,12 @@ -# freading.m4 serial 2 -dnl Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. +# sha1.m4 serial 11 +dnl Copyright (C) 2002-2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN([gl_FUNC_FREADING], +AC_DEFUN([gl_SHA1], [ - AC_CHECK_HEADERS_ONCE([stdio_ext.h]) - AC_CHECK_FUNCS_ONCE([__freading]) + dnl Prerequisites of lib/sha1.c. + AC_REQUIRE([gl_BIGENDIAN]) + : ]) diff --git a/gl/m4/sha256.m4 b/gl/m4/sha256.m4 deleted file mode 100644 index 4d1d1dd..0000000 --- a/gl/m4/sha256.m4 +++ /dev/null @@ -1,14 +0,0 @@ -# sha256.m4 serial 8 -dnl Copyright (C) 2005, 2008-2023 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. - -AC_DEFUN([gl_SHA256], -[ - dnl Prerequisites of lib/sha256.c. - AC_REQUIRE([gl_BIGENDIAN]) - - dnl Determine HAVE_OPENSSL_SHA256 and LIB_CRYPTO - gl_CRYPTO_CHECK([SHA256]) -]) diff --git a/gl/m4/size_max.m4 b/gl/m4/size_max.m4 index 0763366..4b247ab 100644 --- a/gl/m4/size_max.m4 +++ b/gl/m4/size_max.m4 @@ -1,19 +1,17 @@ -# size_max.m4 serial 12 -dnl Copyright (C) 2003, 2005-2006, 2008-2023 Free Software Foundation, Inc. +# size_max.m4 serial 10 +dnl Copyright (C) 2003, 2005-2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -AC_PREREQ([2.61]) - AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS([stdint.h]) dnl First test whether the system already has SIZE_MAX. AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [ - gl_cv_size_max=no + gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include #if HAVE_STDINT_H @@ -23,7 +21,7 @@ AC_DEFUN([gl_SIZE_MAX], Found it #endif ], [gl_cv_size_max=yes]) - if test $gl_cv_size_max != yes; then + if test -z "$gl_cv_size_max"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. @@ -73,3 +71,9 @@ Found it # undef SIZE_MAX #endif]) ]) + +dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. +dnl Remove this when we can assume autoconf >= 2.61. +m4_ifdef([AC_COMPUTE_INT], [], [ + AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) +]) diff --git a/gl/m4/snprintf.m4 b/gl/m4/snprintf.m4 index 4b5fbdb..3698e84 100644 --- a/gl/m4/snprintf.m4 +++ b/gl/m4/snprintf.m4 @@ -1,5 +1,5 @@ -# snprintf.m4 serial 7 -dnl Copyright (C) 2002-2004, 2007-2023 Free Software Foundation, Inc. +# snprintf.m4 serial 6 +dnl Copyright (C) 2002-2004, 2007-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, dnl with or without modifications, as long as this notice is preserved. @@ -46,14 +46,6 @@ AC_DEFUN([gl_REPLACE_SNPRINTF], AC_LIBOBJ([snprintf]) if test $ac_cv_func_snprintf = yes; then REPLACE_SNPRINTF=1 - else - AC_CHECK_DECLS_ONCE([snprintf]) - if test $ac_cv_have_decl_snprintf = yes; then - dnl If the function is declared but does not appear to exist, it may be - dnl defined as an inline function. In order to avoid a conflict, we have - dnl to define rpl_snprintf, not snprintf. - REPLACE_SNPRINTF=1 - fi fi gl_PREREQ_SNPRINTF ]) diff --git a/gl/m4/socketlib.m4 b/gl/m4/socketlib.m4 index a556af1..b08a72f 100644 --- a/gl/m4/socketlib.m4 +++ b/gl/m4/socketlib.m4 @@ -1,5 +1,5 @@ -# socketlib.m4 serial 3 -dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. +# socketlib.m4 serial 1 +dnl Copyright (C) 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -14,27 +14,21 @@ AC_DEFUN([gl_SOCKETLIB], LIBSOCKET= if test $HAVE_WINSOCK2_H = 1; then dnl Native Windows API (not Cygwin). - dnl If the function WSAStartup exists (declared in and - dnl defined through -lws2_32), we need to call it. - AC_CACHE_CHECK([for WSAStartup], - [gl_cv_func_wsastartup], [ - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lws2_32" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[ + AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], + [gl_cv_func_wsastartup], [ + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_WINSOCK2_H # include #endif]], [[ - WORD wVersionRequested = MAKEWORD(1, 1); - WSADATA wsaData; - int err = WSAStartup(wVersionRequested, &wsaData); - WSACleanup (); - ]]) - ], - [gl_cv_func_wsastartup=yes], - [gl_cv_func_wsastartup=no]) - LIBS="$gl_save_LIBS" - ]) + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup ();]])], + gl_cv_func_wsastartup=yes, gl_cv_func_wsastartup=no) + LIBS="$gl_save_LIBS" + ]) if test "$gl_cv_func_wsastartup" = "yes"; then AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) LIBSOCKET='-lws2_32' @@ -44,10 +38,6 @@ AC_DEFUN([gl_SOCKETLIB], dnl Solaris has most socket functions in libsocket. dnl Haiku has most socket functions in libnetwork. dnl BeOS has most socket functions in libnet. - dnl On HP-UX, do NOT link with libxnet, because in 64-bit mode this would - dnl break code (e.g. in libraries) that invokes accept(), getpeername(), - dnl getsockname(), getsockopt(), or recvfrom() with a 32-bit addrlen. See - dnl "man xopen_networking" for details. AC_CACHE_CHECK([for library containing setsockopt], [gl_cv_lib_socket], [ gl_cv_lib_socket= AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern diff --git a/gl/m4/sockets.m4 b/gl/m4/sockets.m4 index ed9cb87..b407391 100644 --- a/gl/m4/sockets.m4 +++ b/gl/m4/sockets.m4 @@ -1,5 +1,5 @@ # sockets.m4 serial 7 -dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2008-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/socklen.m4 b/gl/m4/socklen.m4 index 1c63a85..e3efd6e 100644 --- a/gl/m4/socklen.m4 +++ b/gl/m4/socklen.m4 @@ -1,5 +1,5 @@ -# socklen.m4 serial 11 -dnl Copyright (C) 2005-2007, 2009-2023 Free Software Foundation, Inc. +# socklen.m4 serial 10 +dnl Copyright (C) 2005-2007, 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, dnl with or without modifications, as long as this notice is preserved. @@ -15,8 +15,8 @@ dnl So we have to test to find something that will work. AC_DEFUN([gl_TYPE_SOCKLEN_T], [AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])dnl AC_CHECK_TYPE([socklen_t], , - [AC_CACHE_CHECK([for socklen_t equivalent], - [gl_cv_socklen_t_equiv], + [AC_MSG_CHECKING([for socklen_t equivalent]) + AC_CACHE_VAL([gl_cv_socklen_t_equiv], [# Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= @@ -34,10 +34,11 @@ AC_DEFUN([gl_TYPE_SOCKLEN_T], done test "$gl_cv_socklen_t_equiv" != "" && break done - if test "$gl_cv_socklen_t_equiv" = ""; then - AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) - fi - ]) + ]) + if test "$gl_cv_socklen_t_equiv" = ""; then + AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) + fi + AC_MSG_RESULT([$gl_cv_socklen_t_equiv]) AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], [type to use in place of socklen_t if not defined])], [gl_SOCKET_HEADERS])]) diff --git a/gl/m4/sockpfaf.m4 b/gl/m4/sockpfaf.m4 index 6c6dc2f..89557b1 100644 --- a/gl/m4/sockpfaf.m4 +++ b/gl/m4/sockpfaf.m4 @@ -1,5 +1,5 @@ -# sockpfaf.m4 serial 10 -dnl Copyright (C) 2004, 2006, 2009-2023 Free Software Foundation, Inc. +# sockpfaf.m4 serial 8 +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. @@ -13,11 +13,11 @@ dnl From Bruno Haible. AC_DEFUN([gl_SOCKET_FAMILIES], [ - AC_REQUIRE([gl_SYS_SOCKET_H]) + AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_CHECK_HEADERS_ONCE([netinet/in.h]) - AC_CACHE_CHECK([for IPv4 sockets], - [gl_cv_socket_ipv4], + AC_MSG_CHECKING([for IPv4 sockets]) + AC_CACHE_VAL([gl_cv_socket_ipv4], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #ifdef HAVE_SYS_SOCKET_H #include @@ -31,12 +31,13 @@ AC_DEFUN([gl_SOCKET_FAMILIES], [[int x = AF_INET; struct in_addr y; struct sockaddr_in z; if (&x && &y && &z) return 0;]])], gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)]) + AC_MSG_RESULT([$gl_cv_socket_ipv4]) if test $gl_cv_socket_ipv4 = yes; then AC_DEFINE([HAVE_IPV4], [1], [Define to 1 if defines AF_INET.]) fi - AC_CACHE_CHECK([for IPv6 sockets], - [gl_cv_socket_ipv6], + AC_MSG_CHECKING([for IPv6 sockets]) + AC_CACHE_VAL([gl_cv_socket_ipv6], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #ifdef HAVE_SYS_SOCKET_H #include @@ -53,6 +54,7 @@ AC_DEFUN([gl_SOCKET_FAMILIES], [[int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z; if (&x && &y && &z) return 0;]])], gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)]) + AC_MSG_RESULT([$gl_cv_socket_ipv6]) if test $gl_cv_socket_ipv6 = yes; then AC_DEFINE([HAVE_IPV6], [1], [Define to 1 if defines AF_INET6.]) fi @@ -60,11 +62,11 @@ AC_DEFUN([gl_SOCKET_FAMILIES], AC_DEFUN([gl_SOCKET_FAMILY_UNIX], [ - AC_REQUIRE([gl_SYS_SOCKET_H]) + AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_CHECK_HEADERS_ONCE([sys/un.h]) - AC_CACHE_CHECK([for UNIX domain sockets], - [gl_cv_socket_unix], + AC_MSG_CHECKING([for UNIX domain sockets]) + AC_CACHE_VAL([gl_cv_socket_unix], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #ifdef HAVE_SYS_SOCKET_H #include @@ -78,6 +80,7 @@ AC_DEFUN([gl_SOCKET_FAMILY_UNIX], [[int x = AF_UNIX; struct sockaddr_un y; if (&x && &y) return 0;]])], gl_cv_socket_unix=yes, gl_cv_socket_unix=no)]) + AC_MSG_RESULT([$gl_cv_socket_unix]) if test $gl_cv_socket_unix = yes; then AC_DEFINE([HAVE_UNIXSOCKET], [1], [Define to 1 if defines AF_UNIX.]) fi diff --git a/gl/m4/ssize_t.m4 b/gl/m4/ssize_t.m4 index 1c12c33..6338134 100644 --- a/gl/m4/ssize_t.m4 +++ b/gl/m4/ssize_t.m4 @@ -1,5 +1,5 @@ # ssize_t.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2001-2003, 2006, 2010-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2003, 2006, 2010-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/stat-time.m4 b/gl/m4/stat-time.m4 deleted file mode 100644 index 40993d5..0000000 --- a/gl/m4/stat-time.m4 +++ /dev/null @@ -1,83 +0,0 @@ -# Checks for stat-related time functions. - -# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2023 Free Software -# Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -dnl From Paul Eggert. - -# st_atim.tv_nsec - Linux, Solaris, Cygwin -# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE -# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE -# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) - -# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) -# st_birthtim - Cygwin 1.7.0+ - -AC_DEFUN([gl_STAT_TIME], -[ - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - AC_CHECK_HEADERS_ONCE([sys/time.h]) - - AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec], - [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[ - #include - #include - #if HAVE_SYS_TIME_H - # include - #endif - #include - struct timespec ts; - struct stat st; - ]], - [[ - st.st_atim = ts; - ]])], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) - if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then - AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1], - [Define to 1 if the type of the st_atim member of a struct stat is - struct timespec.]) - fi], - [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], - [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], - [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], - [#include - #include ])], - [#include - #include ])], - [#include - #include ])], - [#include - #include ]) -]) - -# Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.) -# and NTFS (Cygwin). -# There was a time when this field was named st_createtime (21 June -# 2002 to 16 July 2002) But that window is very small and applied only -# to development code, so systems still using that configuration are -# not supported. See revisions 1.10 and 1.11 of FreeBSD's -# src/sys/ufs/ufs/dinode.h. -# -AC_DEFUN([gl_STAT_BIRTHTIME], -[ - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - AC_CHECK_HEADERS_ONCE([sys/time.h]) - AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], - [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], - [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], - [#include - #include ])], - [#include - #include ])], - [#include - #include ]) -]) diff --git a/gl/m4/stat.m4 b/gl/m4/stat.m4 deleted file mode 100644 index 4d241e2..0000000 --- a/gl/m4/stat.m4 +++ /dev/null @@ -1,85 +0,0 @@ -# serial 18 - -# Copyright (C) 2009-2023 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_FUNC_STAT], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) - AC_CHECK_FUNCS_ONCE([lstat]) - case "$host_os" in - mingw*) - dnl On this platform, the original stat() returns st_atime, st_mtime, - dnl st_ctime values that are affected by the time zone. - REPLACE_STAT=1 - ;; - *) - dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). - dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) - dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). - AC_CACHE_CHECK([whether stat handles trailing slashes on files], - [gl_cv_func_stat_file_slash], - [touch conftest.tmp - # Assume that if we have lstat, we can also check symlinks. - if test $ac_cv_func_lstat = yes; then - ln -s conftest.tmp conftest.lnk - fi - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include -]], [[int result = 0; - struct stat st; - if (!stat ("conftest.tmp/", &st)) - result |= 1; -#if HAVE_LSTAT - if (!stat ("conftest.lnk/", &st)) - result |= 2; -#endif - return result; - ]])], - [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], - [case "$host_os" in - # Guess yes on Linux systems. - linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; - esac - ]) - rm -f conftest.tmp conftest.lnk]) - case $gl_cv_func_stat_file_slash in - *no) - REPLACE_STAT=1 - AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs - help when passed a file name with a trailing slash]);; - esac - case $host_os in - dnl Solaris stat can return a negative tv_nsec. - solaris*) - REPLACE_FSTAT=1 ;; - esac - ;; - esac -]) - -# Prerequisites of lib/stat.c and lib/stat-w32.c. -AC_DEFUN([gl_PREREQ_STAT], [ - AC_REQUIRE([gl_SYS_STAT_H]) - AC_REQUIRE([gl_PREREQ_STAT_W32]) - : -]) - -# Prerequisites of lib/stat-w32.c. -AC_DEFUN([gl_PREREQ_STAT_W32], [ - AC_REQUIRE([AC_CANONICAL_HOST]) - case "$host_os" in - mingw*) - AC_CHECK_HEADERS([sdkddkver.h]) - ;; - esac -]) diff --git a/gl/m4/stdalign.m4 b/gl/m4/stdalign.m4 index dc29717..20be01a 100644 --- a/gl/m4/stdalign.m4 +++ b/gl/m4/stdalign.m4 @@ -1,6 +1,6 @@ -# Check for alignas and alignof that conform to C23. +# Check for stdalign.h that conforms to C11. -dnl Copyright 2011-2023 Free Software Foundation, Inc. +dnl Copyright 2011-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, dnl with or without modifications, as long as this notice is preserved. @@ -9,23 +9,16 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDALIGN_H], [ - AC_CACHE_CHECK([for alignas and alignof], + AC_CACHE_CHECK([for working stdalign.h], [gl_cv_header_working_stdalign_h], - [gl_save_CFLAGS=$CFLAGS - for gl_working in "yes, keywords" "yes, macros"; do - AS_CASE([$gl_working], - [*stdalign.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H"]) - AC_COMPILE_IFELSE( + [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[#include - #ifdef INCLUDE_STDALIGN_H - #include - #endif + [[#include #include /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 - . */ + . */ #ifdef __cplusplus template struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper, b) @@ -36,103 +29,25 @@ AC_DEFUN([gl_STDALIGN_H], char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; - /* Test alignas only on platforms where gnulib can help. */ + /* Test _Alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ - || (__TINYC__ && defined __attribute__) \ - || (defined __APPLE__ && defined __MACH__ \ - ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - : __GNUC__) \ - || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ - || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ - || 1300 <= _MSC_VER) + || __GNUC__ || __IBMC__ || __IBMCPP__ || __ICC \ + || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; #endif ]])], - [gl_cv_header_working_stdalign_h=$gl_working], - [gl_cv_header_working_stdalign_h=no]) + [gl_cv_header_working_stdalign_h=yes], + [gl_cv_header_working_stdalign_h=no])]) - CFLAGS=$gl_save_CFLAGS - test "$gl_cv_header_working_stdalign_h" != no && break - done]) + if test $gl_cv_header_working_stdalign_h = yes; then + STDALIGN_H='' + else + STDALIGN_H='stdalign.h' + fi - GL_GENERATE_STDALIGN_H=false - AS_CASE([$gl_cv_header_working_stdalign_h], - [no], - [GL_GENERATE_STDALIGN_H=true], - [yes*keyword*], - [AC_DEFINE([HAVE_C_ALIGNASOF], [1], - [Define to 1 if the alignas and alignof keywords work.])]) - - AC_CHECK_HEADERS_ONCE([stdalign.h]) - - dnl The "zz" puts this toward config.h's end, to avoid potential - dnl collisions with other definitions. - AH_VERBATIM([zzalignas], -[#if !defined HAVE_C_ALIGNASOF && __cplusplus < 201103 && !defined alignof -# if HAVE_STDALIGN_H -# include -# else - /* Substitute. Keep consistent with gnulib/lib/stdalign.in.h. */ -# ifndef _GL_STDALIGN_H -# define _GL_STDALIGN_H -# undef _Alignas -# undef _Alignof -# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ - || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ - && !defined __clang__) \ - || (defined __clang__ && __clang_major__ < 8)) -# ifdef __cplusplus -# if (201103 <= __cplusplus || defined _MSC_VER) -# define _Alignof(type) alignof (type) -# else - template struct __alignof_helper { char __a; __t __b; }; -# define _Alignof(type) offsetof (__alignof_helper, __b) -# define _GL_STDALIGN_NEEDS_STDDEF 1 -# endif -# else -# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ -# define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) -# else -# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) -# define _GL_STDALIGN_NEEDS_STDDEF 1 -# endif -# endif -# endif -# if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) -# define alignof _Alignof -# endif -# define __alignof_is_defined 1 -# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 -# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) -# define _Alignas(a) alignas (a) -# elif (!defined __attribute__ \ - && ((defined __APPLE__ && defined __MACH__ \ - ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - : __GNUC__ && !defined __ibmxl__) \ - || (4 <= __clang_major__) \ - || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ - || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) -# define _Alignas(a) __attribute__ ((__aligned__ (a))) -# elif 1300 <= _MSC_VER -# define _Alignas(a) __declspec (align (a)) -# endif -# endif -# if ((defined _Alignas \ - && !(defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) \ - || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) -# define alignas _Alignas -# endif -# if (defined alignas \ - || (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) -# define __alignas_is_defined 1 -# endif -# if _GL_STDALIGN_NEEDS_STDDEF -# include -# endif -# endif /* _GL_STDALIGN_H */ -# endif -#endif]) + AC_SUBST([STDALIGN_H]) + AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"]) ]) diff --git a/gl/m4/stdbool.m4 b/gl/m4/stdbool.m4 new file mode 100644 index 0000000..80d5559 --- /dev/null +++ b/gl/m4/stdbool.m4 @@ -0,0 +1,100 @@ +# Check for stdbool.h that conforms to C99. + +dnl Copyright (C) 2002-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, +dnl with or without modifications, as long as this notice is preserved. + +#serial 5 + +# Prepare for substituting if it is not supported. + +AC_DEFUN([AM_STDBOOL_H], +[ + AC_REQUIRE([AC_CHECK_HEADER_STDBOOL]) + + # Define two additional variables used in the Makefile substitution. + + if test "$ac_cv_header_stdbool_h" = yes; then + STDBOOL_H='' + else + STDBOOL_H='stdbool.h' + fi + AC_SUBST([STDBOOL_H]) + AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"]) + + if test "$ac_cv_type__Bool" = yes; then + HAVE__BOOL=1 + else + HAVE__BOOL=0 + fi + AC_SUBST([HAVE__BOOL]) +]) + +# AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future. +AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H]) + +# This version of the macro is needed in autoconf <= 2.68. + +AC_DEFUN([AC_CHECK_HEADER_STDBOOL], + [AC_CACHE_CHECK([for stdbool.h that conforms to C99], + [ac_cv_header_stdbool_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + /* See body of main program for 'e'. */ + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; + ]], + [[ + bool e = &s; + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); + ]])], + [ac_cv_header_stdbool_h=yes], + [ac_cv_header_stdbool_h=no])]) + AC_CHECK_TYPES([_Bool]) +]) diff --git a/gl/m4/stddef_h.m4 b/gl/m4/stddef_h.m4 index a2322eb..5da8ab1 100644 --- a/gl/m4/stddef_h.m4 +++ b/gl/m4/stddef_h.m4 @@ -1,61 +1,19 @@ -# stddef_h.m4 serial 13 -dnl Copyright (C) 2009-2023 Free Software Foundation, Inc. +dnl A placeholder for POSIX 2008 , for platforms that have issues. +# stddef_h.m4 serial 4 +dnl Copyright (C) 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, dnl with or without modifications, as long as this notice is preserved. -dnl A placeholder for , for platforms that have issues. - -AC_DEFUN_ONCE([gl_STDDEF_H], +AC_DEFUN([gl_STDDEF_H], [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) - - dnl Persuade OpenBSD to declare max_align_t. - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - - GL_GENERATE_STDDEF_H=false - - dnl Test whether the type max_align_t exists and whether its alignment - dnl "is as great as is supported by the implementation in all contexts". - AC_CACHE_CHECK([for good max_align_t], - [gl_cv_type_max_align_t], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[/* On FreeBSD 12.0/x86, max_align_t defined by has - the correct alignment with the default (wrong) definition of - _Alignof, but a wrong alignment as soon as we activate an - ISO C compliant _Alignof definition. */ - #if ((defined __GNUC__ && 4 <= __GNUC__) || defined __clang__) && !defined __cplusplus - #define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) - #endif - #include - unsigned int s = sizeof (max_align_t); - #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ - int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; - int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; - #endif - typedef struct { char a; max_align_t b; } max_helper; - typedef struct { char a; long b; } long_helper; - typedef struct { char a; double b; } double_helper; - typedef struct { char a; long double b; } long_double_helper; - int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; - int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; - int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; - ]])], - [gl_cv_type_max_align_t=yes], - [gl_cv_type_max_align_t=no]) - ]) - if test $gl_cv_type_max_align_t = no; then - HAVE_MAX_ALIGN_T=0 - GL_GENERATE_STDDEF_H=true - fi - + STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 - GL_GENERATE_STDDEF_H=true + STDDEF_H=stddef.h fi - AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include @@ -65,40 +23,25 @@ AC_DEFUN_ONCE([gl_STDDEF_H], [gl_cv_decl_null_works=no])]) if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 - GL_GENERATE_STDDEF_H=true + STDDEF_H=stddef.h fi - - if $GL_GENERATE_STDDEF_H; then + AC_SUBST([STDDEF_H]) + AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) + if test -n "$STDDEF_H"; then gl_NEXT_HEADERS([stddef.h]) fi ]) -# gl_STDDEF_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_STDDEF_H_REQUIRE_DEFAULTS - gl_MODULE_INDICATOR_SET_VARIABLE([$1]) -]) - -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_STDDEF_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS], [ - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS]) + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) - HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) diff --git a/gl/m4/stdint.m4 b/gl/m4/stdint.m4 index d6961b0..27cdcdb 100644 --- a/gl/m4/stdint.m4 +++ b/gl/m4/stdint.m4 @@ -1,5 +1,5 @@ -# stdint.m4 serial 61 -dnl Copyright (C) 2001-2023 Free Software Foundation, Inc. +# stdint.m4 serial 43 +dnl Copyright (C) 2001-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, dnl with or without modifications, as long as this notice is preserved. @@ -7,22 +7,25 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Bruno Haible. dnl Test whether 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 For backward compatibility. Some packages may still be testing these - dnl macros. - AC_DEFINE([HAVE_LONG_LONG_INT], [1], - [Define to 1 if the system has the type 'long long int'.]) - AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], - [Define to 1 if the system has the type 'unsigned long long int'.]) + 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 , in the same way as gl_WCHAR_H does. AC_CHECK_HEADERS_ONCE([wchar.h]) @@ -34,7 +37,7 @@ AC_DEFUN_ONCE([gl_STDINT_H], AC_SUBST([HAVE_WCHAR_H]) dnl Check for . - AC_CHECK_HEADERS_ONCE([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 @@ -43,7 +46,7 @@ AC_DEFUN_ONCE([gl_STDINT_H], AC_SUBST([HAVE_INTTYPES_H]) dnl Check for . - AC_CHECK_HEADERS_ONCE([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 @@ -67,8 +70,6 @@ AC_DEFUN_ONCE([gl_STDINT_H], 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 /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) @@ -149,15 +150,6 @@ uintptr_t h = UINTPTR_MAX; 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__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ - || (0x5110 <= __SUNPRO_C && !__STDC__)) -extern size_t k; -extern __typeof__ (SIZE_MAX) k; -#endif - #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) @@ -170,7 +162,7 @@ struct s { PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; - /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ + /* 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) @@ -226,8 +218,6 @@ struct s { 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 ] gl_STDINT_INCLUDES @@ -282,88 +272,36 @@ static const char *macro_values[] = ]])], [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 + [dnl When cross-compiling, assume it works. + gl_cv_header_working_stdint_h=yes ]) ]) ]) fi + if test "$gl_cv_header_working_stdint_h" = yes; then + STDINT_H= + else + dnl Check for , and for + dnl (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 + else + HAVE_SYS_INTTYPES_H=0 + fi + AC_SUBST([HAVE_SYS_INTTYPES_H]) + if test $ac_cv_header_sys_bitypes_h = yes; then + HAVE_SYS_BITYPES_H=1 + else + HAVE_SYS_BITYPES_H=0 + fi + AC_SUBST([HAVE_SYS_BITYPES_H]) - HAVE_C99_STDINT_H=0 - HAVE_SYS_BITYPES_H=0 - HAVE_SYS_INTTYPES_H=0 - GL_GENERATE_STDINT_H=true - case "$gl_cv_header_working_stdint_h" in - *yes) - HAVE_C99_STDINT_H=1 - dnl Now see whether the system works without - dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined. - 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 */ -#include -] -gl_STDINT_INCLUDES -[ -intmax_t im = INTMAX_MAX; -int32_t i32 = INT32_C (0x7fffffff); - ]])], - [gl_cv_header_stdint_without_STDC_macros=yes]) - ]) - - if test $gl_cv_header_stdint_without_STDC_macros = no; then - AC_DEFINE([__STDC_CONSTANT_MACROS], [1], - [Define to 1 if the system predates C++11.]) - AC_DEFINE([__STDC_LIMIT_MACROS], [1], - [Define to 1 if the system 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 - ]gl_STDINT_INCLUDES[ - int iw = UINTMAX_WIDTH; - ]])], - [gl_cv_header_stdint_width=yes])]) - if test "$gl_cv_header_stdint_width" = yes; then - GL_GENERATE_STDINT_H=false - fi - ;; - *) - dnl Check for , and for - dnl (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]) + gl_STDINT_TYPE_PROPERTIES + STDINT_H=stdint.h + fi + AC_SUBST([STDINT_H]) + AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) @@ -491,9 +429,13 @@ AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], dnl gl_STDINT_INCLUDES AC_DEFUN([gl_STDINT_INCLUDES], [[ + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ #include #include #if HAVE_WCHAR_H + # include + # include # include #endif ]]) @@ -525,7 +467,18 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], dnl requirement that wint_t is "unchanged by default argument promotions". dnl In this case gnulib's and override wint_t. dnl Set the variable BITSIZEOF_WINT_T accordingly. - if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + if test $BITSIZEOF_WINT_T -lt 32; then BITSIZEOF_WINT_T=32 fi ]) + +dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. +dnl Remove this when we can assume autoconf >= 2.61. +m4_ifdef([AC_COMPUTE_INT], [], [ + AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) +]) + +# Hey Emacs! +# Local Variables: +# indent-tabs-mode: nil +# End: diff --git a/gl/m4/stdint_h.m4 b/gl/m4/stdint_h.m4 index 70349f6..511ab4e 100644 --- a/gl/m4/stdint_h.m4 +++ b/gl/m4/stdint_h.m4 @@ -1,5 +1,5 @@ # stdint_h.m4 serial 9 -dnl Copyright (C) 1997-2004, 2006, 2008-2023 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2004, 2006, 2008-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/stdio_h.m4 b/gl/m4/stdio_h.m4 index 94271e1..ebade06 100644 --- a/gl/m4/stdio_h.m4 +++ b/gl/m4/stdio_h.m4 @@ -1,71 +1,72 @@ -# stdio_h.m4 serial 59 -dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. +# stdio_h.m4 serial 43 +dnl Copyright (C) 2007-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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_STDIO_H], +AC_DEFUN([gl_STDIO_H], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - AH_VERBATIM([MINGW_ANSI_STDIO], -[/* Use GNU style printf and scanf. */ -#ifndef __USE_MINGW_ANSI_STDIO -# undef __USE_MINGW_ANSI_STDIO -#endif -]) - AC_DEFINE([__USE_MINGW_ANSI_STDIO]) gl_NEXT_HEADERS([stdio.h]) - dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and - dnl inttypes.h behave like gnu instead of system; we must give our - dnl printf wrapper the right attribute to match. - AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros], - [gl_cv_func_printf_attribute_flavor], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #define __STDC_FORMAT_MACROS 1 - #include - #include - /* For non-mingw systems, compilation will trivially succeed. - For mingw, compilation will succeed for older mingw (system - printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ - #if (defined _WIN32 && ! defined __CYGWIN__) && \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) - extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; - #endif - ]])], [gl_cv_func_printf_attribute_flavor=system], - [gl_cv_func_printf_attribute_flavor=gnu])]) - if test "$gl_cv_func_printf_attribute_flavor" = gnu; then - AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1], - [Define to 1 if printf and friends should be labeled with - attribute "__gnu_printf__" instead of "__printf__"]) - fi - - dnl This ifdef is an optimization, to avoid performing a configure check whose - dnl result is not used. But it does not make the test of - dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. + dnl No need to create extra modules for these functions. Everyone who uses + dnl likely needs them. + GNULIB_FSCANF=1 + gl_MODULE_INDICATOR([fscanf]) + GNULIB_SCANF=1 + gl_MODULE_INDICATOR([scanf]) + GNULIB_FGETC=1 + GNULIB_GETC=1 + GNULIB_GETCHAR=1 + GNULIB_FGETS=1 + GNULIB_FREAD=1 + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is + dnl also an optimization, to avoid performing a configure check whose result + dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING + dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_READ_FUNCS=1 + AC_LIBOBJ([stdio-read]) fi ]) - dnl This ifdef is an optimization, to avoid performing a configure check whose - dnl result is not used. But it does not make the test of - dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant. + dnl No need to create extra modules for these functions. Everyone who uses + dnl likely needs them. + GNULIB_FPRINTF=1 + GNULIB_PRINTF=1 + GNULIB_VFPRINTF=1 + GNULIB_VPRINTF=1 + GNULIB_FPUTC=1 + GNULIB_PUTC=1 + GNULIB_PUTCHAR=1 + GNULIB_FPUTS=1 + GNULIB_PUTS=1 + GNULIB_FWRITE=1 + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is + dnl also an optimization, to avoid performing a configure check whose result + dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or + dnl GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_STDIO_WRITE_FUNCS=1 + AC_LIBOBJ([stdio-write]) fi ]) - dnl This ifdef is an optimization, to avoid performing a configure check whose - dnl result is not used. But it does not make the test of - dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is + dnl also an optimization, to avoid performing a configure check whose result + dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING + dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_WRITE_FUNCS=1 + AC_LIBOBJ([stdio-write]) fi ]) @@ -75,104 +76,73 @@ AC_DEFUN_ONCE([gl_STDIO_H], gl_WARN_ON_USE_PREPARE([[#include ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf]) - - AC_REQUIRE([AC_C_RESTRICT]) - - AC_CHECK_DECLS_ONCE([fcloseall]) - if test $ac_cv_have_decl_fcloseall = no; then - HAVE_DECL_FCLOSEALL=0 - fi ]) -# gl_STDIO_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDIO_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_STDIO_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCLOSE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFLUSH]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN_GNU]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPURGE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREAD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREOPEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSCANF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEKO]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELLO]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FWRITE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCHAR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDELIM]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLINE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PCLOSE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PERROR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POPEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTCHAR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMOVE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAMEAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SPRINTF_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TMPFILE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFSCANF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSCANF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNPRINTF]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSPRINTF_POSIX]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCLOSEALL], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FDOPEN], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FILENO], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETW], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTW], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TEMPNAM], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_STDIO_H_DEFAULTS]) -]) - AC_DEFUN([gl_STDIO_H_DEFAULTS], [ + GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) + GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) + GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN]) + GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) + GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC]) + GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS]) + GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) + GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) + GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) + GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) + GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) + GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) + GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD]) + GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) + GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF]) + GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) + GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) + GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) + GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) + GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) + GNULIB_GETC=0; AC_SUBST([GNULIB_GETC]) + GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) + GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) + GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) + GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) + GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) + GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) + GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) + GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN]) + GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) + GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) + GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) + GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) + GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) + GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) + GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) + GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) + GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF]) + GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) + GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) + GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING]) + GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) + GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE]) + GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) + GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF]) + GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF]) + GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) + GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) + GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) + GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) + GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) + GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) + GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_DECL_FCLOSEALL=1; AC_SUBST([HAVE_DECL_FCLOSEALL]) HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) @@ -194,7 +164,6 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS], REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) - REPLACE_FOPEN_FOR_FOPEN_GNU=0; AC_SUBST([REPLACE_FOPEN_FOR_FOPEN_GNU]) REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) diff --git a/gl/m4/stdlib_h.m4 b/gl/m4/stdlib_h.m4 index e96be22..2027ab3 100644 --- a/gl/m4/stdlib_h.m4 +++ b/gl/m4/stdlib_h.m4 @@ -1,10 +1,10 @@ -# stdlib_h.m4 serial 66 -dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. +# stdlib_h.m4 serial 42 +dnl Copyright (C) 2007-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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_STDLIB_H], +AC_DEFUN([gl_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) @@ -14,187 +14,104 @@ AC_DEFUN_ONCE([gl_STDLIB_H], dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include #if HAVE_SYS_LOADAVG_H -/* OpenIndiana has a bug: must be included before - . */ -# include # include #endif #if HAVE_RANDOM_H # include #endif - ]], [_Exit aligned_alloc atoll canonicalize_file_name free - getloadavg getsubopt grantpt - initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps - posix_memalign posix_openpt ptsname ptsname_r qsort_r - random random_r reallocarray realpath rpmatch secure_getenv setenv - setstate setstate_r srandom srandom_r - strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv]) - - AC_REQUIRE([AC_C_RESTRICT]) - - AC_CHECK_DECLS_ONCE([ecvt]) - if test $ac_cv_have_decl_ecvt = no; then - HAVE_DECL_ECVT=0 - fi - AC_CHECK_DECLS_ONCE([fcvt]) - if test $ac_cv_have_decl_fcvt = no; then - HAVE_DECL_FCVT=0 - fi - AC_CHECK_DECLS_ONCE([gcvt]) - if test $ac_cv_have_decl_gcvt = no; then - HAVE_DECL_GCVT=0 - fi + ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt + initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps + posix_openpt ptsname ptsname_r random random_r realpath rpmatch + secure_getenv setenv setstate setstate_r srandom srandom_r + strtod strtoll strtoull unlockpt unsetenv]) ]) -# gl_STDLIB_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_STDLIB_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_GNU]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_GNU]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMPS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMPS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_MEMALIGN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_OPENPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTENV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_QSORT_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_GNU]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOULL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYSTEM_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLOCKPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNSETENV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOMB]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ECVT], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCVT], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GCVT], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKTEMP], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTENV], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) -]) - AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ + GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT]) + GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL]) + GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) + GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME]) + GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG]) + GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) + GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT]) + GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) + GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC]) + GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) + GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) + GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) + GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) + GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) + GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT]) + GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) + GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) + GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) + GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) + GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) + GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) + GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) + GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH]) + GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) + GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) + GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) + GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) + GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) + GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) + GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT]) + GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) + GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) - HAVE_ALIGNED_ALLOC=1; AC_SUBST([HAVE_ALIGNED_ALLOC]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) - HAVE_DECL_ECVT=1; AC_SUBST([HAVE_DECL_ECVT]) - HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT]) - HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) - HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE]) - HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE]) - HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) - HAVE_POSIX_MEMALIGN=1; AC_SUBST([HAVE_POSIX_MEMALIGN]) HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) - HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R]) HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) - HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) - HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE]) - HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) - HAVE_STRTOL=1; AC_SUBST([HAVE_STRTOL]) - HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) - HAVE_STRTOUL=1; AC_SUBST([HAVE_STRTOUL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) - REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC]) - REPLACE_CALLOC_FOR_CALLOC_GNU=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU]) - REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX]) + REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) - REPLACE_FREE=0; AC_SUBST([REPLACE_FREE]) - REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE]) - REPLACE_MALLOC_FOR_MALLOC_GNU=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_GNU]) - REPLACE_MALLOC_FOR_MALLOC_POSIX=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_POSIX]) + REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) - REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) - REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) - REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) - REPLACE_REALLOC_FOR_REALLOC_GNU=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_GNU]) - REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX]) - REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY]) + REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) - REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) - REPLACE_STRTOL=0; AC_SUBST([REPLACE_STRTOL]) - REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD]) - REPLACE_STRTOLL=0; AC_SUBST([REPLACE_STRTOLL]) - REPLACE_STRTOUL=0; AC_SUBST([REPLACE_STRTOUL]) - REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) diff --git a/gl/m4/strcase.m4 b/gl/m4/strcase.m4 index 3cf740d..22bf57c 100644 --- a/gl/m4/strcase.m4 +++ b/gl/m4/strcase.m4 @@ -1,5 +1,5 @@ -# strcase.m4 serial 12 -dnl Copyright (C) 2002, 2005-2023 Free Software Foundation, Inc. +# strcase.m4 serial 11 +dnl Copyright (C) 2002, 2005-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, dnl with or without modifications, as long as this notice is preserved. @@ -12,7 +12,7 @@ AC_DEFUN([gl_STRCASE], AC_DEFUN([gl_FUNC_STRCASECMP], [ - AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) AC_CHECK_FUNCS([strcasecmp]) if test $ac_cv_func_strcasecmp = no; then HAVE_STRCASECMP=0 @@ -21,7 +21,7 @@ AC_DEFUN([gl_FUNC_STRCASECMP], AC_DEFUN([gl_FUNC_STRNCASECMP], [ - AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) AC_CHECK_FUNCS([strncasecmp]) if test $ac_cv_func_strncasecmp = yes; then HAVE_STRNCASECMP=1 diff --git a/gl/m4/strcasestr.m4 b/gl/m4/strcasestr.m4 index 971e0b2..8681a6a 100644 --- a/gl/m4/strcasestr.m4 +++ b/gl/m4/strcasestr.m4 @@ -1,5 +1,5 @@ -# strcasestr.m4 serial 28 -dnl Copyright (C) 2005, 2007-2023 Free Software Foundation, Inc. +# strcasestr.m4 serial 21 +dnl Copyright (C) 2005, 2007-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, dnl with or without modifications, as long as this notice is preserved. @@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved. dnl Check that strcasestr is present and works. AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE], [ - AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) dnl Persuade glibc to declare strcasestr(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) @@ -17,38 +17,28 @@ AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE], if test $ac_cv_func_strcasestr = no; then HAVE_STRCASESTR=0 else - if test $REPLACE_MEMCHR = 1; then + if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRCASESTR=1 else - dnl Detect https://sourceware.org/bugzilla/show_bug.cgi?id=12092 - dnl and https://sourceware.org/bugzilla/show_bug.cgi?id=23637. + dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092. AC_CACHE_CHECK([whether strcasestr works], [gl_cv_func_strcasestr_works_always], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[ -#include /* for __GNU_LIBRARY__, strcasestr */ -#ifdef __GNU_LIBRARY__ - #include - #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 - Unlucky user - #endif -#endif + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include /* for strcasestr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P -]], - [[return !!strcasestr (HAYSTACK, NEEDLE); - ]])], - [gl_cv_func_strcasestr_works_always=yes], - [gl_cv_func_strcasestr_works_always=no], - [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not - dnl affected, since it uses different source code for strcasestr - dnl than glibc. - dnl Assume that it works on all other platforms, even if it is not - dnl linear. - AC_EGREP_CPP([Lucky user], - [ -#include /* for __GNU_LIBRARY__ */ +]], [[return !!strcasestr (HAYSTACK, NEEDLE); + ]])], + [gl_cv_func_strcasestr_works_always=yes], + [gl_cv_func_strcasestr_works_always=no], + [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not + dnl affected, since it uses different source code for strcasestr + dnl than glibc. + dnl Assume that it works on all other platforms, even if it is not + dnl linear. + AC_EGREP_CPP([Lucky user], + [ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ @@ -63,10 +53,10 @@ AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE], #else Lucky user #endif - ], - [gl_cv_func_strcasestr_works_always="guessing yes"], - [gl_cv_func_strcasestr_works_always="$gl_cross_guess_normal"]) - ]) + ], + [gl_cv_func_strcasestr_works_always="guessing yes"], + [gl_cv_func_strcasestr_works_always="guessing no"]) + ]) ]) case "$gl_cv_func_strcasestr_works_always" in *yes) ;; @@ -90,7 +80,7 @@ AC_DEFUN([gl_FUNC_STRCASESTR], #include /* for strcasestr */ #include /* for malloc */ #include /* for alarm */ -static void quit (int sig) { _exit (sig + 128); } +static void quit (int sig) { exit (sig + 128); } ]], [[ int result = 0; size_t m = 1000000; @@ -112,9 +102,6 @@ static void quit (int sig) { _exit (sig + 128); } if (!strcasestr (haystack, needle)) result |= 1; } - /* Free allocated memory, in case some sanitizer is watching. */ - free (haystack); - free (needle); return result; ]])], [gl_cv_func_strcasestr_linear=yes], [gl_cv_func_strcasestr_linear=no], @@ -137,7 +124,7 @@ static void quit (int sig) { _exit (sig + 128); } #endif ], [gl_cv_func_strcasestr_linear="guessing yes"], - [gl_cv_func_strcasestr_linear="$gl_cross_guess_normal"]) + [gl_cv_func_strcasestr_linear="guessing no"]) ]) ]) case "$gl_cv_func_strcasestr_linear" in diff --git a/gl/m4/strerror.m4 b/gl/m4/strerror.m4 index 8879eb0..3989844 100644 --- a/gl/m4/strerror.m4 +++ b/gl/m4/strerror.m4 @@ -1,19 +1,19 @@ -# strerror.m4 serial 23 -dnl Copyright (C) 2002, 2007-2023 Free Software Foundation, Inc. +# strerror.m4 serial 17 +dnl Copyright (C) 2002, 2007-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, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRERROR], [ - AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) ]) - if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then + if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( @@ -24,12 +24,10 @@ AC_DEFUN([gl_FUNC_STRERROR], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_working_strerror="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_working_strerror="guessing no" ;; esac ]) ]) @@ -80,14 +78,10 @@ AC_DEFUN([gl_FUNC_STRERROR_0], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_strerror_0_works="guessing no" ;; esac ]) ]) diff --git a/gl/m4/string_h.m4 b/gl/m4/string_h.m4 index 5da3cc2..cc5fbbb 100644 --- a/gl/m4/string_h.m4 +++ b/gl/m4/string_h.m4 @@ -1,19 +1,25 @@ # Configure a GNU-like replacement for . -# Copyright (C) 2007-2023 Free Software Foundation, Inc. +# Copyright (C) 2007-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 35 +# serial 21 # Written by Paul Eggert. -AC_DEFUN_ONCE([gl_STRING_H], +AC_DEFUN([gl_HEADER_STRING_H], [ - dnl Ensure to expand the default settings once only, before all statements - dnl that occur in other macros. - AC_REQUIRE([gl_STRING_H_DEFAULTS]) + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. + AC_REQUIRE([gl_HEADER_STRING_H_BODY]) +]) + +AC_DEFUN([gl_HEADER_STRING_H_BODY], +[ + AC_REQUIRE([AC_C_RESTRICT]) + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_NEXT_HEADERS([string.h]) dnl Check for declarations of anything we want to poison if the @@ -21,95 +27,66 @@ AC_DEFUN_ONCE([gl_STRING_H], dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include ]], - [explicit_bzero ffsl ffsll memmem mempcpy memrchr memset_explicit - rawmemchr stpcpy stpncpy strchrnul + [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r - strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp]) - - AC_REQUIRE([AC_C_RESTRICT]) + strerror_r strsignal strverscmp]) ]) -# gl_STRING_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STRING_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_STRING_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS], +AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPLICIT_BZERO]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSLL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMMEM]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMPCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMRCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMSET_EXPLICIT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAWMEMCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCHRNUL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPBRK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSEP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNLEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSTR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASECMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNCASECMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPCASECMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASESTR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCSPN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPBRK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSPN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSEP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOK_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERRORNAME_NP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGABBREV_NP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGDESCR_NP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSIGNAL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRVERSCMP]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MEMCCPY], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_STRDUP], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS]) - dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized. - gl_STDLIB_H_REQUIRE_DEFAULTS - AC_REQUIRE([gl_STRING_H_DEFAULTS]) -]) - -AC_DEFUN([gl_STRING_H_DEFAULTS], -[ - HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) + 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_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]) HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) + HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR]) HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) - HAVE_MEMSET_EXPLICIT=1; AC_SUBST([HAVE_MEMSET_EXPLICIT]) HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) @@ -123,26 +100,21 @@ AC_DEFUN([gl_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]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) - REPLACE_FFSLL=0; AC_SUBST([REPLACE_FFSLL]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) - REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) + REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) + REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) + REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) + REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) + REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) - REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) - REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) - 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]) + REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) diff --git a/gl/m4/strings_h.m4 b/gl/m4/strings_h.m4 index 4c41221..76ef242 100644 --- a/gl/m4/strings_h.m4 +++ b/gl/m4/strings_h.m4 @@ -1,16 +1,21 @@ # Configure a replacement for . -# serial 9 +# serial 6 -# Copyright (C) 2007, 2009-2023 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_STRINGS_H], +AC_DEFUN([gl_HEADER_STRINGS_H], [ - dnl Ensure to expand the default settings once only, before all statements - dnl that occur in other macros. - AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. + AC_REQUIRE([gl_HEADER_STRINGS_H_BODY]) +]) + +AC_DEFUN([gl_HEADER_STRINGS_H_BODY], +[ + AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([strings.h]) if test $ac_cv_header_strings_h = yes; then @@ -30,31 +35,16 @@ AC_DEFUN_ONCE([gl_STRINGS_H], ]], [ffs strcasecmp strncasecmp]) ]) -# gl_STRINGS_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STRINGS_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_STRINGS_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_STRINGS_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFS]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_STRINGS_H_DEFAULTS]) -]) - -AC_DEFUN([gl_STRINGS_H_DEFAULTS], +AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS], [ + GNULIB_FFS=0; AC_SUBST([GNULIB_FFS]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FFS=1; AC_SUBST([HAVE_FFS]) HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP]) diff --git a/gl/m4/strndup.m4 b/gl/m4/strndup.m4 new file mode 100644 index 0000000..a1f8274 --- /dev/null +++ b/gl/m4/strndup.m4 @@ -0,0 +1,55 @@ +# strndup.m4 serial 21 +dnl Copyright (C) 2002-2003, 2005-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, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_STRNDUP], +[ + dnl Persuade glibc to declare strndup(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([strndup]) + AC_CHECK_FUNCS_ONCE([strndup]) + if test $ac_cv_have_decl_strndup = no; then + HAVE_DECL_STRNDUP=0 + fi + + if test $ac_cv_func_strndup = yes; then + HAVE_STRNDUP=1 + # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. + AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works], + [AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[#include + #include ]], [[ +#if !HAVE_DECL_STRNDUP + extern + #ifdef __cplusplus + "C" + #endif + char *strndup (const char *, size_t); +#endif + char *s; + s = strndup ("some longer string", 15); + free (s); + s = strndup ("shorter string", 13); + return s[13] != '\0';]])], + [gl_cv_func_strndup_works=yes], + [gl_cv_func_strndup_works=no], + [ +changequote(,)dnl + case $host_os in + aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; + *) gl_cv_func_strndup_works="guessing yes";; + esac +changequote([,])dnl + ])]) + case $gl_cv_func_strndup_works in + *no) REPLACE_STRNDUP=1 ;; + esac + else + HAVE_STRNDUP=0 + fi +]) diff --git a/gl/m4/strnlen.m4 b/gl/m4/strnlen.m4 new file mode 100644 index 0000000..eae82b7 --- /dev/null +++ b/gl/m4/strnlen.m4 @@ -0,0 +1,30 @@ +# strnlen.m4 serial 13 +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation, +dnl 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. + +AC_DEFUN([gl_FUNC_STRNLEN], +[ + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + + dnl Persuade glibc to declare strnlen(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_DECLS_ONCE([strnlen]) + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + else + m4_pushdef([AC_LIBOBJ], [:]) + dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]). + AC_FUNC_STRNLEN + m4_popdef([AC_LIBOBJ]) + if test $ac_cv_func_strnlen_working = no; then + REPLACE_STRNLEN=1 + fi + fi +]) + +# Prerequisites of lib/strnlen.c. +AC_DEFUN([gl_PREREQ_STRNLEN], [:]) diff --git a/gl/m4/strsep.m4 b/gl/m4/strsep.m4 index e0da09a..825fdb8 100644 --- a/gl/m4/strsep.m4 +++ b/gl/m4/strsep.m4 @@ -1,5 +1,5 @@ -# strsep.m4 serial 11 -dnl Copyright (C) 2002-2004, 2007, 2009-2023 Free Software Foundation, Inc. +# strsep.m4 serial 10 +dnl Copyright (C) 2002-2004, 2007, 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, dnl with or without modifications, as long as this notice is preserved. @@ -12,7 +12,7 @@ AC_DEFUN([gl_FUNC_STRSEP], dnl The strsep() declaration in lib/string.in.h uses 'restrict'. AC_REQUIRE([AC_C_RESTRICT]) - AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([strsep]) if test $ac_cv_func_strsep = no; then HAVE_STRSEP=0 diff --git a/gl/m4/strstr.m4 b/gl/m4/strstr.m4 index 7de203a..c486bdb 100644 --- a/gl/m4/strstr.m4 +++ b/gl/m4/strstr.m4 @@ -1,5 +1,5 @@ -# strstr.m4 serial 24 -dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. +# strstr.m4 serial 16 +dnl Copyright (C) 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -7,40 +7,30 @@ dnl with or without modifications, as long as this notice is preserved. dnl Check that strstr works. AC_DEFUN([gl_FUNC_STRSTR_SIMPLE], [ - AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MEMCHR]) - if test $REPLACE_MEMCHR = 1; then + if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRSTR=1 else - dnl Detect https://sourceware.org/bugzilla/show_bug.cgi?id=12092 - dnl and https://sourceware.org/bugzilla/show_bug.cgi?id=23637. + dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092. AC_CACHE_CHECK([whether strstr works], [gl_cv_func_strstr_works_always], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[ -#include /* for __GNU_LIBRARY__, strstr */ -#ifdef __GNU_LIBRARY__ - #include - #if __GLIBC__ == 2 && __GLIBC_MINOR__ == 28 - Unlucky user - #endif -#endif + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include /* for strstr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P -]], - [[return !!strstr (HAYSTACK, NEEDLE); - ]])], - [gl_cv_func_strstr_works_always=yes], - [gl_cv_func_strstr_works_always=no], - [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not - dnl affected, since it uses different source code for strstr than - dnl glibc. - dnl Assume that it works on all other platforms, even if it is not - dnl linear. - AC_EGREP_CPP([Lucky user], - [ -#include /* for __GNU_LIBRARY__ */ +]], [[return !!strstr (HAYSTACK, NEEDLE); + ]])], + [gl_cv_func_strstr_works_always=yes], + [gl_cv_func_strstr_works_always=no], + [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not + dnl affected, since it uses different source code for strstr than + dnl glibc. + dnl Assume that it works on all other platforms, even if it is not + dnl linear. + AC_EGREP_CPP([Lucky user], + [ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ @@ -55,10 +45,10 @@ AC_DEFUN([gl_FUNC_STRSTR_SIMPLE], #else Lucky user #endif - ], - [gl_cv_func_strstr_works_always="guessing yes"], - [gl_cv_func_strstr_works_always="$gl_cross_guess_normal"]) - ]) + ], + [gl_cv_func_strstr_works_always="guessing yes"], + [gl_cv_func_strstr_works_always="guessing no"]) + ]) ]) case "$gl_cv_func_strstr_works_always" in *yes) ;; @@ -77,17 +67,11 @@ AC_DEFUN([gl_FUNC_STRSTR], AC_CACHE_CHECK([whether strstr works in linear time], [gl_cv_func_strstr_linear], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ -#ifdef __MVS__ -/* z/OS does not deliver signals while strstr() is running (thanks to - restrictions on its LE runtime), which prevents us from limiting the - running time of this test. */ -# error "This test does not work properly on z/OS" -#endif #include /* for signal */ #include /* for strstr */ #include /* for malloc */ #include /* for alarm */ -static void quit (int sig) { _exit (sig + 128); } +static void quit (int sig) { exit (sig + 128); } ]], [[ int result = 0; size_t m = 1000000; @@ -109,9 +93,6 @@ static void quit (int sig) { _exit (sig + 128); } if (!strstr (haystack, needle)) result |= 1; } - /* Free allocated memory, in case some sanitizer is watching. */ - free (haystack); - free (needle); return result; ]])], [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no], @@ -136,7 +117,7 @@ static void quit (int sig) { _exit (sig + 128); } #endif ], [gl_cv_func_strstr_linear="guessing yes"], - [gl_cv_func_strstr_linear="$gl_cross_guess_normal"]) + [gl_cv_func_strstr_linear="guessing no"]) ]) ]) case "$gl_cv_func_strstr_linear" in diff --git a/gl/m4/sys_socket_h.m4 b/gl/m4/sys_socket_h.m4 index 98a1041..9486377 100644 --- a/gl/m4/sys_socket_h.m4 +++ b/gl/m4/sys_socket_h.m4 @@ -1,12 +1,12 @@ -# sys_socket_h.m4 serial 29 -dnl Copyright (C) 2005-2023 Free Software Foundation, Inc. +# sys_socket_h.m4 serial 23 +dnl Copyright (C) 2005-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, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson. -AC_DEFUN_ONCE([gl_SYS_SOCKET_H], +AC_DEFUN([gl_HEADER_SYS_SOCKET], [ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) @@ -22,7 +22,6 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H], ;; esac - GL_GENERATE_SYS_SOCKET_H=false AC_CACHE_CHECK([whether is self-contained], [gl_cv_header_sys_socket_h_selfcontained], [ @@ -45,7 +44,7 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H], [gl_cv_header_sys_socket_h_shut=no]) ]) if test $gl_cv_header_sys_socket_h_shut = no; then - GL_GENERATE_SYS_SOCKET_H=true + SYS_SOCKET_H='sys/socket.h' fi fi fi @@ -84,7 +83,7 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H], fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then - GL_GENERATE_SYS_SOCKET_H=true + SYS_SOCKET_H='sys/socket.h' fi gl_PREREQ_SYS_H_WINSOCK2 @@ -96,8 +95,6 @@ AC_DEFUN_ONCE([gl_SYS_SOCKET_H], #include ]], [socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4]) - - AC_REQUIRE([AC_C_RESTRICT]) ]) AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], @@ -107,11 +104,17 @@ AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 + HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi fi AC_SUBST([HAVE_SYS_SOCKET_H]) - gl_PREREQ_SYS_H_WS2TCPIP + AC_SUBST([HAVE_WS2TCPIP_H]) ]) # Common prerequisites of the replacement and of the @@ -139,65 +142,32 @@ AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], AC_SUBST([HAVE_WINSOCK2_H]) ]) -# Common prerequisites of the replacement and of the -# replacement. -# Sets and substitutes HAVE_WS2TCPIP_H. -AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP], -[ - AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) - if test $ac_cv_header_sys_socket_h = yes; then - HAVE_WS2TCPIP_H=0 - else - if test $ac_cv_header_ws2tcpip_h = yes; then - HAVE_WS2TCPIP_H=1 - else - HAVE_WS2TCPIP_H=0 - fi - fi - AC_SUBST([HAVE_WS2TCPIP_H]) -]) - -# gl_SYS_SOCKET_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_SYS_SOCKET_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_SYS_SOCKET_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SOCKET]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CONNECT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BIND]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPEERNAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKNAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKOPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LISTEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SEND]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECVFROM]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SENDTO]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETSOCKOPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SHUTDOWN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT4]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) -]) - AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [ + GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET]) + GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT]) + GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT]) + GNULIB_BIND=0; AC_SUBST([GNULIB_BIND]) + GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME]) + GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME]) + GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT]) + GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN]) + GNULIB_RECV=0; AC_SUBST([GNULIB_RECV]) + GNULIB_SEND=0; AC_SUBST([GNULIB_SEND]) + GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM]) + GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO]) + GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT]) + GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN]) + GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4]) HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) diff --git a/gl/m4/sys_stat_h.m4 b/gl/m4/sys_stat_h.m4 deleted file mode 100644 index ca57398..0000000 --- a/gl/m4/sys_stat_h.m4 +++ /dev/null @@ -1,129 +0,0 @@ -# sys_stat_h.m4 serial 42 -*- Autoconf -*- -dnl Copyright (C) 2006-2023 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 Eric Blake. -dnl Provide a GNU-like . - -AC_DEFUN_ONCE([gl_SYS_STAT_H], -[ - AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) - - dnl Check for broken stat macros. - AC_REQUIRE([AC_HEADER_STAT]) - - gl_CHECK_NEXT_HEADERS([sys/stat.h]) - - dnl Ensure the type mode_t gets defined. - AC_REQUIRE([AC_TYPE_MODE_T]) - - dnl Whether to enable precise timestamps in 'struct stat'. - m4_ifdef([gl_WINDOWS_STAT_TIMESPEC], [ - AC_REQUIRE([gl_WINDOWS_STAT_TIMESPEC]) - ], [ - WINDOWS_STAT_TIMESPEC=0 - ]) - AC_SUBST([WINDOWS_STAT_TIMESPEC]) - - dnl Whether to ensure that struct stat.st_size is 64-bit wide. - m4_ifdef([gl_LARGEFILE], [ - AC_REQUIRE([gl_LARGEFILE]) - ], [ - WINDOWS_64_BIT_ST_SIZE=0 - ]) - AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) - - dnl Define types that are supposed to be defined in or - dnl . - AC_CHECK_TYPE([nlink_t], [], - [AC_DEFINE([nlink_t], [int], - [Define to the type of st_nlink in struct stat, or a supertype.])], - [#include - #include ]) - - dnl Check for declarations of anything we want to poison if the - dnl corresponding gnulib module is not in use. - gl_WARN_ON_USE_PREPARE([[#include - ]], [chmod fchmodat fstat fstatat futimens getumask lchmod lstat - mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) - - AC_REQUIRE([AC_C_RESTRICT]) -]) - -# gl_SYS_STAT_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. -AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], -[ - dnl Ensure to expand the default settings once only. - gl_SYS_STAT_H_REQUIRE_DEFAULTS - gl_MODULE_INDICATOR_SET_VARIABLE([$1]) - dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR_FOR_TESTS([$1]) -]) - -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_SYS_STAT_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS], [ - gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHMOD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHMODAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTATAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FUTIMENS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUMASK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHMOD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSTAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIRAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFO]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFOAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNOD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNODAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UTIMENSAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OVERRIDES_STRUCT_STAT]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHMOD], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKDIR], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UMASK], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) -]) - -AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], -[ - dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) - HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) - HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) - HAVE_GETUMASK=1; AC_SUBST([HAVE_GETUMASK]) - HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) - HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) - HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) - HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) - HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) - HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) - HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) - HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) - REPLACE_CHMOD=0; AC_SUBST([REPLACE_CHMOD]) - REPLACE_FCHMODAT=0; AC_SUBST([REPLACE_FCHMODAT]) - REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) - REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) - REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) - REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) - REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) - REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) - REPLACE_MKFIFOAT=0; AC_SUBST([REPLACE_MKFIFOAT]) - REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) - REPLACE_MKNODAT=0; AC_SUBST([REPLACE_MKNODAT]) - REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) - REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) -]) diff --git a/gl/m4/sys_types_h.m4 b/gl/m4/sys_types_h.m4 index 627671f..d15c1b3 100644 --- a/gl/m4/sys_types_h.m4 +++ b/gl/m4/sys_types_h.m4 @@ -1,5 +1,5 @@ -# sys_types_h.m4 serial 13 -dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. +# sys_types_h.m4 serial 5 +dnl Copyright (C) 2011-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, dnl with or without modifications, as long as this notice is preserved. @@ -7,10 +7,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_SYS_TYPES_H], [ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) - - dnl Use sane struct stat types in OpenVMS 8.2 and later. - AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.]) - gl_NEXT_HEADERS([sys/types.h]) dnl Ensure the type pid_t gets defined. @@ -21,50 +17,8 @@ AC_DEFUN_ONCE([gl_SYS_TYPES_H], dnl Whether to override the 'off_t' type. AC_REQUIRE([gl_TYPE_OFF_T]) - - dnl Whether to override the 'dev_t' and 'ino_t' types. - m4_ifdef([gl_WINDOWS_STAT_INODES], [ - AC_REQUIRE([gl_WINDOWS_STAT_INODES]) - ], [ - WINDOWS_STAT_INODES=0 - ]) - AC_SUBST([WINDOWS_STAT_INODES]) -]) - -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_SYS_TYPES_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS], [ - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [ ]) - -# This works around a buggy version in autoconf <= 2.69. -# See -# The 2.70 version isn't quoted properly, so override it too. - -m4_version_prereq([2.70.1], [], [ - -m4_undefine([AC_HEADER_MAJOR]) -AC_DEFUN([AC_HEADER_MAJOR], -[AC_CHECK_HEADERS_ONCE([sys/types.h]) -AC_CHECK_HEADER([sys/mkdev.h], - [AC_DEFINE([MAJOR_IN_MKDEV], [1], - [Define to 1 if `major', `minor', and `makedev' are - declared in .])]) -if test $ac_cv_header_sys_mkdev_h = no; then - AC_CHECK_HEADER([sys/sysmacros.h], - [AC_DEFINE([MAJOR_IN_SYSMACROS], [1], - [Define to 1 if `major', `minor', and `makedev' - are declared in .])]) -fi -])# AC_HEADER_MAJOR - -]) diff --git a/gl/m4/sys_uio_h.m4 b/gl/m4/sys_uio_h.m4 index 93a65d2..c75cbbd 100644 --- a/gl/m4/sys_uio_h.m4 +++ b/gl/m4/sys_uio_h.m4 @@ -1,10 +1,10 @@ -# sys_uio_h.m4 serial 3 -dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. +# sys_uio_h.m4 serial 1 +dnl Copyright (C) 2011-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, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN_ONCE([gl_SYS_UIO_H], +AC_DEFUN([gl_HEADER_SYS_UIO], [ AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) dnl is always overridden, because of GNULIB_POSIXCHECK. @@ -17,30 +17,15 @@ AC_DEFUN_ONCE([gl_SYS_UIO_H], AC_SUBST([HAVE_SYS_UIO_H]) ]) -# gl_SYS_UIO_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_SYS_UIO_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_SYS_UIO_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_SYS_UIO_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_UIO_H_MODULE_INDICATOR_DEFAULTS], [ - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_UIO_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) -]) - AC_DEFUN([gl_SYS_UIO_H_DEFAULTS], [ ]) diff --git a/gl/m4/threadlib.m4 b/gl/m4/threadlib.m4 index b536b04..26bdeb5 100644 --- a/gl/m4/threadlib.m4 +++ b/gl/m4/threadlib.m4 @@ -1,390 +1,11 @@ -# threadlib.m4 serial 32a -dnl Copyright (C) 2005-2023 Free Software Foundation, Inc. +# threadlib.m4 serial 10 (gettext-0.18.2) +dnl Copyright (C) 2005-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, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -AC_PREREQ([2.60]) - -dnl The general structure of the multithreading modules in gnulib is that we -dnl have three set of modules: -dnl -dnl * POSIX API: -dnl pthread, which combines -dnl pthread-h -dnl pthread-thread -dnl pthread-once -dnl pthread-mutex -dnl pthread-rwlock -dnl pthread-cond -dnl pthread-tss -dnl pthread-spin -dnl sched_yield -dnl -dnl * ISO C API: -dnl threads, which combines -dnl threads-h -dnl thrd -dnl mtx -dnl cnd -dnl tss -dnl -dnl * Gnulib API, with an implementation that can be chosen at configure -dnl time through the option --enable-threads=... -dnl thread -dnl lock -dnl cond -dnl tls -dnl yield -dnl -dnl They are independent, except for the fact that -dnl - the implementation of the ISO C API may use the POSIX (or some other -dnl platform dependent) API, -dnl - the implementation of the Gnulib API may use the POSIX or ISO C or -dnl some other platform dependent API, depending on the --enable-threads -dnl option. -dnl -dnl This file contains macros for all of these APIs! - -dnl ============================================================================ -dnl Macros for all thread APIs - -AC_DEFUN([gl_ANYTHREADLIB_EARLY], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - if test -z "$gl_anythreadlib_early_done"; then - case "$host_os" in - osf*) - # On OSF/1, the compiler needs the flag -D_REENTRANT so that it - # groks . cc also understands the flag -pthread, but - # we don't use it because 1. gcc-2.95 doesn't understand -pthread, - # 2. putting a flag into CPPFLAGS that has an effect on the linker - # causes the AC_LINK_IFELSE test below to succeed unexpectedly, - # leading to wrong values of LIBTHREAD and LTLIBTHREAD. - CPPFLAGS="$CPPFLAGS -D_REENTRANT" - ;; - esac - # Some systems optimize for single-threaded programs by default, and - # need special flags to disable these optimizations. For example, the - # definition of 'errno' in . - case "$host_os" in - aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; - solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; - esac - gl_anythreadlib_early_done=done - fi -]) - -dnl Checks whether the compiler and linker support weak declarations of symbols. - -AC_DEFUN([gl_WEAK_SYMBOLS], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CACHE_CHECK([whether imported symbols can be declared weak], - [gl_cv_have_weak], - [case "$host_os" in - cygwin*) - dnl On Cygwin 3.2.0 with gcc 10.2, the test below would succeed, but - dnl programs that use pthread_in_use() with weak symbol references - dnl crash miserably at runtime. - gl_cv_have_weak="guessing no" - ;; - *) - gl_cv_have_weak=no - dnl First, test whether the compiler accepts it syntactically. - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[extern void xyzzy (); -#pragma weak xyzzy]], - [[xyzzy();]])], - [gl_cv_have_weak=maybe]) - if test $gl_cv_have_weak = maybe; then - dnl Second, test whether it actually works. On Cygwin 1.7.2, with - dnl gcc 4.3, symbols declared weak always evaluate to the address 0. - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#pragma weak fputs -int main () -{ - return (fputs == NULL); -}]])], - [gl_cv_have_weak=yes], - [gl_cv_have_weak=no], - [dnl When cross-compiling, assume that only ELF platforms support - dnl weak symbols. - AC_EGREP_CPP([Extensible Linking Format], - [#ifdef __ELF__ - Extensible Linking Format - #endif - ], - [gl_cv_have_weak="guessing yes"], - [gl_cv_have_weak="guessing no"]) - ]) - fi - ;; - esac - dnl But when linking statically, weak symbols don't work. - case " $LDFLAGS " in - *" -static "*) gl_cv_have_weak=no ;; - esac - dnl Test for a bug in FreeBSD 11: A link error occurs when using a weak - dnl symbol and linking against a shared library that has a dependency on - dnl the shared library that defines the symbol. - case "$gl_cv_have_weak" in - *yes) - case "$host_os" in - freebsd* | dragonfly* | midnightbsd*) - : > conftest1.c - $CC $CPPFLAGS $CFLAGS $LDFLAGS -fPIC -shared -o libempty.so conftest1.c -lpthread >&AS_MESSAGE_LOG_FD 2>&1 - cat < conftest2.c -#include -#pragma weak pthread_mutexattr_gettype -int main () -{ - return (pthread_mutexattr_gettype != NULL); -} -EOF - $CC $CPPFLAGS $CFLAGS $LDFLAGS -o conftest conftest2.c libempty.so >&AS_MESSAGE_LOG_FD 2>&1 \ - || gl_cv_have_weak=no - rm -f conftest1.c libempty.so conftest2.c conftest - ;; - esac - ;; - esac - ]) - case "$gl_cv_have_weak" in - *yes) - AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], - [Define to 1 if the compiler and linker support weak declarations of symbols.]) - ;; - esac -]) - -dnl ============================================================================ -dnl Macros for the POSIX API - -dnl gl_PTHREADLIB -dnl ------------- -dnl Tests for the libraries needs for using the POSIX threads API. -dnl Sets the variable LIBPTHREAD to the linker options for use in a Makefile. -dnl Sets the variable LIBPMULTITHREAD, for programs that really need -dnl multithread functionality. The difference between LIBPTHREAD and -dnl LIBPMULTITHREAD is that on platforms supporting weak symbols, typically -dnl LIBPTHREAD is empty whereas LIBPMULTITHREAD is not. -dnl Sets the variable LIB_SCHED_YIELD to the linker options needed to use the -dnl sched_yield() function. -dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for -dnl multithread-safe programs. -dnl Defines the C macro HAVE_PTHREAD_API if (at least parts of) the POSIX -dnl threads API is available. - -dnl The guts of gl_PTHREADLIB. Needs to be expanded only once. - -AC_DEFUN([gl_PTHREADLIB_BODY], -[ - AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) - if test -z "$gl_pthreadlib_body_done"; then - gl_pthread_api=no - LIBPTHREAD= - LIBPMULTITHREAD= - # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . It's added above, in gl_ANYTHREADLIB_EARLY. - AC_CHECK_HEADER([pthread.h], - [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) - if test "$gl_have_pthread_h" = yes; then - # Other possible tests: - # -lpthreads (FSU threads, PCthreads) - # -lgthreads - # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist - # in libc. IRIX 6.5 has the first one in both libc and libpthread, but - # the second one only in libpthread, and lock.c needs it. - # - # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 - # needs -pthread for some reason. See: - # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html - save_LIBS=$LIBS - for gl_pthread in '' '-pthread'; do - LIBS="$LIBS $gl_pthread" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include - pthread_mutex_t m; - pthread_mutexattr_t ma; - ]], - [[pthread_mutex_lock (&m); - pthread_mutexattr_init (&ma);]])], - [gl_pthread_api=yes - LIBPTHREAD=$gl_pthread - LIBPMULTITHREAD=$gl_pthread]) - LIBS=$save_LIBS - test $gl_pthread_api = yes && break - done - echo "$as_me:__oline__: gl_pthread_api=$gl_pthread_api" >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: LIBPTHREAD=$LIBPTHREAD" >&AS_MESSAGE_LOG_FD - - gl_pthread_in_glibc=no - # On Linux with glibc >= 2.34, libc contains the fully functional - # pthread functions. - case "$host_os" in - linux*) - AC_EGREP_CPP([Lucky user], - [#include - #ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) || (__GLIBC__ > 2) - Lucky user - #endif - #endif - ], - [gl_pthread_in_glibc=yes], - []) - ;; - esac - echo "$as_me:__oline__: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&AS_MESSAGE_LOG_FD - - # Test for libpthread by looking for pthread_kill. (Not pthread_self, - # since it is defined as a macro on OSF/1.) - if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"; then - # The program links fine without libpthread. But it may actually - # need to link with libpthread in order to create multiple threads. - AC_CHECK_LIB([pthread], [pthread_kill], - [if test $gl_pthread_in_glibc = yes; then - LIBPMULTITHREAD= - else - LIBPMULTITHREAD=-lpthread - # On Solaris and HP-UX, most pthread functions exist also in libc. - # Therefore pthread_in_use() needs to actually try to create a - # thread: pthread_create from libc will fail, whereas - # pthread_create will actually create a thread. - # On Solaris 10 or newer, this test is no longer needed, because - # libc contains the fully functional pthread functions. - case "$host_os" in -changequote(,)dnl - solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) -changequote([,])dnl - AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], - [Define if the pthread_in_use() detection is hard.]) - esac - fi - ]) - elif test $gl_pthread_api != yes; then - # Some library is needed. Try libpthread and libc_r. - AC_CHECK_LIB([pthread], [pthread_kill], - [gl_pthread_api=yes - LIBPTHREAD=-lpthread - LIBPMULTITHREAD=-lpthread]) - if test $gl_pthread_api != yes; then - # For FreeBSD 4. - AC_CHECK_LIB([c_r], [pthread_kill], - [gl_pthread_api=yes - LIBPTHREAD=-lc_r - LIBPMULTITHREAD=-lc_r]) - fi - fi - echo "$as_me:__oline__: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&AS_MESSAGE_LOG_FD - fi - AC_MSG_CHECKING([whether POSIX threads API is available]) - AC_MSG_RESULT([$gl_pthread_api]) - AC_SUBST([LIBPTHREAD]) - AC_SUBST([LIBPMULTITHREAD]) - if test $gl_pthread_api = yes; then - AC_DEFINE([HAVE_PTHREAD_API], [1], - [Define if you have the header and the POSIX threads API.]) - fi - - dnl On some systems, sched_yield is in librt, rather than in libpthread. - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[sched_yield ();]])], - [LIB_SCHED_YIELD= - ], - [dnl Solaris 7...10 has sched_yield in librt, not in libpthread or libc. - AC_CHECK_LIB([rt], [sched_yield], [LIB_SCHED_YIELD=-lrt], - [dnl Solaris 2.5.1, 2.6 has sched_yield in libposix4, not librt. - AC_CHECK_LIB([posix4], [sched_yield], [LIB_SCHED_YIELD=-lposix4])]) - ]) - AC_SUBST([LIB_SCHED_YIELD]) - - gl_pthreadlib_body_done=done - fi -]) - -AC_DEFUN([gl_PTHREADLIB], -[ - AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) - gl_PTHREADLIB_BODY -]) - -dnl ============================================================================ -dnl Macros for the ISO C API - -dnl gl_STDTHREADLIB -dnl --------------- -dnl Tests for the libraries needs for using the ISO C threads API. -dnl Sets the variable LIBSTDTHREAD to the linker options for use in a Makefile. -dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for -dnl multithread-safe programs. -dnl Defines the C macro HAVE_THREADS_H if (at least parts of) the ISO C threads -dnl API is available. - -dnl The guts of gl_STDTHREADLIB. Needs to be expanded only once. - -AC_DEFUN([gl_STDTHREADLIB_BODY], -[ - AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) - AC_REQUIRE([AC_CANONICAL_HOST]) - if test -z "$gl_stdthreadlib_body_done"; then - AC_CHECK_HEADERS_ONCE([threads.h]) - - case "$host_os" in - mingw*) - LIBSTDTHREAD= - ;; - *) - gl_PTHREADLIB_BODY - if test $ac_cv_header_threads_h = yes; then - dnl glibc >= 2.29 has thrd_create in libpthread. - dnl FreeBSD >= 10 has thrd_create in libstdthreads; this library depends - dnl on libpthread (for the symbol 'pthread_mutexattr_gettype'). - dnl glibc >= 2.34, AIX >= 7.1, and Solaris >= 11.4 have thrd_create in - dnl libc. - AC_CHECK_FUNCS([thrd_create]) - if test $ac_cv_func_thrd_create = yes; then - LIBSTDTHREAD= - else - AC_CHECK_LIB([stdthreads], [thrd_create], [ - LIBSTDTHREAD='-lstdthreads -lpthread' - ], [ - dnl Guess that thrd_create is in libpthread. - LIBSTDTHREAD="$LIBPMULTITHREAD" - ]) - fi - else - dnl Libraries needed by thrd.c, mtx.c, cnd.c, tss.c. - LIBSTDTHREAD="$LIBPMULTITHREAD $LIB_SCHED_YIELD" - fi - ;; - esac - AC_SUBST([LIBSTDTHREAD]) - - AC_MSG_CHECKING([whether ISO C threads API is available]) - AC_MSG_RESULT([$ac_cv_header_threads_h]) - gl_stdthreadlib_body_done=done - fi -]) - -AC_DEFUN([gl_STDTHREADLIB], -[ - AC_REQUIRE([gl_ANYTHREADLIB_EARLY]) - gl_STDTHREADLIB_BODY -]) - -dnl ============================================================================ -dnl Macros for the Gnulib API - dnl gl_THREADLIB dnl ------------ dnl Tests for a multithreading library to be used. @@ -393,25 +14,17 @@ dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the dnl default is 'no', otherwise it is system dependent. In both cases, the user dnl can change the choice through the options --enable-threads=choice or dnl --disable-threads. -dnl Defines at most one of the macros USE_ISOC_THREADS, USE_POSIX_THREADS, -dnl USE_ISOC_AND_POSIX_THREADS, USE_WINDOWS_THREADS. -dnl The choice --enable-threads=isoc+posix is available only on platforms that -dnl have both the ISO C and the POSIX threads APIs. It has the effect of using -dnl the ISO C API for most things and the POSIX API only for creating and -dnl controlling threads (because there is no equivalent to pthread_atfork in -dnl the ISO C API). +dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, +dnl USE_PTH_THREADS, USE_WINDOWS_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak -dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not. +dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. -dnl Since support for GNU pth was removed, $LTLIBTHREAD and $LIBTHREAD have the -dnl same value, and similarly $LTLIBMULTITHREAD and $LIBMULTITHREAD have the -dnl same value. Only system libraries are needed. AC_DEFUN([gl_THREADLIB_EARLY], [ @@ -430,15 +43,18 @@ AC_DEFUN([gl_THREADLIB_EARLY_BODY], AC_REQUIRE([AC_CANONICAL_HOST]) dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes + dnl AC_GNU_SOURCE. + m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], + [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], + [AC_REQUIRE([AC_GNU_SOURCE])]) dnl Check for multithreading. m4_ifdef([gl_THREADLIB_DEFAULT_NO], [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) - m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=]) AC_ARG_ENABLE([threads], -AS_HELP_STRING([--enable-threads={isoc|posix|isoc+posix|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ -AS_HELP_STRING([--disable-threads], [build without multithread safety])]), +AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ +AC_HELP_STRING([--disable-threads], [build without multithread safety])]), [gl_use_threads=$enableval], [if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" @@ -448,35 +64,41 @@ changequote(,)dnl dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its dnl child process gets an endless segmentation fault inside execvp(). - osf*) gl_use_threads=no ;; dnl Disable multithreading by default on Cygwin 1.5.x, because it has dnl bugs that lead to endless loops or crashes. See - dnl . + dnl . + osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; - dnl Obey gl_AVOID_WINPTHREAD on mingw. - mingw*) - case "$gl_use_winpthreads_default" in - yes) gl_use_threads=posix ;; - no) gl_use_threads=windows ;; - *) gl_use_threads=yes ;; - esac - ;; *) gl_use_threads=yes ;; esac changequote([,])dnl fi ]) - if test "$gl_use_threads" = yes \ - || test "$gl_use_threads" = isoc \ - || test "$gl_use_threads" = posix \ - || test "$gl_use_threads" = isoc+posix; then - # For using or : - gl_ANYTHREADLIB_EARLY + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # For using : + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_LINK_IFELSE test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac fi ]) @@ -492,69 +114,168 @@ AC_DEFUN([gl_THREADLIB_BODY], LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. - gl_WEAK_SYMBOLS - if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then - dnl If we use weak symbols to implement pthread_in_use / pth_in_use / - dnl thread_in_use, we also need to test whether the ISO C 11 thrd_create - dnl facility is in use. - AC_CHECK_HEADERS_ONCE([threads.h]) - : - fi - if test "$gl_use_threads" = isoc || test "$gl_use_threads" = isoc+posix; then - AC_CHECK_HEADERS_ONCE([threads.h]) - gl_have_isoc_threads="$ac_cv_header_threads_h" - fi - if test "$gl_use_threads" = yes \ - || test "$gl_use_threads" = posix \ - || test "$gl_use_threads" = isoc+posix; then - gl_PTHREADLIB_BODY - LIBTHREAD=$LIBPTHREAD LTLIBTHREAD=$LIBPTHREAD - LIBMULTITHREAD=$LIBPMULTITHREAD LTLIBMULTITHREAD=$LIBPMULTITHREAD - if test $gl_pthread_api = yes; then - if test "$gl_use_threads" = isoc+posix && test "$gl_have_isoc_threads" = yes; then - gl_threads_api='isoc+posix' - AC_DEFINE([USE_ISOC_AND_POSIX_THREADS], [1], - [Define if the combination of the ISO C and POSIX multithreading APIs can be used.]) - LIBTHREAD= LTLIBTHREAD= + AC_CACHE_CHECK([whether imported symbols can be declared weak], + [gl_cv_have_weak], + [gl_cv_have_weak=no + dnl First, test whether the compiler accepts it syntactically. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[extern void xyzzy (); +#pragma weak xyzzy]], + [[xyzzy();]])], + [gl_cv_have_weak=maybe]) + if test $gl_cv_have_weak = maybe; then + dnl Second, test whether it actually works. On Cygwin 1.7.2, with + dnl gcc 4.3, symbols declared weak always evaluate to the address 0. + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#pragma weak fputs +int main () +{ + return (fputs == NULL); +}]])], + [gl_cv_have_weak=yes], + [gl_cv_have_weak=no], + [dnl When cross-compiling, assume that only ELF platforms support + dnl weak symbols. + AC_EGREP_CPP([Extensible Linking Format], + [#ifdef __ELF__ + Extensible Linking Format + #endif + ], + [gl_cv_have_weak="guessing yes"], + [gl_cv_have_weak="guessing no"]) + ]) + fi + ]) + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. + AC_CHECK_HEADER([pthread.h], + [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + gl_have_pthread= + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[pthread_mutex_lock((pthread_mutex_t*)0); + pthread_mutexattr_init((pthread_mutexattr_t*)0);]])], + [gl_have_pthread=yes]) + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test -n "$gl_have_pthread"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + AC_CHECK_LIB([pthread], [pthread_kill], + [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + case "$host_os" in + solaris* | hpux*) + AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], + [Define if the pthread_in_use() detection is hard.]) + esac + ]) else + # Some library is needed. Try libpthread and libc_r. + AC_CHECK_LIB([pthread], [pthread_kill], + [gl_have_pthread=yes + LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread + LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) + if test -z "$gl_have_pthread"; then + # For FreeBSD 4. + AC_CHECK_LIB([c_r], [pthread_kill], + [gl_have_pthread=yes + LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r + LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) + fi + fi + if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], [1], [Define if the POSIX multithreading library can be used.]) - if test -z "$LIBMULTITHREAD" && test -z "$LTLIBMULTITHREAD"; then - AC_DEFINE([USE_POSIX_THREADS_FROM_LIBC], [1], - [Define if references to the POSIX multithreading library are satisfied by libc.]) - else + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_POSIX_THREADS_WEAK], [1], [Define if references to the POSIX multithreading library should be made weak.]) - LIBTHREAD= LTLIBTHREAD= - else - case "$host_os" in - freebsd* | dragonfly* | midnightbsd*) - if test "x$LIBTHREAD" != "x$LIBMULTITHREAD"; then - dnl If weak symbols can't tell whether pthread_create(), pthread_key_create() - dnl etc. will succeed, we need a runtime test. - AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], - [Define if the pthread_in_use() detection is hard.]) - fi - ;; - esac + LIBTHREAD= + LTLIBTHREAD= fi fi fi fi fi - if test $gl_threads_api = none; then - if test "$gl_use_threads" = isoc && test "$gl_have_isoc_threads" = yes; then - gl_STDTHREADLIB_BODY - LIBTHREAD=$LIBSTDTHREAD LTLIBTHREAD=$LIBSTDTHREAD - LIBMULTITHREAD=$LIBSTDTHREAD LTLIBMULTITHREAD=$LIBSTDTHREAD - gl_threads_api=isoc - AC_DEFINE([USE_ISOC_THREADS], [1], - [Define if the ISO C multithreading library can be used.]) + if test -z "$gl_have_pthread"; then + if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then + gl_have_solaristhread= + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lthread" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[thr_self();]])], + [gl_have_solaristhread=yes]) + LIBS="$gl_save_LIBS" + if test -n "$gl_have_solaristhread"; then + gl_threads_api=solaris + LIBTHREAD=-lthread + LTLIBTHREAD=-lthread + LIBMULTITHREAD="$LIBTHREAD" + LTLIBMULTITHREAD="$LTLIBTHREAD" + AC_DEFINE([USE_SOLARIS_THREADS], [1], + [Define if the old Solaris multithreading library can be used.]) + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1], + [Define if references to the old Solaris multithreading library should be made weak.]) + LIBTHREAD= + LTLIBTHREAD= + fi + fi fi fi - if test $gl_threads_api = none; then + if test "$gl_use_threads" = pth; then + gl_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_LINKFLAGS([pth]) + gl_have_pth= + gl_save_LIBS="$LIBS" + LIBS="$LIBS $LIBPTH" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], [[pth_self();]])], + [gl_have_pth=yes]) + LIBS="$gl_save_LIBS" + if test -n "$gl_have_pth"; then + gl_threads_api=pth + LIBTHREAD="$LIBPTH" + LTLIBTHREAD="$LTLIBPTH" + LIBMULTITHREAD="$LIBTHREAD" + LTLIBMULTITHREAD="$LTLIBTHREAD" + AC_DEFINE([USE_PTH_THREADS], [1], + [Define if the GNU Pth multithreading library can be used.]) + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then + if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then + AC_DEFINE([USE_PTH_THREADS_WEAK], [1], + [Define if references to the GNU Pth multithreading library should be made weak.]) + LIBTHREAD= + LTLIBTHREAD= + fi + fi + else + CPPFLAGS="$gl_save_CPPFLAGS" + fi + fi + if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in @@ -596,21 +317,6 @@ AC_DEFUN([gl_DISABLE_THREADS], [ ]) -dnl gl_AVOID_WINPTHREAD -dnl ------------------- -dnl Sets the gl_THREADLIB default so that on mingw, a dependency to the -dnl libwinpthread DLL (mingw-w64 winpthreads library) is avoided. -dnl The user can still override it at installation time, by using the -dnl configure option '--enable-threads'. - -AC_DEFUN([gl_AVOID_WINPTHREAD], [ - m4_divert_text([INIT_PREPARE], [gl_use_winpthreads_default=no]) -]) - - -dnl ============================================================================ - - dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock @@ -618,11 +324,7 @@ dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl -dnl Linux/glibc 2.34 posix Y OK -dnl -dnl GNU Hurd/glibc posix -lpthread Y OK -dnl -dnl Ubuntu 14.04 posix -pthread Y OK +dnl GNU Hurd/glibc posix dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y @@ -642,6 +344,7 @@ dnl dnl Mac OS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK +dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) @@ -655,6 +358,8 @@ dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl +dnl Any of the above pth -lpth 0.0 +dnl dnl Mingw windows N OK dnl dnl BeOS 5 -- diff --git a/gl/m4/time_h.m4 b/gl/m4/time_h.m4 index f6bf3a4..3b83900 100644 --- a/gl/m4/time_h.m4 +++ b/gl/m4/time_h.m4 @@ -1,8 +1,8 @@ # Configure a more-standard replacement for . -# Copyright (C) 2000-2001, 2003-2007, 2009-2023 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc. -# serial 20 +# serial 7 # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10,42 +10,23 @@ # Written by Paul Eggert and Jim Meyering. -AC_DEFUN_ONCE([gl_TIME_H], +AC_DEFUN([gl_HEADER_TIME_H], [ - dnl Ensure to expand the default settings once only, before all statements - dnl that occur in other macros. - AC_REQUIRE([gl_TIME_H_DEFAULTS]) + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. + AC_REQUIRE([gl_HEADER_TIME_H_BODY]) +]) +AC_DEFUN([gl_HEADER_TIME_H_BODY], +[ + AC_REQUIRE([AC_C_RESTRICT]) + AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_NEXT_HEADERS([time.h]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) - - dnl Check for declarations of anything we want to poison if the - dnl corresponding gnulib module is not in use. - gl_WARN_ON_USE_PREPARE([[ -#include - ]], [asctime_r ctime_r]) - - AC_REQUIRE([AC_C_RESTRICT]) - - AC_CACHE_CHECK([for TIME_UTC in ], - [gl_cv_time_h_has_TIME_UTC], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - ]], - [[static int x = TIME_UTC; x++;]])], - [gl_cv_time_h_has_TIME_UTC=yes], - [gl_cv_time_h_has_TIME_UTC=no])]) - if test $gl_cv_time_h_has_TIME_UTC = yes; then - TIME_H_DEFINES_TIME_UTC=1 - else - TIME_H_DEFINES_TIME_UTC=0 - fi - AC_SUBST([TIME_H_DEFINES_TIME_UTC]) ]) dnl Check whether 'struct timespec' is declared -dnl in time.h, sys/time.h, pthread.h, or unistd.h. +dnl in time.h, sys/time.h, or pthread.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [ @@ -63,7 +44,6 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 - UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else @@ -90,94 +70,40 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [gl_cv_sys_struct_timespec_in_pthread_h=no])]) if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 - else - AC_CACHE_CHECK([for struct timespec in ], - [gl_cv_sys_struct_timespec_in_unistd_h], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - ]], - [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], - [gl_cv_sys_struct_timespec_in_unistd_h=yes], - [gl_cv_sys_struct_timespec_in_unistd_h=no])]) - if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then - UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 - fi fi fi fi AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) - AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) ]) -# gl_TIME_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_TIME_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_TIME_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CTIME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKTIME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALTIME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NANOSLEEP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRFTIME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPTIME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMEGM]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GET]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GETRES]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TZSET], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_TIME_H_DEFAULTS]) -]) - -AC_DEFUN([gl_TIME_H_DEFAULTS], +AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], [ + GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) + GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) + GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) + GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) + GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) - HAVE_TIMESPEC_GET=1; AC_SUBST([HAVE_TIMESPEC_GET]) - HAVE_TIMESPEC_GETRES=1; AC_SUBST([HAVE_TIMESPEC_GETRES]) - dnl Even GNU libc does not have timezone_t yet. - HAVE_TIMEZONE_T=0; AC_SUBST([HAVE_TIMEZONE_T]) dnl If another module says to replace or to not replace, do that. dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; dnl this lets maintainers check for portability. - REPLACE_CTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_CTIME]) REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) - REPLACE_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) - REPLACE_TZSET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TZSET]) - - dnl Hack so that the time module doesn't depend on the sys_time module. - dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent. - : ${GNULIB_GETTIMEOFDAY=0}; AC_SUBST([GNULIB_GETTIMEOFDAY]) - dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME - dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier - dnl is no longer a big deal. - REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) - REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) ]) diff --git a/gl/m4/time_r.m4 b/gl/m4/time_r.m4 index adce438..c388a83 100644 --- a/gl/m4/time_r.m4 +++ b/gl/m4/time_r.m4 @@ -1,6 +1,6 @@ dnl Reentrant time functions: localtime_r, gmtime_r. -dnl Copyright (C) 2003, 2006-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2006-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, dnl with or without modifications, as long as this notice is preserved. @@ -12,20 +12,12 @@ AC_DEFUN([gl_TIME_R], dnl Persuade glibc and Solaris to declare localtime_r. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - AC_REQUIRE([gl_TIME_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([AC_C_RESTRICT]) dnl Some systems don't declare localtime_r() and gmtime_r() if _REENTRANT is dnl not defined. - AC_CHECK_DECLS([localtime_r], [], [], - [[/* mingw's provides the functions asctime_r, ctime_r, - gmtime_r, localtime_r only if or has - been included before. */ - #if defined __MINGW32__ - # include - #endif - #include - ]]) + AC_CHECK_DECLS([localtime_r], [], [], [[#include ]]) if test $ac_cv_have_decl_localtime_r = no; then HAVE_DECL_LOCALTIME_R=0 fi @@ -37,14 +29,7 @@ AC_DEFUN([gl_TIME_R], [gl_cv_time_r_posix], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[/* mingw's provides the functions asctime_r, ctime_r, - gmtime_r, localtime_r only if or has - been included before. */ - #if defined __MINGW32__ - # include - #endif - #include - ]], + [[#include ]], [[/* We don't need to append 'restrict's to the argument types, even though the POSIX signature has the 'restrict's, since C99 says they can't affect type compatibility. */ @@ -64,32 +49,6 @@ AC_DEFUN([gl_TIME_R], fi else HAVE_LOCALTIME_R=0 - dnl On mingw, localtime_r() is defined as an inline function; use through a - dnl direct function call works but the use as a function pointer leads to a - dnl link error. - AC_CACHE_CHECK([whether localtime_r exists as an inline function], - [gl_cv_func_localtime_r_inline], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[/* mingw's provides the functions asctime_r, ctime_r, - gmtime_r, localtime_r only if or has - been included before. */ - #if defined __MINGW32__ - # include - #endif - #include - ]], - [[time_t a; - struct tm r; - localtime_r (&a, &r); - ]]) - ], - [gl_cv_func_localtime_r_inline=yes], - [gl_cv_func_localtime_r_inline=no]) - ]) - if test $gl_cv_func_localtime_r_inline = yes; then - REPLACE_LOCALTIME_R=1 - fi fi ]) diff --git a/gl/m4/timegm.m4 b/gl/m4/timegm.m4 index 6079f1a..997953c 100644 --- a/gl/m4/timegm.m4 +++ b/gl/m4/timegm.m4 @@ -1,17 +1,17 @@ -# timegm.m4 serial 13 -dnl Copyright (C) 2003, 2007, 2009-2023 Free Software Foundation, Inc. +# timegm.m4 serial 11 +dnl Copyright (C) 2003, 2007, 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, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_TIMEGM], [ - AC_REQUIRE([gl_TIME_H_DEFAULTS]) - AC_REQUIRE([gl_FUNC_MKTIME_WORKS]) + AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_MKTIME]) REPLACE_TIMEGM=0 AC_CHECK_FUNCS_ONCE([timegm]) if test $ac_cv_func_timegm = yes; then - if test "$gl_cv_func_working_mktime" != yes; then + if test $gl_cv_func_working_mktime = no; then # Assume that timegm is buggy if mktime is. REPLACE_TIMEGM=1 fi diff --git a/gl/m4/ungetc.m4 b/gl/m4/ungetc.m4 deleted file mode 100644 index 8977a34..0000000 --- a/gl/m4/ungetc.m4 +++ /dev/null @@ -1,73 +0,0 @@ -# ungetc.m4 serial 10 -dnl Copyright (C) 2009-2023 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. - -AC_DEFUN_ONCE([gl_FUNC_UNGETC_WORKS], -[ - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - AC_CACHE_CHECK([whether ungetc works on arbitrary bytes], - [gl_cv_func_ungetc_works], - [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ -#include - ]], [[FILE *f; - if (!(f = fopen ("conftest.tmp", "w+"))) - return 1; - if (fputs ("abc", f) < 0) - { fclose (f); return 2; } - rewind (f); - if (fgetc (f) != 'a') - { fclose (f); return 3; } - if (fgetc (f) != 'b') - { fclose (f); return 4; } - if (ungetc ('d', f) != 'd') - { fclose (f); return 5; } - if (ftell (f) != 1) - { fclose (f); return 6; } - if (fgetc (f) != 'd') - { fclose (f); return 7; } - if (ftell (f) != 2) - { fclose (f); return 8; } - if (fseek (f, 0, SEEK_CUR) != 0) - { fclose (f); return 9; } - if (ftell (f) != 2) - { fclose (f); return 10; } - if (fgetc (f) != 'c') - { fclose (f); return 11; } - fclose (f); - remove ("conftest.tmp"); - ]])], - [gl_cv_func_ungetc_works=yes], [gl_cv_func_ungetc_works=no], - [case "$host_os" in - # Guess yes on glibc systems. - *-gnu* | gnu*) gl_cv_func_ungetc_works="guessing yes" ;; - # Guess yes on musl systems. - *-musl*) gl_cv_func_ungetc_works="guessing yes" ;; - # Guess yes on bionic systems. - *-android*) gl_cv_func_ungetc_works="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_ungetc_works="guessing yes" ;; - # If we don't know, obey --enable-cross-guesses. - *) gl_cv_func_ungetc_works="$gl_cross_guess_normal" ;; - esac - ]) - ]) - gl_ftello_broken_after_ungetc=no - case "$gl_cv_func_ungetc_works" in - *yes) ;; - *) - dnl On macOS >= 10.15, where the above program fails with exit code 6, - dnl we fix it through an ftello override. - case "$host_os" in - darwin*) gl_ftello_broken_after_ungetc=yes ;; - *) - AC_DEFINE([FUNC_UNGETC_BROKEN], [1], - [Define to 1 if ungetc is broken when used on arbitrary bytes.]) - ;; - esac - ;; - esac -]) diff --git a/gl/m4/unistd_h.m4 b/gl/m4/unistd_h.m4 index f438402..32dcfa5 100644 --- a/gl/m4/unistd_h.m4 +++ b/gl/m4/unistd_h.m4 @@ -1,15 +1,15 @@ -# unistd_h.m4 serial 90 -dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. +# unistd_h.m4 serial 66 +dnl Copyright (C) 2006-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, dnl with or without modifications, as long as this notice is preserved. dnl Written by Simon Josefsson, Bruno Haible. -AC_DEFUN_ONCE([gl_UNISTD_H], +AC_DEFUN([gl_UNISTD_H], [ - dnl Ensure to expand the default settings once only, before all statements - dnl that occur in other macros. + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([unistd.h]) @@ -37,234 +37,150 @@ AC_DEFUN_ONCE([gl_UNISTD_H], # include # include # include -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # endif #endif - ]], [access chdir chown copy_file_range dup dup2 dup3 environ euidaccess - execl execle execlp execv execve execvp execvpe - faccessat fchdir - fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize - getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass + ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat + fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups + gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite - readlink readlinkat rmdir sethostname sleep symlink symlinkat - truncate ttyname_r unlink unlinkat usleep]) - - AC_REQUIRE([AC_C_RESTRICT]) - - AC_CHECK_DECLS_ONCE([execvpe]) - if test $ac_cv_have_decl_execvpe = no; then - HAVE_DECL_EXECVPE=0 - fi + readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r + unlink unlinkat usleep]) ]) -# gl_UNISTD_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_UNISTD_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCESS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHDIR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHOWN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPY_FILE_RANGE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP2]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP3]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ENVIRON]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EUIDACCESS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECV]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVPE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FACCESSAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHDIR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHOWNAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDATASYNC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSYNC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTRUNCATE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCWD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDOMAINNAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDTABLESIZE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETENTROPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETGROUPS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETHOSTNAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS_GNU]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHOWN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINKAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSEEK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE2]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PREAD]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PWRITE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READ]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINKAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RMDIR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETHOSTNAME]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SLEEP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINKAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCATE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TTYNAME_R]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINKAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_USLEEP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WRITE]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ACCESS], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHDIR], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CLOSE], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP2], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECL], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLE], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLP], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECV], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVE], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVP], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVPE], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETCWD], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETPID], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ISATTY], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEEK], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_READ], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_RMDIR], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_SWAB], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UNLINK], [1]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WRITE], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) -]) - AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ + GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) + GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) + GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) + GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) + GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) + GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) + GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) + GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) + GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) + GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) + GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) + GNULIB_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC]) + GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) + GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) + GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) + GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) + GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) + GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) + GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) + GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) + GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) + GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) + GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) + GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) + GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) + GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) + GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) + GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) + GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) + GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) + GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) + GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) + GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) + GNULIB_READ=0; AC_SUBST([GNULIB_READ]) + GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) + GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) + GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) + GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) + GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) + GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) + GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) + GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) + GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) + GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) + GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) + GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) + GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) + GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) - HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) - HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) - HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) - HAVE_EXECVPE=1; AC_SUBST([HAVE_EXECVPE]) - HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) - HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) - HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) - HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) - HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) - HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) - HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) - HAVE_GETENTROPY=1; AC_SUBST([HAVE_GETENTROPY]) - HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) - HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) - HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) - HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) - HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS]) - HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) - HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) - HAVE_LINK=1; AC_SUBST([HAVE_LINK]) - HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) - HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) - HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) - HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) - HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) - HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) - HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) - HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) - HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) - HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) - HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) - HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) - HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) - HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) - HAVE_DECL_EXECVPE=1; AC_SUBST([HAVE_DECL_EXECVPE]) - HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) - HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) - HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) - HAVE_DECL_GETLOGIN=1; AC_SUBST([HAVE_DECL_GETLOGIN]) - HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) - HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) - HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) - HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) - HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) - HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) - HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) - HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) - REPLACE_ACCESS=0; AC_SUBST([REPLACE_ACCESS]) - REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) - REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) - REPLACE_COPY_FILE_RANGE=0; AC_SUBST([REPLACE_COPY_FILE_RANGE]) - REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) - REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) - REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL]) - REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE]) - REPLACE_EXECLP=0; AC_SUBST([REPLACE_EXECLP]) - REPLACE_EXECV=0; AC_SUBST([REPLACE_EXECV]) - REPLACE_EXECVE=0; AC_SUBST([REPLACE_EXECVE]) - REPLACE_EXECVP=0; AC_SUBST([REPLACE_EXECVP]) - REPLACE_EXECVPE=0; AC_SUBST([REPLACE_EXECVPE]) - REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) - REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) - REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) - REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) - REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) - REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) - REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) - REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) - REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) - REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) - REPLACE_GETPASS_FOR_GETPASS_GNU=0; AC_SUBST([REPLACE_GETPASS_FOR_GETPASS_GNU]) - REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) - REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) - REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) - REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) - REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) - REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) - REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) - REPLACE_READ=0; AC_SUBST([REPLACE_READ]) - REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) - REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) - REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) - REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) - REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) - REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) - REPLACE_TRUNCATE=0; AC_SUBST([REPLACE_TRUNCATE]) - REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) - REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) - REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) - REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) - REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) - UNISTD_H_HAVE_SYS_RANDOM_H=0; AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H]) - UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) + HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) + HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) + HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) + HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) + HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) + HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) + HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) + HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) + HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) + HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) + HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) + HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) + HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) + HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) + HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) + HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) + HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) + HAVE_LINK=1; AC_SUBST([HAVE_LINK]) + HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) + HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) + HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) + HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) + HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) + HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) + HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) + HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) + HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) + HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) + HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) + HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) + HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) + HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) + HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) + HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) + HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) + HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) + HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) + HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) + HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) + HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) + HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) + HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) + REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) + REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) + REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) + REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) + REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) + REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) + REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) + REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) + REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) + REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) + REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) + REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) + REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) + REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) + REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) + REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) + REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) + REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) + REPLACE_READ=0; AC_SUBST([REPLACE_READ]) + REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) + REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) + REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) + REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) + REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) + REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) + REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) + REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) + REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) + UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) diff --git a/gl/m4/unlocked-io.m4 b/gl/m4/unlocked-io.m4 deleted file mode 100644 index 407c0ba..0000000 --- a/gl/m4/unlocked-io.m4 +++ /dev/null @@ -1,36 +0,0 @@ -# unlocked-io.m4 serial 16 - -# Copyright (C) 1998-2006, 2009-2023 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -dnl From Jim Meyering. -dnl -dnl See if the glibc *_unlocked I/O macros or functions are available. -dnl Use only those *_unlocked macros or functions that are declared -dnl (because some of them were declared in Solaris 2.5.1 but were removed -dnl in Solaris 2.6, whereas we want binaries built on Solaris 2.5.1 to run -dnl on Solaris 2.6). - -AC_DEFUN([gl_FUNC_GLIBC_UNLOCKED_IO], -[ - dnl Persuade glibc and Solaris to declare - dnl fgets_unlocked(), fputs_unlocked() etc. - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - - AC_CHECK_DECLS_ONCE([clearerr_unlocked]) - AC_CHECK_DECLS_ONCE([feof_unlocked]) - AC_CHECK_DECLS_ONCE([ferror_unlocked]) - AC_CHECK_DECLS_ONCE([fflush_unlocked]) - AC_CHECK_DECLS_ONCE([fgets_unlocked]) - AC_CHECK_DECLS_ONCE([fputc_unlocked]) - AC_CHECK_DECLS_ONCE([fputs_unlocked]) - AC_CHECK_DECLS_ONCE([fread_unlocked]) - AC_CHECK_DECLS_ONCE([fwrite_unlocked]) - AC_CHECK_DECLS_ONCE([getc_unlocked]) - AC_CHECK_DECLS_ONCE([getchar_unlocked]) - AC_CHECK_DECLS_ONCE([putc_unlocked]) - AC_CHECK_DECLS_ONCE([putchar_unlocked]) -]) diff --git a/gl/m4/vasnprintf.m4 b/gl/m4/vasnprintf.m4 index 6361c84..d730e43 100644 --- a/gl/m4/vasnprintf.m4 +++ b/gl/m4/vasnprintf.m4 @@ -1,5 +1,5 @@ -# vasnprintf.m4 serial 38 -dnl Copyright (C) 2002-2004, 2006-2023 Free Software Foundation, Inc. +# vasnprintf.m4 serial 36 +dnl Copyright (C) 2002-2004, 2006-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, dnl with or without modifications, as long as this notice is preserved. @@ -32,6 +32,7 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF], # Prerequisites of lib/printf-args.h, lib/printf-args.c. AC_DEFUN([gl_PREREQ_PRINTF_ARGS], [ + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) ]) @@ -40,6 +41,7 @@ AC_DEFUN([gl_PREREQ_PRINTF_ARGS], AC_DEFUN([gl_PREREQ_PRINTF_PARSE], [ AC_REQUIRE([gl_FEATURES_H]) + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_REQUIRE([AC_TYPE_SIZE_T]) @@ -54,6 +56,7 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE], AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], [ AC_REQUIRE([AC_FUNC_ALLOCA]) + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) @@ -74,16 +77,6 @@ AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], if the buffer had been large enough.]) ;; esac - dnl Additionally, the use of %n can be eliminated by assuming that snprintf - dnl always produces NUL-terminated strings (no truncation). - AC_REQUIRE([gl_SNPRINTF_TRUNCATION_C99]) - case "$gl_cv_func_snprintf_truncation_c99" in - *yes) - AC_DEFINE([HAVE_SNPRINTF_TRUNCATION_C99], [1], - [Define if the string produced by the snprintf function is always NUL - terminated.]) - ;; - esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting 'long double' diff --git a/gl/m4/vasprintf.m4 b/gl/m4/vasprintf.m4 index 6e6156a..c214ff1 100644 --- a/gl/m4/vasprintf.m4 +++ b/gl/m4/vasprintf.m4 @@ -1,5 +1,5 @@ # vasprintf.m4 serial 6 -dnl Copyright (C) 2002-2003, 2006-2007, 2009-2023 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, diff --git a/gl/m4/visibility.m4 b/gl/m4/visibility.m4 deleted file mode 100644 index f0468e8..0000000 --- a/gl/m4/visibility.m4 +++ /dev/null @@ -1,82 +0,0 @@ -# visibility.m4 serial 8 -dnl Copyright (C) 2005, 2008, 2010-2023 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 Bruno Haible. - -dnl Tests whether the compiler supports the command-line option -dnl -fvisibility=hidden and the function and variable attributes -dnl __attribute__((__visibility__("hidden"))) and -dnl __attribute__((__visibility__("default"))). -dnl Does *not* test for __visibility__("protected") - which has tricky -dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on -dnl Mac OS X. -dnl Does *not* test for __visibility__("internal") - which has processor -dnl dependent semantics. -dnl Does *not* test for #pragma GCC visibility push(hidden) - which is -dnl "really only recommended for legacy code". -dnl Set the variable CFLAG_VISIBILITY. -dnl Defines and sets the variable HAVE_VISIBILITY. - -AC_DEFUN([gl_VISIBILITY], -[ - AC_REQUIRE([AC_PROG_CC]) - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - dnl First, check whether -Werror can be added to the command line, or - dnl whether it leads to an error because of some other option that the - dnl user has put into $CC $CFLAGS $CPPFLAGS. - AC_CACHE_CHECK([whether the -Werror option is usable], - [gl_cv_cc_vis_werror], - [gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror" - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [gl_cv_cc_vis_werror=yes], - [gl_cv_cc_vis_werror=no]) - CFLAGS="$gl_save_CFLAGS" - ]) - dnl Now check whether visibility declarations are supported. - AC_CACHE_CHECK([for simple visibility declarations], - [gl_cv_cc_visibility], - [gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - dnl We use the option -Werror and a function dummyfunc, because on some - dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning - dnl "visibility attribute not supported in this configuration; ignored" - dnl at the first function definition in every compilation unit, and we - dnl don't want to use the option in this case. - if test $gl_cv_cc_vis_werror = yes; then - CFLAGS="$CFLAGS -Werror" - fi - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void); - void dummyfunc (void); - int hiddenvar; - int exportedvar; - int hiddenfunc (void) { return 51; } - int exportedfunc (void) { return 1225736919; } - void dummyfunc (void) {} - ]], - [[]])], - [gl_cv_cc_visibility=yes], - [gl_cv_cc_visibility=no]) - CFLAGS="$gl_save_CFLAGS" - ]) - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 - fi - fi - AC_SUBST([CFLAG_VISIBILITY]) - AC_SUBST([HAVE_VISIBILITY]) - AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], - [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) -]) diff --git a/gl/m4/vsnprintf.m4 b/gl/m4/vsnprintf.m4 index 7fbb11c..4900764 100644 --- a/gl/m4/vsnprintf.m4 +++ b/gl/m4/vsnprintf.m4 @@ -1,5 +1,5 @@ -# vsnprintf.m4 serial 7 -dnl Copyright (C) 2002-2004, 2007-2023 Free Software Foundation, Inc. +# vsnprintf.m4 serial 6 +dnl Copyright (C) 2002-2004, 2007-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, dnl with or without modifications, as long as this notice is preserved. @@ -46,14 +46,6 @@ AC_DEFUN([gl_REPLACE_VSNPRINTF], AC_LIBOBJ([vsnprintf]) if test $ac_cv_func_vsnprintf = yes; then REPLACE_VSNPRINTF=1 - else - AC_CHECK_DECLS_ONCE([vsnprintf]) - if test $ac_cv_have_decl_vsnprintf = yes; then - dnl If the function is declared but does not appear to exist, it may be - dnl defined as an inline function. In order to avoid a conflict, we have - dnl to define rpl_vsnprintf, not vsnprintf. - REPLACE_VSNPRINTF=1 - fi fi gl_PREREQ_VSNPRINTF ]) diff --git a/gl/m4/warn-on-use.m4 b/gl/m4/warn-on-use.m4 index 10649c5..e43beeb 100644 --- a/gl/m4/warn-on-use.m4 +++ b/gl/m4/warn-on-use.m4 @@ -1,13 +1,11 @@ -# warn-on-use.m4 serial 10 -dnl Copyright (C) 2010-2023 Free Software Foundation, Inc. +# warn-on-use.m4 serial 5 +dnl Copyright (C) 2010-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, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- -# If the module 'posixcheck' is in use: -# # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. @@ -25,38 +23,25 @@ dnl with or without modifications, as long as this notice is preserved. # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ - m4_ifdef([gl_POSIXCHECK], - [m4_foreach_w([gl_decl], [$2], - [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), - [Define to 1 if ]m4_defn([gl_decl])[ is declared even after - undefining macros.])])dnl - for gl_func in m4_flatten([$2]); do - AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl - dnl As a workaround to implicit built-in function declarations in - dnl clang (e.g. strndup), reference ac_compile_for_check_decl instead - dnl of ac_compile. If, for whatever reason, the override of AC_PROG_CC - dnl in zzgnulib.m4 is inactive, use the original ac_compile. - ac_save_ac_compile="$ac_compile" - if test -n "$ac_compile_for_check_decl"; then - ac_compile="$ac_compile_for_check_decl" - fi - AC_CACHE_CHECK([whether $gl_func is declared without a macro], - [gl_Symbol], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], -[[#undef $gl_func - (void) $gl_func;]])], - [AS_VAR_SET([gl_Symbol], [yes])], [AS_VAR_SET([gl_Symbol], [no])])]) - ac_compile="$ac_save_ac_compile" - AS_VAR_IF([gl_Symbol], [yes], - [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) - dnl Shortcut for an AC_CHECK_DECL invocation that may come later: - dnl If the raw declaration exists with the given includes, then - dnl AC_CHECK_DECL with its many includes would see it as well. - dnl So, set a cache variable to allow skipping any later - dnl AC_CHECK_DECL invocation for $gl_func. - eval "ac_cv_have_decl_$gl_func=yes" - ]) - AS_VAR_POPDEF([gl_Symbol])dnl - done - ]) + m4_foreach_w([gl_decl], [$2], + [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), + [Define to 1 if ]m4_defn([gl_decl])[ is declared even after + undefining macros.])])dnl +dnl FIXME: gl_Symbol must be used unquoted until we can assume +dnl autoconf 2.64 or newer. + for gl_func in m4_flatten([$2]); do + AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl + AC_CACHE_CHECK([whether $gl_func is declared without a macro], + gl_Symbol, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], +[@%:@undef $gl_func + (void) $gl_func;])], + [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) + AS_VAR_IF(gl_Symbol, [yes], + [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) + dnl shortcut - if the raw declaration exists, then set a cache + dnl variable to allow skipping any later AC_CHECK_DECL efforts + eval ac_cv_have_decl_$gl_func=yes]) + AS_VAR_POPDEF([gl_Symbol])dnl + done ]) diff --git a/gl/m4/wchar_h.m4 b/gl/m4/wchar_h.m4 index 8ec6619..bedb15a 100644 --- a/gl/m4/wchar_h.m4 +++ b/gl/m4/wchar_h.m4 @@ -1,15 +1,15 @@ dnl A placeholder for ISO C99 , for platforms that have issues. -dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2007-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, dnl with or without modifications, as long as this notice is preserved. dnl Written by Eric Blake. -# wchar_h.m4 serial 55 +# wchar_h.m4 serial 39 -AC_DEFUN_ONCE([gl_WCHAR_H], +AC_DEFUN([gl_WCHAR_H], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) @@ -35,82 +35,76 @@ AC_DEFUN_ONCE([gl_WCHAR_H], fi AC_SUBST([HAVE_WINT_T]) - AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) - dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ - #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#if !(defined __GLIBC__ && !defined __UCLIBC__) +# include +# include +# include +#endif +#include ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb - wcsrtombs wcsnrtombs wcwidth - wmemchr wmemcmp wmemcpy wmemmove wmempcpy wmemset + wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr - wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth wcsftime + wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ]) - - AC_REQUIRE([AC_C_RESTRICT]) - - AC_CHECK_DECLS([wcsdup], [], [], [[ - #include - ]]) - if test $ac_cv_have_decl_wcsdup = no; then - HAVE_DECL_WCSDUP=0 - fi ]) dnl Check whether is usable at all. AC_DEFUN([gl_WCHAR_H_INLINE_OK], [ dnl Test whether suffers due to the transition from '__inline' to - dnl 'gnu_inline'. See - dnl and . In summary, + dnl 'gnu_inline'. See + dnl and . In summary, dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and dnl the option -std=c99 or -std=gnu99, leads to a broken . - AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether uses 'inline' correctly], [gl_cv_header_wchar_h_correct_inline], [gl_cv_header_wchar_h_correct_inline=yes - case "$host_os" in - *-gnu* | gnu*) - AC_LANG_CONFTEST([ - AC_LANG_SOURCE([[ - #define wcstod renamed_wcstod - #include - extern int zero (void); - int main () { return zero(); } - ]])]) - dnl Do not rename the object file from conftest.$ac_objext to - dnl conftest1.$ac_objext, as this will cause the link to fail on - dnl z/OS when using the XPLINK object format (due to duplicate - dnl CSECT names). Instead, temporarily redefine $ac_compile so - dnl that the object file has the latter name from the start. - save_ac_compile="$ac_compile" - ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` - if echo '#include "conftest.c"' >conftest1.c \ - && AC_TRY_EVAL([ac_compile]); then - AC_LANG_CONFTEST([ - AC_LANG_SOURCE([[ - #define wcstod renamed_wcstod - #include - int zero (void) { return 0; } - ]])]) - dnl See note above about renaming object files. - ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` - if echo '#include "conftest.c"' >conftest2.c \ - && AC_TRY_EVAL([ac_compile]); then - if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then - : - else - gl_cv_header_wchar_h_correct_inline=no - fi - fi + AC_LANG_CONFTEST([ + AC_LANG_SOURCE([[#define wcstod renamed_wcstod +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include +extern int zero (void); +int main () { return zero(); } +]])]) + if AC_TRY_EVAL([ac_compile]); then + mv conftest.$ac_objext conftest1.$ac_objext + AC_LANG_CONFTEST([ + AC_LANG_SOURCE([[#define wcstod renamed_wcstod +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include +int zero (void) { return 0; } +]])]) + if AC_TRY_EVAL([ac_compile]); then + mv conftest.$ac_objext conftest2.$ac_objext + if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then + : + else + gl_cv_header_wchar_h_correct_inline=no fi - ac_compile="$save_ac_compile" - rm -f conftest[12].c conftest[12].$ac_objext conftest$ac_exeext - ;; - esac + fi + fi + rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([ cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). @@ -118,84 +112,63 @@ This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of - , or + , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted.]) fi ]) -# gl_WCHAR_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_WCHAR_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_WCHAR_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BTOWC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOB]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSINIT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRTOWC]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRLEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRTOWCS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNRTOWCS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCRTOMB]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRTOMBS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNRTOMBS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCWIDTH]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMMOVE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMPCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMSET]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSLEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNLEN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPNCPY]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCAT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCASECMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCASECMP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCOLL]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSXFRM]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSDUP]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRCHR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCSPN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSPN]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSPBRK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSTR]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSTOK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSWIDTH]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSFTIME]) - dnl Support Microsoft deprecated alias function names by default. - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WCSDUP], [1]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS]) - dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized. - gl_STDLIB_H_REQUIRE_DEFAULTS - AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) -]) - AC_DEFUN([gl_WCHAR_H_DEFAULTS], [ + GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) + GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) + GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) + GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) + GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) + GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) + GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) + GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) + GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) + GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) + GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) + GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR]) + GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP]) + GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY]) + GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE]) + GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET]) + GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN]) + GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN]) + GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY]) + GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY]) + GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY]) + GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY]) + GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT]) + GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT]) + GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP]) + GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP]) + GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP]) + GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP]) + GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL]) + GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM]) + GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP]) + GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR]) + GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR]) + GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN]) + GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN]) + GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK]) + GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR]) + GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK]) + GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) @@ -210,7 +183,6 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS], HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP]) HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY]) HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE]) - HAVE_WMEMPCPY=1; AC_SUBST([HAVE_WMEMPCPY]) HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET]) HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN]) HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN]) @@ -235,9 +207,7 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS], HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR]) HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK]) HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH]) - HAVE_WCSFTIME=1; AC_SUBST([HAVE_WCSFTIME]) HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) - HAVE_DECL_WCSDUP=1; AC_SUBST([HAVE_DECL_WCSDUP]) HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) @@ -252,6 +222,4 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS], REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH]) - REPLACE_WCSFTIME=0; AC_SUBST([REPLACE_WCSFTIME]) - REPLACE_WCSTOK=0; AC_SUBST([REPLACE_WCSTOK]) ]) diff --git a/gl/m4/wchar_t.m4 b/gl/m4/wchar_t.m4 index 50bde08..e1e1e69 100644 --- a/gl/m4/wchar_t.m4 +++ b/gl/m4/wchar_t.m4 @@ -1,5 +1,5 @@ # wchar_t.m4 serial 4 (gettext-0.18.2) -dnl Copyright (C) 2002-2003, 2008-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2008-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/wcrtomb.m4 b/gl/m4/wcrtomb.m4 index d51b36e..f56b5ba 100644 --- a/gl/m4/wcrtomb.m4 +++ b/gl/m4/wcrtomb.m4 @@ -1,5 +1,5 @@ -# wcrtomb.m4 serial 17 -dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. +# wcrtomb.m4 serial 11 +dnl Copyright (C) 2008-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, dnl with or without modifications, as long as this notice is preserved. @@ -15,8 +15,15 @@ AC_DEFUN([gl_FUNC_WCRTOMB], if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 AC_CHECK_DECLS([wcrtomb],,, [[ - #include - ]]) +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include +#include +]]) if test $ac_cv_have_decl_wcrtomb = yes; then dnl On Minix 3.1.8, the system's declares wcrtomb() although dnl it does not have the function. Avoid a collision with gnulib's @@ -24,56 +31,17 @@ AC_DEFUN([gl_FUNC_WCRTOMB], REPLACE_WCRTOMB=1 fi else - dnl We don't actually need to override wcrtomb when redefining the semantics - dnl of the mbstate_t type. Tested on 32-bit AIX. - dnl if test $REPLACE_MBSTATE_T = 1; then - dnl REPLACE_WCRTOMB=1 - dnl fi - if test $REPLACE_WCRTOMB = 0; then - dnl On Android 4.3, wcrtomb produces wrong characters in the C locale. - dnl On AIX 4.3, OSF/1 5.1 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL) - dnl sometimes returns 0 instead of 1. + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_WCRTOMB=1 + else + dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes + dnl returns 0 instead of 1. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CACHE_CHECK([whether wcrtomb works in the C locale], - [gl_cv_func_wcrtomb_works], - [AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -int main () -{ - mbstate_t state; - char out[64]; - int count; - memset (&state, 0, sizeof (state)); - out[0] = 'x'; - count = wcrtomb (out, L'a', &state); - return !(count == 1 && out[0] == 'a'); -}]])], - [gl_cv_func_wcrtomb_works=yes], - [gl_cv_func_wcrtomb_works=no], - [case "$host_os" in - # Guess no on Android. - linux*-android*) gl_cv_func_wcrtomb_works="guessing no";; - # Guess yes otherwise. - *) gl_cv_func_wcrtomb_works="guessing yes";; - esac - ]) - ]) - case "$gl_cv_func_wcrtomb_works" in - *yes) ;; - *) AC_DEFINE([WCRTOMB_C_LOCALE_BUG], [1], - [Define if the wcrtomb function does not work in the C locale.]) - REPLACE_WCRTOMB=1 ;; - esac - fi - if test $REPLACE_WCRTOMB = 0; then AC_CACHE_CHECK([whether wcrtomb return value is correct], [gl_cv_func_wcrtomb_retval], [ @@ -81,10 +49,10 @@ int main () dnl is present. changequote(,)dnl case "$host_os" in - # Guess no on AIX 4, OSF/1, Solaris, native Windows. - aix4* | osf* | solaris* | mingw*) gl_cv_func_wcrtomb_retval="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_wcrtomb_retval="guessing yes" ;; + # Guess no on AIX 4, OSF/1 and Solaris. + aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then @@ -92,8 +60,14 @@ changequote([,])dnl [AC_LANG_SOURCE([[ #include #include +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +#include +#include +#include #include -#include int main () { int result = 0; @@ -106,12 +80,6 @@ int main () { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; - { - wchar_t wc = (wchar_t) 0xBADFACE; - if (mbtowc (&wc, "\303\274", 2) == 2) - if (wcrtomb (NULL, wc, NULL) != 1) - result |= 2; - } } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { @@ -132,9 +100,7 @@ int main () ]) case "$gl_cv_func_wcrtomb_retval" in *yes) ;; - *) AC_DEFINE([WCRTOMB_RETVAL_BUG], [1], - [Define if the wcrtomb function has an incorrect return value.]) - REPLACE_WCRTOMB=1 ;; + *) REPLACE_WCRTOMB=1 ;; esac fi fi diff --git a/gl/m4/wctype_h.m4 b/gl/m4/wctype_h.m4 index 6856a73..82ada0e 100644 --- a/gl/m4/wctype_h.m4 +++ b/gl/m4/wctype_h.m4 @@ -1,15 +1,15 @@ -# wctype_h.m4 serial 30 +# wctype_h.m4 serial 18 dnl A placeholder for ISO C99 , for platforms that lack it. -dnl Copyright (C) 2006-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2006-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, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. -AC_DEFUN_ONCE([gl_WCTYPE_H], +AC_DEFUN([gl_WCTYPE_H], [ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) @@ -30,8 +30,6 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], fi AC_SUBST([HAVE_WINT_T]) - AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) - gl_CHECK_NEXT_HEADERS([wctype.h]) if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then @@ -41,16 +39,22 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ + /* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include #include #include int main () { return iswprint ('x') == 0; } ]])], [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no], - [dnl Guess no on Linux libc5, yes otherwise. - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. - #endif]], [[]])], + #endif]], [])], [gl_cv_func_iswcntrl_works="guessing yes"], [gl_cv_func_iswcntrl_works="guessing no"]) ]) @@ -62,14 +66,10 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], fi AC_SUBST([HAVE_WCTYPE_H]) - if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then - REPLACE_ISWCNTRL=1 - else - case "$gl_cv_func_iswcntrl_works" in - *yes) REPLACE_ISWCNTRL=0 ;; - *) REPLACE_ISWCNTRL=1 ;; - esac - fi + case "$gl_cv_func_iswcntrl_works" in + *yes) REPLACE_ISWCNTRL=0 ;; + *) REPLACE_ISWCNTRL=1 ;; + esac AC_SUBST([REPLACE_ISWCNTRL]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then @@ -85,7 +85,14 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], REPLACE_TOWLOWER=0 else AC_CHECK_DECLS([towlower],,, - [[#include + [[/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include #if HAVE_WCTYPE_H # include #endif @@ -114,7 +121,14 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[#include + [[/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include #if HAVE_WCTYPE_H # include #endif @@ -133,7 +147,14 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[#include + [[/* Tru64 with Desktop Toolkit C has a bug: must be + included before . + BSD/OS 4.0.1 has a bug: , and + must be included before . */ + #include + #include + #include + #include #include wctrans_t a; ]], @@ -148,7 +169,14 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) +# include +# include +# include # include #endif #include @@ -157,44 +185,25 @@ AC_DEFUN_ONCE([gl_WCTYPE_H], ]) ]) -# gl_WCTYPE_MODULE_INDICATOR([modulename]) -# sets the shell variable that indicates the presence of the given module -# to a C preprocessor expression that will evaluate to 1. -# This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], [ - dnl Ensure to expand the default settings once only. - gl_WCTYPE_H_REQUIRE_DEFAULTS + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) -# Initializes the default values for AC_SUBSTed shell variables. -# This macro must not be AC_REQUIREd. It must only be invoked, and only -# outside of macros or in macros that are not AC_REQUIREd. -AC_DEFUN([gl_WCTYPE_H_REQUIRE_DEFAULTS], -[ - m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS], [ - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWBLANK]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWDIGIT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWXDIGIT]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTYPE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWCTYPE]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTRANS]) - gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOWCTRANS]) - ]) - m4_require(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS]) - AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) -]) - AC_DEFUN([gl_WCTYPE_H_DEFAULTS], [ + GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK]) + GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE]) + GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE]) + GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS]) + GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK]) HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T]) HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T]) REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK]) - REPLACE_ISWDIGIT=0; AC_SUBST([REPLACE_ISWDIGIT]) - REPLACE_ISWXDIGIT=0; AC_SUBST([REPLACE_ISWXDIGIT]) ]) diff --git a/gl/m4/wint_t.m4 b/gl/m4/wint_t.m4 index dfd743b..d7cd3db 100644 --- a/gl/m4/wint_t.m4 +++ b/gl/m4/wint_t.m4 @@ -1,12 +1,11 @@ -# wint_t.m4 serial 11 -dnl Copyright (C) 2003, 2007-2023 Free Software Foundation, Inc. +# wint_t.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2003, 2007-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, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -dnl Test whether has the 'wint_t' type and whether gnulib's -dnl or would, if present, override 'wint_t'. +dnl Test whether has the 'wint_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], @@ -14,44 +13,20 @@ AC_DEFUN([gt_TYPE_WINT_T], AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[#include + [[ +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be included + before . */ +#include +#include +#include +#include wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) - - dnl Determine whether gnulib's or would, if present, - dnl override 'wint_t'. - AC_CACHE_CHECK([whether wint_t is large enough], - [gl_cv_type_wint_t_large_enough], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; - ]])], - [gl_cv_type_wint_t_large_enough=yes], - [gl_cv_type_wint_t_large_enough=no])]) - if test $gl_cv_type_wint_t_large_enough = no; then - GNULIBHEADERS_OVERRIDE_WINT_T=1 - else - GNULIBHEADERS_OVERRIDE_WINT_T=0 - fi - else - GNULIBHEADERS_OVERRIDE_WINT_T=0 fi - AC_SUBST([GNULIBHEADERS_OVERRIDE_WINT_T]) -]) - -dnl Prerequisites of the 'wint_t' override. -AC_DEFUN([gl_TYPE_WINT_T_PREREQ], -[ - AC_CHECK_HEADERS_ONCE([crtdefs.h]) - if test $ac_cv_header_crtdefs_h = yes; then - HAVE_CRTDEFS_H=1 - else - HAVE_CRTDEFS_H=0 - fi - AC_SUBST([HAVE_CRTDEFS_H]) ]) diff --git a/gl/m4/xalloc.m4 b/gl/m4/xalloc.m4 index fc56f59..64ca701 100644 --- a/gl/m4/xalloc.m4 +++ b/gl/m4/xalloc.m4 @@ -1,5 +1,5 @@ # xalloc.m4 serial 18 -dnl Copyright (C) 2002-2006, 2009-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2002-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/xsize.m4 b/gl/m4/xsize.m4 index 649db9c..8ea9f2c 100644 --- a/gl/m4/xsize.m4 +++ b/gl/m4/xsize.m4 @@ -1,5 +1,5 @@ # xsize.m4 serial 5 -dnl Copyright (C) 2003-2004, 2008-2023 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2004, 2008-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, dnl with or without modifications, as long as this notice is preserved. diff --git a/gl/m4/xstrndup.m4 b/gl/m4/xstrndup.m4 new file mode 100644 index 0000000..4a9330b --- /dev/null +++ b/gl/m4/xstrndup.m4 @@ -0,0 +1,15 @@ +# xstrndup.m4 serial 2 +dnl Copyright (C) 2003, 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, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_XSTRNDUP], +[ + gl_PREREQ_XSTRNDUP +]) + +# Prerequisites of lib/xstrndup.c. +AC_DEFUN([gl_PREREQ_XSTRNDUP], [ + : +]) diff --git a/gl/m4/zzgnulib.m4 b/gl/m4/zzgnulib.m4 deleted file mode 100644 index 362102b..0000000 --- a/gl/m4/zzgnulib.m4 +++ /dev/null @@ -1,23 +0,0 @@ -# zzgnulib.m4 serial 1 -dnl Copyright (C) 2020-2023 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 This file must be named something that sorts after all other -dnl package- or gnulib-provided .m4 files - at least for those packages -dnl that redefine AC_PROG_CC. - -dnl Redefine AC_PROG_CC so that it ends with invocations of gl_COMPILER_CLANG -dnl and gl_COMPILER_PREPARE_CHECK_DECL. -m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[ -gl_COMPILER_CLANG -gl_COMPILER_PREPARE_CHECK_DECL -]) - -# gl_ZZGNULIB -# ----------- -# Witness macro that this file has been included. Needed to force -# Automake to include this file after all other gnulib .m4 files. -AC_DEFUN([gl_ZZGNULIB]) diff --git a/gl/malloc.c b/gl/malloc.c index 3ade35c..908735d 100644 --- a/gl/malloc.c +++ b/gl/malloc.c @@ -1,46 +1,51 @@ /* malloc() function that is glibc compatible. - Copyright (C) 1997-1998, 2006-2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 1997-1998, 2006-2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include +/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ +#ifdef malloc +# define NEED_MALLOC_GNU 1 +# undef malloc +/* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ +#elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU +# define NEED_MALLOC_GNU 1 +#endif #include #include -#include "xalloc-oversized.h" - -/* Allocate an N-byte block of memory from the heap, even if N is 0. */ +/* Allocate an N-byte block of memory from the heap. + If N is zero, allocate a 1-byte block. */ void * rpl_malloc (size_t n) { + void *result; + +#if NEED_MALLOC_GNU if (n == 0) n = 1; +#endif - if (xalloc_oversized (n, 1)) - { - errno = ENOMEM; - return NULL; - } - - void *result = malloc (n); + result = malloc (n); #if !HAVE_MALLOC_POSIX if (result == NULL) diff --git a/gl/malloc/dynarray-skeleton.c b/gl/malloc/dynarray-skeleton.c deleted file mode 100644 index 580c278..0000000 --- a/gl/malloc/dynarray-skeleton.c +++ /dev/null @@ -1,528 +0,0 @@ -/* Type-safe arrays which grow dynamically. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* Pre-processor macros which act as parameters: - - DYNARRAY_STRUCT - The struct tag of dynamic array to be defined. - DYNARRAY_ELEMENT - The type name of the element type. Elements are copied - as if by memcpy, and can change address as the dynamic - array grows. - DYNARRAY_PREFIX - The prefix of the functions which are defined. - - The following parameters are optional: - - DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (E) is evaluated to deallocate the - contents of elements. E is of type DYNARRAY_ELEMENT *. - DYNARRAY_ELEMENT_INIT - DYNARRAY_ELEMENT_INIT (E) is evaluated to initialize a new - element. E is of type DYNARRAY_ELEMENT *. - If DYNARRAY_ELEMENT_FREE but not DYNARRAY_ELEMENT_INIT is - defined, new elements are automatically zero-initialized. - Otherwise, new elements have undefined contents. - DYNARRAY_INITIAL_SIZE - The size of the statically allocated array (default: - at least 2, more elements if they fit into 128 bytes). - Must be a preprocessor constant. If DYNARRAY_INITIAL_SIZE is 0, - there is no statically allocated array at, and all non-empty - arrays are heap-allocated. - DYNARRAY_FINAL_TYPE - The name of the type which holds the final array. If not - defined, is PREFIX##finalize not provided. DYNARRAY_FINAL_TYPE - must be a struct type, with members of type DYNARRAY_ELEMENT and - size_t at the start (in this order). - - These macros are undefined after this header file has been - included. - - The following types are provided (their members are private to the - dynarray implementation): - - struct DYNARRAY_STRUCT - - The following functions are provided: - - void DYNARRAY_PREFIX##init (struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##free (struct DYNARRAY_STRUCT *); - bool DYNARRAY_PREFIX##has_failed (const struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##mark_failed (struct DYNARRAY_STRUCT *); - size_t DYNARRAY_PREFIX##size (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##begin (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##end (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##at (struct DYNARRAY_STRUCT *, size_t); - void DYNARRAY_PREFIX##add (struct DYNARRAY_STRUCT *, DYNARRAY_ELEMENT); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##emplace (struct DYNARRAY_STRUCT *); - bool DYNARRAY_PREFIX##resize (struct DYNARRAY_STRUCT *, size_t); - void DYNARRAY_PREFIX##remove_last (struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##clear (struct DYNARRAY_STRUCT *); - - The following functions are provided are provided if the - prerequisites are met: - - bool DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *, - DYNARRAY_FINAL_TYPE *); - (if DYNARRAY_FINAL_TYPE is defined) - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *, - size_t *); - (if DYNARRAY_FINAL_TYPE is not defined) -*/ - -#include - -#include -#include -#include - -#ifndef DYNARRAY_STRUCT -# error "DYNARRAY_STRUCT must be defined" -#endif - -#ifndef DYNARRAY_ELEMENT -# error "DYNARRAY_ELEMENT must be defined" -#endif - -#ifndef DYNARRAY_PREFIX -# error "DYNARRAY_PREFIX must be defined" -#endif - -#ifdef DYNARRAY_INITIAL_SIZE -# if DYNARRAY_INITIAL_SIZE < 0 -# error "DYNARRAY_INITIAL_SIZE must be non-negative" -# endif -# if DYNARRAY_INITIAL_SIZE > 0 -# define DYNARRAY_HAVE_SCRATCH 1 -# else -# define DYNARRAY_HAVE_SCRATCH 0 -# endif -#else -/* Provide a reasonable default which limits the size of - DYNARRAY_STRUCT. */ -# define DYNARRAY_INITIAL_SIZE \ - (sizeof (DYNARRAY_ELEMENT) > 64 ? 2 : 128 / sizeof (DYNARRAY_ELEMENT)) -# define DYNARRAY_HAVE_SCRATCH 1 -#endif - -/* Public type definitions. */ - -/* All fields of this struct are private to the implementation. */ -struct DYNARRAY_STRUCT -{ - union - { - struct dynarray_header dynarray_abstract; - struct - { - /* These fields must match struct dynarray_header. */ - size_t used; - size_t allocated; - DYNARRAY_ELEMENT *array; - } dynarray_header; - } u; - -#if DYNARRAY_HAVE_SCRATCH - /* Initial inline allocation. */ - DYNARRAY_ELEMENT scratch[DYNARRAY_INITIAL_SIZE]; -#endif -}; - -/* Internal use only: Helper macros. */ - -/* Ensure macro-expansion of DYNARRAY_PREFIX. */ -#define DYNARRAY_CONCAT0(prefix, name) prefix##name -#define DYNARRAY_CONCAT1(prefix, name) DYNARRAY_CONCAT0(prefix, name) -#define DYNARRAY_NAME(name) DYNARRAY_CONCAT1(DYNARRAY_PREFIX, name) - -/* Use DYNARRAY_FREE instead of DYNARRAY_NAME (free), - so that Gnulib does not change 'free' to 'rpl_free'. */ -#define DYNARRAY_FREE DYNARRAY_CONCAT1 (DYNARRAY_NAME (f), ree) - -/* Address of the scratch buffer if any. */ -#if DYNARRAY_HAVE_SCRATCH -# define DYNARRAY_SCRATCH(list) (list)->scratch -#else -# define DYNARRAY_SCRATCH(list) NULL -#endif - -/* Internal use only: Helper functions. */ - -/* Internal function. Call DYNARRAY_ELEMENT_FREE with the array - elements. Name mangling needed due to the DYNARRAY_ELEMENT_FREE - macro expansion. */ -static inline void -DYNARRAY_NAME (free__elements__) (DYNARRAY_ELEMENT *__dynarray_array, - size_t __dynarray_used) -{ -#ifdef DYNARRAY_ELEMENT_FREE - for (size_t __dynarray_i = 0; __dynarray_i < __dynarray_used; ++__dynarray_i) - DYNARRAY_ELEMENT_FREE (&__dynarray_array[__dynarray_i]); -#endif /* DYNARRAY_ELEMENT_FREE */ -} - -/* Internal function. Free the non-scratch array allocation. */ -static inline void -DYNARRAY_NAME (free__array__) (struct DYNARRAY_STRUCT *list) -{ -#if DYNARRAY_HAVE_SCRATCH - if (list->u.dynarray_header.array != list->scratch) - free (list->u.dynarray_header.array); -#else - free (list->u.dynarray_header.array); -#endif -} - -/* Public functions. */ - -/* Initialize a dynamic array object. This must be called before any - use of the object. */ -__attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (init) (struct DYNARRAY_STRUCT *list) -{ - list->u.dynarray_header.used = 0; - list->u.dynarray_header.allocated = DYNARRAY_INITIAL_SIZE; - list->u.dynarray_header.array = DYNARRAY_SCRATCH (list); -} - -/* Deallocate the dynamic array and its elements. */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static void -DYNARRAY_FREE (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - DYNARRAY_NAME (free__array__) (list); - DYNARRAY_NAME (init) (list); -} - -/* Return true if the dynamic array is in an error state. */ -__attribute_nonnull__ ((1)) -static inline bool -DYNARRAY_NAME (has_failed) (const struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.allocated == __dynarray_error_marker (); -} - -/* Mark the dynamic array as failed. All elements are deallocated as - a side effect. */ -__attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (mark_failed) (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - DYNARRAY_NAME (free__array__) (list); - list->u.dynarray_header.array = DYNARRAY_SCRATCH (list); - list->u.dynarray_header.used = 0; - list->u.dynarray_header.allocated = __dynarray_error_marker (); -} - -/* Return the number of elements which have been added to the dynamic - array. */ -__attribute_nonnull__ ((1)) -static inline size_t -DYNARRAY_NAME (size) (const struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.used; -} - -/* Return a pointer to the array element at INDEX. Terminate the - process if INDEX is out of bounds. */ -__attribute_nonnull__ ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (at) (struct DYNARRAY_STRUCT *list, size_t index) -{ - if (__glibc_unlikely (index >= DYNARRAY_NAME (size) (list))) - __libc_dynarray_at_failure (DYNARRAY_NAME (size) (list), index); - return list->u.dynarray_header.array + index; -} - -/* Return a pointer to the first array element, if any. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -__attribute_nonnull__ ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (begin) (struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.array; -} - -/* Return a pointer one element past the last array element. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -__attribute_nonnull__ ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (end) (struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.array + list->u.dynarray_header.used; -} - -/* Internal function. Slow path for the add function below. */ -static void -DYNARRAY_NAME (add__) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) -{ - if (__glibc_unlikely - (!__libc_dynarray_emplace_enlarge (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)))) - { - DYNARRAY_NAME (mark_failed) (list); - return; - } - - /* Copy the new element and increase the array length. */ - list->u.dynarray_header.array[list->u.dynarray_header.used++] = item; -} - -/* Add ITEM at the end of the array, enlarging it by one element. - Mark *LIST as failed if the dynamic array allocation size cannot be - increased. */ -__attribute_nonnull__ ((1)) -static inline void -DYNARRAY_NAME (add) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) -{ - /* Do nothing in case of previous error. */ - if (DYNARRAY_NAME (has_failed) (list)) - return; - - /* Enlarge the array if necessary. */ - if (__glibc_unlikely (list->u.dynarray_header.used - == list->u.dynarray_header.allocated)) - { - DYNARRAY_NAME (add__) (list, item); - return; - } - - /* Copy the new element and increase the array length. */ - list->u.dynarray_header.array[list->u.dynarray_header.used++] = item; -} - -/* Internal function. Building block for the emplace functions below. - Assumes space for one more element in *LIST. */ -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace__tail__) (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_ELEMENT *result - = &list->u.dynarray_header.array[list->u.dynarray_header.used]; - ++list->u.dynarray_header.used; -#if defined (DYNARRAY_ELEMENT_INIT) - DYNARRAY_ELEMENT_INIT (result); -#elif defined (DYNARRAY_ELEMENT_FREE) - memset (result, 0, sizeof (*result)); -#endif - return result; -} - -/* Internal function. Slow path for the emplace function below. */ -static DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace__) (struct DYNARRAY_STRUCT *list) -{ - if (__glibc_unlikely - (!__libc_dynarray_emplace_enlarge (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)))) - { - DYNARRAY_NAME (mark_failed) (list); - return NULL; - } - return DYNARRAY_NAME (emplace__tail__) (list); -} - -/* Allocate a place for a new element in *LIST and return a pointer to - it. The pointer can be NULL if the dynamic array cannot be - enlarged due to a memory allocation failure. */ -__attribute_maybe_unused__ __attribute_warn_unused_result__ -__attribute_nonnull__ ((1)) -static -/* Avoid inlining with the larger initialization code. */ -#if !(defined (DYNARRAY_ELEMENT_INIT) || defined (DYNARRAY_ELEMENT_FREE)) -inline -#endif -DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace) (struct DYNARRAY_STRUCT *list) -{ - /* Do nothing in case of previous error. */ - if (DYNARRAY_NAME (has_failed) (list)) - return NULL; - - /* Enlarge the array if necessary. */ - if (__glibc_unlikely (list->u.dynarray_header.used - == list->u.dynarray_header.allocated)) - return (DYNARRAY_NAME (emplace__) (list)); - return DYNARRAY_NAME (emplace__tail__) (list); -} - -/* Change the size of *LIST to SIZE. If SIZE is larger than the - existing size, new elements are added (which can be initialized). - Otherwise, the list is truncated, and elements are freed. Return - false on memory allocation failure (and mark *LIST as failed). */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static bool -DYNARRAY_NAME (resize) (struct DYNARRAY_STRUCT *list, size_t size) -{ - if (size > list->u.dynarray_header.used) - { - bool ok; -#if defined (DYNARRAY_ELEMENT_INIT) - /* The new elements have to be initialized. */ - size_t old_size = list->u.dynarray_header.used; - ok = __libc_dynarray_resize (&list->u.dynarray_abstract, - size, DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)); - if (ok) - for (size_t i = old_size; i < size; ++i) - { - DYNARRAY_ELEMENT_INIT (&list->u.dynarray_header.array[i]); - } -#elif defined (DYNARRAY_ELEMENT_FREE) - /* Zero initialization is needed so that the elements can be - safely freed. */ - ok = __libc_dynarray_resize_clear - (&list->u.dynarray_abstract, size, - DYNARRAY_SCRATCH (list), sizeof (DYNARRAY_ELEMENT)); -#else - ok = __libc_dynarray_resize (&list->u.dynarray_abstract, - size, DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)); -#endif - if (__glibc_unlikely (!ok)) - DYNARRAY_NAME (mark_failed) (list); - return ok; - } - else - { - /* The list has shrunk in size. Free the removed elements. */ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array + size, - list->u.dynarray_header.used - size); - list->u.dynarray_header.used = size; - return true; - } -} - -/* Remove the last element of LIST if it is present. */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (remove_last) (struct DYNARRAY_STRUCT *list) -{ - /* used > 0 implies that the array is the non-failed state. */ - if (list->u.dynarray_header.used > 0) - { - size_t new_length = list->u.dynarray_header.used - 1; -#ifdef DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (&list->u.dynarray_header.array[new_length]); -#endif - list->u.dynarray_header.used = new_length; - } -} - -/* Remove all elements from the list. The elements are freed, but the - list itself is not. */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (clear) (struct DYNARRAY_STRUCT *list) -{ - /* free__elements__ does nothing if the list is in the failed - state. */ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - list->u.dynarray_header.used = 0; -} - -#ifdef DYNARRAY_FINAL_TYPE -/* Transfer the dynamic array to a permanent location at *RESULT. - Returns true on success on false on allocation failure. In either - case, *LIST is re-initialized and can be reused. A NULL pointer is - stored in *RESULT if LIST refers to an empty list. On success, the - pointer in *RESULT is heap-allocated and must be deallocated using - free. */ -__attribute_maybe_unused__ __attribute_warn_unused_result__ -__attribute_nonnull__ ((1, 2)) -static bool -DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, - DYNARRAY_FINAL_TYPE *result) -{ - struct dynarray_finalize_result res; - if (__libc_dynarray_finalize (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT), &res)) - { - /* On success, the result owns all the data. */ - DYNARRAY_NAME (init) (list); - *result = (DYNARRAY_FINAL_TYPE) { res.array, res.length }; - return true; - } - else - { - /* On error, we need to free all data. */ - DYNARRAY_FREE (list); - errno = ENOMEM; - return false; - } -} -#else /* !DYNARRAY_FINAL_TYPE */ -/* Transfer the dynamic array to a heap-allocated array and return a - pointer to it. The pointer is NULL if memory allocation fails, or - if the array is empty, so this function should be used only for - arrays which are known not be empty (usually because they always - have a sentinel at the end). If LENGTHP is not NULL, the array - length is written to *LENGTHP. *LIST is re-initialized and can be - reused. */ -__attribute_maybe_unused__ __attribute_warn_unused_result__ -__attribute_nonnull__ ((1)) -static DYNARRAY_ELEMENT * -DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, size_t *lengthp) -{ - struct dynarray_finalize_result res; - if (__libc_dynarray_finalize (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT), &res)) - { - /* On success, the result owns all the data. */ - DYNARRAY_NAME (init) (list); - if (lengthp != NULL) - *lengthp = res.length; - return res.array; - } - else - { - /* On error, we need to free all data. */ - DYNARRAY_FREE (list); - errno = ENOMEM; - return NULL; - } -} -#endif /* !DYNARRAY_FINAL_TYPE */ - -/* Undo macro definitions. */ - -#undef DYNARRAY_CONCAT0 -#undef DYNARRAY_CONCAT1 -#undef DYNARRAY_NAME -#undef DYNARRAY_SCRATCH -#undef DYNARRAY_HAVE_SCRATCH - -#undef DYNARRAY_STRUCT -#undef DYNARRAY_ELEMENT -#undef DYNARRAY_PREFIX -#undef DYNARRAY_ELEMENT_FREE -#undef DYNARRAY_ELEMENT_INIT -#undef DYNARRAY_INITIAL_SIZE -#undef DYNARRAY_FINAL_TYPE diff --git a/gl/malloc/dynarray.h b/gl/malloc/dynarray.h deleted file mode 100644 index a9a3b08..0000000 --- a/gl/malloc/dynarray.h +++ /dev/null @@ -1,177 +0,0 @@ -/* Type-safe arrays which grow dynamically. Shared definitions. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* To use the dynarray facility, you need to include - and define the parameter macros - documented in that file. - - A minimal example which provides a growing list of integers can be - defined like this: - - struct int_array - { - // Pointer to result array followed by its length, - // as required by DYNARRAY_FINAL_TYPE. - int *array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_int - #define DYNARRAY_ELEMENT int - #define DYNARRAY_PREFIX dynarray_int_ - #define DYNARRAY_FINAL_TYPE struct int_array - #include - - To create a three-element array with elements 1, 2, 3, use this - code: - - struct dynarray_int dyn; - dynarray_int_init (&dyn); - for (int i = 1; i <= 3; ++i) - { - int *place = dynarray_int_emplace (&dyn); - assert (place != NULL); - *place = i; - } - struct int_array result; - bool ok = dynarray_int_finalize (&dyn, &result); - assert (ok); - assert (result.length == 3); - assert (result.array[0] == 1); - assert (result.array[1] == 2); - assert (result.array[2] == 3); - free (result.array); - - If the elements contain resources which must be freed, define - DYNARRAY_ELEMENT_FREE appropriately, like this: - - struct str_array - { - char **array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_str - #define DYNARRAY_ELEMENT char * - #define DYNARRAY_ELEMENT_FREE(ptr) free (*ptr) - #define DYNARRAY_PREFIX dynarray_str_ - #define DYNARRAY_FINAL_TYPE struct str_array - #include - - Compared to scratch buffers, dynamic arrays have the following - features: - - - They have an element type, and are not just an untyped buffer of - bytes. - - - When growing, previously stored elements are preserved. (It is - expected that scratch_buffer_grow_preserve and - scratch_buffer_set_array_size eventually go away because all - current users are moved to dynamic arrays.) - - - Scratch buffers have a more aggressive growth policy because - growing them typically means a retry of an operation (across an - NSS service module boundary), which is expensive. - - - For the same reason, scratch buffers have a much larger initial - stack allocation. */ - -#ifndef _DYNARRAY_H -#define _DYNARRAY_H - -#include -#include - -struct dynarray_header -{ - size_t used; - size_t allocated; - void *array; -}; - -/* Marker used in the allocated member to indicate that an error was - encountered. */ -static inline size_t -__dynarray_error_marker (void) -{ - return -1; -} - -/* Internal function. See the has_failed function in - dynarray-skeleton.c. */ -static inline bool -__dynarray_error (struct dynarray_header *list) -{ - return list->allocated == __dynarray_error_marker (); -} - -/* Internal function. Enlarge the dynamically allocated area of the - array to make room for one more element. SCRATCH is a pointer to - the scratch area (which is not heap-allocated and must not be - freed). ELEMENT_SIZE is the size, in bytes, of one element. - Return false on failure, true on success. */ -bool __libc_dynarray_emplace_enlarge (struct dynarray_header *, - void *scratch, size_t element_size); - -/* Internal function. Enlarge the dynamically allocated area of the - array to make room for at least SIZE elements (which must be larger - than the existing used part of the dynamic array). SCRATCH is a - pointer to the scratch area (which is not heap-allocated and must - not be freed). ELEMENT_SIZE is the size, in bytes, of one element. - Return false on failure, true on success. */ -bool __libc_dynarray_resize (struct dynarray_header *, size_t size, - void *scratch, size_t element_size); - -/* Internal function. Like __libc_dynarray_resize, but clear the new - part of the dynamic array. */ -bool __libc_dynarray_resize_clear (struct dynarray_header *, size_t size, - void *scratch, size_t element_size); - -/* Internal type. */ -struct dynarray_finalize_result -{ - void *array; - size_t length; -}; - -/* Internal function. Copy the dynamically-allocated area to an - explicitly-sized heap allocation. SCRATCH is a pointer to the - embedded scratch space. ELEMENT_SIZE is the size, in bytes, of the - element type. On success, true is returned, and pointer and length - are written to *RESULT. On failure, false is returned. The caller - has to take care of some of the memory management; this function is - expected to be called from dynarray-skeleton.c. */ -bool __libc_dynarray_finalize (struct dynarray_header *list, void *scratch, - size_t element_size, - struct dynarray_finalize_result *result); - - -/* Internal function. Terminate the process after an index error. - SIZE is the number of elements of the dynamic array. INDEX is the - lookup index which triggered the failure. */ -_Noreturn void __libc_dynarray_at_failure (size_t size, size_t index); - -#ifndef _ISOMAC -libc_hidden_proto (__libc_dynarray_emplace_enlarge) -libc_hidden_proto (__libc_dynarray_resize) -libc_hidden_proto (__libc_dynarray_resize_clear) -libc_hidden_proto (__libc_dynarray_finalize) -libc_hidden_proto (__libc_dynarray_at_failure) -#endif - -#endif /* _DYNARRAY_H */ diff --git a/gl/malloc/dynarray_at_failure.c b/gl/malloc/dynarray_at_failure.c deleted file mode 100644 index ebc9310..0000000 --- a/gl/malloc/dynarray_at_failure.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Report an dynamic array index out of bounds condition. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -# include -#endif - -#include -#include - -void -__libc_dynarray_at_failure (size_t size, size_t index) -{ -#ifdef _LIBC - char buf[200]; - __snprintf (buf, sizeof (buf), "Fatal glibc error: " - "array index %zu not less than array length %zu\n", - index, size); - __libc_fatal (buf); -#else - abort (); -#endif -} -libc_hidden_def (__libc_dynarray_at_failure) diff --git a/gl/malloc/dynarray_emplace_enlarge.c b/gl/malloc/dynarray_emplace_enlarge.c deleted file mode 100644 index 7da5393..0000000 --- a/gl/malloc/dynarray_emplace_enlarge.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Increase the size of a dynamic array in preparation of an emplace operation. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include -#include -#include -#include - -bool -__libc_dynarray_emplace_enlarge (struct dynarray_header *list, - void *scratch, size_t element_size) -{ - size_t new_allocated; - if (list->allocated == 0) - { - /* No scratch buffer provided. Choose a reasonable default - size. */ - if (element_size < 4) - new_allocated = 16; - else if (element_size < 8) - new_allocated = 8; - else - new_allocated = 4; - } - else - /* Increase the allocated size, using an exponential growth - policy. */ - { - new_allocated = list->allocated + list->allocated / 2 + 1; - if (new_allocated <= list->allocated) - { - /* Overflow. */ - __set_errno (ENOMEM); - return false; - } - } - - size_t new_size; - if (INT_MULTIPLY_WRAPV (new_allocated, element_size, &new_size)) - return false; - void *new_array; - if (list->array == scratch) - { - /* The previous array was not heap-allocated. */ - new_array = malloc (new_size); - if (new_array != NULL && list->array != NULL) - memcpy (new_array, list->array, list->used * element_size); - } - else - new_array = realloc (list->array, new_size); - if (new_array == NULL) - return false; - list->array = new_array; - list->allocated = new_allocated; - return true; -} -libc_hidden_def (__libc_dynarray_emplace_enlarge) diff --git a/gl/malloc/dynarray_finalize.c b/gl/malloc/dynarray_finalize.c deleted file mode 100644 index 673595a..0000000 --- a/gl/malloc/dynarray_finalize.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copy the dynamically-allocated area to an explicitly-sized heap allocation. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include -#include - -bool -__libc_dynarray_finalize (struct dynarray_header *list, - void *scratch, size_t element_size, - struct dynarray_finalize_result *result) -{ - if (__dynarray_error (list)) - /* The caller will reported the deferred error. */ - return false; - - size_t used = list->used; - - /* Empty list. */ - if (used == 0) - { - /* An empty list could still be backed by a heap-allocated - array. Free it if necessary. */ - if (list->array != scratch) - free (list->array); - *result = (struct dynarray_finalize_result) { NULL, 0 }; - return true; - } - - size_t allocation_size = used * element_size; - void *heap_array = malloc (allocation_size); - if (heap_array != NULL) - { - /* The new array takes ownership of the strings. */ - if (list->array != NULL) - memcpy (heap_array, list->array, allocation_size); - if (list->array != scratch) - free (list->array); - *result = (struct dynarray_finalize_result) - { .array = heap_array, .length = used }; - return true; - } - else - /* The caller will perform the freeing operation. */ - return false; -} -libc_hidden_def (__libc_dynarray_finalize) diff --git a/gl/malloc/dynarray_resize.c b/gl/malloc/dynarray_resize.c deleted file mode 100644 index 7ecd4de..0000000 --- a/gl/malloc/dynarray_resize.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Increase the size of a dynamic array. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include -#include -#include -#include - -bool -__libc_dynarray_resize (struct dynarray_header *list, size_t size, - void *scratch, size_t element_size) -{ - /* The existing allocation provides sufficient room. */ - if (size <= list->allocated) - { - list->used = size; - return true; - } - - /* Otherwise, use size as the new allocation size. The caller is - expected to provide the final size of the array, so there is no - over-allocation here. */ - - size_t new_size_bytes; - if (INT_MULTIPLY_WRAPV (size, element_size, &new_size_bytes)) - { - /* Overflow. */ - __set_errno (ENOMEM); - return false; - } - void *new_array; - if (list->array == scratch) - { - /* The previous array was not heap-allocated. */ - new_array = malloc (new_size_bytes); - if (new_array != NULL && list->array != NULL) - memcpy (new_array, list->array, list->used * element_size); - } - else - new_array = realloc (list->array, new_size_bytes); - if (new_array == NULL) - return false; - list->array = new_array; - list->allocated = size; - list->used = size; - return true; -} -libc_hidden_def (__libc_dynarray_resize) diff --git a/gl/malloc/dynarray_resize_clear.c b/gl/malloc/dynarray_resize_clear.c deleted file mode 100644 index bb23c52..0000000 --- a/gl/malloc/dynarray_resize_clear.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Increase the size of a dynamic array and clear the new part. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include - -bool -__libc_dynarray_resize_clear (struct dynarray_header *list, size_t size, - void *scratch, size_t element_size) -{ - size_t old_size = list->used; - if (!__libc_dynarray_resize (list, size, scratch, element_size)) - return false; - /* __libc_dynarray_resize already checked for overflow. */ - char *array = list->array; - memset (array + (old_size * element_size), 0, - (size - old_size) * element_size); - return true; -} -libc_hidden_def (__libc_dynarray_resize_clear) diff --git a/gl/malloca.c b/gl/malloca.c index f055b1e..311be56 100644 --- a/gl/malloca.c +++ b/gl/malloca.c @@ -1,19 +1,19 @@ /* Safe automatic memory allocation. - Copyright (C) 2003, 2006-2007, 2009-2023 Free Software Foundation, Inc. - Written by Bruno Haible , 2003, 2018. + Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #define _GL_USE_STDLIB_ALLOC 1 #include @@ -21,56 +21,82 @@ /* Specification. */ #include "malloca.h" -#include +#include -#include "idx.h" +#include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they - are only invoked for big memory sizes. - Here we use a bit in the address as an indicator, an idea by OndÅ™ej Bílka. - malloca() can return three types of pointers: - - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation. - - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap - allocation. - - NULL comes from a failed heap allocation. */ + are only invoked for big memory sizes. */ -/* Type for holding very small pointer differences. */ -typedef unsigned char small_t; -/* Verify that it is wide enough. */ -static_assert (2 * sa_alignment_max - 1 <= (small_t) -1); +#if HAVE_ALLOCA + +/* Store the mmalloca() results in a hash table. This is needed to reliably + distinguish a mmalloca() result and an alloca() result. + + Although it is possible that the same pointer is returned by alloca() and + by mmalloca() at different times in the same application, it does not lead + to a bug in freea(), because: + - Before a pointer returned by alloca() can point into malloc()ed memory, + the function must return, and once this has happened the programmer must + not call freea() on it anyway. + - Before a pointer returned by mmalloca() can point into the stack, it + must be freed. The only function that can free it is freea(), and + when freea() frees it, it also removes it from the hash table. */ + +#define MAGIC_NUMBER 0x1415fb4a +#define MAGIC_SIZE sizeof (int) +/* This is how the header info would look like without any alignment + considerations. */ +struct preliminary_header { void *next; int magic; }; +/* But the header's size must be a multiple of sa_alignment_max. */ +#define HEADER_SIZE \ + (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max) +union header { + void *next; + struct { + char room[HEADER_SIZE - MAGIC_SIZE]; + int word; + } magic; +}; +verify (HEADER_SIZE == sizeof (union header)); +/* We make the hash table quite big, so that during lookups the probability + of empty hash buckets is quite high. There is no need to make the hash + table resizable, because when the hash table gets filled so much that the + lookup becomes slow, it means that the application has memory leaks. */ +#define HASH_TABLE_SIZE 257 +static void * mmalloca_results[HASH_TABLE_SIZE]; + +#endif void * mmalloca (size_t n) { #if HAVE_ALLOCA - /* Allocate one more word, used to determine the address to pass to freea(), - and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ - uintptr_t alignment2_mask = 2 * sa_alignment_max - 1; - int plus = sizeof (small_t) + alignment2_mask; - idx_t nplus; - if (!ckd_add (&nplus, n, plus) && !xalloc_oversized (nplus, 1)) - { - char *mem = (char *) malloc (nplus); + /* Allocate one more word, that serves as an indicator for malloc()ed + memory, so that freea() of an alloca() result is fast. */ + size_t nplus = n + HEADER_SIZE; - if (mem != NULL) + if (nplus >= n) + { + void *p = malloc (nplus); + + if (p != NULL) { - uintptr_t umem = (uintptr_t)mem, umemplus; - /* The ckd_add avoids signed integer overflow on - theoretical platforms where UINTPTR_MAX <= INT_MAX. */ - ckd_add (&umemplus, umem, sizeof (small_t) + sa_alignment_max - 1); - idx_t offset = ((umemplus & ~alignment2_mask) - + sa_alignment_max - umem); - void *vp = mem + offset; - small_t *p = vp; - /* Here p >= mem + sizeof (small_t), - and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1 - hence p + n <= mem + nplus. - So, the memory range [p, p+n) lies in the allocated memory range - [mem, mem + nplus). */ - p[-1] = offset; - /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */ + size_t slot; + union header *h = p; + + p = h + 1; + + /* Put a magic number into the indicator word. */ + h->magic.word = MAGIC_NUMBER; + + /* Enter p into the hash table. */ + slot = (uintptr_t) p % HASH_TABLE_SIZE; + h->next = mmalloca_results[slot]; + mmalloca_results[slot] = p; + return p; } } @@ -89,24 +115,35 @@ mmalloca (size_t n) void freea (void *p) { - /* Check argument. */ - if ((uintptr_t) p & (sa_alignment_max - 1)) + /* mmalloca() may have returned NULL. */ + if (p != NULL) { - /* p was not the result of a malloca() call. Invalid argument. */ - abort (); - } - /* Determine whether p was a non-NULL pointer returned by mmalloca(). */ - if ((uintptr_t) p & sa_alignment_max) - { - void *mem = (char *) p - ((small_t *) p)[-1]; - free (mem); + /* Attempt to quickly distinguish the mmalloca() result - which has + a magic indicator word - and the alloca() result - which has an + uninitialized indicator word. It is for this test that sa_increment + additional bytes are allocated in the alloca() case. */ + if (((int *) p)[-1] == MAGIC_NUMBER) + { + /* Looks like a mmalloca() result. To see whether it really is one, + perform a lookup in the hash table. */ + size_t slot = (uintptr_t) p % HASH_TABLE_SIZE; + void **chain = &mmalloca_results[slot]; + for (; *chain != NULL;) + { + union header *h = p; + if (*chain == p) + { + /* Found it. Remove it from the hash table and free it. */ + union header *p_begin = h - 1; + *chain = p_begin->next; + free (p_begin); + return; + } + h = *chain; + chain = &h[-1].next; + } + } + /* At this point, we know it was not a mmalloca() result. */ } } #endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/gl/malloca.h b/gl/malloca.h index 325c727..6fbe45e 100644 --- a/gl/malloca.h +++ b/gl/malloca.h @@ -1,19 +1,19 @@ /* Safe automatic memory allocation. - Copyright (C) 2003-2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2003. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _MALLOCA_H #define _MALLOCA_H @@ -21,9 +21,6 @@ #include #include #include -#include - -#include "xalloc-oversized.h" #ifdef __cplusplus @@ -51,6 +48,20 @@ extern "C" { # define safe_alloca(N) ((void) (N), NULL) #endif +/* malloca(N) is a safe variant of alloca(N). It allocates N bytes of + memory allocated on the stack, that must be freed using freea() before + the function returns. Upon failure, it returns NULL. */ +#if HAVE_ALLOCA +# define malloca(N) \ + ((N) < 4032 - sa_increment \ + ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \ + : mmalloca (N)) +#else +# define malloca(N) \ + mmalloca (N) +#endif +extern void * mmalloca (size_t n); + /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); @@ -58,30 +69,19 @@ extern void freea (void *p); # define freea free #endif -/* malloca(N) is a safe variant of alloca(N). It allocates N bytes of - memory allocated on the stack, that must be freed using freea() before - the function returns. Upon failure, it returns NULL. */ -#if HAVE_ALLOCA -# define malloca(N) \ - ((N) < 4032 - (2 * sa_alignment_max - 1) \ - ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ - + (2 * sa_alignment_max - 1)) \ - & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ - : mmalloca (N)) -#else -# define malloca(N) \ - mmalloca (N) -#endif -extern void *mmalloca (size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1) - _GL_ATTRIBUTE_ALLOC_SIZE ((1)); - /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, - on the stack. N and S should be nonnegative and free of side effects. + on the stack. S must be positive and N must be nonnegative. The array must be freed using freea() before the function returns. */ -#define nmalloca(n, s) \ - (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s))) +#if 1 +/* Cf. the definition of xalloc_oversized. */ +# define nmalloca(n, s) \ + ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \ + ? NULL \ + : malloca ((n) * (s))) +#else +extern void * nmalloca (size_t n, size_t s); +#endif #ifdef __cplusplus @@ -92,7 +92,7 @@ extern void *mmalloca (size_t n) /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ -#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ +#if defined __GNUC__ || defined __IBM__ALIGNOF__ # define sa_alignof __alignof__ #elif defined __cplusplus template struct sa_alignof_helper { char __slot1; type __slot2; }; @@ -115,12 +115,19 @@ enum among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), +#if HAVE_LONG_LONG_INT sa_alignment_longlong = sa_alignof (long long), +#endif sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) +#if HAVE_LONG_LONG_INT | (sa_alignment_longlong - 1) +#endif | (sa_alignment_longdouble - 1) - ) + 1 + ) + 1, +/* The increment that guarantees room for a magic word must be >= sizeof (int) + and a multiple of sa_alignment_max. */ + sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max }; #endif /* _MALLOCA_H */ diff --git a/gl/malloca.valgrind b/gl/malloca.valgrind new file mode 100644 index 0000000..52f0a50 --- /dev/null +++ b/gl/malloca.valgrind @@ -0,0 +1,7 @@ +# Suppress a valgrind message about use of uninitialized memory in freea(). +# This use is OK because it provides only a speedup. +{ + freea + Memcheck:Cond + fun:freea +} diff --git a/gl/math.c b/gl/math.c index 67cabbc..ddb2ded 100644 --- a/gl/math.c +++ b/gl/math.c @@ -1,22 +1,3 @@ -/* Inline functions for . - - Copyright (C) 2012-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - #include - #define _GL_MATH_INLINE _GL_EXTERN_INLINE #include "math.h" -typedef int dummy; diff --git a/gl/math.in.h b/gl/math.in.h index f3d58af..7189819 100644 --- a/gl/math.in.h +++ b/gl/math.in.h @@ -1,19 +1,19 @@ /* A GNU-like . - Copyright (C) 2002-2003, 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_MATH_H @@ -22,50 +22,17 @@ #endif @PRAGMA_COLUMNS@ -#if defined _GL_INCLUDING_MATH_H -/* Special invocation convention: - - On FreeBSD 12.2 we have a sequence of nested includes - -> -> -> -> - -> -> -> -> - In this situation, the functions are not yet declared, therefore we cannot - provide the C++ aliases. */ - -#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ - -#else -/* Normal invocation convention. */ - /* The include_next requires a split double-inclusion guard. */ -#define _GL_INCLUDING_MATH_H #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ -#undef _GL_INCLUDING_MATH_H #ifndef _@GUARD_PREFIX@_MATH_H #define _@GUARD_PREFIX@_MATH_H -/* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in . */ -#if defined __VMS && ! defined NAN -# include -#endif - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_MATH_INLINE # define _GL_MATH_INLINE _GL_INLINE #endif -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __const__ was added in gcc 2.95. */ -#ifndef _GL_ATTRIBUTE_CONST -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__ -# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -# else -# define _GL_ATTRIBUTE_CONST /* empty */ -# endif -#endif - /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ @@ -92,24 +59,22 @@ _gl_cxx_ ## func ## l (long double l) \ { \ return func (l); \ } -# define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \ -_GL_BEGIN_NAMESPACE \ -inline rettype \ -rpl_func (float f) \ +# define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \ +inline int \ +func (float f) \ { \ return _gl_cxx_ ## func ## f (f); \ } \ -inline rettype \ -rpl_func (double d) \ +inline int \ +func (double d) \ { \ return _gl_cxx_ ## func ## d (d); \ } \ -inline rettype \ -rpl_func (long double l) \ +inline int \ +func (long double l) \ { \ return _gl_cxx_ ## func ## l (l); \ -} \ -_GL_END_NAMESPACE +} #endif /* Helper macros to define a portability warning for the @@ -117,27 +82,27 @@ _GL_END_NAMESPACE classification macros with an argument of real-floating (that is, one of float, double, or long double). */ #define _GL_WARN_REAL_FLOATING_DECL(func) \ -_GL_MATH_INLINE int \ -_GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \ - "use gnulib module " #func " for portability") \ -rpl_ ## func ## f (float f) \ -{ \ - return func (f); \ -} \ -_GL_MATH_INLINE int \ -_GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \ - "use gnulib module " #func " for portability") \ -rpl_ ## func ## d (double d) \ -{ \ - return func (d); \ -} \ -_GL_MATH_INLINE int \ -_GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \ - "use gnulib module " #func " for portability") \ -rpl_ ## func ## l (long double l) \ -{ \ - return func (l); \ -} +_GL_MATH_INLINE int \ +rpl_ ## func ## f (float f) \ +{ \ + return func (f); \ +} \ +_GL_MATH_INLINE int \ +rpl_ ## func ## d (double d) \ +{ \ + return func (d); \ +} \ +_GL_MATH_INLINE int \ +rpl_ ## func ## l (long double l) \ +{ \ + return func (l); \ +} \ +_GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \ + "use gnulib module " #func " for portability"); \ +_GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \ + "use gnulib module " #func " for portability"); \ +_GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \ + "use gnulib module " #func " for portability") #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \ (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \ : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \ @@ -219,17 +184,8 @@ _NaN () #endif -#if defined FP_ILOGB0 && defined FP_ILOGBNAN - /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct. */ -# if defined __HAIKU__ - /* Haiku: match what ilogb() does */ -# undef FP_ILOGB0 -# undef FP_ILOGBNAN -# define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ -# define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */ -# endif -#else - /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */ +/* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */ +#if !(defined FP_ILOGB0 && defined FP_ILOGBNAN) # if defined __NetBSD__ || defined __sgi /* NetBSD, IRIX 6.5: match what ilogb() does */ # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ @@ -251,20 +207,11 @@ _NaN () #if @GNULIB_ACOSF@ -# if @REPLACE_ACOSF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef acosf -# define acosf rpl_acosf -# endif -_GL_FUNCDECL_RPL (acosf, float, (float x)); -_GL_CXXALIAS_RPL (acosf, float, (float x)); -# else -# if !@HAVE_ACOSF@ -# undef acosf +# if !@HAVE_ACOSF@ +# undef acosf _GL_FUNCDECL_SYS (acosf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (acosf, float, (float x)); # endif +_GL_CXXALIAS_SYS (acosf, float, (float x)); _GL_CXXALIASWARN (acosf); #elif defined GNULIB_POSIXCHECK # undef acosf @@ -280,9 +227,7 @@ _GL_WARN_ON_USE (acosf, "acosf is unportable - " _GL_FUNCDECL_SYS (acosl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (acosl, long double, (long double x)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (acosl); -# endif #elif defined GNULIB_POSIXCHECK # undef acosl # if HAVE_RAW_DECL_ACOSL @@ -293,20 +238,11 @@ _GL_WARN_ON_USE (acosl, "acosl is unportable - " #if @GNULIB_ASINF@ -# if @REPLACE_ASINF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef asinf -# define asinf rpl_asinf -# endif -_GL_FUNCDECL_RPL (asinf, float, (float x)); -_GL_CXXALIAS_RPL (asinf, float, (float x)); -# else -# if !@HAVE_ASINF@ -# undef asinf +# if !@HAVE_ASINF@ +# undef asinf _GL_FUNCDECL_SYS (asinf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (asinf, float, (float x)); # endif +_GL_CXXALIAS_SYS (asinf, float, (float x)); _GL_CXXALIASWARN (asinf); #elif defined GNULIB_POSIXCHECK # undef asinf @@ -322,9 +258,7 @@ _GL_WARN_ON_USE (asinf, "asinf is unportable - " _GL_FUNCDECL_SYS (asinl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (asinl, long double, (long double x)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (asinl); -# endif #elif defined GNULIB_POSIXCHECK # undef asinl # if HAVE_RAW_DECL_ASINL @@ -335,20 +269,11 @@ _GL_WARN_ON_USE (asinl, "asinl is unportable - " #if @GNULIB_ATANF@ -# if @REPLACE_ATANF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef atanf -# define atanf rpl_atanf -# endif -_GL_FUNCDECL_RPL (atanf, float, (float x)); -_GL_CXXALIAS_RPL (atanf, float, (float x)); -# else -# if !@HAVE_ATANF@ -# undef atanf +# if !@HAVE_ATANF@ +# undef atanf _GL_FUNCDECL_SYS (atanf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (atanf, float, (float x)); # endif +_GL_CXXALIAS_SYS (atanf, float, (float x)); _GL_CXXALIASWARN (atanf); #elif defined GNULIB_POSIXCHECK # undef atanf @@ -364,9 +289,7 @@ _GL_WARN_ON_USE (atanf, "atanf is unportable - " _GL_FUNCDECL_SYS (atanl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (atanl, long double, (long double x)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (atanl); -# endif #elif defined GNULIB_POSIXCHECK # undef atanl # if HAVE_RAW_DECL_ATANL @@ -377,20 +300,11 @@ _GL_WARN_ON_USE (atanl, "atanl is unportable - " #if @GNULIB_ATAN2F@ -# if @REPLACE_ATAN2F@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef atan2f -# define atan2f rpl_atan2f -# endif -_GL_FUNCDECL_RPL (atan2f, float, (float y, float x)); -_GL_CXXALIAS_RPL (atan2f, float, (float y, float x)); -# else -# if !@HAVE_ATAN2F@ -# undef atan2f +# if !@HAVE_ATAN2F@ +# undef atan2f _GL_FUNCDECL_SYS (atan2f, float, (float y, float x)); -# endif -_GL_CXXALIAS_SYS (atan2f, float, (float y, float x)); # endif +_GL_CXXALIAS_SYS (atan2f, float, (float y, float x)); _GL_CXXALIASWARN (atan2f); #elif defined GNULIB_POSIXCHECK # undef atan2f @@ -429,9 +343,7 @@ _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - " _GL_FUNCDECL_SYS (cbrt, double, (double x)); # endif _GL_CXXALIAS_SYS (cbrt, double, (double x)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (cbrt, double, (double x)); -# endif +_GL_CXXALIASWARN (cbrt); #elif defined GNULIB_POSIXCHECK # undef cbrt # if HAVE_RAW_DECL_CBRT @@ -454,9 +366,7 @@ _GL_FUNCDECL_SYS (cbrtl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (cbrtl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (cbrtl); -# endif #elif defined GNULIB_POSIXCHECK # undef cbrtl # if HAVE_RAW_DECL_CBRTL @@ -493,7 +403,6 @@ _GL_WARN_ON_USE (ceilf, "ceilf is unportable - " #if @GNULIB_CEIL@ # if @REPLACE_CEIL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ceil # define ceil rpl_ceil # endif _GL_FUNCDECL_RPL (ceil, double, (double x)); @@ -501,9 +410,7 @@ _GL_CXXALIAS_RPL (ceil, double, (double x)); # else _GL_CXXALIAS_SYS (ceil, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (ceil, double, (double x)); -# endif +_GL_CXXALIASWARN (ceil); #endif #if @GNULIB_CEILL@ @@ -521,9 +428,7 @@ _GL_FUNCDECL_SYS (ceill, long double, (long double x)); # endif _GL_CXXALIAS_SYS (ceill, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (ceill); -# endif #elif defined GNULIB_POSIXCHECK # undef ceill # if HAVE_RAW_DECL_CEILL @@ -535,7 +440,6 @@ _GL_WARN_ON_USE (ceill, "ceill is unportable - " #if @GNULIB_COPYSIGNF@ # if !@HAVE_DECL_COPYSIGNF@ -# undef copysignf _GL_FUNCDECL_SYS (copysignf, float, (float x, float y)); # endif _GL_CXXALIAS_SYS (copysignf, float, (float x, float y)); @@ -553,9 +457,7 @@ _GL_WARN_ON_USE (copysignf, "copysignf is unportable - " _GL_FUNCDECL_SYS (copysign, double, (double x, double y)); # endif _GL_CXXALIAS_SYS (copysign, double, (double x, double y)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (copysign, double, (double x, double y)); -# endif +_GL_CXXALIASWARN (copysign); #elif defined GNULIB_POSIXCHECK # undef copysign # if HAVE_RAW_DECL_COPYSIGN @@ -569,9 +471,7 @@ _GL_WARN_ON_USE (copysign, "copysign is unportable - " _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y)); # endif _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (copysignl); -# endif #elif defined GNULIB_POSIXCHECK # undef copysignl # if HAVE_RAW_DECL_COPYSIGNL @@ -582,20 +482,11 @@ _GL_WARN_ON_USE (copysign, "copysignl is unportable - " #if @GNULIB_COSF@ -# if @REPLACE_COSF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef cosf -# define cosf rpl_cosf -# endif -_GL_FUNCDECL_RPL (cosf, float, (float x)); -_GL_CXXALIAS_RPL (cosf, float, (float x)); -# else -# if !@HAVE_COSF@ -# undef cosf +# if !@HAVE_COSF@ +# undef cosf _GL_FUNCDECL_SYS (cosf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (cosf, float, (float x)); # endif +_GL_CXXALIAS_SYS (cosf, float, (float x)); _GL_CXXALIASWARN (cosf); #elif defined GNULIB_POSIXCHECK # undef cosf @@ -611,9 +502,7 @@ _GL_WARN_ON_USE (cosf, "cosf is unportable - " _GL_FUNCDECL_SYS (cosl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (cosl, long double, (long double x)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (cosl); -# endif #elif defined GNULIB_POSIXCHECK # undef cosl # if HAVE_RAW_DECL_COSL @@ -624,20 +513,11 @@ _GL_WARN_ON_USE (cosl, "cosl is unportable - " #if @GNULIB_COSHF@ -# if @REPLACE_COSHF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef coshf -# define coshf rpl_coshf -# endif -_GL_FUNCDECL_RPL (coshf, float, (float x)); -_GL_CXXALIAS_RPL (coshf, float, (float x)); -# else -# if !@HAVE_COSHF@ -# undef coshf +# if !@HAVE_COSHF@ +# undef coshf _GL_FUNCDECL_SYS (coshf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (coshf, float, (float x)); # endif +_GL_CXXALIAS_SYS (coshf, float, (float x)); _GL_CXXALIASWARN (coshf); #elif defined GNULIB_POSIXCHECK # undef coshf @@ -649,20 +529,11 @@ _GL_WARN_ON_USE (coshf, "coshf is unportable - " #if @GNULIB_EXPF@ -# if @REPLACE_EXPF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef expf -# define expf rpl_expf -# endif -_GL_FUNCDECL_RPL (expf, float, (float x)); -_GL_CXXALIAS_RPL (expf, float, (float x)); -# else -# if !@HAVE_EXPF@ -# undef expf +# if !@HAVE_EXPF@ +# undef expf _GL_FUNCDECL_SYS (expf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (expf, float, (float x)); # endif +_GL_CXXALIAS_SYS (expf, float, (float x)); _GL_CXXALIASWARN (expf); #elif defined GNULIB_POSIXCHECK # undef expf @@ -673,23 +544,12 @@ _GL_WARN_ON_USE (expf, "expf is unportable - " #endif #if @GNULIB_EXPL@ -# if @REPLACE_EXPL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef expl -# define expl rpl_expl -# endif -_GL_FUNCDECL_RPL (expl, long double, (long double x)); -_GL_CXXALIAS_RPL (expl, long double, (long double x)); -# else -# if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@ -# undef expl +# if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@ +# undef expl _GL_FUNCDECL_SYS (expl, long double, (long double x)); -# endif +# endif _GL_CXXALIAS_SYS (expl, long double, (long double x)); -# endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (expl); -# endif #elif defined GNULIB_POSIXCHECK # undef expl # if HAVE_RAW_DECL_EXPL @@ -727,9 +587,7 @@ _GL_FUNCDECL_SYS (exp2, double, (double x)); # endif _GL_CXXALIAS_SYS (exp2, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (exp2, double, (double x)); -# endif +_GL_CXXALIASWARN (exp2); #elif defined GNULIB_POSIXCHECK # undef exp2 # if HAVE_RAW_DECL_EXP2 @@ -753,9 +611,7 @@ _GL_FUNCDECL_SYS (exp2l, long double, (long double x)); # endif _GL_CXXALIAS_SYS (exp2l, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (exp2l); -# endif #elif defined GNULIB_POSIXCHECK # undef exp2l # if HAVE_RAW_DECL_EXP2L @@ -802,9 +658,7 @@ _GL_FUNCDECL_SYS (expm1, double, (double x)); # endif _GL_CXXALIAS_SYS (expm1, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (expm1, double, (double x)); -# endif +_GL_CXXALIASWARN (expm1); #elif defined GNULIB_POSIXCHECK # undef expm1 # if HAVE_RAW_DECL_EXPM1 @@ -814,25 +668,12 @@ _GL_WARN_ON_USE (expm1, "expm1 is unportable - " #endif #if @GNULIB_EXPM1L@ -# if @REPLACE_EXPM1L@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef expm1l -# define expm1l rpl_expm1l -# endif -_GL_FUNCDECL_RPL (expm1l, long double, (long double x)); -_GL_CXXALIAS_RPL (expm1l, long double, (long double x)); -# else -# if !@HAVE_DECL_EXPM1L@ -# undef expm1l -# if !(defined __cplusplus && defined _AIX) +# if !@HAVE_DECL_EXPM1L@ +# undef expm1l _GL_FUNCDECL_SYS (expm1l, long double, (long double x)); -# endif -# endif +# endif _GL_CXXALIAS_SYS (expm1l, long double, (long double x)); -# endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (expm1l); -# endif #elif defined GNULIB_POSIXCHECK # undef expm1l # if HAVE_RAW_DECL_EXPM1L @@ -848,9 +689,7 @@ _GL_WARN_ON_USE (expm1l, "expm1l is unportable - " _GL_FUNCDECL_SYS (fabsf, float, (float x)); # endif _GL_CXXALIAS_SYS (fabsf, float, (float x)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fabsf); -# endif #elif defined GNULIB_POSIXCHECK # undef fabsf # if HAVE_RAW_DECL_FABSF @@ -874,9 +713,7 @@ _GL_FUNCDECL_SYS (fabsl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (fabsl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fabsl); -# endif #elif defined GNULIB_POSIXCHECK # undef fabsl # if HAVE_RAW_DECL_FABSL @@ -913,7 +750,6 @@ _GL_WARN_ON_USE (floorf, "floorf is unportable - " #if @GNULIB_FLOOR@ # if @REPLACE_FLOOR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef floor # define floor rpl_floor # endif _GL_FUNCDECL_RPL (floor, double, (double x)); @@ -921,9 +757,7 @@ _GL_CXXALIAS_RPL (floor, double, (double x)); # else _GL_CXXALIAS_SYS (floor, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (floor, double, (double x)); -# endif +_GL_CXXALIASWARN (floor); #endif #if @GNULIB_FLOORL@ @@ -941,9 +775,7 @@ _GL_FUNCDECL_SYS (floorl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (floorl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (floorl); -# endif #elif defined GNULIB_POSIXCHECK # undef floorl # if HAVE_RAW_DECL_FLOORL @@ -963,7 +795,6 @@ _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z)); _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z)); # else # if !@HAVE_FMAF@ -# undef fmaf _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z)); # endif _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z)); @@ -987,14 +818,11 @@ _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z)); _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z)); # else # if !@HAVE_FMA@ -# undef fma _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z)); # endif _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (fma, double, (double x, double y, double z)); -# endif +_GL_CXXALIASWARN (fma); #elif defined GNULIB_POSIXCHECK # undef fma # if HAVE_RAW_DECL_FMA @@ -1016,17 +844,13 @@ _GL_CXXALIAS_RPL (fmal, long double, # else # if !@HAVE_FMAL@ # undef fmal -# if !(defined __cplusplus && defined _AIX) _GL_FUNCDECL_SYS (fmal, long double, (long double x, long double y, long double z)); -# endif # endif _GL_CXXALIAS_SYS (fmal, long double, (long double x, long double y, long double z)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fmal); -# endif #elif defined GNULIB_POSIXCHECK # undef fmal # if HAVE_RAW_DECL_FMAL @@ -1071,9 +895,7 @@ _GL_CXXALIAS_RPL (fmod, double, (double x, double y)); # else _GL_CXXALIAS_SYS (fmod, double, (double x, double y)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (fmod, double, (double x, double y)); -# endif +_GL_CXXALIASWARN (fmod); #elif defined GNULIB_POSIXCHECK # undef fmod # if HAVE_RAW_DECL_FMOD @@ -1097,9 +919,7 @@ _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y)); # endif _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fmodl); -# endif #elif defined GNULIB_POSIXCHECK # undef fmodl # if HAVE_RAW_DECL_FMODL @@ -1131,9 +951,7 @@ _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (frexpf); -# endif #elif defined GNULIB_POSIXCHECK # undef frexpf # if HAVE_RAW_DECL_FREXPF @@ -1152,7 +970,6 @@ _GL_WARN_ON_USE (frexpf, "frexpf is unportable - " #if @GNULIB_FREXP@ # if @REPLACE_FREXP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef frexp # define frexp rpl_frexp # endif _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2))); @@ -1160,9 +977,7 @@ _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr)); # else _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr)); -# endif +_GL_CXXALIASWARN (frexp); #elif defined GNULIB_POSIXCHECK # undef frexp /* Assume frexp is always declared. */ @@ -1195,9 +1010,7 @@ _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr)); # endif #endif #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@) -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (frexpl); -# endif #endif #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK # undef frexpl @@ -1223,9 +1036,7 @@ _GL_FUNCDECL_SYS (hypotf, float, (float x, float y)); # endif _GL_CXXALIAS_SYS (hypotf, float, (float x, float y)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (hypotf); -# endif #elif defined GNULIB_POSIXCHECK # undef hypotf # if HAVE_RAW_DECL_HYPOTF @@ -1246,9 +1057,7 @@ _GL_CXXALIAS_RPL (hypot, double, (double x, double y)); # else _GL_CXXALIAS_SYS (hypot, double, (double x, double y)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (hypot, double, (double x, double y)); -# endif +_GL_CXXALIASWARN (hypot); #elif defined GNULIB_POSIXCHECK # undef hypot # if HAVE_RAW_DECL_HYPOT @@ -1272,9 +1081,7 @@ _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y)); # endif _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (hypotl); -# endif #elif defined GNULIB_POSIXCHECK # undef hypotl # if HAVE_RAW_DECL_HYPOTL @@ -1321,9 +1128,7 @@ _GL_FUNCDECL_SYS (ilogb, int, (double x)); # endif _GL_CXXALIAS_SYS (ilogb, int, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (ilogb, int, (double x)); -# endif +_GL_CXXALIASWARN (ilogb); #elif defined GNULIB_POSIXCHECK # undef ilogb # if HAVE_RAW_DECL_ILOGB @@ -1333,23 +1138,11 @@ _GL_WARN_ON_USE (ilogb, "ilogb is unportable - " #endif #if @GNULIB_ILOGBL@ -# if @REPLACE_ILOGBL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ilogbl -# define ilogbl rpl_ilogbl -# endif -_GL_FUNCDECL_RPL (ilogbl, int, (long double x)); -_GL_CXXALIAS_RPL (ilogbl, int, (long double x)); -# else -# if !@HAVE_ILOGBL@ -# undef ilogbl +# if !@HAVE_ILOGBL@ _GL_FUNCDECL_SYS (ilogbl, int, (long double x)); -# endif +# endif _GL_CXXALIAS_SYS (ilogbl, int, (long double x)); -# endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (ilogbl); -# endif #elif defined GNULIB_POSIXCHECK # undef ilogbl # if HAVE_RAW_DECL_ILOGBL @@ -1359,55 +1152,6 @@ _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - " #endif -#if @GNULIB_MDA_J0@ -/* On native Windows, map 'j0' to '_j0', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::j0 always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef j0 -# define j0 _j0 -# endif -_GL_CXXALIAS_MDA (j0, double, (double x)); -# else -_GL_CXXALIAS_SYS (j0, double, (double x)); -# endif -_GL_CXXALIASWARN (j0); -#endif - -#if @GNULIB_MDA_J1@ -/* On native Windows, map 'j1' to '_j1', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::j1 always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef j1 -# define j1 _j1 -# endif -_GL_CXXALIAS_MDA (j1, double, (double x)); -# else -_GL_CXXALIAS_SYS (j1, double, (double x)); -# endif -_GL_CXXALIASWARN (j1); -#endif - -#if @GNULIB_MDA_JN@ -/* On native Windows, map 'jn' to '_jn', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::jn always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef jn -# define jn _jn -# endif -_GL_CXXALIAS_MDA (jn, double, (int n, double x)); -# else -_GL_CXXALIAS_SYS (jn, double, (int n, double x)); -# endif -_GL_CXXALIASWARN (jn); -#endif - - /* Return x * 2^exp. */ #if @GNULIB_LDEXPF@ # if !@HAVE_LDEXPF@ @@ -1415,9 +1159,7 @@ _GL_CXXALIASWARN (jn); _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp)); # endif _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (ldexpf); -# endif #elif defined GNULIB_POSIXCHECK # undef ldexpf # if HAVE_RAW_DECL_LDEXPF @@ -1443,9 +1185,7 @@ _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp)); # endif #endif #if @GNULIB_LDEXPL@ -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (ldexpl); -# endif #endif #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK # undef ldexpl @@ -1491,9 +1231,7 @@ _GL_CXXALIAS_RPL (log, double, (double x)); # else _GL_CXXALIAS_SYS (log, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (log, double, (double x)); -# endif +_GL_CXXALIASWARN (log); #elif defined GNULIB_POSIXCHECK # undef log # if HAVE_RAW_DECL_LOG @@ -1517,9 +1255,7 @@ _GL_FUNCDECL_SYS (logl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (logl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (logl); -# endif #elif defined GNULIB_POSIXCHECK # undef logl # if HAVE_RAW_DECL_LOGL @@ -1564,9 +1300,7 @@ _GL_CXXALIAS_RPL (log10, double, (double x)); # else _GL_CXXALIAS_SYS (log10, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (log10, double, (double x)); -# endif +_GL_CXXALIASWARN (log10); #elif defined GNULIB_POSIXCHECK # undef log10 # if HAVE_RAW_DECL_LOG10 @@ -1590,9 +1324,7 @@ _GL_FUNCDECL_SYS (log10l, long double, (long double x)); # endif _GL_CXXALIAS_SYS (log10l, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (log10l); -# endif #elif defined GNULIB_POSIXCHECK # undef log10l # if HAVE_RAW_DECL_LOG10L @@ -1639,9 +1371,7 @@ _GL_FUNCDECL_SYS (log1p, double, (double x)); # endif _GL_CXXALIAS_SYS (log1p, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (log1p, double, (double x)); -# endif +_GL_CXXALIASWARN (log1p); #elif defined GNULIB_POSIXCHECK # undef log1p # if HAVE_RAW_DECL_LOG1P @@ -1664,9 +1394,7 @@ _GL_FUNCDECL_SYS (log1pl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (log1pl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (log1pl); -# endif #elif defined GNULIB_POSIXCHECK # undef log1pl # if HAVE_RAW_DECL_LOG1PL @@ -1715,9 +1443,7 @@ _GL_FUNCDECL_SYS (log2, double, (double x)); # endif _GL_CXXALIAS_SYS (log2, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (log2, double, (double x)); -# endif +_GL_CXXALIASWARN (log2); #elif defined GNULIB_POSIXCHECK # undef log2 # if HAVE_RAW_DECL_LOG2 @@ -1740,9 +1466,7 @@ _GL_FUNCDECL_SYS (log2l, long double, (long double x)); # endif _GL_CXXALIAS_SYS (log2l, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (log2l); -# endif #elif defined GNULIB_POSIXCHECK # undef log2l # if HAVE_RAW_DECL_LOG2L @@ -1789,9 +1513,7 @@ _GL_FUNCDECL_SYS (logb, double, (double x)); # endif _GL_CXXALIAS_SYS (logb, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (logb, double, (double x)); -# endif +_GL_CXXALIASWARN (logb); #elif defined GNULIB_POSIXCHECK # undef logb # if HAVE_RAW_DECL_LOGB @@ -1814,9 +1536,7 @@ _GL_FUNCDECL_SYS (logbl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (logbl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (logbl); -# endif #elif defined GNULIB_POSIXCHECK # undef logbl # if HAVE_RAW_DECL_LOGBL @@ -1861,9 +1581,7 @@ _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr)); # else _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (modf, double, (double x, double *iptr)); -# endif +_GL_CXXALIASWARN (modf); #elif defined GNULIB_POSIXCHECK # undef modf # if HAVE_RAW_DECL_MODF @@ -1889,9 +1607,7 @@ _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr) # endif _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (modfl); -# endif #elif defined GNULIB_POSIXCHECK # undef modfl # if HAVE_RAW_DECL_MODFL @@ -1954,9 +1670,7 @@ _GL_FUNCDECL_SYS (remainder, double, (double x, double y)); # endif _GL_CXXALIAS_SYS (remainder, double, (double x, double y)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (remainder, double, (double x, double y)); -# endif +_GL_CXXALIASWARN (remainder); #elif defined GNULIB_POSIXCHECK # undef remainder # if HAVE_RAW_DECL_REMAINDER @@ -1976,15 +1690,11 @@ _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y)); # else # if !@HAVE_DECL_REMAINDERL@ # undef remainderl -# if !(defined __cplusplus && defined _AIX) _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y)); -# endif # endif _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (remainderl); -# endif #elif defined GNULIB_POSIXCHECK # undef remainderl # if HAVE_RAW_DECL_REMAINDERL @@ -2013,9 +1723,7 @@ _GL_WARN_ON_USE (rintf, "rintf is unportable - " _GL_FUNCDECL_SYS (rint, double, (double x)); # endif _GL_CXXALIAS_SYS (rint, double, (double x)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (rint, double, (double x)); -# endif +_GL_CXXALIASWARN (rint); #elif defined GNULIB_POSIXCHECK # undef rint # if HAVE_RAW_DECL_RINT @@ -2025,22 +1733,11 @@ _GL_WARN_ON_USE (rint, "rint is unportable - " #endif #if @GNULIB_RINTL@ -# if @REPLACE_RINTL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rintl -# define rintl rpl_rintl -# endif -_GL_FUNCDECL_RPL (rintl, long double, (long double x)); -_GL_CXXALIAS_RPL (rintl, long double, (long double x)); -# else -# if !@HAVE_RINTL@ +# if !@HAVE_RINTL@ _GL_FUNCDECL_SYS (rintl, long double, (long double x)); -# endif +# endif _GL_CXXALIAS_SYS (rintl, long double, (long double x)); -# endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (rintl); -# endif #elif defined GNULIB_POSIXCHECK # undef rintl # if HAVE_RAW_DECL_RINTL @@ -2087,9 +1784,7 @@ _GL_FUNCDECL_SYS (round, double, (double x)); # endif _GL_CXXALIAS_SYS (round, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (round, double, (double x)); -# endif +_GL_CXXALIASWARN (round); #elif defined GNULIB_POSIXCHECK # undef round # if HAVE_RAW_DECL_ROUND @@ -2109,15 +1804,11 @@ _GL_CXXALIAS_RPL (roundl, long double, (long double x)); # else # if !@HAVE_DECL_ROUNDL@ # undef roundl -# if !(defined __cplusplus && defined _AIX) _GL_FUNCDECL_SYS (roundl, long double, (long double x)); -# endif # endif _GL_CXXALIAS_SYS (roundl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (roundl); -# endif #elif defined GNULIB_POSIXCHECK # undef roundl # if HAVE_RAW_DECL_ROUNDL @@ -2128,20 +1819,11 @@ _GL_WARN_ON_USE (roundl, "roundl is unportable - " #if @GNULIB_SINF@ -# if @REPLACE_SINF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef sinf -# define sinf rpl_sinf -# endif -_GL_FUNCDECL_RPL (sinf, float, (float x)); -_GL_CXXALIAS_RPL (sinf, float, (float x)); -# else -# if !@HAVE_SINF@ -# undef sinf +# if !@HAVE_SINF@ +# undef sinf _GL_FUNCDECL_SYS (sinf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (sinf, float, (float x)); # endif +_GL_CXXALIAS_SYS (sinf, float, (float x)); _GL_CXXALIASWARN (sinf); #elif defined GNULIB_POSIXCHECK # undef sinf @@ -2157,9 +1839,7 @@ _GL_WARN_ON_USE (sinf, "sinf is unportable - " _GL_FUNCDECL_SYS (sinl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (sinl, long double, (long double x)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (sinl); -# endif #elif defined GNULIB_POSIXCHECK # undef sinl # if HAVE_RAW_DECL_SINL @@ -2170,20 +1850,11 @@ _GL_WARN_ON_USE (sinl, "sinl is unportable - " #if @GNULIB_SINHF@ -# if @REPLACE_SINHF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef sinhf -# define sinhf rpl_sinhf -# endif -_GL_FUNCDECL_RPL (sinhf, float, (float x)); -_GL_CXXALIAS_RPL (sinhf, float, (float x)); -# else -# if !@HAVE_SINHF@ -# undef sinhf +# if !@HAVE_SINHF@ +# undef sinhf _GL_FUNCDECL_SYS (sinhf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (sinhf, float, (float x)); # endif +_GL_CXXALIAS_SYS (sinhf, float, (float x)); _GL_CXXALIASWARN (sinhf); #elif defined GNULIB_POSIXCHECK # undef sinhf @@ -2195,20 +1866,11 @@ _GL_WARN_ON_USE (sinhf, "sinhf is unportable - " #if @GNULIB_SQRTF@ -# if @REPLACE_SQRTF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef sqrtf -# define sqrtf rpl_sqrtf -# endif -_GL_FUNCDECL_RPL (sqrtf, float, (float x)); -_GL_CXXALIAS_RPL (sqrtf, float, (float x)); -# else -# if !@HAVE_SQRTF@ -# undef sqrtf +# if !@HAVE_SQRTF@ +# undef sqrtf _GL_FUNCDECL_SYS (sqrtf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (sqrtf, float, (float x)); # endif +_GL_CXXALIAS_SYS (sqrtf, float, (float x)); _GL_CXXALIASWARN (sqrtf); #elif defined GNULIB_POSIXCHECK # undef sqrtf @@ -2233,9 +1895,7 @@ _GL_FUNCDECL_SYS (sqrtl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (sqrtl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (sqrtl); -# endif #elif defined GNULIB_POSIXCHECK # undef sqrtl # if HAVE_RAW_DECL_SQRTL @@ -2246,20 +1906,11 @@ _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - " #if @GNULIB_TANF@ -# if @REPLACE_TANF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tanf -# define tanf rpl_tanf -# endif -_GL_FUNCDECL_RPL (tanf, float, (float x)); -_GL_CXXALIAS_RPL (tanf, float, (float x)); -# else -# if !@HAVE_TANF@ -# undef tanf +# if !@HAVE_TANF@ +# undef tanf _GL_FUNCDECL_SYS (tanf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (tanf, float, (float x)); # endif +_GL_CXXALIAS_SYS (tanf, float, (float x)); _GL_CXXALIASWARN (tanf); #elif defined GNULIB_POSIXCHECK # undef tanf @@ -2275,9 +1926,7 @@ _GL_WARN_ON_USE (tanf, "tanf is unportable - " _GL_FUNCDECL_SYS (tanl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (tanl, long double, (long double x)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (tanl); -# endif #elif defined GNULIB_POSIXCHECK # undef tanl # if HAVE_RAW_DECL_TANL @@ -2288,20 +1937,11 @@ _GL_WARN_ON_USE (tanl, "tanl is unportable - " #if @GNULIB_TANHF@ -# if @REPLACE_TANHF@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tanhf -# define tanhf rpl_tanhf -# endif -_GL_FUNCDECL_RPL (tanhf, float, (float x)); -_GL_CXXALIAS_RPL (tanhf, float, (float x)); -# else -# if !@HAVE_TANHF@ -# undef tanhf +# if !@HAVE_TANHF@ +# undef tanhf _GL_FUNCDECL_SYS (tanhf, float, (float x)); -# endif -_GL_CXXALIAS_SYS (tanhf, float, (float x)); # endif +_GL_CXXALIAS_SYS (tanhf, float, (float x)); _GL_CXXALIASWARN (tanhf); #elif defined GNULIB_POSIXCHECK # undef tanhf @@ -2315,7 +1955,6 @@ _GL_WARN_ON_USE (tanhf, "tanhf is unportable - " #if @GNULIB_TRUNCF@ # if @REPLACE_TRUNCF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef truncf # define truncf rpl_truncf # endif _GL_FUNCDECL_RPL (truncf, float, (float x)); @@ -2338,7 +1977,6 @@ _GL_WARN_ON_USE (truncf, "truncf is unportable - " #if @GNULIB_TRUNC@ # if @REPLACE_TRUNC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef trunc # define trunc rpl_trunc # endif _GL_FUNCDECL_RPL (trunc, double, (double x)); @@ -2349,9 +1987,7 @@ _GL_FUNCDECL_SYS (trunc, double, (double x)); # endif _GL_CXXALIAS_SYS (trunc, double, (double x)); # endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN1 (trunc, double, (double x)); -# endif +_GL_CXXALIASWARN (trunc); #elif defined GNULIB_POSIXCHECK # undef trunc # if HAVE_RAW_DECL_TRUNC @@ -2374,9 +2010,7 @@ _GL_FUNCDECL_SYS (truncl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (truncl, long double, (long double x)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (truncl); -# endif #elif defined GNULIB_POSIXCHECK # undef truncl # if HAVE_RAW_DECL_TRUNCL @@ -2386,55 +2020,6 @@ _GL_WARN_ON_USE (truncl, "truncl is unportable - " #endif -#if @GNULIB_MDA_Y0@ -/* On native Windows, map 'y0' to '_y0', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::y0 always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef y0 -# define y0 _y0 -# endif -_GL_CXXALIAS_MDA (y0, double, (double x)); -# else -_GL_CXXALIAS_SYS (y0, double, (double x)); -# endif -_GL_CXXALIASWARN (y0); -#endif - -#if @GNULIB_MDA_Y1@ -/* On native Windows, map 'y1' to '_y1', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::y1 always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef y1 -# define y1 _y1 -# endif -_GL_CXXALIAS_MDA (y1, double, (double x)); -# else -_GL_CXXALIAS_SYS (y1, double, (double x)); -# endif -_GL_CXXALIASWARN (y1); -#endif - -#if @GNULIB_MDA_YN@ -/* On native Windows, map 'yn' to '_yn', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::yn always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef yn -# define yn _yn -# endif -_GL_CXXALIAS_MDA (yn, double, (int n, double x)); -# else -_GL_CXXALIAS_SYS (yn, double, (int n, double x)); -# endif -_GL_CXXALIASWARN (yn); -#endif - - /* Definitions of function-like macros come here, after the function declarations. */ @@ -2451,18 +2036,10 @@ _GL_EXTERN_C int gl_isfinitel (long double x); gl_isfinitef (x)) # endif # ifdef __cplusplus -# if defined isfinite || defined GNULIB_NAMESPACE +# ifdef isfinite _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite) # undef isfinite -# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__))) - /* This platform's possibly defines isfinite through a set of inline - functions. */ -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool) -# define isfinite rpl_isfinite -# define GNULIB_NAMESPACE_LACKS_ISFINITE 1 -# else -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool) -# endif +_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite) # endif # endif #elif defined GNULIB_POSIXCHECK @@ -2486,18 +2063,10 @@ _GL_EXTERN_C int gl_isinfl (long double x); gl_isinff (x)) # endif # ifdef __cplusplus -# if defined isinf || defined GNULIB_NAMESPACE +# ifdef isinf _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf) # undef isinf -# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__))) - /* This platform's possibly defines isinf through a set of inline - functions. */ -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool) -# define isinf rpl_isinf -# define GNULIB_NAMESPACE_LACKS_ISINF 1 -# else -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool) -# endif +_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf) # endif # endif #elif defined GNULIB_POSIXCHECK @@ -2514,11 +2083,10 @@ _GL_WARN_REAL_FLOATING_DECL (isinf); # if @HAVE_ISNANF@ /* The original included above provides a declaration of isnan macro or (older) isnanf function. */ -# if (__GNUC__ >= 4) || (__clang_major__ >= 4) - /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. - GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */ +# if __GNUC__ >= 4 + /* GCC 4.0 and newer provides three built-ins for isnan. */ # undef isnanf -# define isnanf(x) __builtin_isnan ((float)(x)) +# define isnanf(x) __builtin_isnanf ((float)(x)) # elif defined isnan # undef isnanf # define isnanf(x) isnan ((float)(x)) @@ -2538,8 +2106,8 @@ _GL_EXTERN_C int isnanf (float x); # if @HAVE_ISNAND@ /* The original included above provides a declaration of isnan macro. */ -# if (__GNUC__ >= 4) || (__clang_major__ >= 4) - /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */ +# if __GNUC__ >= 4 + /* GCC 4.0 and newer provides three built-ins for isnan. */ # undef isnand # define isnand(x) __builtin_isnan ((double)(x)) # else @@ -2559,11 +2127,10 @@ _GL_EXTERN_C int isnand (double x); # if @HAVE_ISNANL@ /* The original included above provides a declaration of isnan macro or (older) isnanl function. */ -# if (__GNUC__ >= 4) || (__clang_major__ >= 4) - /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. - GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't. */ +# if __GNUC__ >= 4 + /* GCC 4.0 and newer provides three built-ins for isnan. */ # undef isnanl -# define isnanl(x) __builtin_isnan ((long double)(x)) +# define isnanl(x) __builtin_isnanl ((long double)(x)) # elif defined isnan # undef isnanl # define isnanl(x) isnan ((long double)(x)) @@ -2583,20 +2150,20 @@ _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST; isnanf.h (e.g.) here, because those may end up being macros that recursively expand back to isnan. So use the gnulib replacements for them directly. */ -# if @HAVE_ISNANF@ && (__GNUC__ >= 4) || (__clang_major__ >= 4) -# define gl_isnan_f(x) __builtin_isnan ((float)(x)) +# if @HAVE_ISNANF@ && __GNUC__ >= 4 +# define gl_isnan_f(x) __builtin_isnanf ((float)(x)) # else _GL_EXTERN_C int rpl_isnanf (float x); # define gl_isnan_f(x) rpl_isnanf (x) # endif -# if @HAVE_ISNAND@ && (__GNUC__ >= 4) || (__clang_major__ >= 4) +# if @HAVE_ISNAND@ && __GNUC__ >= 4 # define gl_isnan_d(x) __builtin_isnan ((double)(x)) # else _GL_EXTERN_C int rpl_isnand (double x); # define gl_isnan_d(x) rpl_isnand (x) # endif -# if @HAVE_ISNANL@ && (__GNUC__ >= 4) || (__clang_major__ >= 4) -# define gl_isnan_l(x) __builtin_isnan ((long double)(x)) +# if @HAVE_ISNANL@ && __GNUC__ >= 4 +# define gl_isnan_l(x) __builtin_isnanl ((long double)(x)) # else _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST; # define gl_isnan_l(x) rpl_isnanl (x) @@ -2606,26 +2173,18 @@ _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST; (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \ sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \ gl_isnan_f (x)) -# elif (__GNUC__ >= 4) || (__clang_major__ >= 4) +# elif __GNUC__ >= 4 # undef isnan # define isnan(x) \ - (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \ + (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \ sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \ - __builtin_isnan ((float)(x))) + __builtin_isnanf ((float)(x))) # endif # ifdef __cplusplus -# if defined isnan || defined GNULIB_NAMESPACE +# ifdef isnan _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan) # undef isnan -# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ < 12) || (defined __FreeBSD__ && (__clang_major__ < 7 || __clang_major__ >= 11)) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__))) - /* This platform's possibly defines isnan through a set of inline - functions. */ -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool) -# define isnan rpl_isnan -# define GNULIB_NAMESPACE_LACKS_ISNAN 1 -# else -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool) -# endif +_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan) # endif # else /* Ensure isnan is a macro. */ @@ -2643,21 +2202,20 @@ _GL_WARN_REAL_FLOATING_DECL (isnan); #if @GNULIB_SIGNBIT@ -# if (@REPLACE_SIGNBIT_USING_BUILTINS@ \ - && (!defined __cplusplus || __cplusplus < 201103)) +# if @REPLACE_SIGNBIT_USING_GCC@ # undef signbit - /* GCC >= 4.0 and clang provide three built-ins for signbit. */ + /* GCC 4.0 and newer provides three built-ins for signbit. */ # define signbit(x) \ (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ __builtin_signbitf (x)) # endif -# if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit +# if @REPLACE_SIGNBIT@ # undef signbit _GL_EXTERN_C int gl_signbitf (float arg); _GL_EXTERN_C int gl_signbitd (double arg); _GL_EXTERN_C int gl_signbitl (long double arg); -# if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__ +# if __GNUC__ >= 2 && !defined __STRICT_ANSI__ # define _GL_NUM_UINT_WORDS(type) \ ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf @@ -2695,21 +2253,12 @@ _GL_EXTERN_C int gl_signbitl (long double arg); (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ gl_signbitf (x)) -# define GNULIB_defined_signbit 1 # endif # ifdef __cplusplus -# if defined signbit || defined GNULIB_NAMESPACE +# ifdef signbit _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit) # undef signbit -# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__))) - /* This platform's possibly defines signbit through a set of inline - functions. */ -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool) -# define signbit rpl_signbit -# define GNULIB_NAMESPACE_LACKS_SIGNBIT 1 -# else -_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool) -# endif +_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit) # endif # endif #elif defined GNULIB_POSIXCHECK @@ -2723,5 +2272,4 @@ _GL_WARN_REAL_FLOATING_DECL (signbit); _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_MATH_H */ -#endif /* _GL_INCLUDING_MATH_H */ #endif /* _@GUARD_PREFIX@_MATH_H */ diff --git a/gl/mbrtowc-impl-utf8.h b/gl/mbrtowc-impl-utf8.h deleted file mode 100644 index 4fdd65d..0000000 --- a/gl/mbrtowc-impl-utf8.h +++ /dev/null @@ -1,138 +0,0 @@ -/* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2008. */ - -/* This file contains the part of the body of the mbrtowc and mbrtoc32 functions - that handles the special case of the UTF-8 encoding. */ - - /* Cf. unistr/u8-mbtouc.c. */ - unsigned char c = (unsigned char) p[0]; - - if (c < 0x80) - { - if (pwc != NULL) - *pwc = c; - res = (c == 0 ? 0 : 1); - goto success; - } - if (c >= 0xc2) - { - if (c < 0xe0) - { - if (m == 1) - goto incomplete; - else /* m >= 2 */ - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40) - { - if (pwc != NULL) - *pwc = ((unsigned int) (c & 0x1f) << 6) - | (unsigned int) (c2 ^ 0x80); - res = 2; - goto success; - } - } - } - else if (c < 0xf0) - { - if (m == 1) - goto incomplete; - else - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xe1 || c2 >= 0xa0) - && (c != 0xed || c2 < 0xa0)) - { - if (m == 2) - goto incomplete; - else /* m >= 3 */ - { - unsigned char c3 = (unsigned char) p[2]; - - if ((c3 ^ 0x80) < 0x40) - { - unsigned int wc = - (((unsigned int) (c & 0x0f) << 12) - | ((unsigned int) (c2 ^ 0x80) << 6) - | (unsigned int) (c3 ^ 0x80)); - - if (FITS_IN_CHAR_TYPE (wc)) - { - if (pwc != NULL) - *pwc = wc; - res = 3; - goto success; - } - } - } - } - } - } - else if (c <= 0xf4) - { - if (m == 1) - goto incomplete; - else - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xf1 || c2 >= 0x90) - && (c < 0xf4 || (/* c == 0xf4 && */ c2 < 0x90))) - { - if (m == 2) - goto incomplete; - else - { - unsigned char c3 = (unsigned char) p[2]; - - if ((c3 ^ 0x80) < 0x40) - { - if (m == 3) - goto incomplete; - else /* m >= 4 */ - { - unsigned char c4 = (unsigned char) p[3]; - - if ((c4 ^ 0x80) < 0x40) - { - unsigned int wc = - (((unsigned int) (c & 0x07) << 18) - | ((unsigned int) (c2 ^ 0x80) << 12) - | ((unsigned int) (c3 ^ 0x80) << 6) - | (unsigned int) (c4 ^ 0x80)); - - if (FITS_IN_CHAR_TYPE (wc)) - { - if (pwc != NULL) - *pwc = wc; - res = 4; - goto success; - } - } - } - } - } - } - } - } - } - goto invalid; diff --git a/gl/mbrtowc-impl.h b/gl/mbrtowc-impl.h deleted file mode 100644 index e9c04ed..0000000 --- a/gl/mbrtowc-impl.h +++ /dev/null @@ -1,262 +0,0 @@ -/* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2008. */ - -/* This file contains the body of the mbrtowc and mbrtoc32 functions, - when GNULIB_defined_mbstate_t is defined. */ - - char *pstate = (char *)ps; - - if (s == NULL) - { - pwc = NULL; - s = ""; - n = 1; - } - - if (n == 0) - return (size_t)(-2); - - /* Here n > 0. */ - - if (pstate == NULL) - pstate = internal_state; - - { - size_t nstate = pstate[0]; - char buf[4]; - const char *p; - size_t m; - enc_t enc; - int res; - - switch (nstate) - { - case 0: - p = s; - m = n; - break; - case 3: - buf[2] = pstate[3]; - FALLTHROUGH; - case 2: - buf[1] = pstate[2]; - FALLTHROUGH; - case 1: - buf[0] = pstate[1]; - p = buf; - m = nstate; - buf[m++] = s[0]; - if (n >= 2 && m < 4) - { - buf[m++] = s[1]; - if (n >= 3 && m < 4) - buf[m++] = s[2]; - } - break; - default: - errno = EINVAL; - return (size_t)(-1); - } - - /* Here m > 0. */ - - enc = locale_encoding_classification (); - - if (enc == enc_utf8) /* UTF-8 */ - { - /* Achieve - - multi-thread safety and - - the ability to produce wide character values > WCHAR_MAX - by not calling mbtowc() at all. */ -#include "mbrtowc-impl-utf8.h" - } - else - { - /* The hidden internal state of mbtowc would make this function not - multi-thread safe. Achieve multi-thread safety through a lock. */ - wchar_t wc; - res = mbtowc_with_lock (&wc, p, m); - - if (res >= 0) - { - if ((wc == 0) != (res == 0)) - abort (); - if (pwc != NULL) - *pwc = wc; - goto success; - } - - /* mbtowc does not distinguish between invalid and incomplete multibyte - sequences. But mbrtowc needs to make this distinction. - There are two possible approaches: - - Use iconv() and its return value. - - Use built-in knowledge about the possible encodings. - Given the low quality of implementation of iconv() on the systems - that lack mbrtowc(), we use the second approach. - The possible encodings are: - - 8-bit encodings, - - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - - UTF-8 (already handled above). - Use specialized code for each. */ - if (m >= 4 || m >= MB_CUR_MAX) - goto invalid; - /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ - switch (enc) - { - /* As a reference for this code, you can use the GNU libiconv - implementation. Look for uses of the RET_TOOFEW macro. */ - - case enc_eucjp: /* EUC-JP */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) - goto incomplete; - } - if (m == 2) - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8f) - { - unsigned char c2 = (unsigned char) p[1]; - - if (c2 >= 0xa1 && c2 < 0xff) - goto incomplete; - } - } - goto invalid; - } - - case enc_94: /* EUC-KR, GB2312, BIG5 */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0xa1 && c < 0xff) - goto incomplete; - } - goto invalid; - } - - case enc_euctw: /* EUC-TW */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8e) - goto incomplete; - } - goto invalid; - } - - case enc_gb18030: /* GB18030 */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0x90 && c <= 0xe3) - { - unsigned char c2 = (unsigned char) p[1]; - - if (c2 >= 0x30 && c2 <= 0x39) - { - if (m == 2) - goto incomplete; - else /* m == 3 */ - { - unsigned char c3 = (unsigned char) p[2]; - - if (c3 >= 0x81 && c3 <= 0xfe) - goto incomplete; - } - } - } - } - goto invalid; - } - - case enc_sjis: /* SJIS */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) - || (c >= 0xf0 && c <= 0xf9)) - goto incomplete; - } - goto invalid; - } - - default: - /* An unknown multibyte encoding. */ - goto incomplete; - } - } - - success: - /* res >= 0 is the corrected return value of - mbtowc_with_lock (&wc, p, m). */ - if (nstate >= (res > 0 ? res : 1)) - abort (); - res -= nstate; - pstate[0] = 0; - return res; - - incomplete: - { - size_t k = nstate; - /* Here 0 <= k < m < 4. */ - pstate[++k] = s[0]; - if (k < m) - { - pstate[++k] = s[1]; - if (k < m) - pstate[++k] = s[2]; - } - if (k != m) - abort (); - } - pstate[0] = m; - return (size_t)(-2); - - invalid: - errno = EILSEQ; - /* The conversion state is undefined, says POSIX. */ - return (size_t)(-1); - } diff --git a/gl/mbrtowc.c b/gl/mbrtowc.c index c1a689a..5ee44ae 100644 --- a/gl/mbrtowc.c +++ b/gl/mbrtowc.c @@ -1,19 +1,19 @@ /* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2023 Free Software Foundation, Inc. + Copyright (C) 1999-2002, 2005-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2008. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include @@ -21,66 +21,314 @@ #include #if GNULIB_defined_mbstate_t -/* Implement mbrtowc() on top of mbtowc() for the non-UTF-8 locales - and directly for the UTF-8 locales. */ +/* Implement mbrtowc() on top of mbtowc(). */ # include -# include # include -# if defined _WIN32 && !defined __CYGWIN__ +# include "localcharset.h" +# include "streq.h" +# include "verify.h" -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include -# elif HAVE_PTHREAD_API +verify (sizeof (mbstate_t) >= 4); -# include -# if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif - -# elif HAVE_THREADS_H - -# include - -# endif - -# include "attribute.h" -# include "lc-charset-dispatch.h" -# include "mbtowc-lock.h" - -static_assert (sizeof (mbstate_t) >= 4); static char internal_state[4]; size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { -# define FITS_IN_CHAR_TYPE(wc) ((wc) <= WCHAR_MAX) -# include "mbrtowc-impl.h" + char *pstate = (char *)ps; + + if (s == NULL) + { + pwc = NULL; + s = ""; + n = 1; + } + + if (n == 0) + return (size_t)(-2); + + /* Here n > 0. */ + + if (pstate == NULL) + pstate = internal_state; + + { + size_t nstate = pstate[0]; + char buf[4]; + const char *p; + size_t m; + + switch (nstate) + { + case 0: + p = s; + m = n; + break; + case 3: + buf[2] = pstate[3]; + /*FALLTHROUGH*/ + case 2: + buf[1] = pstate[2]; + /*FALLTHROUGH*/ + case 1: + buf[0] = pstate[1]; + p = buf; + m = nstate; + buf[m++] = s[0]; + if (n >= 2 && m < 4) + { + buf[m++] = s[1]; + if (n >= 3 && m < 4) + buf[m++] = s[2]; + } + break; + default: + errno = EINVAL; + return (size_t)(-1); + } + + /* Here m > 0. */ + +# if __GLIBC__ || defined __UCLIBC__ + /* Work around bug */ + mbtowc (NULL, NULL, 0); +# endif + { + int res = mbtowc (pwc, p, m); + + if (res >= 0) + { + if (pwc != NULL && ((*pwc == 0) != (res == 0))) + abort (); + if (nstate >= (res > 0 ? res : 1)) + abort (); + res -= nstate; + pstate[0] = 0; + return res; + } + + /* mbtowc does not distinguish between invalid and incomplete multibyte + sequences. But mbrtowc needs to make this distinction. + There are two possible approaches: + - Use iconv() and its return value. + - Use built-in knowledge about the possible encodings. + Given the low quality of implementation of iconv() on the systems that + lack mbrtowc(), we use the second approach. + The possible encodings are: + - 8-bit encodings, + - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, + - UTF-8. + Use specialized code for each. */ + if (m >= 4 || m >= MB_CUR_MAX) + goto invalid; + /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ + { + const char *encoding = locale_charset (); + + if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) + { + /* Cf. unistr/u8-mblen.c. */ + unsigned char c = (unsigned char) p[0]; + + if (c >= 0xc2) + { + if (c < 0xe0) + { + if (m == 1) + goto incomplete; + } + else if (c < 0xf0) + { + if (m == 1) + goto incomplete; + if (m == 2) + { + unsigned char c2 = (unsigned char) p[1]; + + if ((c2 ^ 0x80) < 0x40 + && (c >= 0xe1 || c2 >= 0xa0) + && (c != 0xed || c2 < 0xa0)) + goto incomplete; + } + } + else if (c <= 0xf4) + { + if (m == 1) + goto incomplete; + else /* m == 2 || m == 3 */ + { + unsigned char c2 = (unsigned char) p[1]; + + if ((c2 ^ 0x80) < 0x40 + && (c >= 0xf1 || c2 >= 0x90) + && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) + { + if (m == 2) + goto incomplete; + else /* m == 3 */ + { + unsigned char c3 = (unsigned char) p[2]; + + if ((c3 ^ 0x80) < 0x40) + goto incomplete; + } + } + } + } + } + goto invalid; + } + + /* As a reference for this code, you can use the GNU libiconv + implementation. Look for uses of the RET_TOOFEW macro. */ + + if (STREQ_OPT (encoding, + "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) + goto incomplete; + } + if (m == 2) + { + unsigned char c = (unsigned char) p[0]; + + if (c == 0x8f) + { + unsigned char c2 = (unsigned char) p[1]; + + if (c2 >= 0xa1 && c2 < 0xff) + goto incomplete; + } + } + goto invalid; + } + if (STREQ_OPT (encoding, + "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) + || STREQ_OPT (encoding, + "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) + || STREQ_OPT (encoding, + "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if (c >= 0xa1 && c < 0xff) + goto incomplete; + } + goto invalid; + } + if (STREQ_OPT (encoding, + "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0xa1 && c < 0xff) || c == 0x8e) + goto incomplete; + } + else /* m == 2 || m == 3 */ + { + unsigned char c = (unsigned char) p[0]; + + if (c == 0x8e) + goto incomplete; + } + goto invalid; + } + if (STREQ_OPT (encoding, + "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) + goto incomplete; + } + else /* m == 2 || m == 3 */ + { + unsigned char c = (unsigned char) p[0]; + + if (c >= 0x90 && c <= 0xe3) + { + unsigned char c2 = (unsigned char) p[1]; + + if (c2 >= 0x30 && c2 <= 0x39) + { + if (m == 2) + goto incomplete; + else /* m == 3 */ + { + unsigned char c3 = (unsigned char) p[2]; + + if (c3 >= 0x81 && c3 <= 0xfe) + goto incomplete; + } + } + } + } + goto invalid; + } + if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) + || (c >= 0xf0 && c <= 0xf9)) + goto incomplete; + } + goto invalid; + } + + /* An unknown multibyte encoding. */ + goto incomplete; + } + + incomplete: + { + size_t k = nstate; + /* Here 0 <= k < m < 4. */ + pstate[++k] = s[0]; + if (k < m) + { + pstate[++k] = s[1]; + if (k < m) + pstate[++k] = s[2]; + } + if (k != m) + abort (); + } + pstate[0] = m; + return (size_t)(-2); + + invalid: + errno = EILSEQ; + /* The conversion state is undefined, says POSIX. */ + return (size_t)(-1); + } + } } #else /* Override the system's mbrtowc() function. */ -# if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ -# include "hard-locale.h" -# include -# endif - # undef mbrtowc size_t rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { - size_t ret; - wchar_t wc; - -# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG +# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG if (s == NULL) { pwc = NULL; @@ -89,14 +337,6 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) } # endif -# if MBRTOWC_EMPTY_INPUT_BUG - if (n == 0) - return (size_t) -2; -# endif - - if (! pwc) - pwc = &wc; - # if MBRTOWC_RETVAL_BUG { static mbstate_t internal_state; @@ -112,7 +352,8 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) size_t count = 0; for (; n > 0; s++, n--) { - ret = mbrtowc (&wc, s, 1, ps); + wchar_t wc; + size_t ret = mbrtowc (&wc, s, 1, ps); if (ret == (size_t)(-1)) return (size_t)(-1); @@ -120,7 +361,8 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) if (ret != (size_t)(-2)) { /* The multibyte character has been completed. */ - *pwc = wc; + if (pwc != NULL) + *pwc = wc; return (wc == 0 ? 0 : count); } } @@ -129,29 +371,32 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) } # endif -# if MBRTOWC_STORES_INCOMPLETE_BUG - ret = mbrtowc (&wc, s, n, ps); - if (ret < (size_t) -2 && pwc != NULL) - *pwc = wc; -# else - ret = mbrtowc (pwc, s, n, ps); -# endif - # if MBRTOWC_NUL_RETVAL_BUG - if (ret < (size_t) -2 && !*pwc) - return 0; -# endif + { + wchar_t wc; + size_t ret = mbrtowc (&wc, s, n, ps); -# if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ - if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE)) - { - unsigned char uc = *s; - *pwc = uc; - return 1; - } -# endif + if (ret != (size_t)(-1) && ret != (size_t)(-2)) + { + if (pwc != NULL) + *pwc = wc; + if (wc == 0) + ret = 0; + } + return ret; + } +# else + { +# if MBRTOWC_NULL_ARG1_BUG + wchar_t dummy; - return ret; + if (pwc == NULL) + pwc = &dummy; +# endif + + return mbrtowc (pwc, s, n, ps); + } +# endif } #endif diff --git a/gl/mbsinit.c b/gl/mbsinit.c index 6e60079..26fbb7f 100644 --- a/gl/mbsinit.c +++ b/gl/mbsinit.c @@ -1,27 +1,38 @@ /* Test for initial conversion state. - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2008. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include /* Specification. */ #include +#include "verify.h" -#if GNULIB_defined_mbstate_t +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ + +/* On native Windows, 'mbstate_t' is defined as 'int'. */ + +int +mbsinit (const mbstate_t *ps) +{ + return ps == NULL || *ps == 0; +} + +#else /* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs() and wcrtomb(), wcsrtombs(). @@ -34,11 +45,10 @@ We define the meaning of mbstate_t as follows: - In mb -> wc direction, mbstate_t's first byte contains the number of buffered bytes (in the range 0..3), followed by up to 3 buffered bytes. - See mbrtowc.c. - In wc -> mb direction, mbstate_t contains no information. In other words, it is always in the initial state. */ -static_assert (sizeof (mbstate_t) >= 4); +verify (sizeof (mbstate_t) >= 4); int mbsinit (const mbstate_t *ps) @@ -48,22 +58,4 @@ mbsinit (const mbstate_t *ps) return pstate == NULL || pstate[0] == 0; } -#else - -int -mbsinit (const mbstate_t *ps) -{ -# if defined _WIN32 && !defined __CYGWIN__ - /* Native Windows. */ - /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4 bytes matter. - On mingw, 'mbstate_t' is sometimes defined as 'int', sometimes defined as - an 8-byte struct, of which the first 4 bytes matter. */ - return ps == NULL || *(const unsigned int *)ps == 0; -# else - /* Minix, HP-UX 11.00, Solaris 2.6, Interix, ... */ - /* Maybe this definition works, maybe not... */ - return ps == NULL || *(const char *)ps == 0; -# endif -} - #endif diff --git a/gl/mbtowc-impl.h b/gl/mbtowc-impl.h index 39b977b..767ab39 100644 --- a/gl/mbtowc-impl.h +++ b/gl/mbtowc-impl.h @@ -1,19 +1,19 @@ /* Convert multibyte character to wide character. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2011. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* We don't need a static internal state, because the encoding is not state dependent, and when mbrtowc returns (size_t)(-2). we throw the result diff --git a/gl/mbtowc-lock.c b/gl/mbtowc-lock.c deleted file mode 100644 index 6ca6e10..0000000 --- a/gl/mbtowc-lock.c +++ /dev/null @@ -1,150 +0,0 @@ -/* Return the internal lock used by mbrtowc and mbrtoc32. - Copyright (C) 2019-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2019-2020. */ - -#include - -/* When it is known that the gl_get_mbtowc_lock function is defined - by a dependency library, it should not be defined here. */ -#if OMIT_MBTOWC_LOCK - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#else - -/* This file defines the internal lock used by mbrtowc and mbrtoc32. - It is a separate compilation unit, so that only one copy of it is - present when linking statically. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_mbtowc_lock - -/* Macro for exporting a symbol (function, not variable) defined in this file, - when compiled into a shared library. */ -# ifndef DLL_EXPORTED -# if HAVE_VISIBILITY - /* Override the effect of the compiler option '-fvisibility=hidden'. */ -# define DLL_EXPORTED __attribute__((__visibility__("default"))) -# elif defined _WIN32 || defined __CYGWIN__ -# define DLL_EXPORTED __declspec(dllexport) -# else -# define DLL_EXPORTED -# endif -# endif - -# if defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-initguard.h" - -/* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *', - because the latter is not guaranteed to be a stable ABI in the future. */ - -/* Make sure the function gets exported from DLLs. */ -DLL_EXPORTED CRITICAL_SECTION *gl_get_mbtowc_lock (void); - -static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT; -static CRITICAL_SECTION lock; - -/* Returns the internal lock used by mbrtowc and mbrtoc32. */ -CRITICAL_SECTION * -gl_get_mbtowc_lock (void) -{ - if (!guard.done) - { - if (InterlockedIncrement (&guard.started) == 0) - { - /* This thread is the first one to need the lock. Initialize it. */ - InitializeCriticalSection (&lock); - guard.done = 1; - } - else - { - /* Don't let guard.started grow and wrap around. */ - InterlockedDecrement (&guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this mutex. */ - while (!guard.done) - Sleep (0); - } - } - return &lock; -} - -# elif HAVE_PTHREAD_API - -# include - -static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - -/* Make sure the function gets exported from shared libraries. */ -DLL_EXPORTED pthread_mutex_t *gl_get_mbtowc_lock (void); - -/* Returns the internal lock used by mbrtowc and mbrtoc32. */ -pthread_mutex_t * -gl_get_mbtowc_lock (void) -{ - return &mutex; -} - -# elif HAVE_THREADS_H - -# include -# include - -static int volatile init_needed = 1; -static once_flag init_once = ONCE_FLAG_INIT; -static mtx_t mutex; - -static void -atomic_init (void) -{ - if (mtx_init (&mutex, mtx_plain) != thrd_success) - abort (); - init_needed = 0; -} - -/* Make sure the function gets exported from shared libraries. */ -DLL_EXPORTED mtx_t *gl_get_mbtowc_lock (void); - -/* Returns the internal lock used by mbrtowc and mbrtoc32. */ -mtx_t * -gl_get_mbtowc_lock (void) -{ - if (init_needed) - call_once (&init_once, atomic_init); - return &mutex; -} - -# endif - -# if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER -/* Make sure the '__declspec(dllimport)' in mbrtowc.c and mbrtoc32.c does not - cause a link failure when no DLLs are involved. */ -# if defined _WIN64 || defined _LP64 -# define IMP(x) __imp_##x -# else -# define IMP(x) _imp__##x -# endif -void * IMP(gl_get_mbtowc_lock) = &gl_get_mbtowc_lock; -# endif - -#endif diff --git a/gl/mbtowc-lock.h b/gl/mbtowc-lock.h deleted file mode 100644 index 2dc22ac..0000000 --- a/gl/mbtowc-lock.h +++ /dev/null @@ -1,125 +0,0 @@ -/* Use the internal lock used by mbrtowc and mbrtoc32. - Copyright (C) 2019-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2019-2020. */ - -/* Use a lock, so that no two threads can invoke mbtowc at the same time. */ - -static inline int -mbtowc_unlocked (wchar_t *pwc, const char *p, size_t m) -{ - /* Put the hidden internal state of mbtowc into its initial state. - This is needed at least with glibc, uClibc, and MSVC CRT. - See . */ - mbtowc (NULL, NULL, 0); - - return mbtowc (pwc, p, m); -} - -/* Prohibit renaming this symbol. */ -#undef gl_get_mbtowc_lock - -#if GNULIB_MBRTOWC_SINGLE_THREAD - -/* All uses of this function are in a single thread. No locking needed. */ - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - return mbtowc_unlocked (pwc, p, m); -} - -#elif defined _WIN32 && !defined __CYGWIN__ - -extern __declspec(dllimport) CRITICAL_SECTION *gl_get_mbtowc_lock (void); - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - CRITICAL_SECTION *lock = gl_get_mbtowc_lock (); - int ret; - - EnterCriticalSection (lock); - ret = mbtowc_unlocked (pwc, p, m); - LeaveCriticalSection (lock); - - return ret; -} - -#elif HAVE_PTHREAD_API /* AIX, IRIX, Cygwin */ - -extern -# if defined _WIN32 || defined __CYGWIN__ - __declspec(dllimport) -# endif - pthread_mutex_t *gl_get_mbtowc_lock (void); - -# if HAVE_WEAK_SYMBOLS /* IRIX */ - - /* Avoid the need to link with '-lpthread'. */ -# pragma weak pthread_mutex_lock -# pragma weak pthread_mutex_unlock - - /* Determine whether libpthread is in use. */ -# pragma weak pthread_mutexattr_gettype - /* See the comments in lock.h. */ -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) - -# else -# define pthread_in_use() 1 -# endif - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - if (pthread_in_use()) - { - pthread_mutex_t *lock = gl_get_mbtowc_lock (); - int ret; - - if (pthread_mutex_lock (lock)) - abort (); - ret = mbtowc_unlocked (pwc, p, m); - if (pthread_mutex_unlock (lock)) - abort (); - - return ret; - } - else - return mbtowc_unlocked (pwc, p, m); -} - -#elif HAVE_THREADS_H - -extern mtx_t *gl_get_mbtowc_lock (void); - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - mtx_t *lock = gl_get_mbtowc_lock (); - int ret; - - if (mtx_lock (lock) != thrd_success) - abort (); - ret = mbtowc_unlocked (pwc, p, m); - if (mtx_unlock (lock) != thrd_success) - abort (); - - return ret; -} - -#endif diff --git a/gl/mbtowc.c b/gl/mbtowc.c index 8d9b06d..632f2e1 100644 --- a/gl/mbtowc.c +++ b/gl/mbtowc.c @@ -1,19 +1,19 @@ /* Convert multibyte character to wide character. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2011. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/memchr.c b/gl/memchr.c index 8e95579..3db38a9 100644 --- a/gl/memchr.c +++ b/gl/memchr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2023 +/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2013 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), @@ -7,21 +7,21 @@ adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), and implemented by Roland McGrath (roland@ai.mit.edu). - NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@prep.ai.mit.edu. +NOTE: The canonical source of this file is maintained with the GNU C Library. +Bugs can be reported to bug-glibc@prep.ai.mit.edu. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 3 of the License, or any +later version. - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ +You should have received a copy of the GNU General Public License +along with this program. If not, see . */ #ifndef _LIBC # include diff --git a/gl/memchr.valgrind b/gl/memchr.valgrind index 97690f2..60f247e 100644 --- a/gl/memchr.valgrind +++ b/gl/memchr.valgrind @@ -1,20 +1,4 @@ # Suppress a valgrind message about use of uninitialized memory in memchr(). - -# Copyright (C) 2009-2023 Free Software Foundation, Inc. -# -# This file is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of the -# License, or (at your option) any later version. -# -# This file is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . - # POSIX states that when the character is found, memchr must not read extra # bytes in an overestimated length (for example, where memchr is used to # implement strnlen). However, we use a safe word read to provide a speedup. diff --git a/gl/minmax.h b/gl/minmax.h deleted file mode 100644 index 1fbfc66..0000000 --- a/gl/minmax.h +++ /dev/null @@ -1,60 +0,0 @@ -/* MIN, MAX macros. - Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2023 Free Software - Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _MINMAX_H -#define _MINMAX_H - -/* Note: MIN, MAX are also defined in on some systems - (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about - MIN, MAX macro redefinitions on some systems; the workaround is to - #include this file as the last one among the #include list. */ - -/* Before we define the following symbols we get the file - since otherwise we get redefinitions on some systems if is - included after this file. Likewise for . - If more than one of these system headers define MIN and MAX, pick just - one of the headers (because the definitions most likely are the same). */ -#if HAVE_MINMAX_IN_LIMITS_H -# include -#elif HAVE_MINMAX_IN_SYS_PARAM_H -# include -#endif - -/* Note: MIN and MAX should be used with two arguments of the - same type. They might not return the minimum and maximum of their two - arguments, if the arguments have different types or have unusual - floating-point values. For example, on a typical host with 32-bit 'int', - 64-bit 'long long', and 64-bit IEEE 754 'double' types: - - MAX (-1, 2147483648) returns 4294967295. - MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. - MAX (NaN, 0.0) returns 0.0. - MAX (+0.0, -0.0) returns -0.0. - - and in each case the answer is in some sense bogus. */ - -/* MAX(a,b) returns the maximum of A and B. */ -#ifndef MAX -# define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - -/* MIN(a,b) returns the minimum of A and B. */ -#ifndef MIN -# define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#endif /* _MINMAX_H */ diff --git a/gl/mktime-internal.h b/gl/mktime-internal.h index 709c36b..4287acf 100644 --- a/gl/mktime-internal.h +++ b/gl/mktime-internal.h @@ -1,79 +1,4 @@ -/* Internals of mktime and related functions - Copyright 2016-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Paul Eggert . - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -/* mktime_offset_t is a signed type wide enough to hold a UTC offset - in seconds, and used as part of the type of the offset-guess - argument to mktime_internal. In Glibc, it is always long int. - When in Gnulib, use time_t on platforms where time_t - is signed, to be compatible with platforms like BeOS that export - this implementation detail of mktime. On platforms where time_t is - unsigned, GNU and POSIX code can assume 'int' is at least 32 bits - which is wide enough for a UTC offset. */ -#ifdef _LIBC -typedef long int mktime_offset_t; -#elif defined TIME_T_IS_SIGNED -typedef time_t mktime_offset_t; -#else -typedef int mktime_offset_t; -#endif - -/* The source code uses identifiers like __time64_t for glibc - timestamps that can contain 64-bit values even when time_t is only - 32 bits. These are just macros for the ordinary identifiers unless - compiling within glibc when time_t is 32 bits. */ -#if ! (defined _LIBC && __TIMESIZE != 64) -# undef __time64_t -# define __time64_t time_t -# define __gmtime64_r __gmtime_r -# define __localtime64_r __localtime_r -# define __mktime64 mktime -# define __timegm64 timegm -#endif - -#ifndef _LIBC - -/* Although glibc source code uses leading underscores, Gnulib wants - ordinary names. - - Portable standalone applications should supply a that - declares a POSIX-compliant localtime_r, for the benefit of older - implementations that lack localtime_r or have a nonstandard one. - Similarly for gmtime_r. See the gnulib time_r module for one way - to implement this. */ - -# undef __gmtime_r -# undef __localtime_r -# define __gmtime_r gmtime_r -# define __localtime_r localtime_r - -# define __mktime_internal mktime_internal - -#endif - -/* Subroutine of mktime. Return the time_t representation of TP and - normalize TP, given that a struct tm * maps to a time_t as performed - by FUNC. Record next guess for localtime-gmtime offset in *OFFSET. */ -extern __time64_t __mktime_internal (struct tm *tp, - struct tm *(*func) (__time64_t const *, - struct tm *), - mktime_offset_t *offset) attribute_hidden; +#include +time_t mktime_internal (struct tm *, + struct tm * (*) (time_t const *, struct tm *), + time_t *); diff --git a/gl/mktime.c b/gl/mktime.c index 94a4320..e660a23 100644 --- a/gl/mktime.c +++ b/gl/mktime.c @@ -1,37 +1,28 @@ /* Convert a 'struct tm' to a time_t value. - Copyright (C) 1993-2023 Free Software Foundation, Inc. + Copyright (C) 1993-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Eggert . The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public + modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public + You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ -/* The following macros influence what gets defined when this file is compiled: - - Macro/expression Which gnulib module This compilation unit - should define - - _LIBC (glibc proper) mktime - - NEED_MKTIME_WORKING mktime rpl_mktime - || NEED_MKTIME_WINDOWS - - NEED_MKTIME_INTERNAL mktime-internal mktime_internal - */ +/* Define this to have a standalone program to test this implementation of + mktime. */ +/* #define DEBUG 1 */ #ifndef _LIBC -# include +# include #endif /* Assume that leap seconds are possible, unless told otherwise. @@ -43,123 +34,115 @@ #include -#include #include -#include -#include -#include -#include -#include +#include /* For the real memcpy prototype. */ -#ifndef NEED_MKTIME_INTERNAL -# define NEED_MKTIME_INTERNAL 0 -#endif -#ifndef NEED_MKTIME_WINDOWS -# define NEED_MKTIME_WINDOWS 0 -#endif -#ifndef NEED_MKTIME_WORKING -# define NEED_MKTIME_WORKING 0 -#endif +#if DEBUG +# include +# include +/* Make it work even if the system's libc has its own mktime routine. */ +# undef mktime +# define mktime my_mktime +#endif /* DEBUG */ -#include "mktime-internal.h" +/* Some of the code in this file assumes that signed integer overflow + silently wraps around. This assumption can't easily be programmed + around, nor can it be checked for portably at compile-time or + easily eliminated at run-time. -#if !defined _LIBC && (NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS) -static void -my_tzset (void) -{ -# if NEED_MKTIME_WINDOWS - /* Rectify the value of the environment variable TZ. - There are four possible kinds of such values: - - Traditional US time zone names, e.g. "PST8PDT". Syntax: see - - - Time zone names based on geography, that contain one or more - slashes, e.g. "Europe/Moscow". - - Time zone names based on geography, without slashes, e.g. - "Singapore". - - Time zone names that contain explicit DST rules. Syntax: see - - The Microsoft CRT understands only the first kind. It produces incorrect - results if the value of TZ is of the other kinds. - But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value - of the second kind for most geographies, or of the first kind in a few - other geographies. If it is of the second kind, neutralize it. For the - Microsoft CRT, an absent or empty TZ means the time zone that the user - has set in the Windows Control Panel. - If the value of TZ is of the third or fourth kind -- Cygwin programs - understand these syntaxes as well --, it does not matter whether we - neutralize it or not, since these values occur only when a Cygwin user - has set TZ explicitly; this case is 1. rare and 2. under the user's - responsibility. */ - const char *tz = getenv ("TZ"); - if (tz != NULL && strchr (tz, '/') != NULL) - _putenv ("TZ="); + Define WRAPV to 1 if the assumption is valid and if + #pragma GCC optimize ("wrapv") + does not trigger GCC bug 51793 + . + Otherwise, define it to 0; this forces the use of slower code that, + while not guaranteed by the C Standard, works on all production + platforms that we know about. */ +#ifndef WRAPV +# if (((__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__) \ + && defined __GLIBC__) +# pragma GCC optimize ("wrapv") +# define WRAPV 1 # else - tzset (); +# define WRAPV 0 # endif -} -# undef __tzset -# define __tzset() my_tzset () #endif -#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL +/* Verify a requirement at compile-time (unlike assert, which is runtime). */ +#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } -/* A signed type that can represent an integer number of years - multiplied by four times the number of seconds in a year. It is - needed when converting a tm_year value times the number of seconds - in a year. The factor of four comes because these products need - to be subtracted from each other, and sometimes with an offset - added to them, and then with another timestamp added, without - worrying about overflow. - - Much of the code uses long_int to represent __time64_t values, to - lessen the hassle of dealing with platforms where __time64_t is - unsigned, and because long_int should suffice to represent all - __time64_t values that mktime can generate even on platforms where - __time64_t is wider than the int components of struct tm. */ - -#if INT_MAX <= LONG_MAX / 4 / 366 / 24 / 60 / 60 +/* A signed type that is at least one bit wider than int. */ +#if INT_MAX <= LONG_MAX / 2 typedef long int long_int; #else typedef long long int long_int; #endif -verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 4 / 366 / 24 / 60 / 60); +verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2); /* Shift A right by B bits portably, by dividing A by 2**B and - truncating towards minus infinity. B should be in the range 0 <= B - <= LONG_INT_BITS - 2, where LONG_INT_BITS is the number of useful - bits in a long_int. LONG_INT_BITS is at least 32. + truncating towards minus infinity. A and B should be free of side + effects, and B should be in the range 0 <= B <= INT_BITS - 2, where + INT_BITS is the number of useful bits in an int. GNU code can + assume that INT_BITS is at least 32. ISO C99 says that A >> B is implementation-defined if A < 0. Some implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift right in the usual way when A < 0, so SHR falls back on division if ordinary A >> B doesn't seem to be the usual signed shift. */ +#define SHR(a, b) \ + ((-1 >> 1 == -1 \ + && (long_int) -1 >> 1 == -1 \ + && ((time_t) -1 >> 1 == -1 || ! TYPE_SIGNED (time_t))) \ + ? (a) >> (b) \ + : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0)) -static long_int -shr (long_int a, int b) -{ - long_int one = 1; - return (-one >> 1 == -1 - ? a >> b - : (a + (a < 0)) / (one << b) - (a < 0)); -} +/* The extra casts in the following macros work around compiler bugs, + e.g., in Cray C 5.0.3.0. */ -/* Bounds for the intersection of __time64_t and long_int. */ +/* True if the arithmetic type T is an integer type. bool counts as + an integer. */ +#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) -static long_int const mktime_min - = ((TYPE_SIGNED (__time64_t) - && TYPE_MINIMUM (__time64_t) < TYPE_MINIMUM (long_int)) - ? TYPE_MINIMUM (long_int) : TYPE_MINIMUM (__time64_t)); -static long_int const mktime_max - = (TYPE_MAXIMUM (long_int) < TYPE_MAXIMUM (__time64_t) - ? TYPE_MAXIMUM (long_int) : TYPE_MAXIMUM (__time64_t)); +/* True if negative values of the signed integer type T use two's + complement, or if T is an unsigned integer type. */ +#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) + +/* True if the arithmetic type T is signed. */ +#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) + +/* The maximum and minimum values for the integer type T. These + macros have undefined behavior if T is signed and has padding bits. + If this is a problem for you, please let us know how to fix it for + your host. */ +#define TYPE_MINIMUM(t) \ + ((t) (! TYPE_SIGNED (t) \ + ? (t) 0 \ + : ~ TYPE_MAXIMUM (t))) +#define TYPE_MAXIMUM(t) \ + ((t) (! TYPE_SIGNED (t) \ + ? (t) -1 \ + : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) + +#ifndef TIME_T_MIN +# define TIME_T_MIN TYPE_MINIMUM (time_t) +#endif +#ifndef TIME_T_MAX +# define TIME_T_MAX TYPE_MAXIMUM (time_t) +#endif +#define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1) + +verify (time_t_is_integer, TYPE_IS_INTEGER (time_t)); +verify (twos_complement_arithmetic, + (TYPE_TWOS_COMPLEMENT (int) + && TYPE_TWOS_COMPLEMENT (long_int) + && TYPE_TWOS_COMPLEMENT (time_t))); #define EPOCH_YEAR 1970 #define TM_YEAR_BASE 1900 -verify (TM_YEAR_BASE % 100 == 0); +verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0); -/* Is YEAR + TM_YEAR_BASE a leap year? */ -static bool +/* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */ +static int leapyear (long_int year) { /* Don't add YEAR to TM_YEAR_BASE, as that might overflow. @@ -183,9 +166,20 @@ const unsigned short int __mon_yday[2][13] = }; -/* Do the values A and B differ according to the rules for tm_isdst? - A and B differ if one is zero and the other positive. */ -static bool +#ifndef _LIBC +/* Portable standalone applications should supply a that + declares a POSIX-compliant localtime_r, for the benefit of older + implementations that lack localtime_r or have a nonstandard one. + See the gnulib time_r module for one way to implement this. */ +# undef __localtime_r +# define __localtime_r localtime_r +# define __mktime_internal mktime_internal +# include "mktime-internal.h" +#endif + +/* Return 1 if the values A and B differ according to the rules for + tm_isdst: A and B differ if one is zero and the other positive. */ +static int isdst_differ (int a, int b) { return (!a != !b) && (0 <= a) && (0 <= b); @@ -193,135 +187,171 @@ isdst_differ (int a, int b) /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) - (YEAR0-YDAY0 HOUR0:MIN0:SEC0) in seconds, assuming that the clocks - were not adjusted between the timestamps. + were not adjusted between the time stamps. The YEAR values uses the same numbering as TP->tm_year. Values - need not be in the usual range. However, YEAR1 - YEAR0 must not - overflow even when multiplied by three times the number of seconds - in a year, and likewise for YDAY1 - YDAY0 and three times the - number of seconds in a day. */ + need not be in the usual range. However, YEAR1 must not be less + than 2 * INT_MIN or greater than 2 * INT_MAX. -static long_int + The result may overflow. It is the caller's responsibility to + detect overflow. */ + +static time_t ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1, int year0, int yday0, int hour0, int min0, int sec0) { - verify (-1 / 2 == 0); + verify (C99_integer_division, -1 / 2 == 0); /* Compute intervening leap days correctly even if year is negative. Take care to avoid integer overflow here. */ - int a4 = shr (year1, 2) + shr (TM_YEAR_BASE, 2) - ! (year1 & 3); - int b4 = shr (year0, 2) + shr (TM_YEAR_BASE, 2) - ! (year0 & 3); - int a100 = (a4 + (a4 < 0)) / 25 - (a4 < 0); - int b100 = (b4 + (b4 < 0)) / 25 - (b4 < 0); - int a400 = shr (a100, 2); - int b400 = shr (b100, 2); + int a4 = SHR (year1, 2) + SHR (TM_YEAR_BASE, 2) - ! (year1 & 3); + int b4 = SHR (year0, 2) + SHR (TM_YEAR_BASE, 2) - ! (year0 & 3); + int a100 = a4 / 25 - (a4 % 25 < 0); + int b100 = b4 / 25 - (b4 % 25 < 0); + int a400 = SHR (a100, 2); + int b400 = SHR (b100, 2); int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); - /* Compute the desired time without overflowing. */ - long_int years = year1 - year0; - long_int days = 365 * years + yday1 - yday0 + intervening_leap_days; - long_int hours = 24 * days + hour1 - hour0; - long_int minutes = 60 * hours + min1 - min0; - long_int seconds = 60 * minutes + sec1 - sec0; + /* Compute the desired time in time_t precision. Overflow might + occur here. */ + time_t tyear1 = year1; + time_t years = tyear1 - year0; + time_t days = 365 * years + yday1 - yday0 + intervening_leap_days; + time_t hours = 24 * days + hour1 - hour0; + time_t minutes = 60 * hours + min1 - min0; + time_t seconds = 60 * minutes + sec1 - sec0; return seconds; } -/* Return the average of A and B, even if A + B would overflow. - Round toward positive infinity. */ -static long_int -long_int_avg (long_int a, long_int b) +/* Return the average of A and B, even if A + B would overflow. */ +static time_t +time_t_avg (time_t a, time_t b) { - return shr (a, 1) + shr (b, 1) + ((a | b) & 1); + return SHR (a, 1) + SHR (b, 1) + (a & b & 1); } -/* Return a long_int value corresponding to (YEAR-YDAY HOUR:MIN:SEC) - minus *TP seconds, assuming no clock adjustments occurred between - the two timestamps. - - YEAR and YDAY must not be so large that multiplying them by three times the - number of seconds in a year (or day, respectively) would overflow long_int. - *TP should be in the usual range. */ -static long_int -tm_diff (long_int year, long_int yday, int hour, int min, int sec, - struct tm const *tp) +/* Return 1 if A + B does not overflow. If time_t is unsigned and if + B's top bit is set, assume that the sum represents A - -B, and + return 1 if the subtraction does not wrap around. */ +static int +time_t_add_ok (time_t a, time_t b) { - return ydhms_diff (year, yday, hour, min, sec, - tp->tm_year, tp->tm_yday, - tp->tm_hour, tp->tm_min, tp->tm_sec); + if (! TYPE_SIGNED (time_t)) + { + time_t sum = a + b; + return (sum < a) == (TIME_T_MIDPOINT <= b); + } + else if (WRAPV) + { + time_t sum = a + b; + return (sum < a) == (b < 0); + } + else + { + time_t avg = time_t_avg (a, b); + return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2; + } } -/* Use CONVERT to convert T to a struct tm value in *TM. T must be in - range for __time64_t. Return TM if successful, NULL (setting errno) on - failure. */ -static struct tm * -convert_time (struct tm *(*convert) (const __time64_t *, struct tm *), - long_int t, struct tm *tm) +/* Return 1 if A + B does not overflow. */ +static int +time_t_int_add_ok (time_t a, int b) { - __time64_t x = t; - return convert (&x, tm); + verify (int_no_wider_than_time_t, INT_MAX <= TIME_T_MAX); + if (WRAPV) + { + time_t sum = a + b; + return (sum < a) == (b < 0); + } + else + { + int a_odd = a & 1; + time_t avg = SHR (a, 1) + (SHR (b, 1) + (a_odd & b)); + return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2; + } +} + +/* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC), + assuming that *T corresponds to *TP and that no clock adjustments + occurred between *TP and the desired time. + If TP is null, return a value not equal to *T; this avoids false matches. + If overflow occurs, yield the minimal or maximal value, except do not + yield a value equal to *T. */ +static time_t +guess_time_tm (long_int year, long_int yday, int hour, int min, int sec, + const time_t *t, const struct tm *tp) +{ + if (tp) + { + time_t d = ydhms_diff (year, yday, hour, min, sec, + tp->tm_year, tp->tm_yday, + tp->tm_hour, tp->tm_min, tp->tm_sec); + if (time_t_add_ok (*t, d)) + return *t + d; + } + + /* Overflow occurred one way or another. Return the nearest result + that is actually in range, except don't report a zero difference + if the actual difference is nonzero, as that would cause a false + match; and don't oscillate between two values, as that would + confuse the spring-forward gap detector. */ + return (*t < TIME_T_MIDPOINT + ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN) + : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX)); } /* Use CONVERT to convert *T to a broken down time in *TP. If *T is out of range for conversion, adjust it so that - it is the nearest in-range value and then convert that. - A value is in range if it fits in both __time64_t and long_int. - Return TP on success, NULL (setting errno) on failure. */ + it is the nearest in-range value and then convert that. */ static struct tm * -ranged_convert (struct tm *(*convert) (const __time64_t *, struct tm *), - long_int *t, struct tm *tp) +ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), + time_t *t, struct tm *tp) { - long_int t1 = (*t < mktime_min ? mktime_min - : *t <= mktime_max ? *t : mktime_max); - struct tm *r = convert_time (convert, t1, tp); - if (r) - { - *t = t1; - return r; - } - if (errno != EOVERFLOW) - return NULL; + struct tm *r = convert (t, tp); - long_int bad = t1; - long_int ok = 0; - struct tm oktm; oktm.tm_sec = -1; - - /* BAD is a known out-of-range value, and OK is a known in-range one. - Use binary search to narrow the range between BAD and OK until - they differ by 1. */ - while (true) + if (!r && *t) { - long_int mid = long_int_avg (ok, bad); - if (mid == ok || mid == bad) - break; - if (convert_time (convert, mid, tp)) - ok = mid, oktm = *tp; - else if (errno != EOVERFLOW) - return NULL; - else - bad = mid; + time_t bad = *t; + time_t ok = 0; + + /* BAD is a known unconvertible time_t, and OK is a known good one. + Use binary search to narrow the range between BAD and OK until + they differ by 1. */ + while (bad != ok + (bad < 0 ? -1 : 1)) + { + time_t mid = *t = time_t_avg (ok, bad); + r = convert (t, tp); + if (r) + ok = mid; + else + bad = mid; + } + + if (!r && ok) + { + /* The last conversion attempt failed; + revert to the most recent successful attempt. */ + *t = ok; + r = convert (t, tp); + } } - if (oktm.tm_sec < 0) - return NULL; - *t = ok; - *tp = oktm; - return tp; + return r; } -/* Convert *TP to a __time64_t value, inverting +/* Convert *TP to a time_t value, inverting the monotonic and mostly-unit-linear conversion function CONVERT. Use *OFFSET to keep track of a guess at the offset of the result, compared to what the result would be for UTC without leap seconds. If *OFFSET's guess is correct, only one CONVERT call is needed. - If successful, set *TP to the canonicalized struct tm; - otherwise leave *TP alone, return ((time_t) -1) and set errno. This function is external because it is used also by timegm.c. */ -__time64_t +time_t __mktime_internal (struct tm *tp, - struct tm *(*convert) (const __time64_t *, struct tm *), - mktime_offset_t *offset) + struct tm *(*convert) (const time_t *, struct tm *), + time_t *offset) { + time_t t, gt, t0, t1, t2; struct tm tm; /* The maximum number of probes (calls to CONVERT) should be enough @@ -341,7 +371,7 @@ __mktime_internal (struct tm *tp, int isdst = tp->tm_isdst; /* 1 if the previous probe was DST. */ - int dst2 = 0; + int dst2; /* Ensure that mon is in range, and set year accordingly. */ int mon_remainder = mon % 12; @@ -351,7 +381,9 @@ __mktime_internal (struct tm *tp, long_int year = lyear_requested + mon_years; /* The other values need not be in range: - the remaining code handles overflows correctly. */ + the remaining code handles minor overflows correctly, + assuming int and time_t arithmetic wraps around. + Major overflows are caught at the end. */ /* Calculate day of year from year, month, and day of month. The result need not be in range. */ @@ -361,15 +393,14 @@ __mktime_internal (struct tm *tp, long_int lmday = mday; long_int yday = mon_yday + lmday; - mktime_offset_t off = *offset; - int negative_offset_guess; + time_t guessed_offset = *offset; int sec_requested = sec; if (LEAP_SECONDS_POSSIBLE) { /* Handle out-of-range seconds specially, - since ydhms_diff assumes every minute has 60 seconds. */ + since ydhms_tm_diff assumes every minute has 60 seconds. */ if (sec < 0) sec = 0; if (59 < sec) @@ -379,47 +410,91 @@ __mktime_internal (struct tm *tp, /* Invert CONVERT by probing. First assume the same offset as last time. */ - INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess); - long_int t0 = ydhms_diff (year, yday, hour, min, sec, - EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - negative_offset_guess); - long_int t = t0, t1 = t0, t2 = t0; + t0 = ydhms_diff (year, yday, hour, min, sec, + EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset); + + if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3) + { + /* time_t isn't large enough to rule out overflows, so check + for major overflows. A gross check suffices, since if t0 + has overflowed, it is off by a multiple of TIME_T_MAX - + TIME_T_MIN + 1. So ignore any component of the difference + that is bounded by a small value. */ + + /* Approximate log base 2 of the number of time units per + biennium. A biennium is 2 years; use this unit instead of + years to avoid integer overflow. For example, 2 average + Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds, + which is 63113904 seconds, and rint (log2 (63113904)) is + 26. */ + int ALOG2_SECONDS_PER_BIENNIUM = 26; + int ALOG2_MINUTES_PER_BIENNIUM = 20; + int ALOG2_HOURS_PER_BIENNIUM = 14; + int ALOG2_DAYS_PER_BIENNIUM = 10; + int LOG2_YEARS_PER_BIENNIUM = 1; + + int approx_requested_biennia = + (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM) + - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM) + + SHR (mday, ALOG2_DAYS_PER_BIENNIUM) + + SHR (hour, ALOG2_HOURS_PER_BIENNIUM) + + SHR (min, ALOG2_MINUTES_PER_BIENNIUM) + + (LEAP_SECONDS_POSSIBLE + ? 0 + : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM))); + + int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM); + int diff = approx_biennia - approx_requested_biennia; + int approx_abs_diff = diff < 0 ? -1 - diff : diff; + + /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously + gives a positive value of 715827882. Setting a variable + first then doing math on it seems to work. + (ghazi@caip.rutgers.edu) */ + time_t time_t_max = TIME_T_MAX; + time_t time_t_min = TIME_T_MIN; + time_t overflow_threshold = + (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM; + + if (overflow_threshold < approx_abs_diff) + { + /* Overflow occurred. Try repairing it; this might work if + the time zone offset is enough to undo the overflow. */ + time_t repaired_t0 = -1 - t0; + approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM); + diff = approx_biennia - approx_requested_biennia; + approx_abs_diff = diff < 0 ? -1 - diff : diff; + if (overflow_threshold < approx_abs_diff) + return -1; + guessed_offset += repaired_t0 - t0; + t0 = repaired_t0; + } + } /* Repeatedly use the error to improve the guess. */ - while (true) - { - if (! ranged_convert (convert, &t, &tm)) - return -1; - long_int dt = tm_diff (year, yday, hour, min, sec, &tm); - if (dt == 0) - break; - - if (t == t1 && t != t2 - && (tm.tm_isdst < 0 - || (isdst < 0 - ? dst2 <= (tm.tm_isdst != 0) - : (isdst != 0) != (tm.tm_isdst != 0)))) - /* We can't possibly find a match, as we are oscillating - between two values. The requested time probably falls - within a spring-forward gap of size DT. Follow the common - practice in this case, which is to return a time that is DT - away from the requested time, preferring a time whose - tm_isdst differs from the requested value. (If no tm_isdst - was requested and only one of the two values has a nonzero - tm_isdst, prefer that value.) In practice, this is more - useful than returning -1. */ - goto offset_found; - - remaining_probes--; - if (remaining_probes == 0) - { - __set_errno (EOVERFLOW); - return -1; - } - - t1 = t2, t2 = t, t += dt, dst2 = tm.tm_isdst != 0; - } + for (t = t1 = t2 = t0, dst2 = 0; + (gt = guess_time_tm (year, yday, hour, min, sec, &t, + ranged_convert (convert, &t, &tm)), + t != gt); + t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0) + if (t == t1 && t != t2 + && (tm.tm_isdst < 0 + || (isdst < 0 + ? dst2 <= (tm.tm_isdst != 0) + : (isdst != 0) != (tm.tm_isdst != 0)))) + /* We can't possibly find a match, as we are oscillating + between two values. The requested time probably falls + within a spring-forward gap of size GT - T. Follow the common + practice in this case, which is to return a time that is GT - T + away from the requested time, preferring a time whose + tm_isdst differs from the requested value. (If no tm_isdst + was requested and only one of the two values has a nonzero + tm_isdst, prefer that value.) In practice, this is more + useful than returning -1. */ + goto offset_found; + else if (--remaining_probes == 0) + return -1; /* We have a match. Check whether tm.tm_isdst has the requested value, if any. */ @@ -429,13 +504,8 @@ __mktime_internal (struct tm *tp, time with the right value, and use its UTC offset. Heuristic: probe the adjacent timestamps in both directions, - looking for the desired isdst. If none is found within a - reasonable duration bound, assume a one-hour DST difference. - This should work for all real time zone histories in the tz - database. */ - - /* +1 if we wanted standard time but got DST, -1 if the reverse. */ - int dst_difference = (isdst == 0) - (tm.tm_isdst == 0); + looking for the desired isdst. This should work for all real + time zone histories in the tz database. */ /* Distance between probes when looking for a DST boundary. In tzdata2003a, the shortest period of DST is 601200 seconds @@ -446,14 +516,12 @@ __mktime_internal (struct tm *tp, periods when probing. */ int stride = 601200; - /* In TZDB 2021e, the longest period of DST (or of non-DST), in - which the DST (or adjacent DST) difference is not one hour, - is 457243209 seconds: e.g., America/Cambridge_Bay with leap - seconds, starting 1965-10-31 00:00 in a switch from - double-daylight time (-05) to standard time (-07), and - continuing to 1980-04-27 02:00 in a switch from standard time - (-07) to daylight time (-06). */ - int duration_max = 457243209; + /* The longest period of DST in tzdata2003a is 536454000 seconds + (e.g., America/Jujuy starting 1946-10-01 01:00). The longest + period of non-DST is much longer, but it makes no real sense + to search for more than a year of non-DST, so use the DST + max. */ + int duration_max = 536454000; /* Search in both directions, so the maximum distance is half the duration; add the stride to avoid off-by-1 problems. */ @@ -463,116 +531,211 @@ __mktime_internal (struct tm *tp, for (delta = stride; delta < delta_bound; delta += stride) for (direction = -1; direction <= 1; direction += 2) - { - long_int ot; - if (! INT_ADD_WRAPV (t, delta * direction, &ot)) - { - struct tm otm; - if (! ranged_convert (convert, &ot, &otm)) - return -1; - if (! isdst_differ (isdst, otm.tm_isdst)) - { - /* We found the desired tm_isdst. - Extrapolate back to the desired time. */ - long_int gt = ot + tm_diff (year, yday, hour, min, sec, - &otm); - if (mktime_min <= gt && gt <= mktime_max) - { - if (convert_time (convert, gt, &tm)) - { - t = gt; - goto offset_found; - } - if (errno != EOVERFLOW) - return -1; - } - } - } - } - - /* No unusual DST offset was found nearby. Assume one-hour DST. */ - t += 60 * 60 * dst_difference; - if (mktime_min <= t && t <= mktime_max && convert_time (convert, t, &tm)) - goto offset_found; - - __set_errno (EOVERFLOW); - return -1; + if (time_t_int_add_ok (t, delta * direction)) + { + time_t ot = t + delta * direction; + struct tm otm; + ranged_convert (convert, &ot, &otm); + if (! isdst_differ (isdst, otm.tm_isdst)) + { + /* We found the desired tm_isdst. + Extrapolate back to the desired time. */ + t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm); + ranged_convert (convert, &t, &tm); + goto offset_found; + } + } } offset_found: - /* Set *OFFSET to the low-order bits of T - T0 - NEGATIVE_OFFSET_GUESS. - This is just a heuristic to speed up the next mktime call, and - correctness is unaffected if integer overflow occurs here. */ - INT_SUBTRACT_WRAPV (t, t0, offset); - INT_SUBTRACT_WRAPV (*offset, negative_offset_guess, offset); + *offset = guessed_offset + t - t0; if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec) { /* Adjust time to reflect the tm_sec requested, not the normalized value. Also, repair any damage from a false match due to a leap second. */ - long_int sec_adjustment = sec == 0 && tm.tm_sec == 60; - sec_adjustment -= sec; - sec_adjustment += sec_requested; - if (INT_ADD_WRAPV (t, sec_adjustment, &t) - || ! (mktime_min <= t && t <= mktime_max)) - { - __set_errno (EOVERFLOW); - return -1; - } - if (! convert_time (convert, t, &tm)) + int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec; + if (! time_t_int_add_ok (t, sec_requested)) return -1; + t1 = t + sec_requested; + if (! time_t_int_add_ok (t1, sec_adjustment)) + return -1; + t2 = t1 + sec_adjustment; + if (! convert (&t2, &tm)) + return -1; + t = t2; } *tp = tm; return t; } -#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL */ -#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS +/* FIXME: This should use a signed type wide enough to hold any UTC + offset in seconds. 'int' should be good enough for GNU code. We + can't fix this unilaterally though, as other modules invoke + __mktime_internal. */ +static time_t localtime_offset; -/* Convert *TP to a __time64_t value. */ -__time64_t -__mktime64 (struct tm *tp) +/* Convert *TP to a time_t value. */ +time_t +mktime (struct tm *tp) { +#ifdef _LIBC /* POSIX.1 8.1.1 requires that whenever mktime() is called, the time zone names contained in the external variable 'tzname' shall be set as if the tzset() function had been called. */ __tzset (); - -# if defined _LIBC || NEED_MKTIME_WORKING - static mktime_offset_t localtime_offset; - return __mktime_internal (tp, __localtime64_r, &localtime_offset); -# else -# undef mktime - return mktime (tp); -# endif -} -#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS */ - -#if defined _LIBC && __TIMESIZE != 64 - -libc_hidden_def (__mktime64) - -time_t -mktime (struct tm *tp) -{ - struct tm tm = *tp; - __time64_t t = __mktime64 (&tm); - if (in_time_t_range (t)) - { - *tp = tm; - return t; - } - else - { - __set_errno (EOVERFLOW); - return -1; - } -} - #endif + return __mktime_internal (tp, __localtime_r, &localtime_offset); +} + +#ifdef weak_alias weak_alias (mktime, timelocal) +#endif + +#ifdef _LIBC libc_hidden_def (mktime) libc_hidden_weak (timelocal) +#endif + +#if DEBUG + +static int +not_equal_tm (const struct tm *a, const struct tm *b) +{ + return ((a->tm_sec ^ b->tm_sec) + | (a->tm_min ^ b->tm_min) + | (a->tm_hour ^ b->tm_hour) + | (a->tm_mday ^ b->tm_mday) + | (a->tm_mon ^ b->tm_mon) + | (a->tm_year ^ b->tm_year) + | (a->tm_yday ^ b->tm_yday) + | isdst_differ (a->tm_isdst, b->tm_isdst)); +} + +static void +print_tm (const struct tm *tp) +{ + if (tp) + printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d", + tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, + tp->tm_hour, tp->tm_min, tp->tm_sec, + tp->tm_yday, tp->tm_wday, tp->tm_isdst); + else + printf ("0"); +} + +static int +check_result (time_t tk, struct tm tmk, time_t tl, const struct tm *lt) +{ + if (tk != tl || !lt || not_equal_tm (&tmk, lt)) + { + printf ("mktime ("); + print_tm (lt); + printf (")\nyields ("); + print_tm (&tmk); + printf (") == %ld, should be %ld\n", (long int) tk, (long int) tl); + return 1; + } + + return 0; +} + +int +main (int argc, char **argv) +{ + int status = 0; + struct tm tm, tmk, tml; + struct tm *lt; + time_t tk, tl, tl1; + char trailer; + + if ((argc == 3 || argc == 4) + && (sscanf (argv[1], "%d-%d-%d%c", + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) + == 3) + && (sscanf (argv[2], "%d:%d:%d%c", + &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) + == 3)) + { + tm.tm_year -= TM_YEAR_BASE; + tm.tm_mon--; + tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]); + tmk = tm; + tl = mktime (&tmk); + lt = localtime (&tl); + if (lt) + { + tml = *lt; + lt = &tml; + } + printf ("mktime returns %ld == ", (long int) tl); + print_tm (&tmk); + printf ("\n"); + status = check_result (tl, tmk, tl, lt); + } + else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0)) + { + time_t from = atol (argv[1]); + time_t by = atol (argv[2]); + time_t to = atol (argv[3]); + + if (argc == 4) + for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) + { + lt = localtime (&tl); + if (lt) + { + tmk = tml = *lt; + tk = mktime (&tmk); + status |= check_result (tk, tmk, tl, &tml); + } + else + { + printf ("localtime (%ld) yields 0\n", (long int) tl); + status = 1; + } + tl1 = tl + by; + if ((tl1 < tl) != (by < 0)) + break; + } + else + for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) + { + /* Null benchmark. */ + lt = localtime (&tl); + if (lt) + { + tmk = tml = *lt; + tk = tl; + status |= check_result (tk, tmk, tl, &tml); + } + else + { + printf ("localtime (%ld) yields 0\n", (long int) tl); + status = 1; + } + tl1 = tl + by; + if ((tl1 < tl) != (by < 0)) + break; + } + } + else + printf ("Usage:\ +\t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\ +\t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\ +\t%s FROM BY TO - # Do not test those values (for benchmark).\n", + argv[0], argv[0], argv[0]); + + return status; +} + +#endif /* DEBUG */ + +/* +Local Variables: +compile-command: "gcc -DDEBUG -I. -Wall -W -O2 -g mktime.c -o mktime" +End: +*/ diff --git a/gl/mountlist.c b/gl/mountlist.c index 6d38481..30f4286 100644 --- a/gl/mountlist.c +++ b/gl/mountlist.c @@ -1,10 +1,10 @@ /* mountlist.c -- return a list of mounted file systems - Copyright (C) 1991-1992, 1997-2023 Free Software Foundation, Inc. + Copyright (C) 1991-1992, 1997-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include @@ -37,13 +37,7 @@ # include #endif -#if MAJOR_IN_MKDEV -# include -#elif MAJOR_IN_SYSMACROS -# include -#endif - -#if defined MOUNTED_GETFSSTAT /* OSF/1, also (obsolete) Apple Darwin 1.3 */ +#if defined MOUNTED_GETFSSTAT /* OSF_1 and Darwin1.3.x */ # if HAVE_SYS_UCRED_H # include /* needed on OSF V4.0 for definition of NGROUPS, NGROUPS is used as an array dimension in ucred.h */ @@ -62,104 +56,102 @@ # endif #endif /* MOUNTED_GETFSSTAT */ -#ifdef MOUNTED_GETMNTENT1 /* glibc, HP-UX, IRIX, Cygwin, Android, - also (obsolete) 4.3BSD, SunOS */ +#ifdef MOUNTED_GETMNTENT1 /* 4.3BSD, SunOS, HP-UX, Dynix, Irix. */ # include -# include -# if defined __ANDROID__ /* Android */ - /* Bionic versions from between 2014-01-09 and 2015-01-08 define MOUNTED to - an incorrect value; older Bionic versions don't define it at all. */ -# undef MOUNTED -# define MOUNTED "/proc/mounts" -# elif !defined MOUNTED +# if !defined MOUNTED # if defined _PATH_MOUNTED /* GNU libc */ # define MOUNTED _PATH_MOUNTED # endif # if defined MNT_MNTTAB /* HP-UX. */ # define MOUNTED MNT_MNTTAB # endif +# if defined MNTTABNAME /* Dynix. */ +# define MOUNTED MNTTABNAME +# endif # endif #endif -#ifdef MOUNTED_GETMNTINFO /* Mac OS X, FreeBSD, OpenBSD, also (obsolete) 4.4BSD */ +#ifdef MOUNTED_GETMNTINFO /* 4.4BSD. */ # include #endif -#ifdef MOUNTED_GETMNTINFO2 /* NetBSD, Minix */ +#ifdef MOUNTED_GETMNTINFO2 /* NetBSD 3.0. */ # include #endif -#ifdef MOUNTED_FS_STAT_DEV /* Haiku, also (obsolete) BeOS */ +#ifdef MOUNTED_GETMNT /* Ultrix. */ +# include +# include +#endif + +#ifdef MOUNTED_FS_STAT_DEV /* BeOS. */ # include # include #endif -#ifdef MOUNTED_FREAD_FSTYP /* (obsolete) SVR3 */ +#ifdef MOUNTED_FREAD /* SVR2. */ +# include +#endif + +#ifdef MOUNTED_FREAD_FSTYP /* SVR3. */ # include # include # include #endif -#ifdef MOUNTED_GETEXTMNTENT /* Solaris >= 8 */ +#ifdef MOUNTED_LISTMNTENT +# include +#endif + +#ifdef MOUNTED_GETMNTENT2 /* SVR4. */ # include #endif -#ifdef MOUNTED_GETMNTENT2 /* Solaris < 8, also (obsolete) SVR4 */ -# include -#endif - -#ifdef MOUNTED_VMOUNT /* AIX */ +#ifdef MOUNTED_VMOUNT /* AIX. */ # include # include #endif -#ifdef MOUNTED_INTERIX_STATVFS /* Interix */ +#ifdef MOUNTED_INTERIX_STATVFS /* Interix. */ # include # include #endif +#ifdef DOLPHIN +/* So special that it's not worth putting this in autoconf. */ +# undef MOUNTED_FREAD_FSTYP +# define MOUNTED_GETMNTTBL +#endif + #if HAVE_SYS_MNTENT_H /* This is to get MNTOPT_IGNORE on e.g. SVR4. */ # include #endif -#ifdef MOUNTED_GETMNTENT1 -# if !HAVE_SETMNTENT /* Android <= 4.4 */ -# define setmntent(fp,mode) fopen (fp, mode "e") -# endif -# if !HAVE_ENDMNTENT /* Android <= 4.4 */ -# define endmntent(fp) fclose (fp) -# endif -#endif - #ifndef HAVE_HASMNTOPT # define hasmntopt(mnt, opt) ((char *) 0) #endif #undef MNT_IGNORE #ifdef MNTOPT_IGNORE -# if defined __sun && defined __SVR4 -/* Solaris defines hasmntopt(struct mnttab *, char *) - while it is otherwise hasmntopt(struct mnttab *, const char *). */ -# define MNT_IGNORE(M) hasmntopt (M, (char *) MNTOPT_IGNORE) -# else -# define MNT_IGNORE(M) hasmntopt (M, MNTOPT_IGNORE) -# endif +# define MNT_IGNORE(M) hasmntopt (M, MNTOPT_IGNORE) #else # define MNT_IGNORE(M) 0 #endif -/* Each of the FILE streams in this file is only used in a single thread. */ -#include "unlocked-io.h" +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +#endif + +/* The results of open() in this file are not used with fchdir, + therefore save some unnecessary work in fchdir.c. */ +#undef open +#undef close /* The results of opendir() in this file are not used with dirfd and fchdir, therefore save some unnecessary work in fchdir.c. */ -#ifdef GNULIB_defined_opendir -# undef opendir -#endif -#ifdef GNULIB_defined_closedir -# undef closedir -#endif +#undef opendir +#undef closedir #define ME_DUMMY_0(Fs_name, Fs_type) \ (strcmp (Fs_type, "autofs") == 0 \ @@ -169,7 +161,6 @@ || strcmp (Fs_type, "debugfs") == 0 \ || strcmp (Fs_type, "devpts") == 0 \ || strcmp (Fs_type, "fusectl") == 0 \ - || strcmp (Fs_type, "fuse.portal") == 0 \ || strcmp (Fs_type, "mqueue") == 0 \ || strcmp (Fs_type, "rpc_pipefs") == 0 \ || strcmp (Fs_type, "sysfs") == 0 \ @@ -185,9 +176,10 @@ we grant an exception to any with "bind" in its list of mount options. I.e., those are *not* dummy entries. */ #ifdef MOUNTED_GETMNTENT1 -# define ME_DUMMY(Fs_name, Fs_type, Bind) \ +# define ME_DUMMY(Fs_name, Fs_type, Fs_ent) \ (ME_DUMMY_0 (Fs_name, Fs_type) \ - || (strcmp (Fs_type, "none") == 0 && !Bind)) + || (strcmp (Fs_type, "none") == 0 \ + && !hasmntopt (Fs_ent, "bind"))) #else # define ME_DUMMY(Fs_name, Fs_type) \ (ME_DUMMY_0 (Fs_name, Fs_type) || strcmp (Fs_type, "none") == 0) @@ -195,14 +187,11 @@ #ifdef __CYGWIN__ # include -/* Don't assume that UNICODE is not defined. */ -# undef GetDriveType -# define GetDriveType GetDriveTypeA # define ME_REMOTE me_remote /* All cygwin mount points include ':' or start with '//'; so it requires a native Windows call to determine remote disks. */ static bool -me_remote (char const *fs_name, _GL_UNUSED char const *fs_type) +me_remote (char const *fs_name, char const *fs_type _GL_UNUSED) { if (fs_name[0] && fs_name[1] == ':') { @@ -223,30 +212,16 @@ me_remote (char const *fs_name, _GL_UNUSED char const *fs_type) #ifndef ME_REMOTE /* A file system is "remote" if its Fs_name contains a ':' - or if (it is of type (smbfs or cifs) and its Fs_name starts with '//') - or if it is of any other of the listed types - or Fs_name is equal to "-hosts" (used by autofs to mount remote fs). - "VM" file systems like prl_fs or vboxsf are not considered remote here. */ + or if (it is of type (smbfs or cifs) and its Fs_name starts with '//'). */ # define ME_REMOTE(Fs_name, Fs_type) \ (strchr (Fs_name, ':') != NULL \ || ((Fs_name)[0] == '/' \ && (Fs_name)[1] == '/' \ && (strcmp (Fs_type, "smbfs") == 0 \ - || strcmp (Fs_type, "smb3") == 0 \ - || strcmp (Fs_type, "cifs") == 0)) \ - || strcmp (Fs_type, "acfs") == 0 \ - || strcmp (Fs_type, "afs") == 0 \ - || strcmp (Fs_type, "coda") == 0 \ - || strcmp (Fs_type, "auristorfs") == 0 \ - || strcmp (Fs_type, "fhgfs") == 0 \ - || strcmp (Fs_type, "gpfs") == 0 \ - || strcmp (Fs_type, "ibrix") == 0 \ - || strcmp (Fs_type, "ocfs2") == 0 \ - || strcmp (Fs_type, "vxfs") == 0 \ - || strcmp ("-hosts", Fs_name) == 0) + || strcmp (Fs_type, "cifs") == 0))) #endif -#if MOUNTED_GETMNTINFO /* Mac OS X, FreeBSD, OpenBSD, also (obsolete) 4.4BSD */ +#if MOUNTED_GETMNTINFO # if ! HAVE_STRUCT_STATFS_F_FSTYPENAME static char * @@ -356,7 +331,7 @@ fsp_to_string (const struct statfs *fsp) #endif /* MOUNTED_GETMNTINFO */ -#ifdef MOUNTED_VMOUNT /* AIX */ +#ifdef MOUNTED_VMOUNT /* AIX. */ static char * fstype_to_string (int t) { @@ -407,46 +382,6 @@ dev_from_mount_options (char const *mount_options) #endif -#if defined MOUNTED_GETMNTENT1 && (defined __linux__ || defined __ANDROID__) /* GNU/Linux, Android */ - -/* Unescape the paths in mount tables. - STR is updated in place. */ - -static void -unescape_tab (char *str) -{ - size_t i, j = 0; - size_t len = strlen (str) + 1; - for (i = 0; i < len; i++) - { - if (str[i] == '\\' && (i + 4 < len) - && str[i + 1] >= '0' && str[i + 1] <= '3' - && str[i + 2] >= '0' && str[i + 2] <= '7' - && str[i + 3] >= '0' && str[i + 3] <= '7') - { - str[j++] = (str[i + 1] - '0') * 64 + - (str[i + 2] - '0') * 8 + - (str[i + 3] - '0'); - i += 3; - } - else - str[j++] = str[i]; - } -} - -/* Find the next space in STR, terminate the string there in place, - and return that position. Otherwise return NULL. */ - -static char * -terminate_at_blank (char *str) -{ - char *s = strchr (str, ' '); - if (s) - *s = '\0'; - return s; -} -#endif - /* Return a list of the currently mounted file systems, or NULL on error. Add each entry to the tail of the list so that they stay in order. If NEED_FS_TYPE is true, ensure that the file system type fields in @@ -460,141 +395,69 @@ read_file_system_list (bool need_fs_type) struct mount_entry **mtail = &mount_list; (void) need_fs_type; -#ifdef MOUNTED_GETMNTENT1 /* glibc, HP-UX, IRIX, Cygwin, Android, - also (obsolete) 4.3BSD, SunOS */ +#ifdef MOUNTED_LISTMNTENT { + struct tabmntent *mntlist, *p; + struct mntent *mnt; + struct mount_entry *me; + + /* the third and fourth arguments could be used to filter mounts, + but Crays doesn't seem to have any mounts that we want to + remove. Specifically, automount create normal NFS mounts. + */ + + if (listmntent (&mntlist, KMTAB, NULL, NULL) < 0) + return NULL; + for (p = mntlist; p; p = p->next) + { + mnt = p->ment; + me = xmalloc (sizeof *me); + me->me_devname = xstrdup (mnt->mnt_fsname); + me->me_mountdir = xstrdup (mnt->mnt_dir); + me->me_type = xstrdup (mnt->mnt_type); + me->me_type_malloced = 1; + me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); + me->me_remote = ME_REMOTE (me->me_devname, me->me_type); + me->me_dev = -1; + *mtail = me; + mtail = &me->me_next; + } + freemntlist (mntlist); + } +#endif + +#ifdef MOUNTED_GETMNTENT1 /* GNU/Linux, 4.3BSD, SunOS, HP-UX, Dynix, Irix. */ + { + struct mntent *mnt; + char const *table = MOUNTED; FILE *fp; -# if defined __linux__ || defined __ANDROID__ - /* Try parsing mountinfo first, as that make device IDs available. - Note we could use libmount routines to simplify this parsing a little - (and that code is in previous versions of this function), however - libmount depends on libselinux which pulls in many dependencies. */ - char const *mountinfo = "/proc/self/mountinfo"; - fp = fopen (mountinfo, "re"); - if (fp != NULL) + fp = setmntent (table, "r"); + if (fp == NULL) + return NULL; + + while ((mnt = getmntent (fp))) { - char *line = NULL; - size_t buf_size = 0; + me = xmalloc (sizeof *me); + me->me_devname = xstrdup (mnt->mnt_fsname); + me->me_mountdir = xstrdup (mnt->mnt_dir); + me->me_type = xstrdup (mnt->mnt_type); + me->me_type_malloced = 1; + me->me_dummy = ME_DUMMY (me->me_devname, me->me_type, mnt); + me->me_remote = ME_REMOTE (me->me_devname, me->me_type); + me->me_dev = dev_from_mount_options (mnt->mnt_opts); - while (getline (&line, &buf_size, fp) != -1) - { - unsigned int devmaj, devmin; - int rc, mntroot_s; - - rc = sscanf(line, "%*u " /* id - discarded */ - "%*u " /* parent - discarded */ - "%u:%u " /* dev major:minor */ - "%n", /* mountroot (start) */ - &devmaj, &devmin, - &mntroot_s); - - if (rc != 2 && rc != 3) /* 3 if %n included in count. */ - continue; - - /* find end of MNTROOT. */ - char *mntroot = line + mntroot_s; - char *blank = terminate_at_blank (mntroot); - if (! blank) - continue; - - /* find end of TARGET. */ - char *target = blank + 1; - blank = terminate_at_blank (target); - if (! blank) - continue; - - /* skip optional fields, terminated by " - " */ - char *dash = strstr (blank + 1, " - "); - if (! dash) - continue; - - /* advance past the " - " separator. */ - char *fstype = dash + 3; - blank = terminate_at_blank (fstype); - if (! blank) - continue; - - /* find end of SOURCE. */ - char *source = blank + 1; - if (! terminate_at_blank (source)) - continue; - - /* manipulate the sub-strings in place. */ - unescape_tab (source); - unescape_tab (target); - unescape_tab (mntroot); - unescape_tab (fstype); - - me = xmalloc (sizeof *me); - - me->me_devname = xstrdup (source); - me->me_mountdir = xstrdup (target); - me->me_mntroot = xstrdup (mntroot); - me->me_type = xstrdup (fstype); - me->me_type_malloced = 1; - me->me_dev = makedev (devmaj, devmin); - /* we pass "false" for the "Bind" option as that's only - significant when the Fs_type is "none" which will not be - the case when parsing "/proc/self/mountinfo", and only - applies for static /etc/mtab files. */ - me->me_dummy = ME_DUMMY (me->me_devname, me->me_type, false); - me->me_remote = ME_REMOTE (me->me_devname, me->me_type); - - /* Add to the linked list. */ - *mtail = me; - mtail = &me->me_next; - } - - free (line); - - if (ferror (fp)) - { - int saved_errno = errno; - fclose (fp); - errno = saved_errno; - goto free_then_fail; - } - - if (fclose (fp) == EOF) - goto free_then_fail; + /* Add to the linked list. */ + *mtail = me; + mtail = &me->me_next; } - else /* fallback to /proc/self/mounts (/etc/mtab). */ -# endif /* __linux __ || __ANDROID__ */ - { - struct mntent *mnt; - char const *table = MOUNTED; - fp = setmntent (table, "r"); - if (fp == NULL) - return NULL; - - while ((mnt = getmntent (fp))) - { - bool bind = hasmntopt (mnt, "bind"); - - me = xmalloc (sizeof *me); - me->me_devname = xstrdup (mnt->mnt_fsname); - me->me_mountdir = xstrdup (mnt->mnt_dir); - me->me_mntroot = NULL; - me->me_type = xstrdup (mnt->mnt_type); - me->me_type_malloced = 1; - me->me_dummy = ME_DUMMY (me->me_devname, me->me_type, bind); - me->me_remote = ME_REMOTE (me->me_devname, me->me_type); - me->me_dev = dev_from_mount_options (mnt->mnt_opts); - - /* Add to the linked list. */ - *mtail = me; - mtail = &me->me_next; - } - - if (endmntent (fp) == 0) - goto free_then_fail; - } + if (endmntent (fp) == 0) + goto free_then_fail; } #endif /* MOUNTED_GETMNTENT1. */ -#ifdef MOUNTED_GETMNTINFO /* Mac OS X, FreeBSD, OpenBSD, also (obsolete) 4.4BSD */ +#ifdef MOUNTED_GETMNTINFO /* 4.4BSD. */ { struct statfs *fsp; int entries; @@ -609,7 +472,6 @@ read_file_system_list (bool need_fs_type) me = xmalloc (sizeof *me); me->me_devname = xstrdup (fsp->f_mntfromname); me->me_mountdir = xstrdup (fsp->f_mntonname); - me->me_mntroot = NULL; me->me_type = fs_type; me->me_type_malloced = 0; me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); @@ -623,7 +485,7 @@ read_file_system_list (bool need_fs_type) } #endif /* MOUNTED_GETMNTINFO */ -#ifdef MOUNTED_GETMNTINFO2 /* NetBSD, Minix */ +#ifdef MOUNTED_GETMNTINFO2 /* NetBSD 3.0. */ { struct statvfs *fsp; int entries; @@ -636,7 +498,6 @@ read_file_system_list (bool need_fs_type) me = xmalloc (sizeof *me); me->me_devname = xstrdup (fsp->f_mntfromname); me->me_mountdir = xstrdup (fsp->f_mntonname); - me->me_mntroot = NULL; me->me_type = xstrdup (fsp->f_fstypename); me->me_type_malloced = 1; me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); @@ -650,7 +511,35 @@ read_file_system_list (bool need_fs_type) } #endif /* MOUNTED_GETMNTINFO2 */ -#if defined MOUNTED_FS_STAT_DEV /* Haiku, also (obsolete) BeOS */ +#ifdef MOUNTED_GETMNT /* Ultrix. */ + { + int offset = 0; + int val; + struct fs_data fsd; + + while (errno = 0, + 0 < (val = getmnt (&offset, &fsd, sizeof (fsd), NOSTAT_MANY, + (char *) 0))) + { + me = xmalloc (sizeof *me); + me->me_devname = xstrdup (fsd.fd_req.devname); + me->me_mountdir = xstrdup (fsd.fd_req.path); + me->me_type = gt_names[fsd.fd_req.fstype]; + me->me_type_malloced = 0; + me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); + me->me_remote = ME_REMOTE (me->me_devname, me->me_type); + me->me_dev = fsd.fd_req.dev; + + /* Add to the linked list. */ + *mtail = me; + mtail = &me->me_next; + } + if (val < 0) + goto free_then_fail; + } +#endif /* MOUNTED_GETMNT. */ + +#if defined MOUNTED_FS_STAT_DEV /* BeOS */ { /* The next_dev() and fs_stat_dev() system calls give the list of all file systems, including the information returned by statvfs() @@ -733,7 +622,6 @@ read_file_system_list (bool need_fs_type) me->me_devname = xstrdup (fi.device_name[0] != '\0' ? fi.device_name : fi.fsh_name); me->me_mountdir = xstrdup (re != NULL ? re->name : fi.fsh_name); - me->me_mntroot = NULL; me->me_type = xstrdup (fi.fsh_name); me->me_type_malloced = 1; me->me_dev = fi.dev; @@ -756,7 +644,7 @@ read_file_system_list (bool need_fs_type) } #endif /* MOUNTED_FS_STAT_DEV */ -#if defined MOUNTED_GETFSSTAT /* OSF/1, also (obsolete) Apple Darwin 1.3 */ +#if defined MOUNTED_GETFSSTAT /* __alpha running OSF_1 */ { int numsys, counter; size_t bufsize; @@ -783,7 +671,6 @@ read_file_system_list (bool need_fs_type) me = xmalloc (sizeof *me); me->me_devname = xstrdup (stats[counter].f_mntfromname); me->me_mountdir = xstrdup (stats[counter].f_mntonname); - me->me_mntroot = NULL; me->me_type = xstrdup (FS_TYPE (stats[counter])); me->me_type_malloced = 1; me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); @@ -799,25 +686,31 @@ read_file_system_list (bool need_fs_type) } #endif /* MOUNTED_GETFSSTAT */ -#if defined MOUNTED_FREAD_FSTYP /* (obsolete) SVR3 */ +#if defined MOUNTED_FREAD || defined MOUNTED_FREAD_FSTYP /* SVR[23]. */ { struct mnttab mnt; char *table = "/etc/mnttab"; FILE *fp; - fp = fopen (table, "re"); + fp = fopen (table, "r"); if (fp == NULL) return NULL; while (fread (&mnt, sizeof mnt, 1, fp) > 0) { me = xmalloc (sizeof *me); +# ifdef GETFSTYP /* SVR3. */ me->me_devname = xstrdup (mnt.mt_dev); +# else + me->me_devname = xmalloc (strlen (mnt.mt_dev) + 6); + strcpy (me->me_devname, "/dev/"); + strcpy (me->me_devname + 5, mnt.mt_dev); +# endif me->me_mountdir = xstrdup (mnt.mt_filsys); - me->me_mntroot = NULL; me->me_dev = (dev_t) -1; /* Magic; means not known yet. */ me->me_type = ""; me->me_type_malloced = 0; +# ifdef GETFSTYP /* SVR3. */ if (need_fs_type) { struct statfs fsd; @@ -830,6 +723,7 @@ read_file_system_list (bool need_fs_type) me->me_type_malloced = 1; } } +# endif me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); me->me_remote = ME_REMOTE (me->me_devname, me->me_type); @@ -850,57 +744,34 @@ read_file_system_list (bool need_fs_type) if (fclose (fp) == EOF) goto free_then_fail; } -#endif /* MOUNTED_FREAD_FSTYP. */ +#endif /* MOUNTED_FREAD || MOUNTED_FREAD_FSTYP. */ -#ifdef MOUNTED_GETEXTMNTENT /* Solaris >= 8 */ +#ifdef MOUNTED_GETMNTTBL /* DolphinOS goes its own way. */ { - struct extmnttab mnt; - const char *table = MNTTAB; - FILE *fp; - int ret; - - /* No locking is needed, because the contents of /etc/mnttab is generated - by the kernel. */ - - errno = 0; - fp = fopen (table, "re"); - if (fp == NULL) - ret = errno; - else + struct mntent **mnttbl = getmnttbl (), **ent; + for (ent = mnttbl; *ent; ent++) { - while ((ret = getextmntent (fp, &mnt, 1)) == 0) - { - me = xmalloc (sizeof *me); - me->me_devname = xstrdup (mnt.mnt_special); - me->me_mountdir = xstrdup (mnt.mnt_mountp); - me->me_mntroot = NULL; - me->me_type = xstrdup (mnt.mnt_fstype); - me->me_type_malloced = 1; - me->me_dummy = MNT_IGNORE (&mnt) != 0; - me->me_remote = ME_REMOTE (me->me_devname, me->me_type); - me->me_dev = makedev (mnt.mnt_major, mnt.mnt_minor); + me = xmalloc (sizeof *me); + me->me_devname = xstrdup ((*ent)->mt_resource); + me->me_mountdir = xstrdup ((*ent)->mt_directory); + me->me_type = xstrdup ((*ent)->mt_fstype); + me->me_type_malloced = 1; + me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); + me->me_remote = ME_REMOTE (me->me_devname, me->me_type); + me->me_dev = (dev_t) -1; /* Magic; means not known yet. */ - /* Add to the linked list. */ - *mtail = me; - mtail = &me->me_next; - } - - ret = fclose (fp) == EOF ? errno : 0 < ret ? 0 : -1; - /* Here ret = -1 means success, ret >= 0 means failure. */ - } - - if (0 <= ret) - { - errno = ret; - goto free_then_fail; + /* Add to the linked list. */ + *mtail = me; + mtail = &me->me_next; } + endmnttbl (); } -#endif /* MOUNTED_GETEXTMNTENT */ +#endif -#ifdef MOUNTED_GETMNTENT2 /* Solaris < 8, also (obsolete) SVR4 */ +#ifdef MOUNTED_GETMNTENT2 /* SVR4. */ { struct mnttab mnt; - const char *table = MNTTAB; + char *table = MNTTAB; FILE *fp; int ret; int lockfd = -1; @@ -913,7 +784,7 @@ read_file_system_list (bool need_fs_type) # ifndef MNTTAB_LOCK # define MNTTAB_LOCK "/etc/.mnttab.lock" # endif - lockfd = open (MNTTAB_LOCK, O_RDONLY | O_CLOEXEC); + lockfd = open (MNTTAB_LOCK, O_RDONLY); if (0 <= lockfd) { struct flock flock; @@ -935,7 +806,7 @@ read_file_system_list (bool need_fs_type) # endif errno = 0; - fp = fopen (table, "re"); + fp = fopen (table, "r"); if (fp == NULL) ret = errno; else @@ -945,7 +816,6 @@ read_file_system_list (bool need_fs_type) me = xmalloc (sizeof *me); me->me_devname = xstrdup (mnt.mnt_special); me->me_mountdir = xstrdup (mnt.mnt_mountp); - me->me_mntroot = NULL; me->me_type = xstrdup (mnt.mnt_fstype); me->me_type_malloced = 1; me->me_dummy = MNT_IGNORE (&mnt) != 0; @@ -958,7 +828,6 @@ read_file_system_list (bool need_fs_type) } ret = fclose (fp) == EOF ? errno : 0 < ret ? 0 : -1; - /* Here ret = -1 means success, ret >= 0 means failure. */ } if (0 <= lockfd && close (lockfd) != 0) @@ -972,26 +841,26 @@ read_file_system_list (bool need_fs_type) } #endif /* MOUNTED_GETMNTENT2. */ -#ifdef MOUNTED_VMOUNT /* AIX */ +#ifdef MOUNTED_VMOUNT /* AIX. */ { int bufsize; - void *entries; - char *thisent; + char *entries, *thisent; struct vmount *vmp; int n_entries; int i; /* Ask how many bytes to allocate for the mounted file system info. */ - entries = &bufsize; - if (mntctl (MCTL_QUERY, sizeof bufsize, entries) != 0) + if (mntctl (MCTL_QUERY, sizeof bufsize, (struct vmount *) &bufsize) != 0) return NULL; entries = xmalloc (bufsize); /* Get the list of mounted file systems. */ - n_entries = mntctl (MCTL_QUERY, bufsize, entries); + n_entries = mntctl (MCTL_QUERY, bufsize, (struct vmount *) entries); if (n_entries < 0) { + int saved_errno = errno; free (entries); + errno = saved_errno; return NULL; } @@ -1023,7 +892,6 @@ read_file_system_list (bool need_fs_type) vmp->vmt_data[VMT_OBJECT].vmt_off); } me->me_mountdir = xstrdup (thisent + vmp->vmt_data[VMT_STUB].vmt_off); - me->me_mntroot = NULL; me->me_type = xstrdup (fstype_to_string (vmp->vmt_gfstype)); me->me_type_malloced = 1; options = thisent + vmp->vmt_data[VMT_ARGS].vmt_off; @@ -1042,7 +910,7 @@ read_file_system_list (bool need_fs_type) } #endif /* MOUNTED_VMOUNT. */ -#ifdef MOUNTED_INTERIX_STATVFS /* Interix */ +#ifdef MOUNTED_INTERIX_STATVFS { DIR *dirp = opendir ("/dev/fs"); char node[9 + NAME_MAX]; @@ -1056,8 +924,6 @@ read_file_system_list (bool need_fs_type) struct dirent entry; struct dirent *result; - /* FIXME: readdir_r is planned to be withdrawn from POSIX and - marked obsolescent in glibc. Use readdir instead. */ if (readdir_r (dirp, &entry, &result) || result == NULL) break; @@ -1069,7 +935,6 @@ read_file_system_list (bool need_fs_type) me = xmalloc (sizeof *me); me->me_devname = xstrdup (dev.f_mntfromname); me->me_mountdir = xstrdup (dev.f_mntonname); - me->me_mntroot = NULL; me->me_type = xstrdup (dev.f_fstypename); me->me_type_malloced = 1; me->me_dummy = ME_DUMMY (me->me_devname, me->me_type); @@ -1081,7 +946,6 @@ read_file_system_list (bool need_fs_type) mtail = &me->me_next; } } - closedir (dirp); } #endif /* MOUNTED_INTERIX_STATVFS */ @@ -1089,7 +953,7 @@ read_file_system_list (bool need_fs_type) return mount_list; - free_then_fail: _GL_UNUSED_LABEL; + free_then_fail: { int saved_errno = errno; *mtail = NULL; @@ -1108,12 +972,10 @@ read_file_system_list (bool need_fs_type) /* Free a mount entry as returned from read_file_system_list (). */ -void -free_mount_entry (struct mount_entry *me) +void free_mount_entry (struct mount_entry *me) { free (me->me_devname); free (me->me_mountdir); - free (me->me_mntroot); if (me->me_type_malloced) free (me->me_type); free (me); diff --git a/gl/mountlist.h b/gl/mountlist.h index aed7f88..55877e2 100644 --- a/gl/mountlist.h +++ b/gl/mountlist.h @@ -1,11 +1,11 @@ /* mountlist.h -- declarations for list of mounted file systems - Copyright (C) 1991-1992, 1998, 2000-2005, 2009-2023 Free Software + Copyright (C) 1991-1992, 1998, 2000-2005, 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -14,11 +14,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #ifndef MOUNTLIST_H_ # define MOUNTLIST_H_ +# include # include /* A mount table entry. */ @@ -26,18 +27,15 @@ struct mount_entry { char *me_devname; /* Device node name, including "/dev/". */ char *me_mountdir; /* Mount point directory name. */ - char *me_mntroot; /* Directory on filesystem of device used */ - /* as root for the (bind) mount. */ char *me_type; /* "nfs", "4.2", etc. */ dev_t me_dev; /* Device number of me_mountdir. */ unsigned int me_dummy : 1; /* Nonzero for dummy file systems. */ - unsigned int me_remote : 1; /* Nonzero for remote file systems. */ + unsigned int me_remote : 1; /* Nonzero for remote fileystems. */ unsigned int me_type_malloced : 1; /* Nonzero if me_type was malloced. */ struct mount_entry *me_next; }; -struct mount_entry *read_file_system_list (bool need_fs_type) - _GL_ATTRIBUTE_MALLOC; +struct mount_entry *read_file_system_list (bool need_fs_type); void free_mount_entry (struct mount_entry *entry); #endif diff --git a/gl/msvc-inval.c b/gl/msvc-inval.c index c5149a8..396031e 100644 --- a/gl/msvc-inval.c +++ b/gl/msvc-inval.c @@ -1,18 +1,18 @@ /* Invalid parameter handler for MSVC runtime libraries. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #include diff --git a/gl/msvc-inval.h b/gl/msvc-inval.h index ed00461..dcb0353 100644 --- a/gl/msvc-inval.h +++ b/gl/msvc-inval.h @@ -1,18 +1,18 @@ /* Invalid parameter handler for MSVC runtime libraries. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifndef _MSVC_INVAL_H #define _MSVC_INVAL_H @@ -95,7 +95,7 @@ extern void gl_msvc_inval_ensure_handler (void); /* Gnulib can define its own status codes, as described in the page "Raising Software Exceptions" on microsoft.com - . + . Our status codes are composed of - 0xE0000000, mandatory for all user-defined status codes, - 0x474E550, a API identifier ("GNU"), @@ -106,7 +106,7 @@ extern void gl_msvc_inval_ensure_handler (void); # if defined _MSC_VER /* A compiler that supports __try/__except, as described in the page "try-except statement" on microsoft.com - . + . With __try/__except, we can use the multithread-safe exception handling. */ # ifdef __cplusplus diff --git a/gl/msvc-nothrow.c b/gl/msvc-nothrow.c index f729fe6..8d65472 100644 --- a/gl/msvc-nothrow.c +++ b/gl/msvc-nothrow.c @@ -1,19 +1,19 @@ /* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #include @@ -24,9 +24,7 @@ #define WIN32_LEAN_AND_MEAN #include -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -#endif +#include "msvc-inval.h" #undef _get_osfhandle diff --git a/gl/msvc-nothrow.h b/gl/msvc-nothrow.h index 82d3f6a..5f52181 100644 --- a/gl/msvc-nothrow.h +++ b/gl/msvc-nothrow.h @@ -1,19 +1,19 @@ /* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifndef _MSVC_NOTHROW_H #define _MSVC_NOTHROW_H @@ -25,7 +25,7 @@ This file defines wrappers that turn such an invalid parameter notification into an error code. */ -#if defined _WIN32 && ! defined __CYGWIN__ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include diff --git a/gl/netdb.in.h b/gl/netdb.in.h index 9549cd7..0da1800 100644 --- a/gl/netdb.in.h +++ b/gl/netdb.in.h @@ -1,19 +1,19 @@ /* Provide a netdb.h header file for systems lacking it (read: MinGW). - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Simon Josefsson. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* This file is supposed to be used on platforms that lack . It is intended to provide definitions and prototypes needed by an @@ -158,61 +158,33 @@ struct addrinfo # endif # endif +# if !@HAVE_DECL_GETADDRINFO@ /* Translate name of a service location and/or a service name to set of socket addresses. - For more details, see the POSIX:2008 specification - . */ -# if @REPLACE_GETADDRINFO@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getaddrinfo -# define getaddrinfo rpl_getaddrinfo -# endif -_GL_FUNCDECL_RPL (getaddrinfo, int, - (const char *restrict nodename, - const char *restrict servname, - const struct addrinfo *restrict hints, - struct addrinfo **restrict res) - _GL_ARG_NONNULL ((4))); -_GL_CXXALIAS_RPL (getaddrinfo, int, - (const char *restrict nodename, - const char *restrict servname, - const struct addrinfo *restrict hints, - struct addrinfo **restrict res)); -# else -# if !@HAVE_DECL_GETADDRINFO@ + For more details, see the POSIX:2001 specification + . */ _GL_FUNCDECL_SYS (getaddrinfo, int, (const char *restrict nodename, const char *restrict servname, const struct addrinfo *restrict hints, struct addrinfo **restrict res) _GL_ARG_NONNULL ((4))); -# endif +# endif _GL_CXXALIAS_SYS (getaddrinfo, int, (const char *restrict nodename, const char *restrict servname, const struct addrinfo *restrict hints, struct addrinfo **restrict res)); -# endif _GL_CXXALIASWARN (getaddrinfo); +# if !@HAVE_DECL_FREEADDRINFO@ /* Free 'addrinfo' structure AI including associated storage. - For more details, see the POSIX:2008 specification - . */ -# if @REPLACE_GETADDRINFO@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef freeaddrinfo -# define freeaddrinfo rpl_freeaddrinfo -# endif -_GL_FUNCDECL_RPL (freeaddrinfo, void, (struct addrinfo *ai) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (freeaddrinfo, void, (struct addrinfo *ai)); -# else -# if !@HAVE_DECL_FREEADDRINFO@ + For more details, see the POSIX:2001 specification + . */ _GL_FUNCDECL_SYS (freeaddrinfo, void, (struct addrinfo *ai) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (freeaddrinfo, void, (struct addrinfo *ai)); # endif +_GL_CXXALIAS_SYS (freeaddrinfo, void, (struct addrinfo *ai)); _GL_CXXALIASWARN (freeaddrinfo); # if @REPLACE_GAI_STRERROR@ @@ -225,20 +197,18 @@ _GL_CXXALIAS_RPL (gai_strerror, const char *, (int ecode)); # else # if !@HAVE_DECL_GAI_STRERROR@ /* Convert error return from getaddrinfo() to a string. - For more details, see the POSIX:2008 specification - . */ + For more details, see the POSIX:2001 specification + . */ _GL_FUNCDECL_SYS (gai_strerror, const char *, (int ecode)); # endif _GL_CXXALIAS_SYS (gai_strerror, const char *, (int ecode)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (gai_strerror); -# endif # if !@HAVE_DECL_GETNAMEINFO@ /* Convert socket address to printable node and service names. - For more details, see the POSIX:2008 specification - . */ + For more details, see the POSIX:2001 specification + . */ _GL_FUNCDECL_SYS (getnameinfo, int, (const struct sockaddr *restrict sa, socklen_t salen, char *restrict node, socklen_t nodelen, diff --git a/gl/netinet_in.in.h b/gl/netinet_in.in.h index f88923a..b456c4f 100644 --- a/gl/netinet_in.in.h +++ b/gl/netinet_in.in.h @@ -1,18 +1,18 @@ /* Substitute for . - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_NETINET_IN_H diff --git a/gl/nl_langinfo-lock.c b/gl/nl_langinfo-lock.c deleted file mode 100644 index e5cdcd3..0000000 --- a/gl/nl_langinfo-lock.c +++ /dev/null @@ -1,150 +0,0 @@ -/* Return the internal lock used by nl_langinfo. - Copyright (C) 2019-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2019-2020. */ - -#include - -/* When it is known that the gl_get_nl_langinfo_lock function is defined - by a dependency library, it should not be defined here. */ -#if OMIT_NL_LANGINFO_LOCK - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#else - -/* This file defines the internal lock used by nl_langinfo. - It is a separate compilation unit, so that only one copy of it is - present when linking statically. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_nl_langinfo_lock - -/* Macro for exporting a symbol (function, not variable) defined in this file, - when compiled into a shared library. */ -# ifndef DLL_EXPORTED -# if HAVE_VISIBILITY - /* Override the effect of the compiler option '-fvisibility=hidden'. */ -# define DLL_EXPORTED __attribute__((__visibility__("default"))) -# elif defined _WIN32 || defined __CYGWIN__ -# define DLL_EXPORTED __declspec(dllexport) -# else -# define DLL_EXPORTED -# endif -# endif - -# if defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-initguard.h" - -/* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *', - because the latter is not guaranteed to be a stable ABI in the future. */ - -/* Make sure the function gets exported from DLLs. */ -DLL_EXPORTED CRITICAL_SECTION *gl_get_nl_langinfo_lock (void); - -static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT; -static CRITICAL_SECTION lock; - -/* Returns the internal lock used by nl_langinfo. */ -CRITICAL_SECTION * -gl_get_nl_langinfo_lock (void) -{ - if (!guard.done) - { - if (InterlockedIncrement (&guard.started) == 0) - { - /* This thread is the first one to need the lock. Initialize it. */ - InitializeCriticalSection (&lock); - guard.done = 1; - } - else - { - /* Don't let guard.started grow and wrap around. */ - InterlockedDecrement (&guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this mutex. */ - while (!guard.done) - Sleep (0); - } - } - return &lock; -} - -# elif HAVE_PTHREAD_API - -# include - -static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - -/* Make sure the function gets exported from shared libraries. */ -DLL_EXPORTED pthread_mutex_t *gl_get_nl_langinfo_lock (void); - -/* Returns the internal lock used by nl_langinfo. */ -pthread_mutex_t * -gl_get_nl_langinfo_lock (void) -{ - return &mutex; -} - -# elif HAVE_THREADS_H - -# include -# include - -static int volatile init_needed = 1; -static once_flag init_once = ONCE_FLAG_INIT; -static mtx_t mutex; - -static void -atomic_init (void) -{ - if (mtx_init (&mutex, mtx_plain) != thrd_success) - abort (); - init_needed = 0; -} - -/* Make sure the function gets exported from shared libraries. */ -DLL_EXPORTED mtx_t *gl_get_nl_langinfo_lock (void); - -/* Returns the internal lock used by nl_langinfo. */ -mtx_t * -gl_get_nl_langinfo_lock (void) -{ - if (init_needed) - call_once (&init_once, atomic_init); - return &mutex; -} - -# endif - -# if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER -/* Make sure the '__declspec(dllimport)' in nl_langinfo.c does not cause - a link failure when no DLLs are involved. */ -# if defined _WIN64 || defined _LP64 -# define IMP(x) __imp_##x -# else -# define IMP(x) _imp__##x -# endif -void * IMP(gl_get_nl_langinfo_lock) = &gl_get_nl_langinfo_lock; -# endif - -#endif diff --git a/gl/nl_langinfo.c b/gl/nl_langinfo.c index 131166f..771c953 100644 --- a/gl/nl_langinfo.c +++ b/gl/nl_langinfo.c @@ -1,278 +1,34 @@ /* nl_langinfo() replacement: query locale dependent information. - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include /* Specification. */ #include -#include -#include -#include -#if defined _WIN32 && ! defined __CYGWIN__ -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include -# include -#endif - -#if REPLACE_NL_LANGINFO && !NL_LANGINFO_MTSAFE -# if defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# elif HAVE_PTHREAD_API - -# include -# if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif - -# elif HAVE_THREADS_H - -# include - -# endif -#endif - -/* nl_langinfo() must be multithread-safe. To achieve this without using - thread-local storage: - 1. We use a specific static buffer for each possible argument. - So that different threads can call nl_langinfo with different arguments, - without interfering. - 2. We use a simple strcpy or memcpy to fill this static buffer. Filling it - through, for example, strcpy + strcat would not be guaranteed to leave - the buffer's contents intact if another thread is currently accessing - it. If necessary, the contents is first assembled in a stack-allocated - buffer. */ - -#if !REPLACE_NL_LANGINFO || GNULIB_defined_CODESET -/* Return the codeset of the current locale, if this is easily deducible. - Otherwise, return "". */ -static char * -ctype_codeset (void) -{ - static char result[2 + 10 + 1]; - char buf[2 + 10 + 1]; - char locale[SETLOCALE_NULL_MAX]; - char *codeset; - size_t codesetlen; - - if (setlocale_null_r (LC_CTYPE, locale, sizeof (locale))) - locale[0] = '\0'; - - codeset = buf; - codeset[0] = '\0'; - - if (locale[0]) - { - /* If the locale name contains an encoding after the dot, return it. */ - char *dot = strchr (locale, '.'); - - if (dot) - { - /* Look for the possible @... trailer and remove it, if any. */ - char *codeset_start = dot + 1; - char const *modifier = strchr (codeset_start, '@'); - - if (! modifier) - codeset = codeset_start; - else - { - codesetlen = modifier - codeset_start; - if (codesetlen < sizeof buf) - { - codeset = memcpy (buf, codeset_start, codesetlen); - codeset[codesetlen] = '\0'; - } - } - } - } - -# if defined _WIN32 && ! defined __CYGWIN__ - /* If setlocale is successful, it returns the number of the - codepage, as a string. Otherwise, fall back on Windows API - GetACP, which returns the locale's codepage as a number (although - this doesn't change according to what the 'setlocale' call specified). - Either way, prepend "CP" to make it a valid codeset name. */ - codesetlen = strlen (codeset); - if (0 < codesetlen && codesetlen < sizeof buf - 2) - memmove (buf + 2, codeset, codesetlen + 1); - else - sprintf (buf + 2, "%u", GetACP ()); - /* For a locale name such as "French_France.65001", in Windows 10, - setlocale now returns "French_France.utf8" instead. */ - if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) - return (char *) "UTF-8"; - else - { - memcpy (buf, "CP", 2); - strcpy (result, buf); - return result; - } -# else - strcpy (result, codeset); - return result; -#endif -} -#endif - - #if REPLACE_NL_LANGINFO /* Override nl_langinfo with support for added nl_item values. */ +# include +# include + # undef nl_langinfo -/* Without locking, on Solaris 11.3, test-nl_langinfo-mt fails, with message - "thread5 disturbed by threadN!", even when threadN invokes only - nl_langinfo (CODESET); - nl_langinfo (CRNCYSTR); - Similarly on Solaris 10. */ - -# if !NL_LANGINFO_MTSAFE /* Solaris */ - -# define ITEMS (MAXSTRMSG + 1) -# define MAX_RESULT_LEN 80 - -static char * -nl_langinfo_unlocked (nl_item item) -{ - static char result[ITEMS][MAX_RESULT_LEN]; - - /* The result of nl_langinfo is in storage that can be overwritten by - other calls to nl_langinfo. */ - char *tmp = nl_langinfo (item); - if (item >= 0 && item < ITEMS && tmp != NULL) - { - size_t tmp_len = strlen (tmp); - if (tmp_len < MAX_RESULT_LEN) - strcpy (result[item], tmp); - else - { - /* Produce a truncated result. Oh well... */ - result[item][MAX_RESULT_LEN - 1] = '\0'; - memcpy (result[item], tmp, MAX_RESULT_LEN - 1); - } - return result[item]; - } - else - return tmp; -} - -/* Use a lock, so that no two threads can invoke nl_langinfo_unlocked - at the same time. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_nl_langinfo_lock - -# if defined _WIN32 && !defined __CYGWIN__ - -extern __declspec(dllimport) CRITICAL_SECTION *gl_get_nl_langinfo_lock (void); - -static char * -nl_langinfo_with_lock (nl_item item) -{ - CRITICAL_SECTION *lock = gl_get_nl_langinfo_lock (); - char *ret; - - EnterCriticalSection (lock); - ret = nl_langinfo_unlocked (item); - LeaveCriticalSection (lock); - - return ret; -} - -# elif HAVE_PTHREAD_API - -extern -# if defined _WIN32 || defined __CYGWIN__ - __declspec(dllimport) -# endif - pthread_mutex_t *gl_get_nl_langinfo_lock (void); - -# if HAVE_WEAK_SYMBOLS /* musl libc, FreeBSD, NetBSD, OpenBSD, Haiku */ - - /* Avoid the need to link with '-lpthread'. */ -# pragma weak pthread_mutex_lock -# pragma weak pthread_mutex_unlock - - /* Determine whether libpthread is in use. */ -# pragma weak pthread_mutexattr_gettype - /* See the comments in lock.h. */ -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) - -# else -# define pthread_in_use() 1 -# endif - -static char * -nl_langinfo_with_lock (nl_item item) -{ - if (pthread_in_use()) - { - pthread_mutex_t *lock = gl_get_nl_langinfo_lock (); - char *ret; - - if (pthread_mutex_lock (lock)) - abort (); - ret = nl_langinfo_unlocked (item); - if (pthread_mutex_unlock (lock)) - abort (); - - return ret; - } - else - return nl_langinfo_unlocked (item); -} - -# elif HAVE_THREADS_H - -extern mtx_t *gl_get_nl_langinfo_lock (void); - -static char * -nl_langinfo_with_lock (nl_item item) -{ - mtx_t *lock = gl_get_nl_langinfo_lock (); - char *ret; - - if (mtx_lock (lock) != thrd_success) - abort (); - ret = nl_langinfo_unlocked (item); - if (mtx_unlock (lock) != thrd_success) - abort (); - - return ret; -} - -# endif - -# else - -/* On other platforms, no lock is needed. */ -# define nl_langinfo_with_lock nl_langinfo - -# endif - char * rpl_nl_langinfo (nl_item item) { @@ -280,36 +36,47 @@ rpl_nl_langinfo (nl_item item) { # if GNULIB_defined_CODESET case CODESET: - return ctype_codeset (); + { + const char *locale; + static char buf[2 + 10 + 1]; + + locale = setlocale (LC_CTYPE, NULL); + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return + it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + } + return ""; + } # endif # if GNULIB_defined_T_FMT_AMPM case T_FMT_AMPM: - return (char *) "%I:%M:%S %p"; -# endif -# if GNULIB_defined_ALTMON - case ALTMON_1: - case ALTMON_2: - case ALTMON_3: - case ALTMON_4: - case ALTMON_5: - case ALTMON_6: - case ALTMON_7: - case ALTMON_8: - case ALTMON_9: - case ALTMON_10: - case ALTMON_11: - case ALTMON_12: - /* We don't ship the appropriate localizations with gnulib. Therefore, - treat ALTMON_i like MON_i. */ - item = item - ALTMON_1 + MON_1; - break; + return "%I:%M:%S %p"; # endif # if GNULIB_defined_ERA case ERA: /* The format is not standardized. In glibc it is a sequence of strings of the form "direction:offset:start_date:end_date:era_name:era_format" with an empty string at the end. */ - return (char *) ""; + return ""; case ERA_D_FMT: /* The %Ex conversion in strftime behaves like %x if the locale does not have an alternative time format. */ @@ -328,244 +95,176 @@ rpl_nl_langinfo (nl_item item) case ALT_DIGITS: /* The format is not standardized. In glibc it is a sequence of 10 strings, appended in memory. */ - return (char *) "\0\0\0\0\0\0\0\0\0\0"; + return "\0\0\0\0\0\0\0\0\0\0"; # endif # if GNULIB_defined_YESEXPR || !FUNC_NL_LANGINFO_YESEXPR_WORKS case YESEXPR: - return (char *) "^[yY]"; + return "^[yY]"; case NOEXPR: - return (char *) "^[nN]"; + return "^[nN]"; # endif default: break; } - return nl_langinfo_with_lock (item); + return nl_langinfo (item); } #else -/* Provide nl_langinfo from scratch, either for native MS-Windows, or - for old Unix platforms without locales, such as Linux libc5 or - BeOS. */ +/* Provide nl_langinfo from scratch. */ -# include +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + +/* Native Windows platforms. */ + +# define WIN32_LEAN_AND_MEAN /* avoid including junk */ +# include + +# include + +# else + +/* An old Unix platform without locales, such as Linux libc5 or BeOS. */ + +# endif + +# include char * nl_langinfo (nl_item item) { - char buf[100]; - struct tm tmm = { 0 }; - switch (item) { /* nl_langinfo items of the LC_CTYPE category */ case CODESET: +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { - char *codeset = ctype_codeset (); - if (*codeset) - return codeset; + static char buf[2 + 10 + 1]; + + /* The Windows API has a function returning the locale's codepage as + a number. */ + sprintf (buf, "CP%u", GetACP ()); + return buf; } -# ifdef __BEOS__ - return (char *) "UTF-8"; +# elif defined __BEOS__ + return "UTF-8"; # else - return (char *) "ISO-8859-1"; + return "ISO-8859-1"; # endif /* nl_langinfo items of the LC_NUMERIC category */ case RADIXCHAR: return localeconv () ->decimal_point; case THOUSEP: return localeconv () ->thousands_sep; -# ifdef GROUPING - case GROUPING: - return localeconv () ->grouping; -# endif /* nl_langinfo items of the LC_TIME category. TODO: Really use the locale. */ case D_T_FMT: case ERA_D_T_FMT: - return (char *) "%a %b %e %H:%M:%S %Y"; + return "%a %b %e %H:%M:%S %Y"; case D_FMT: case ERA_D_FMT: - return (char *) "%m/%d/%y"; + return "%m/%d/%y"; case T_FMT: case ERA_T_FMT: - return (char *) "%H:%M:%S"; + return "%H:%M:%S"; case T_FMT_AMPM: - return (char *) "%I:%M:%S %p"; + return "%I:%M:%S %p"; case AM_STR: - { - static char result[80]; - if (!strftime (buf, sizeof result, "%p", &tmm)) - return (char *) "AM"; - strcpy (result, buf); - return result; - } + return "AM"; case PM_STR: - { - static char result[80]; - tmm.tm_hour = 12; - if (!strftime (buf, sizeof result, "%p", &tmm)) - return (char *) "PM"; - strcpy (result, buf); - return result; - } + return "PM"; case DAY_1: + return "Sunday"; case DAY_2: + return "Monday"; case DAY_3: + return "Tuesday"; case DAY_4: + return "Wednesday"; case DAY_5: + return "Thursday"; case DAY_6: + return "Friday"; case DAY_7: - { - static char result[7][50]; - static char const days[][sizeof "Wednesday"] = { - "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", - "Friday", "Saturday" - }; - tmm.tm_wday = item - DAY_1; - if (!strftime (buf, sizeof result[0], "%A", &tmm)) - return (char *) days[item - DAY_1]; - strcpy (result[item - DAY_1], buf); - return result[item - DAY_1]; - } + return "Saturday"; case ABDAY_1: + return "Sun"; case ABDAY_2: + return "Mon"; case ABDAY_3: + return "Tue"; case ABDAY_4: + return "Wed"; case ABDAY_5: + return "Thu"; case ABDAY_6: + return "Fri"; case ABDAY_7: - { - static char result[7][30]; - static char const abdays[][sizeof "Sun"] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" - }; - tmm.tm_wday = item - ABDAY_1; - if (!strftime (buf, sizeof result[0], "%a", &tmm)) - return (char *) abdays[item - ABDAY_1]; - strcpy (result[item - ABDAY_1], buf); - return result[item - ABDAY_1]; - } - { - static char const months[][sizeof "September"] = { - "January", "February", "March", "April", "May", "June", "July", - "September", "October", "November", "December" - }; - case MON_1: - case MON_2: - case MON_3: - case MON_4: - case MON_5: - case MON_6: - case MON_7: - case MON_8: - case MON_9: - case MON_10: - case MON_11: - case MON_12: - { - static char result[12][50]; - tmm.tm_mon = item - MON_1; - if (!strftime (buf, sizeof result[0], "%B", &tmm)) - return (char *) months[item - MON_1]; - strcpy (result[item - MON_1], buf); - return result[item - MON_1]; - } - case ALTMON_1: - case ALTMON_2: - case ALTMON_3: - case ALTMON_4: - case ALTMON_5: - case ALTMON_6: - case ALTMON_7: - case ALTMON_8: - case ALTMON_9: - case ALTMON_10: - case ALTMON_11: - case ALTMON_12: - { - static char result[12][50]; - tmm.tm_mon = item - ALTMON_1; - /* The platforms without nl_langinfo() don't support strftime with - %OB. We don't even need to try. */ - #if 0 - if (!strftime (buf, sizeof result[0], "%OB", &tmm)) - #endif - if (!strftime (buf, sizeof result[0], "%B", &tmm)) - return (char *) months[item - ALTMON_1]; - strcpy (result[item - ALTMON_1], buf); - return result[item - ALTMON_1]; - } - } + return "Sat"; + case MON_1: + return "January"; + case MON_2: + return "February"; + case MON_3: + return "March"; + case MON_4: + return "April"; + case MON_5: + return "May"; + case MON_6: + return "June"; + case MON_7: + return "July"; + case MON_8: + return "August"; + case MON_9: + return "September"; + case MON_10: + return "October"; + case MON_11: + return "November"; + case MON_12: + return "December"; case ABMON_1: + return "Jan"; case ABMON_2: + return "Feb"; case ABMON_3: + return "Mar"; case ABMON_4: + return "Apr"; case ABMON_5: + return "May"; case ABMON_6: + return "Jun"; case ABMON_7: + return "Jul"; case ABMON_8: + return "Aug"; case ABMON_9: + return "Sep"; case ABMON_10: + return "Oct"; case ABMON_11: + return "Nov"; case ABMON_12: - { - static char result[12][30]; - static char const abmonths[][sizeof "Jan"] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", - "Sep", "Oct", "Nov", "Dec" - }; - tmm.tm_mon = item - ABMON_1; - if (!strftime (buf, sizeof result[0], "%b", &tmm)) - return (char *) abmonths[item - ABMON_1]; - strcpy (result[item - ABMON_1], buf); - return result[item - ABMON_1]; - } + return "Dec"; case ERA: - return (char *) ""; + return ""; case ALT_DIGITS: - return (char *) "\0\0\0\0\0\0\0\0\0\0"; - /* nl_langinfo items of the LC_MONETARY category. */ + return "\0\0\0\0\0\0\0\0\0\0"; + /* nl_langinfo items of the LC_MONETARY category + TODO: Really use the locale. */ case CRNCYSTR: - return localeconv () ->currency_symbol; -# ifdef INT_CURR_SYMBOL - case INT_CURR_SYMBOL: - return localeconv () ->int_curr_symbol; - case MON_DECIMAL_POINT: - return localeconv () ->mon_decimal_point; - case MON_THOUSANDS_SEP: - return localeconv () ->mon_thousands_sep; - case MON_GROUPING: - return localeconv () ->mon_grouping; - case POSITIVE_SIGN: - return localeconv () ->positive_sign; - case NEGATIVE_SIGN: - return localeconv () ->negative_sign; - case FRAC_DIGITS: - return & localeconv () ->frac_digits; - case INT_FRAC_DIGITS: - return & localeconv () ->int_frac_digits; - case P_CS_PRECEDES: - return & localeconv () ->p_cs_precedes; - case N_CS_PRECEDES: - return & localeconv () ->n_cs_precedes; - case P_SEP_BY_SPACE: - return & localeconv () ->p_sep_by_space; - case N_SEP_BY_SPACE: - return & localeconv () ->n_sep_by_space; - case P_SIGN_POSN: - return & localeconv () ->p_sign_posn; - case N_SIGN_POSN: - return & localeconv () ->n_sign_posn; -# endif + return "-"; /* nl_langinfo items of the LC_MESSAGES category TODO: Really use the locale. */ case YESEXPR: - return (char *) "^[yY]"; + return "^[yY]"; case NOEXPR: - return (char *) "^[nN]"; + return "^[nN]"; default: - return (char *) ""; + return ""; } } diff --git a/gl/open.c b/gl/open.c deleted file mode 100644 index 7ec8fdc..0000000 --- a/gl/open.c +++ /dev/null @@ -1,209 +0,0 @@ -/* Open a descriptor to a file. - Copyright (C) 2007-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2007. */ - -/* If the user's config.h happens to include , let it include only - the system's here, so that orig_open doesn't recurse to - rpl_open. */ -#define __need_system_fcntl_h -#include - -/* Get the original definition of open. It might be defined as a macro. */ -#include -#include -#undef __need_system_fcntl_h - -static int -orig_open (const char *filename, int flags, mode_t mode) -{ -#if defined _WIN32 && !defined __CYGWIN__ - return _open (filename, flags, mode); -#else - return open (filename, flags, mode); -#endif -} - -/* Specification. */ -/* Write "fcntl.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates - this include because of the preliminary #include above. */ -#include "fcntl.h" - -#include "cloexec.h" - -#include -#include -#include -#include -#include -#include - -#ifndef REPLACE_OPEN_DIRECTORY -# define REPLACE_OPEN_DIRECTORY 0 -#endif - -int -open (const char *filename, int flags, ...) -{ - /* 0 = unknown, 1 = yes, -1 = no. */ -#if GNULIB_defined_O_CLOEXEC - int have_cloexec = -1; -#else - static int have_cloexec; -#endif - - mode_t mode; - int fd; - - mode = 0; - if (flags & O_CREAT) - { - va_list arg; - va_start (arg, flags); - - /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 - creates crashing code when 'mode_t' is smaller than 'int'. */ - mode = va_arg (arg, PROMOTED_MODE_T); - - va_end (arg); - } - -#if GNULIB_defined_O_NONBLOCK - /* The only known platform that lacks O_NONBLOCK is mingw, but it - also lacks named pipes and Unix sockets, which are the only two - file types that require non-blocking handling in open(). - Therefore, it is safe to ignore O_NONBLOCK here. It is handy - that mingw also lacks openat(), so that is also covered here. */ - flags &= ~O_NONBLOCK; -#endif - -#if defined _WIN32 && ! defined __CYGWIN__ - if (strcmp (filename, "/dev/null") == 0) - filename = "NUL"; -#endif - -#if OPEN_TRAILING_SLASH_BUG - /* Fail if one of O_CREAT, O_WRONLY, O_RDWR is specified and the filename - ends in a slash, as POSIX says such a filename must name a directory - : - "A pathname that contains at least one non- character and that - ends with one or more trailing characters shall not be resolved - successfully unless the last pathname component before the trailing - characters names an existing directory" - If the named file already exists as a directory, then - - if O_CREAT is specified, open() must fail because of the semantics - of O_CREAT, - - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX - - says that it fails with errno = EISDIR in this case. - If the named file does not exist or does not name a directory, then - - if O_CREAT is specified, open() must fail since open() cannot create - directories, - - if O_WRONLY or O_RDWR is specified, open() must fail because the - file does not contain a '.' directory. */ - if ((flags & O_CREAT) - || (flags & O_ACCMODE) == O_RDWR - || (flags & O_ACCMODE) == O_WRONLY) - { - size_t len = strlen (filename); - if (len > 0 && filename[len - 1] == '/') - { - errno = EISDIR; - return -1; - } - } -#endif - - fd = orig_open (filename, - flags & ~(have_cloexec < 0 ? O_CLOEXEC : 0), mode); - - if (flags & O_CLOEXEC) - { - if (! have_cloexec) - { - if (0 <= fd) - have_cloexec = 1; - else if (errno == EINVAL) - { - fd = orig_open (filename, flags & ~O_CLOEXEC, mode); - have_cloexec = -1; - } - } - if (have_cloexec < 0 && 0 <= fd) - set_cloexec_flag (fd, true); - } - - -#if REPLACE_FCHDIR - /* Implementing fchdir and fdopendir requires the ability to open a - directory file descriptor. If open doesn't support that (as on - mingw), we use a dummy file that behaves the same as directories - on Linux (ie. always reports EOF on attempts to read()), and - override fstat() in fchdir.c to hide the fact that we have a - dummy. */ - if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES - && ((flags & O_ACCMODE) == O_RDONLY - || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) - { - struct stat statbuf; - if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) - { - /* Maximum recursion depth of 1. */ - fd = open ("/dev/null", flags, mode); - if (0 <= fd) - fd = _gl_register_fd (fd, filename); - } - else - errno = EACCES; - } -#endif - -#if OPEN_TRAILING_SLASH_BUG - /* If the filename ends in a slash and fd does not refer to a directory, - then fail. - Rationale: POSIX says such a filename must name a directory - : - "A pathname that contains at least one non- character and that - ends with one or more trailing characters shall not be resolved - successfully unless the last pathname component before the trailing - characters names an existing directory" - If the named file without the slash is not a directory, open() must fail - with ENOTDIR. */ - if (fd >= 0) - { - /* We know len is positive, since open did not fail with ENOENT. */ - size_t len = strlen (filename); - if (filename[len - 1] == '/') - { - struct stat statbuf; - - if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) - { - close (fd); - errno = ENOTDIR; - return -1; - } - } - } -#endif - -#if REPLACE_FCHDIR - if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) - fd = _gl_register_fd (fd, filename); -#endif - - return fd; -} diff --git a/gl/pathmax.h b/gl/pathmax.h deleted file mode 100644 index 0dd8f3b..0000000 --- a/gl/pathmax.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Define PATH_MAX somehow. Requires sys/types.h. - Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2023 Free Software - Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _PATHMAX_H -# define _PATHMAX_H - -/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, - including the terminating NUL byte. - - PATH_MAX is not defined on systems which have no limit on filename length, - such as GNU/Hurd. - - This file does *not* define PATH_MAX always. Programs that use this file - can handle the GNU/Hurd case in several ways: - - Either with a package-wide handling, or with a per-file handling, - - Either through a - #ifdef PATH_MAX - or through a fallback like - #ifndef PATH_MAX - # define PATH_MAX 8192 - #endif - or through a fallback like - #ifndef PATH_MAX - # define PATH_MAX pathconf ("/", _PC_PATH_MAX) - #endif - */ - -# include - -# include - -# ifndef _POSIX_PATH_MAX -# define _POSIX_PATH_MAX 256 -# endif - -/* Don't include sys/param.h if it already has been. */ -# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN -# include -# endif - -# if !defined PATH_MAX && defined MAXPATHLEN -# define PATH_MAX MAXPATHLEN -# endif - -# ifdef __hpux -/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, - *not* including the terminating NUL byte, and is set to 1023. - Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is - not defined at all any more. */ -# undef PATH_MAX -# define PATH_MAX 1024 -# endif - -# if defined _WIN32 && ! defined __CYGWIN__ -/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, - section "Maximum Path Length Limitation", - - explains that the maximum size of a filename, including the terminating - NUL byte, is 260 = 3 + 256 + 1. - This is the same value as - - FILENAME_MAX in , - - _MAX_PATH in , - - MAX_PATH in . - Undefine the original value, because mingw's gets it wrong. */ -# undef PATH_MAX -# define PATH_MAX 260 -# endif - -#endif /* _PATHMAX_H */ diff --git a/gl/printf-args.c b/gl/printf-args.c index 5e14f65..c27e6bc 100644 --- a/gl/printf-args.c +++ b/gl/printf-args.c @@ -1,19 +1,19 @@ /* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2023 Free Software + Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. @@ -65,12 +65,14 @@ PRINTF_FETCHARGS (va_list args, arguments *a) case TYPE_ULONGINT: ap->a.a_ulongint = va_arg (args, unsigned long int); break; +#if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: ap->a.a_longlongint = va_arg (args, long long int); break; case TYPE_ULONGLONGINT: ap->a.a_ulonglongint = va_arg (args, unsigned long long int); break; +#endif case TYPE_DOUBLE: ap->a.a_double = va_arg (args, double); break; @@ -133,9 +135,11 @@ PRINTF_FETCHARGS (va_list args, arguments *a) case TYPE_COUNT_LONGINT_POINTER: ap->a.a_count_longint_pointer = va_arg (args, long int *); break; +#if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); break; +#endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ case TYPE_U8_STRING: diff --git a/gl/printf-args.h b/gl/printf-args.h index f303cb1..2a9c2a3 100644 --- a/gl/printf-args.h +++ b/gl/printf-args.h @@ -1,19 +1,19 @@ /* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2023 Free Software + Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifndef _PRINTF_ARGS_H #define _PRINTF_ARGS_H @@ -57,8 +57,10 @@ typedef enum TYPE_UINT, TYPE_LONGINT, TYPE_ULONGINT, +#if HAVE_LONG_LONG_INT TYPE_LONGLONGINT, TYPE_ULONGLONGINT, +#endif TYPE_DOUBLE, TYPE_LONGDOUBLE, TYPE_CHAR, @@ -73,8 +75,10 @@ typedef enum TYPE_COUNT_SCHAR_POINTER, TYPE_COUNT_SHORT_POINTER, TYPE_COUNT_INT_POINTER, - TYPE_COUNT_LONGINT_POINTER, - TYPE_COUNT_LONGLONGINT_POINTER + TYPE_COUNT_LONGINT_POINTER +#if HAVE_LONG_LONG_INT +, TYPE_COUNT_LONGLONGINT_POINTER +#endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ , TYPE_U8_STRING @@ -97,8 +101,10 @@ typedef struct unsigned int a_uint; long int a_longint; unsigned long int a_ulongint; +#if HAVE_LONG_LONG_INT long long int a_longlongint; unsigned long long int a_ulonglongint; +#endif float a_float; double a_double; long double a_longdouble; @@ -115,7 +121,9 @@ typedef struct short * a_count_short_pointer; int * a_count_int_pointer; long int * a_count_longint_pointer; +#if HAVE_LONG_LONG_INT long long int * a_count_longlongint_pointer; +#endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ const uint8_t * a_u8_string; diff --git a/gl/printf-parse.c b/gl/printf-parse.c index 3040749..23cacc1 100644 --- a/gl/printf-parse.c +++ b/gl/printf-parse.c @@ -1,18 +1,18 @@ /* Formatted output to strings. - Copyright (C) 1999-2000, 2002-2003, 2006-2023 Free Software Foundation, Inc. + Copyright (C) 1999-2000, 2002-2003, 2006-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ /* This file can be parametrized with the following macros: CHAR_T The element type of the format string. @@ -48,7 +48,16 @@ #include /* Get intmax_t. */ -#include +#if defined IN_LIBINTL || defined IN_LIBASPRINTF +# if HAVE_STDINT_H_WITH_UINTMAX +# include +# endif +# if HAVE_INTTYPES_H_WITH_UINTMAX +# include +# endif +#else +# include +#endif /* malloc(), realloc(), free(). */ #include @@ -410,7 +419,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) cp++; } #endif -#if defined _WIN32 && ! defined __CYGWIN__ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows, PRIdMAX is defined as "I64d". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ @@ -438,12 +447,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) switch (c) { case 'd': case 'i': - /* If 'long long' is larger than 'long': */ +#if HAVE_LONG_LONG_INT + /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_LONGLONGINT; else - /* If 'long long' is the same as 'long', we parse "lld" into - TYPE_LONGINT. */ +#endif + /* If 'long long' exists and is the same as 'long', we parse + "lld" into TYPE_LONGINT. */ if (flags >= 8) type = TYPE_LONGINT; else if (flags & 2) @@ -454,12 +465,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) type = TYPE_INT; break; case 'o': case 'u': case 'x': case 'X': - /* If 'unsigned long long' is larger than 'unsigned long': */ +#if HAVE_LONG_LONG_INT + /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_ULONGLONGINT; else - /* If 'unsigned long long' is the same as 'unsigned long', we - parse "llu" into TYPE_ULONGINT. */ +#endif + /* If 'unsigned long long' exists and is the same as + 'unsigned long', we parse "llu" into TYPE_ULONGINT. */ if (flags >= 8) type = TYPE_ULONGINT; else if (flags & 2) @@ -512,12 +525,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) type = TYPE_POINTER; break; case 'n': - /* If 'long long' is larger than 'long': */ +#if HAVE_LONG_LONG_INT + /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_COUNT_LONGLONGINT_POINTER; else - /* If 'long long' is the same as 'long', we parse "lln" into - TYPE_COUNT_LONGINT_POINTER. */ +#endif + /* If 'long long' exists and is the same as 'long', we parse + "lln" into TYPE_COUNT_LONGINT_POINTER. */ if (flags >= 8) type = TYPE_COUNT_LONGINT_POINTER; else if (flags & 2) diff --git a/gl/printf-parse.h b/gl/printf-parse.h index 1f86e32..d8474be 100644 --- a/gl/printf-parse.h +++ b/gl/printf-parse.h @@ -1,19 +1,19 @@ /* Parse printf format string. - Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2023 Free Software + Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifndef _PRINTF_PARSE_H #define _PRINTF_PARSE_H diff --git a/gl/read.c b/gl/read.c new file mode 100644 index 0000000..0fe0306 --- /dev/null +++ b/gl/read.c @@ -0,0 +1,85 @@ +/* POSIX compatible read() function. + Copyright (C) 2008-2013 Free Software Foundation, Inc. + Written by Bruno Haible , 2011. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#include + +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + +# include +# include + +# define WIN32_LEAN_AND_MEAN /* avoid including junk */ +# include + +# include "msvc-inval.h" +# include "msvc-nothrow.h" + +# undef read + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +static ssize_t +read_nothrow (int fd, void *buf, size_t count) +{ + ssize_t result; + + TRY_MSVC_INVAL + { + result = read (fd, buf, count); + } + CATCH_MSVC_INVAL + { + result = -1; + errno = EBADF; + } + DONE_MSVC_INVAL; + + return result; +} +# else +# define read_nothrow read +# endif + +ssize_t +rpl_read (int fd, void *buf, size_t count) +{ + ssize_t ret = read_nothrow (fd, buf, count); + +# if GNULIB_NONBLOCKING + if (ret < 0 + && GetLastError () == ERROR_NO_DATA) + { + HANDLE h = (HANDLE) _get_osfhandle (fd); + if (GetFileType (h) == FILE_TYPE_PIPE) + { + /* h is a pipe or socket. */ + DWORD state; + if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0) + && (state & PIPE_NOWAIT) != 0) + /* h is a pipe in non-blocking mode. + Change errno from EINVAL to EAGAIN. */ + errno = EAGAIN; + } + } +# endif + + return ret; +} + +#endif diff --git a/gl/realloc.c b/gl/realloc.c deleted file mode 100644 index 1063eb0..0000000 --- a/gl/realloc.c +++ /dev/null @@ -1,63 +0,0 @@ -/* realloc() function that is glibc compatible. - - Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2023 Free Software - Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* written by Jim Meyering and Bruno Haible */ - -#include - -#include - -#include - -#include "xalloc-oversized.h" - -/* Call the system's realloc below. This file does not define - _GL_USE_STDLIB_ALLOC because it needs Gnulib's malloc if present. */ -#undef realloc - -/* Change the size of an allocated block of memory P to N bytes, - with error checking. If P is NULL, use malloc. Otherwise if N is zero, - free P and return NULL. */ - -void * -rpl_realloc (void *p, size_t n) -{ - if (p == NULL) - return malloc (n); - - if (n == 0) - { - free (p); - return NULL; - } - - if (xalloc_oversized (n, 1)) - { - errno = ENOMEM; - return NULL; - } - - void *result = realloc (p, n); - -#if !HAVE_MALLOC_POSIX - if (result == NULL) - errno = ENOMEM; -#endif - - return result; -} diff --git a/gl/reallocarray.c b/gl/reallocarray.c deleted file mode 100644 index 8c99250..0000000 --- a/gl/reallocarray.c +++ /dev/null @@ -1,38 +0,0 @@ -/* reallocarray function that is glibc compatible. - - Copyright (C) 2017-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* written by Darshit Shah */ - -#include - -#include -#include -#include - -void * -reallocarray (void *ptr, size_t nmemb, size_t size) -{ - size_t nbytes; - if (ckd_mul (&nbytes, nmemb, size)) - { - errno = ENOMEM; - return NULL; - } - - /* Rely on the semantics of GNU realloc. */ - return realloc (ptr, nbytes); -} diff --git a/gl/ref-add.sin b/gl/ref-add.sin new file mode 100644 index 0000000..112bcdc --- /dev/null +++ b/gl/ref-add.sin @@ -0,0 +1,29 @@ +# Add this package to a list of references stored in a text file. +# +# Copyright (C) 2000, 2009-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, see . +# +# Written by Bruno Haible . +# +/^# Packages using this file: / { + s/# Packages using this file:// + ta + :a + s/ @PACKAGE@ / @PACKAGE@ / + tb + s/ $/ @PACKAGE@ / + :b + s/^/# Packages using this file:/ +} diff --git a/gl/ref-del.sin b/gl/ref-del.sin new file mode 100644 index 0000000..6f73868 --- /dev/null +++ b/gl/ref-del.sin @@ -0,0 +1,24 @@ +# Remove this package from a list of references stored in a text file. +# +# Copyright (C) 2000, 2009-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, see . +# +# Written by Bruno Haible . +# +/^# Packages using this file: / { + s/# Packages using this file:// + s/ @PACKAGE@ / / + s/^/# Packages using this file:/ +} diff --git a/gl/regcomp.c b/gl/regcomp.c index 8947839..f0b2e52 100644 --- a/gl/regcomp.c +++ b/gl/regcomp.c @@ -1,25 +1,21 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public + modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public + You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ - -#ifdef _LIBC -# include -#endif + . */ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax); @@ -27,10 +23,14 @@ static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap); static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len); +#ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset); +#endif /* RE_ENABLE_I18N */ static void free_workarea_compile (regex_t *preg); static reg_errcode_t create_initial_state (re_dfa_t *dfa); +#ifdef RE_ENABLE_I18N static void optimize_utf8 (re_dfa_t *dfa); +#endif static reg_errcode_t analyze (regex_t *preg); static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), @@ -55,7 +55,7 @@ static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax); static int peek_token (re_token_t *token, re_string_t *input, - reg_syntax_t syntax); + reg_syntax_t syntax) internal_function; static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, @@ -85,6 +85,7 @@ static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token); +#ifdef RE_ENABLE_I18N static reg_errcode_t build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, @@ -95,6 +96,14 @@ static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax); +#else /* not RE_ENABLE_I18N */ +static reg_errcode_t build_equiv_class (bitset_t sbcset, + const unsigned char *name); +static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, + bitset_t sbcset, + const char *class_name, + reg_syntax_t syntax); +#endif /* not RE_ENABLE_I18N */ static bin_tree_t *build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const char *class_name, @@ -140,9 +149,9 @@ static const char __re_error_msgid[] = gettext_noop ("Invalid back reference") /* REG_ESUBREG */ "\0" #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") - gettext_noop ("Unmatched [, [^, [:, [., or [=") /* REG_EBRACK */ + gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */ "\0" -#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [, [^, [:, [., or [=") +#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^") gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ "\0" #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") @@ -200,9 +209,17 @@ static const size_t __re_error_msgid_idx[] = Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields are set in BUFP on entry. */ +#ifdef _LIBC +const char * +re_compile_pattern (pattern, length, bufp) + const char *pattern; + size_t length; + struct re_pattern_buffer *bufp; +#else /* size_t might promote */ const char * re_compile_pattern (const char *pattern, size_t length, struct re_pattern_buffer *bufp) +#endif { reg_errcode_t ret; @@ -220,7 +237,9 @@ re_compile_pattern (const char *pattern, size_t length, return NULL; return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } +#ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) +#endif /* Set by 're_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own @@ -238,17 +257,21 @@ reg_syntax_t re_syntax_options; defined in regex.h. We return the old syntax. */ reg_syntax_t -re_set_syntax (reg_syntax_t syntax) +re_set_syntax (syntax) + reg_syntax_t syntax; { reg_syntax_t ret = re_syntax_options; re_syntax_options = syntax; return ret; } +#ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) +#endif int -re_compile_fastmap (struct re_pattern_buffer *bufp) +re_compile_fastmap (bufp) + struct re_pattern_buffer *bufp; { re_dfa_t *dfa = bufp->buffer; char *fastmap = bufp->fastmap; @@ -264,9 +287,12 @@ re_compile_fastmap (struct re_pattern_buffer *bufp) bufp->fastmap_accurate = 1; return 0; } +#ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) +#endif -static __always_inline void +static inline void +__attribute__ ((always_inline)) re_set_fastmap (char *fastmap, bool icase, int ch) { fastmap[ch] = 1; @@ -292,6 +318,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, if (type == CHARACTER) { re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); +#ifdef RE_ENABLE_I18N if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { unsigned char buf[MB_LEN_MAX]; @@ -308,10 +335,11 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, memset (&state, '\0', sizeof (state)); if (__mbrtowc (&wc, (const char *) buf, p - buf, &state) == p - buf - && (__wcrtomb ((char *) buf, __towlower (wc), &state) + && (__wcrtomb ((char *) buf, towlower (wc), &state) != (size_t) -1)) re_set_fastmap (fastmap, false, buf[0]); } +#endif } else if (type == SIMPLE_BRACKET) { @@ -325,12 +353,13 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, re_set_fastmap (fastmap, icase, ch); } } +#ifdef RE_ENABLE_I18N else if (type == COMPLEX_BRACKET) { re_charset_t *cset = dfa->nodes[node].opr.mbcset; Idx i; -#ifdef _LIBC +# ifdef _LIBC /* See if we have to try all bytes which start multiple collation elements. e.g. In da_DK, we want to catch 'a' since "aa" is a valid @@ -346,7 +375,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, if (table[i] < 0) re_set_fastmap (fastmap, icase, i); } -#endif /* _LIBC */ +# endif /* _LIBC */ /* See if we have to start the match at all multibyte characters, i.e. where we would not find an invalid sequence. This only @@ -354,9 +383,9 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, sets, the SIMPLE_BRACKET again suffices. */ if (dfa->mb_cur_max > 1 && (cset->nchar_classes || cset->non_match || cset->nranges -#ifdef _LIBC +# ifdef _LIBC || cset->nequiv_classes -#endif /* _LIBC */ +# endif /* _LIBC */ )) { unsigned char c = 0; @@ -382,14 +411,19 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, re_set_fastmap (fastmap, icase, *(unsigned char *) buf); if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { - if (__wcrtomb (buf, __towlower (cset->mbchars[i]), &state) + if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state) != (size_t) -1) re_set_fastmap (fastmap, false, *(unsigned char *) buf); } } } } - else if (type == OP_PERIOD || type == OP_UTF8_PERIOD || type == END_OF_RE) +#endif /* RE_ENABLE_I18N */ + else if (type == OP_PERIOD +#ifdef RE_ENABLE_I18N + || type == OP_UTF8_PERIOD +#endif /* RE_ENABLE_I18N */ + || type == END_OF_RE) { memset (fastmap, '\1', sizeof (char) * SBC_MAX); if (type == END_OF_RE) @@ -436,7 +470,10 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, the return codes and their meanings.) */ int -regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) +regcomp (preg, pattern, cflags) + regex_t *_Restrict_ preg; + const char *_Restrict_ pattern; + int cflags; { reg_errcode_t ret; reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED @@ -448,7 +485,7 @@ regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) /* Try to allocate space for the fastmap. */ preg->fastmap = re_malloc (char, SBC_MAX); - if (__glibc_unlikely (preg->fastmap == NULL)) + if (BE (preg->fastmap == NULL, 0)) return REG_ESPACE; syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0; @@ -474,7 +511,7 @@ regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) ret = REG_EPAREN; /* We have already checked preg->fastmap != NULL. */ - if (__glibc_likely (ret == REG_NOERROR)) + if (BE (ret == REG_NOERROR, 1)) /* Compute the fastmap now, since regexec cannot modify the pattern buffer. This function never fails in this implementation. */ (void) re_compile_fastmap (preg); @@ -487,21 +524,32 @@ regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) return (int) ret; } -libc_hidden_def (__regcomp) +#ifdef _LIBC weak_alias (__regcomp, regcomp) +#endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ +#ifdef _LIBC size_t -regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, - size_t errbuf_size) +regerror (errcode, preg, errbuf, errbuf_size) + int errcode; + const regex_t *_Restrict_ preg; + char *_Restrict_ errbuf; + size_t errbuf_size; +#else /* size_t might promote */ +size_t +regerror (int errcode, const regex_t *_Restrict_ preg, + char *_Restrict_ errbuf, size_t errbuf_size) +#endif { const char *msg; size_t msg_size; - int nerrcodes = sizeof __re_error_msgid_idx / sizeof __re_error_msgid_idx[0]; - if (__glibc_unlikely (errcode < 0 || errcode >= nerrcodes)) + if (BE (errcode < 0 + || errcode >= (int) (sizeof (__re_error_msgid_idx) + / sizeof (__re_error_msgid_idx[0])), 0)) /* Only error codes returned by the rest of the code should be passed to this routine. If we are given anything else, or if other regex code generates an invalid error code, then the program has a bug. @@ -512,10 +560,10 @@ regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, msg_size = strlen (msg) + 1; /* Includes the null. */ - if (__glibc_likely (errbuf_size != 0)) + if (BE (errbuf_size != 0, 1)) { size_t cpy_size = msg_size; - if (__glibc_unlikely (msg_size > errbuf_size)) + if (BE (msg_size > errbuf_size, 0)) { cpy_size = errbuf_size - 1; errbuf[cpy_size] = '\0'; @@ -525,9 +573,12 @@ regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, return msg_size; } +#ifdef _LIBC weak_alias (__regerror, regerror) +#endif +#ifdef RE_ENABLE_I18N /* This static array is used for the map to single-byte characters when UTF-8 is used. Otherwise we would allocate memory just to initialize it the same all the time. UTF-8 is the preferred encoding so this is @@ -535,24 +586,25 @@ weak_alias (__regerror, regerror) static const bitset_t utf8_sb_map = { /* Set the first 128 bits. */ -#if (defined __GNUC__ || __clang_major__ >= 4) && !defined __STRICT_ANSI__ +# if defined __GNUC__ && !defined __STRICT_ANSI__ [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX -#else -# if 4 * BITSET_WORD_BITS < ASCII_CHARS -# error "bitset_word_t is narrower than 32 bits" -# elif 3 * BITSET_WORD_BITS < ASCII_CHARS +# else +# if 4 * BITSET_WORD_BITS < ASCII_CHARS +# error "bitset_word_t is narrower than 32 bits" +# elif 3 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX, -# elif 2 * BITSET_WORD_BITS < ASCII_CHARS +# elif 2 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, -# elif 1 * BITSET_WORD_BITS < ASCII_CHARS +# elif 1 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, -# endif +# endif (BITSET_WORD_MAX >> (SBC_MAX % BITSET_WORD_BITS == 0 ? 0 : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS)) -#endif +# endif }; +#endif static void @@ -590,8 +642,10 @@ free_dfa_content (re_dfa_t *dfa) re_free (entry->array); } re_free (dfa->state_table); +#ifdef RE_ENABLE_I18N if (dfa->sb_char != utf8_sb_map) re_free (dfa->sb_char); +#endif re_free (dfa->subexp_map); #ifdef DEBUG re_free (dfa->re_str); @@ -604,10 +658,11 @@ free_dfa_content (re_dfa_t *dfa) /* Free dynamically allocated space used by PREG. */ void -regfree (regex_t *preg) +regfree (preg) + regex_t *preg; { re_dfa_t *dfa = preg->buffer; - if (__glibc_likely (dfa != NULL)) + if (BE (dfa != NULL, 1)) { lock_fini (dfa->lock); free_dfa_content (dfa); @@ -621,8 +676,9 @@ regfree (regex_t *preg) re_free (preg->translate); preg->translate = NULL; } -libc_hidden_def (__regfree) +#ifdef _LIBC weak_alias (__regfree, regfree) +#endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ @@ -639,7 +695,8 @@ char * regcomp/regexec above without link errors. */ weak_function # endif -re_comp (const char *s) +re_comp (s) + const char *s; { reg_errcode_t ret; char *fastmap; @@ -662,7 +719,7 @@ re_comp (const char *s) if (re_comp_buf.fastmap == NULL) { - re_comp_buf.fastmap = re_malloc (char, SBC_MAX); + re_comp_buf.fastmap = (char *) malloc (SBC_MAX); if (re_comp_buf.fastmap == NULL) return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) REG_ESPACE]); @@ -715,7 +772,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, /* Initialize the dfa. */ dfa = preg->buffer; - if (__glibc_unlikely (preg->allocated < sizeof (re_dfa_t))) + if (BE (preg->allocated < sizeof (re_dfa_t), 0)) { /* If zero allocated, but buffer is non-null, try to realloc enough space. This loses if buffer's address is bogus, but @@ -730,9 +787,9 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, preg->used = sizeof (re_dfa_t); err = init_dfa (dfa, length); - if (__glibc_unlikely (err == REG_NOERROR && lock_init (dfa->lock) != 0)) + if (BE (err == REG_NOERROR && lock_init (dfa->lock) != 0, 0)) err = REG_ESPACE; - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { free_dfa_content (dfa); preg->buffer = NULL; @@ -747,7 +804,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, err = re_string_construct (®exp, pattern, length, preg->translate, (syntax & RE_ICASE) != 0, dfa); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_compile_internal_free_return: free_workarea_compile (preg); @@ -762,17 +819,19 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, /* Parse the regular expression, and build a structure tree. */ preg->re_nsub = 0; dfa->str_tree = parse (®exp, preg, syntax, &err); - if (__glibc_unlikely (dfa->str_tree == NULL)) + if (BE (dfa->str_tree == NULL, 0)) goto re_compile_internal_free_return; /* Analyze the tree and create the nfa. */ err = analyze (preg); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto re_compile_internal_free_return; +#ifdef RE_ENABLE_I18N /* If possible, do searching in single byte encoding to speed things up. */ if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL) optimize_utf8 (dfa); +#endif /* Then create the initial state of the dfa. */ err = create_initial_state (dfa); @@ -781,7 +840,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, free_workarea_compile (preg); re_string_destruct (®exp); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { lock_fini (dfa->lock); free_dfa_content (dfa); @@ -802,7 +861,11 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) #ifndef _LIBC const char *codeset_name; #endif +#ifdef RE_ENABLE_I18N size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t)); +#else + size_t max_i18n_object_size = 0; +#endif size_t max_object_size = MAX (sizeof (struct re_state_table_entry), MAX (sizeof (re_token_t), @@ -819,8 +882,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) calculation below, and for similar doubling calculations elsewhere. And it's <= rather than <, because some of the doubling calculations add 1 afterwards. */ - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 - <= pat_len)) + if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0)) return REG_ESPACE; dfa->nodes_alloc = pat_len + 1; @@ -854,6 +916,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) dfa->map_notascii = 0; #endif +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { if (dfa->is_utf8) @@ -863,7 +926,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) int i, j, ch; dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); - if (__glibc_unlikely (dfa->sb_char == NULL)) + if (BE (dfa->sb_char == NULL, 0)) return REG_ESPACE; /* Set the bits corresponding to single byte chars. */ @@ -873,15 +936,16 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) wint_t wch = __btowc (ch); if (wch != WEOF) dfa->sb_char[i] |= (bitset_word_t) 1 << j; -#ifndef _LIBC +# ifndef _LIBC if (isascii (ch) && wch != ch) dfa->map_notascii = 1; -#endif +# endif } } } +#endif - if (__glibc_unlikely (dfa->nodes == NULL || dfa->state_table == NULL)) + if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0)) return REG_ESPACE; return REG_NOERROR; } @@ -891,13 +955,14 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) character used by some operators like "\<", "\>", etc. */ static void +internal_function init_word_char (re_dfa_t *dfa) { int i = 0; int j; int ch = 0; dfa->word_ops_used = 1; - if (__glibc_likely (dfa->map_notascii == 0)) + if (BE (dfa->map_notascii == 0, 1)) { bitset_word_t bits0 = 0x00000000; bitset_word_t bits1 = 0x03ff0000; @@ -905,7 +970,6 @@ init_word_char (re_dfa_t *dfa) bitset_word_t bits3 = 0x07fffffe; if (BITSET_WORD_BITS == 64) { - /* Pacify gcc -Woverflow on 32-bit platformns. */ dfa->word_char[0] = bits1 << 31 << 1 | bits0; dfa->word_char[1] = bits3 << 31 << 1 | bits2; i = 2; @@ -922,7 +986,7 @@ init_word_char (re_dfa_t *dfa) goto general_case; ch = 128; - if (__glibc_likely (dfa->is_utf8)) + if (BE (dfa->is_utf8, 1)) { memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8); return; @@ -969,7 +1033,7 @@ create_initial_state (re_dfa_t *dfa) first = dfa->str_tree->first->node_idx; dfa->init_node = first; err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; /* The back-references which are in initial states can epsilon transit, @@ -1013,7 +1077,7 @@ create_initial_state (re_dfa_t *dfa) /* It must be the first time to invoke acquire_state. */ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0); /* We don't check ERR here, since the initial state must not be NULL. */ - if (__glibc_unlikely (dfa->init_state == NULL)) + if (BE (dfa->init_state == NULL, 0)) return err; if (dfa->init_state->has_constraint) { @@ -1025,9 +1089,8 @@ create_initial_state (re_dfa_t *dfa) &init_nodes, CONTEXT_NEWLINE | CONTEXT_BEGBUF); - if (__glibc_unlikely (dfa->init_state_word == NULL - || dfa->init_state_nl == NULL - || dfa->init_state_begbuf == NULL)) + if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL + || dfa->init_state_begbuf == NULL, 0)) return err; } else @@ -1038,6 +1101,7 @@ create_initial_state (re_dfa_t *dfa) return REG_NOERROR; } +#ifdef RE_ENABLE_I18N /* If it is possible to do searching in single byte encoding instead of UTF-8 to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change DFA nodes where needed. */ @@ -1117,6 +1181,7 @@ optimize_utf8 (re_dfa_t *dfa) dfa->is_utf8 = 0; dfa->has_mb_node = dfa->nbackref > 0 || has_period; } +#endif /* Analyze the structure tree, and calculate "first", "next", "edest", "eclosure", and "inveclosure". */ @@ -1132,8 +1197,8 @@ analyze (regex_t *preg) dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc); dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc); dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc); - if (__glibc_unlikely (dfa->nexts == NULL || dfa->org_indices == NULL - || dfa->edests == NULL || dfa->eclosures == NULL)) + if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL + || dfa->eclosures == NULL, 0)) return REG_ESPACE; dfa->subexp_map = re_malloc (Idx, preg->re_nsub); @@ -1148,23 +1213,23 @@ analyze (regex_t *preg) break; if (i == preg->re_nsub) { - re_free (dfa->subexp_map); + free (dfa->subexp_map); dfa->subexp_map = NULL; } } ret = postorder (dfa->str_tree, lower_subexps, preg); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; ret = postorder (dfa->str_tree, calc_first, dfa); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; preorder (dfa->str_tree, calc_next, dfa); ret = preorder (dfa->str_tree, link_nfa_nodes, dfa); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; ret = calc_eclosure (dfa); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; /* We only need this during the prune_impossible_nodes pass in regexec.c; @@ -1173,7 +1238,7 @@ analyze (regex_t *preg) || dfa->nbackref) { dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); - if (__glibc_unlikely (dfa->inveclosures == NULL)) + if (BE (dfa->inveclosures == NULL, 0)) return REG_ESPACE; ret = calc_inveclosure (dfa); } @@ -1203,7 +1268,7 @@ postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), do { reg_errcode_t err = fn (extra, node); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; if (node->parent == NULL) return REG_NOERROR; @@ -1225,7 +1290,7 @@ preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), for (node = root; ; ) { reg_errcode_t err = fn (extra, node); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; /* Go to the left node, or up and to the right. */ @@ -1326,8 +1391,7 @@ lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP); tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls; tree = create_tree (dfa, op, tree1, CONCAT); - if (__glibc_unlikely (tree == NULL || tree1 == NULL - || op == NULL || cls == NULL)) + if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -1353,7 +1417,7 @@ calc_first (void *extra, bin_tree_t *node) { node->first = node; node->node_idx = re_dfa_add_node (dfa, node->token); - if (__glibc_unlikely (node->node_idx == -1)) + if (BE (node->node_idx == REG_MISSING, 0)) return REG_ESPACE; if (node->token.type == ANCHOR) dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; @@ -1398,7 +1462,7 @@ link_nfa_nodes (void *extra, bin_tree_t *node) break; case END_OF_RE: - DEBUG_ASSERT (node->next == NULL); + assert (node->next == NULL); break; case OP_DUP_ASTERISK: @@ -1414,8 +1478,8 @@ link_nfa_nodes (void *extra, bin_tree_t *node) right = node->right->first->node_idx; else right = node->next->node_idx; - DEBUG_ASSERT (left > -1); - DEBUG_ASSERT (right > -1); + assert (REG_VALID_INDEX (left)); + assert (REG_VALID_INDEX (right)); err = re_node_set_init_2 (dfa->edests + idx, left, right); } break; @@ -1433,7 +1497,7 @@ link_nfa_nodes (void *extra, bin_tree_t *node) break; default: - DEBUG_ASSERT (!IS_EPSILON_NODE (node->token.type)); + assert (!IS_EPSILON_NODE (node->token.type)); dfa->nexts[idx] = node->next->node_idx; break; } @@ -1446,6 +1510,7 @@ link_nfa_nodes (void *extra, bin_tree_t *node) to their own constraint. */ static reg_errcode_t +internal_function duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, Idx root_node, unsigned int init_constraint) { @@ -1464,11 +1529,11 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, org_dest = dfa->nexts[org_node]; re_node_set_empty (dfa->edests + clone_node); clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) + if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; dfa->nexts[clone_node] = dfa->nexts[org_node]; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; } else if (dfa->edests[org_node].nelem == 0) @@ -1490,17 +1555,17 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, if (org_node == root_node && clone_node != org_node) { ok = re_node_set_insert (dfa->edests + clone_node, org_dest); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; break; } /* In case the node has another constraint, append it. */ constraint |= dfa->nodes[org_node].constraint; clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) + if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; } else /* dfa->edests[org_node].nelem == 2 */ @@ -1511,19 +1576,19 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, re_node_set_empty (dfa->edests + clone_node); /* Search for a duplicated node which satisfies the constraint. */ clone_dest = search_duplicated_node (dfa, org_dest, constraint); - if (clone_dest == -1) + if (clone_dest == REG_MISSING) { /* There is no such duplicated node, create a new one. */ reg_errcode_t err; clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) + if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; err = duplicate_node_closure (dfa, org_dest, clone_dest, root_node, constraint); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } else @@ -1531,16 +1596,16 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, /* There is a duplicated node which satisfies the constraint, use it to avoid infinite loop. */ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; } org_dest = dfa->edests[org_node].elems[1]; clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) + if (BE (clone_dest == REG_MISSING, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; } org_node = org_dest; @@ -1563,18 +1628,18 @@ search_duplicated_node (const re_dfa_t *dfa, Idx org_node, && constraint == dfa->nodes[idx].constraint) return idx; /* Found. */ } - return -1; /* Not found. */ + return REG_MISSING; /* Not found. */ } /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. - Return the index of the new node, or -1 if insufficient storage is + Return the index of the new node, or REG_MISSING if insufficient storage is available. */ static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint) { Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); - if (__glibc_likely (dup_idx != -1)) + if (BE (dup_idx != REG_MISSING, 1)) { dfa->nodes[dup_idx].constraint = constraint; dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint; @@ -1600,7 +1665,7 @@ calc_inveclosure (re_dfa_t *dfa) for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx) { ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; } } @@ -1615,7 +1680,9 @@ calc_eclosure (re_dfa_t *dfa) { Idx node_idx; bool incomplete; - DEBUG_ASSERT (dfa->nodes_len > 0); +#ifdef DEBUG + assert (dfa->nodes_len > 0); +#endif incomplete = false; /* For each nodes, calculate epsilon closure. */ for (node_idx = 0; ; ++node_idx) @@ -1630,14 +1697,16 @@ calc_eclosure (re_dfa_t *dfa) node_idx = 0; } - DEBUG_ASSERT (dfa->eclosures[node_idx].nelem != -1); +#ifdef DEBUG + assert (dfa->eclosures[node_idx].nelem != REG_MISSING); +#endif /* If we have already calculated, skip it. */ if (dfa->eclosures[node_idx].nelem != 0) continue; /* Calculate epsilon closure of 'node_idx'. */ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; if (dfa->eclosures[node_idx].nelem == 0) @@ -1657,17 +1726,15 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) reg_errcode_t err; Idx i; re_node_set eclosure; + bool ok; bool incomplete = false; err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; - /* An epsilon closure includes itself. */ - eclosure.elems[eclosure.nelem++] = node; - /* This indicates that we are calculating this node now. We reference this value to avoid infinite loop. */ - dfa->eclosures[node].nelem = -1; + dfa->eclosures[node].nelem = REG_MISSING; /* If the current node has constraints, duplicate all nodes since they must inherit the constraints. */ @@ -1677,7 +1744,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) { err = duplicate_node_closure (dfa, node, node, node, dfa->nodes[node].constraint); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } @@ -1689,7 +1756,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) Idx edest = dfa->edests[node].elems[i]; /* If calculating the epsilon closure of 'edest' is in progress, return intermediate result. */ - if (dfa->eclosures[edest].nelem == -1) + if (dfa->eclosures[edest].nelem == REG_MISSING) { incomplete = true; continue; @@ -1699,14 +1766,14 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) if (dfa->eclosures[edest].nelem == 0) { err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } else eclosure_elem = dfa->eclosures[edest]; /* Merge the epsilon closure of 'edest'. */ err = re_node_set_merge (&eclosure, &eclosure_elem); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; /* If the epsilon closure of 'edest' is incomplete, the epsilon closure of this node is also incomplete. */ @@ -1717,6 +1784,10 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) } } + /* An epsilon closure includes itself. */ + ok = re_node_set_insert (&eclosure, node); + if (BE (! ok, 0)) + return REG_ESPACE; if (incomplete && !root) dfa->eclosures[node].nelem = 0; else @@ -1731,6 +1802,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) We must not use this function inside bracket expressions. */ static void +internal_function fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) { re_string_skip_bytes (input, peek_token (result, input, syntax)); @@ -1740,6 +1812,7 @@ fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) We must not use this function inside bracket expressions. */ static int +internal_function peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; @@ -1754,14 +1827,16 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) token->opr.c = c; token->word_char = 0; +#ifdef RE_ENABLE_I18N token->mb_partial = 0; - if (input->mb_cur_max > 1 - && !re_string_first_byte (input, re_string_cur_idx (input))) + if (input->mb_cur_max > 1 && + !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; token->mb_partial = 1; return 1; } +#endif if (c == '\\') { unsigned char c2; @@ -1774,6 +1849,7 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) c2 = re_string_peek_byte_case (input, 1); token->opr.c = c2; token->type = CHARACTER; +#ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, @@ -1781,6 +1857,7 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else +#endif token->word_char = IS_WORD_CHAR (c2) != 0; switch (c2) @@ -1886,12 +1963,14 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) } token->type = CHARACTER; +#ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else +#endif token->word_char = IS_WORD_CHAR (token->opr.c); switch (c) @@ -1938,8 +2017,8 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) token->type = OP_PERIOD; break; case '^': - if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) - && re_string_cur_idx (input) != 0) + if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) && + re_string_cur_idx (input) != 0) { char prev = re_string_peek_byte (input, -1); if (!(syntax & RE_NEWLINE_ALT) || prev != '\n') @@ -1949,8 +2028,8 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) token->opr.ctx_type = LINE_FIRST; break; case '$': - if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) - && re_string_cur_idx (input) + 1 != re_string_length (input)) + if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) && + re_string_cur_idx (input) + 1 != re_string_length (input)) { re_token_t next; re_string_skip_bytes (input, 1); @@ -1972,6 +2051,7 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) We must not use this function out of bracket expressions. */ static int +internal_function peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; @@ -1983,12 +2063,14 @@ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) c = re_string_peek_byte (input, 0); token->opr.c = c; - if (input->mb_cur_max > 1 - && !re_string_first_byte (input, re_string_cur_idx (input))) +#ifdef RE_ENABLE_I18N + if (input->mb_cur_max > 1 && + !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; return 1; } +#endif /* RE_ENABLE_I18N */ if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && re_string_cur_idx (input) + 1 < re_string_length (input)) @@ -2016,18 +2098,16 @@ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) case '.': token->type = OP_OPEN_COLL_ELEM; break; - case '=': token->type = OP_OPEN_EQUIV_CLASS; break; - case ':': if (syntax & RE_CHAR_CLASSES) { token->type = OP_OPEN_CHAR_CLASS; break; } - FALLTHROUGH; + /* else fall through. */ default: token->type = CHARACTER; token->opr.c = c; @@ -2038,25 +2118,15 @@ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) } switch (c) { + case '-': + token->type = OP_CHARSET_RANGE; + break; case ']': token->type = OP_CLOSE_BRACKET; break; case '^': token->type = OP_NON_MATCH_LIST; break; - case '-': - /* In V7 Unix grep and Unix awk and mawk, [...---...] - (3 adjacent minus signs) stands for a single minus sign. - Support that without breaking anything else. */ - if (! (re_string_cur_idx (input) + 2 < re_string_length (input) - && re_string_peek_byte (input, 1) == '-' - && re_string_peek_byte (input, 2) == '-')) - { - token->type = OP_CHARSET_RANGE; - break; - } - re_string_skip_bytes (input, 2); - FALLTHROUGH; default: token->type = CHARACTER; } @@ -2087,14 +2157,14 @@ parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, dfa->syntax = syntax; fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE); tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) + if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; eor = create_tree (dfa, NULL, NULL, END_OF_RE); if (tree != NULL) root = create_tree (dfa, tree, eor, CONCAT); else root = eor; - if (__glibc_unlikely (eor == NULL || root == NULL)) + if (BE (eor == NULL || root == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -2117,9 +2187,8 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree, *branch = NULL; - bitset_word_t initial_bkref_map = dfa->completed_bkref_map; tree = parse_branch (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) + if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type == OP_ALT) @@ -2128,21 +2197,14 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, if (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { - bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map; - dfa->completed_bkref_map = initial_bkref_map; branch = parse_branch (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && branch == NULL)) - { - if (tree != NULL) - postorder (tree, free_tree, NULL); - return NULL; - } - dfa->completed_bkref_map |= accumulated_bkref_map; + if (BE (*err != REG_NOERROR && branch == NULL, 0)) + return NULL; } else branch = NULL; tree = create_tree (dfa, tree, branch, OP_ALT); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -2167,14 +2229,14 @@ parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, bin_tree_t *tree, *expr; re_dfa_t *dfa = preg->buffer; tree = parse_expression (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) + if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { expr = parse_expression (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && expr == NULL)) + if (BE (*err != REG_NOERROR && expr == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); @@ -2215,11 +2277,12 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, { case CHARACTER: tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (!re_string_eoi (regexp) @@ -2229,36 +2292,34 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, fetch_token (token, regexp, syntax); mbc_remain = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree, mbc_remain, CONCAT); - if (__glibc_unlikely (mbc_remain == NULL || tree == NULL)) + if (BE (mbc_remain == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } } +#endif break; - case OP_OPEN_SUBEXP: tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) + if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; - case OP_OPEN_BRACKET: tree = parse_bracket_exp (regexp, dfa, token, syntax, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) + if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; - case OP_BACK_REF: - if (!__glibc_likely (dfa->completed_bkref_map & (1 << token->opr.idx))) + if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1)) { *err = REG_ESUBREG; return NULL; } dfa->used_bkref_map |= 1 << token->opr.idx; tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -2266,14 +2327,13 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, ++dfa->nbackref; dfa->has_mb_node = 1; break; - case OP_OPEN_DUP_NUM: if (syntax & RE_CONTEXT_INVALID_DUP) { *err = REG_BADRPT; return NULL; } - FALLTHROUGH; + /* FALLTHROUGH */ case OP_DUP_ASTERISK: case OP_DUP_PLUS: case OP_DUP_QUESTION: @@ -2287,15 +2347,15 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, fetch_token (token, regexp, syntax); return parse_expression (regexp, preg, token, syntax, nest, err); } - FALLTHROUGH; + /* else fall through */ case OP_CLOSE_SUBEXP: - if ((token->type == OP_CLOSE_SUBEXP) - && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)) + if ((token->type == OP_CLOSE_SUBEXP) && + !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)) { *err = REG_ERPAREN; return NULL; } - FALLTHROUGH; + /* else fall through */ case OP_CLOSE_DUP_NUM: /* We treat it as a normal character. */ @@ -2304,13 +2364,12 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, /* mb_partial and word_char bits should be initialized already by peek_token. */ tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } break; - case ANCHOR: if ((token->opr.ctx_type & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST)) @@ -2334,8 +2393,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, } tree_last = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree_first, tree_last, OP_ALT); - if (__glibc_unlikely (tree_first == NULL || tree_last == NULL - || tree == NULL)) + if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -2344,7 +2402,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, else { tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -2356,10 +2414,9 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, it must not be "". */ fetch_token (token, regexp, syntax); return tree; - case OP_PERIOD: tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -2367,38 +2424,35 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, if (dfa->mb_cur_max > 1) dfa->has_mb_node = 1; break; - case OP_WORD: case OP_NOTWORD: tree = build_charclass_op (dfa, regexp->trans, "alnum", "_", token->type == OP_NOTWORD, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) + if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; - case OP_SPACE: case OP_NOTSPACE: tree = build_charclass_op (dfa, regexp->trans, "space", "", token->type == OP_NOTSPACE, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) + if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; - case OP_ALT: case END_OF_RE: return NULL; - case BACK_SLASH: *err = REG_EESCAPE; return NULL; - default: /* Must not happen? */ - DEBUG_ASSERT (false); +#ifdef DEBUG + assert (0); +#endif return NULL; } fetch_token (token, regexp, syntax); @@ -2406,22 +2460,14 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM) { - bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token, - syntax, err); - if (__glibc_unlikely (*err != REG_NOERROR && dup_tree == NULL)) - { - if (tree != NULL) - postorder (tree, free_tree, NULL); - return NULL; - } - tree = dup_tree; + tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); + if (BE (*err != REG_NOERROR && tree == NULL, 0)) + return NULL; /* In BRE consecutive duplications are not allowed. */ if ((syntax & RE_CONTEXT_INVALID_DUP) && (token->type == OP_DUP_ASTERISK || token->type == OP_OPEN_DUP_NUM)) { - if (tree != NULL) - postorder (tree, free_tree, NULL); *err = REG_BADRPT; return NULL; } @@ -2454,14 +2500,13 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, else { tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err == REG_NOERROR - && token->type != OP_CLOSE_SUBEXP)) + if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); *err = REG_EPAREN; } - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) return NULL; } @@ -2469,7 +2514,7 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, dfa->completed_bkref_map |= 1 << cur_nsub; tree = create_tree (dfa, tree, NULL, SUBEXP); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; @@ -2492,7 +2537,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, { end = 0; start = fetch_number (regexp, token, syntax); - if (start == -1) + if (start == REG_MISSING) { if (token->type == CHARACTER && token->opr.c == ',') start = 0; /* We treat "{,m}" as "{0,m}". */ @@ -2502,17 +2547,17 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, return NULL; } } - if (__glibc_likely (start != -2)) + if (BE (start != REG_ERROR, 1)) { /* We treat "{n}" as "{n,n}". */ end = ((token->type == OP_CLOSE_DUP_NUM) ? start : ((token->type == CHARACTER && token->opr.c == ',') - ? fetch_number (regexp, token, syntax) : -2)); + ? fetch_number (regexp, token, syntax) : REG_ERROR)); } - if (__glibc_unlikely (start == -2 || end == -2)) + if (BE (start == REG_ERROR || end == REG_ERROR, 0)) { /* Invalid sequence. */ - if (__glibc_unlikely (!(syntax & RE_INVALID_INTERVAL_ORD))) + if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0)) { if (token->type == END_OF_RE) *err = REG_EBRACE; @@ -2531,15 +2576,15 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, return elem; } - if (__glibc_unlikely ((end != -1 && start > end) - || token->type != OP_CLOSE_DUP_NUM)) + if (BE ((end != REG_MISSING && start > end) + || token->type != OP_CLOSE_DUP_NUM, 0)) { /* First number greater than second. */ *err = REG_BADBR; return NULL; } - if (__glibc_unlikely (RE_DUP_MAX < (end == -1 ? start : end))) + if (BE (RE_DUP_MAX < (end == REG_MISSING ? start : end), 0)) { *err = REG_ESIZE; return NULL; @@ -2548,28 +2593,28 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, else { start = (token->type == OP_DUP_PLUS) ? 1 : 0; - end = (token->type == OP_DUP_QUESTION) ? 1 : -1; + end = (token->type == OP_DUP_QUESTION) ? 1 : REG_MISSING; } fetch_token (token, regexp, syntax); - if (__glibc_unlikely (elem == NULL)) + if (BE (elem == NULL, 0)) return NULL; - if (__glibc_unlikely (start == 0 && end == 0)) + if (BE (start == 0 && end == 0, 0)) { postorder (elem, free_tree, NULL); return NULL; } /* Extract "{n,m}" to "...{0,}". */ - if (__glibc_unlikely (start > 0)) + if (BE (start > 0, 0)) { tree = elem; for (i = 2; i <= start; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); - if (__glibc_unlikely (elem == NULL || tree == NULL)) + if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; } @@ -2578,8 +2623,6 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, /* Duplicate ELEM before it is marked optional. */ elem = duplicate_tree (elem, dfa); - if (__glibc_unlikely (elem == NULL)) - goto parse_dup_op_espace; old_tree = tree; } else @@ -2592,23 +2635,27 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, } tree = create_tree (dfa, elem, NULL, - (end == -1 ? OP_DUP_ASTERISK : OP_ALT)); - if (__glibc_unlikely (tree == NULL)) + (end == REG_MISSING ? OP_DUP_ASTERISK : OP_ALT)); + if (BE (tree == NULL, 0)) goto parse_dup_op_espace; - /* This loop is actually executed only when end != -1, +/* From gnulib's "intprops.h": + True if the arithmetic type T is signed. */ +#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) + + /* This loop is actually executed only when end != REG_MISSING, to rewrite {0,n} as ((...?)?)?... We have already created the start+1-th copy. */ - if (TYPE_SIGNED (Idx) || end != -1) + if (TYPE_SIGNED (Idx) || end != REG_MISSING) for (i = start + 2; i <= end; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); - if (__glibc_unlikely (elem == NULL || tree == NULL)) + if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; tree = create_tree (dfa, tree, NULL, OP_ALT); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) goto parse_dup_op_espace; } @@ -2627,131 +2674,146 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, #define BRACKET_NAME_BUF_SIZE 32 #ifndef _LIBC - -/* Convert the byte B to the corresponding wide character. In a - unibyte locale, treat B as itself. In a multibyte locale, return - WEOF if B is an encoding error. */ -static wint_t -parse_byte (unsigned char b, re_dfa_t const *dfa) -{ - return dfa->mb_cur_max > 1 ? __btowc (b) : b; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Build the range expression which starts from START_ELEM, and ends - at END_ELEM. The result are written to MBCSET and SBCSET. - RANGE_ALLOC is the allocated size of mbcset->range_starts, and - mbcset->range_ends, is a pointer argument since we may - update it. */ + /* Local function for parse_bracket_exp only used in case of NOT _LIBC. + Build the range expression which starts from START_ELEM, and ends + at END_ELEM. The result are written to MBCSET and SBCSET. + RANGE_ALLOC is the allocated size of mbcset->range_starts, and + mbcset->range_ends, is a pointer argument since we may + update it. */ static reg_errcode_t -build_range_exp (bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc, - bracket_elem_t *start_elem, bracket_elem_t *end_elem, - re_dfa_t *dfa, reg_syntax_t syntax, uint_fast32_t nrules, - const unsigned char *collseqmb, const char *collseqwc, - int_fast32_t table_size, const void *symb_table, - const unsigned char *extra) +internal_function +# ifdef RE_ENABLE_I18N +build_range_exp (const reg_syntax_t syntax, + bitset_t sbcset, + re_charset_t *mbcset, + Idx *range_alloc, + const bracket_elem_t *start_elem, + const bracket_elem_t *end_elem) +# else /* not RE_ENABLE_I18N */ +build_range_exp (const reg_syntax_t syntax, + bitset_t sbcset, + const bracket_elem_t *start_elem, + const bracket_elem_t *end_elem) +# endif /* not RE_ENABLE_I18N */ { + unsigned int start_ch, end_ch; /* Equivalence Classes and Character Classes can't be a range start/end. */ - if (__glibc_unlikely (start_elem->type == EQUIV_CLASS - || start_elem->type == CHAR_CLASS - || end_elem->type == EQUIV_CLASS - || end_elem->type == CHAR_CLASS)) + if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS + || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, + 0)) return REG_ERANGE; /* We can handle no multi character collating elements without libc support. */ - if (__glibc_unlikely ((start_elem->type == COLL_SYM - && strlen ((char *) start_elem->opr.name) > 1) - || (end_elem->type == COLL_SYM - && strlen ((char *) end_elem->opr.name) > 1))) + if (BE ((start_elem->type == COLL_SYM + && strlen ((char *) start_elem->opr.name) > 1) + || (end_elem->type == COLL_SYM + && strlen ((char *) end_elem->opr.name) > 1), 0)) return REG_ECOLLATE; - unsigned int +# ifdef RE_ENABLE_I18N + { + wchar_t wc; + wint_t start_wc; + wint_t end_wc; + start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] - : 0)), + : 0)); end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); - wint_t start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) - ? parse_byte (start_ch, dfa) : start_elem->opr.wch), + ? __btowc (start_ch) : start_elem->opr.wch); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) - ? parse_byte (end_ch, dfa) : end_elem->opr.wch); + ? __btowc (end_ch) : end_elem->opr.wch); + if (start_wc == WEOF || end_wc == WEOF) + return REG_ECOLLATE; + else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0)) + return REG_ERANGE; - if (start_wc == WEOF || end_wc == WEOF) - return REG_ECOLLATE; - else if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES) - && start_wc > end_wc)) - return REG_ERANGE; + /* Got valid collation sequence values, add them as a new entry. + However, for !_LIBC we have no collation elements: if the + character set is single byte, the single byte character set + that we build below suffices. parse_bracket_exp passes + no MBCSET if dfa->mb_cur_max == 1. */ + if (mbcset) + { + /* Check the space of the arrays. */ + if (BE (*range_alloc == mbcset->nranges, 0)) + { + /* There is not enough space, need realloc. */ + wchar_t *new_array_start, *new_array_end; + Idx new_nranges; - /* Got valid collation sequence values, add them as a new entry. - However, for !_LIBC we have no collation elements: if the - character set is single byte, the single byte character set - that we build below suffices. parse_bracket_exp passes - no MBCSET if dfa->mb_cur_max == 1. */ - if (dfa->mb_cur_max > 1) - { - /* Check the space of the arrays. */ - if (__glibc_unlikely (*range_alloc == mbcset->nranges)) - { - /* There is not enough space, need realloc. */ - wchar_t *new_array_start, *new_array_end; - Idx new_nranges; + /* +1 in case of mbcset->nranges is 0. */ + new_nranges = 2 * mbcset->nranges + 1; + /* Use realloc since mbcset->range_starts and mbcset->range_ends + are NULL if *range_alloc == 0. */ + new_array_start = re_realloc (mbcset->range_starts, wchar_t, + new_nranges); + new_array_end = re_realloc (mbcset->range_ends, wchar_t, + new_nranges); - /* +1 in case of mbcset->nranges is 0. */ - new_nranges = 2 * mbcset->nranges + 1; - /* Use realloc since mbcset->range_starts and mbcset->range_ends - are NULL if *range_alloc == 0. */ - new_array_start = re_realloc (mbcset->range_starts, wchar_t, - new_nranges); - new_array_end = re_realloc (mbcset->range_ends, wchar_t, - new_nranges); + if (BE (new_array_start == NULL || new_array_end == NULL, 0)) + return REG_ESPACE; - if (__glibc_unlikely (new_array_start == NULL - || new_array_end == NULL)) - { - re_free (new_array_start); - re_free (new_array_end); - return REG_ESPACE; - } + mbcset->range_starts = new_array_start; + mbcset->range_ends = new_array_end; + *range_alloc = new_nranges; + } - mbcset->range_starts = new_array_start; - mbcset->range_ends = new_array_end; - *range_alloc = new_nranges; - } - - mbcset->range_starts[mbcset->nranges] = start_wc; - mbcset->range_ends[mbcset->nranges++] = end_wc; - } - - /* Build the table for single byte characters. */ - for (wchar_t wc = 0; wc < SBC_MAX; ++wc) - { - if (start_wc <= wc && wc <= end_wc) - bitset_set (sbcset, wc); - } + mbcset->range_starts[mbcset->nranges] = start_wc; + mbcset->range_ends[mbcset->nranges++] = end_wc; + } + /* Build the table for single byte characters. */ + for (wc = 0; wc < SBC_MAX; ++wc) + { + if (start_wc <= wc && wc <= end_wc) + bitset_set (sbcset, wc); + } + } +# else /* not RE_ENABLE_I18N */ + { + unsigned int ch; + start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch + : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] + : 0)); + end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch + : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] + : 0)); + if (start_ch > end_ch) + return REG_ERANGE; + /* Build the table for single byte characters. */ + for (ch = 0; ch < SBC_MAX; ++ch) + if (start_ch <= ch && ch <= end_ch) + bitset_set (sbcset, ch); + } +# endif /* not RE_ENABLE_I18N */ return REG_NOERROR; } #endif /* not _LIBC */ #ifndef _LIBC -/* Helper function for parse_bracket_exp only used in case of NOT _LIBC. +/* Helper function for parse_bracket_exp only used in case of NOT _LIBC.. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ static reg_errcode_t +internal_function +# ifdef RE_ENABLE_I18N build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, - Idx *coll_sym_alloc, const unsigned char *name, - uint_fast32_t nrules, int_fast32_t table_size, - const void *symb_table, const unsigned char *extra) + Idx *coll_sym_alloc, const unsigned char *name) +# else /* not RE_ENABLE_I18N */ +build_collating_symbol (bitset_t sbcset, const unsigned char *name) +# endif /* not RE_ENABLE_I18N */ { size_t name_len = strlen ((const char *) name); - if (__glibc_unlikely (name_len != 1)) + if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { @@ -2761,261 +2823,6 @@ build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, } #endif /* not _LIBC */ -#ifdef _LIBC -/* Local function for parse_bracket_exp used in _LIBC environment. - Seek the collating symbol entry corresponding to NAME. - Return the index of the symbol in the SYMB_TABLE, - or -1 if not found. */ - -static __always_inline int32_t -seek_collating_symbol_entry (const unsigned char *name, size_t name_len, - const int32_t *symb_table, - int_fast32_t table_size, - const unsigned char *extra) -{ - int_fast32_t elem; - - for (elem = 0; elem < table_size; elem++) - if (symb_table[2 * elem] != 0) - { - int32_t idx = symb_table[2 * elem + 1]; - /* Skip the name of collating element name. */ - idx += 1 + extra[idx]; - if (/* Compare the length of the name. */ - name_len == extra[idx] - /* Compare the name. */ - && memcmp (name, &extra[idx + 1], name_len) == 0) - /* Yep, this is the entry. */ - return elem; - } - return -1; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Look up the collation sequence value of BR_ELEM. - Return the value if succeeded, UINT_MAX otherwise. */ - -static __always_inline unsigned int -lookup_collation_sequence_value (bracket_elem_t *br_elem, uint32_t nrules, - const unsigned char *collseqmb, - const char *collseqwc, - int_fast32_t table_size, - const int32_t *symb_table, - const unsigned char *extra) -{ - if (br_elem->type == SB_CHAR) - { - /* if (MB_CUR_MAX == 1) */ - if (nrules == 0) - return collseqmb[br_elem->opr.ch]; - else - { - wint_t wc = __btowc (br_elem->opr.ch); - return __collseq_table_lookup (collseqwc, wc); - } - } - else if (br_elem->type == MB_CHAR) - { - if (nrules != 0) - return __collseq_table_lookup (collseqwc, br_elem->opr.wch); - } - else if (br_elem->type == COLL_SYM) - { - size_t sym_name_len = strlen ((char *) br_elem->opr.name); - if (nrules != 0) - { - int32_t elem, idx; - elem = seek_collating_symbol_entry (br_elem->opr.name, - sym_name_len, - symb_table, table_size, - extra); - if (elem != -1) - { - /* We found the entry. */ - idx = symb_table[2 * elem + 1]; - /* Skip the name of collating element name. */ - idx += 1 + extra[idx]; - /* Skip the byte sequence of the collating element. */ - idx += 1 + extra[idx]; - /* Adjust for the alignment. */ - idx = (idx + 3) & ~3; - /* Skip the multibyte collation sequence value. */ - idx += sizeof (unsigned int); - /* Skip the wide char sequence of the collating element. */ - idx += sizeof (unsigned int) * - (1 + *(unsigned int *) (extra + idx)); - /* Return the collation sequence value. */ - return *(unsigned int *) (extra + idx); - } - else if (sym_name_len == 1) - { - /* No valid character. Match it as a single byte - character. */ - return collseqmb[br_elem->opr.name[0]]; - } - } - else if (sym_name_len == 1) - return collseqmb[br_elem->opr.name[0]]; - } - return UINT_MAX; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Build the range expression which starts from START_ELEM, and ends - at END_ELEM. The result are written to MBCSET and SBCSET. - RANGE_ALLOC is the allocated size of mbcset->range_starts, and - mbcset->range_ends, is a pointer argument since we may - update it. */ - -static __always_inline reg_errcode_t -build_range_exp (bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc, - bracket_elem_t *start_elem, bracket_elem_t *end_elem, - re_dfa_t *dfa, reg_syntax_t syntax, uint32_t nrules, - const unsigned char *collseqmb, const char *collseqwc, - int_fast32_t table_size, const int32_t *symb_table, - const unsigned char *extra) -{ - unsigned int ch; - uint32_t start_collseq; - uint32_t end_collseq; - - /* Equivalence Classes and Character Classes can't be a range - start/end. */ - if (__glibc_unlikely (start_elem->type == EQUIV_CLASS - || start_elem->type == CHAR_CLASS - || end_elem->type == EQUIV_CLASS - || end_elem->type == CHAR_CLASS)) - return REG_ERANGE; - - /* FIXME: Implement rational ranges here, too. */ - start_collseq = lookup_collation_sequence_value (start_elem, nrules, collseqmb, collseqwc, - table_size, symb_table, extra); - end_collseq = lookup_collation_sequence_value (end_elem, nrules, collseqmb, collseqwc, - table_size, symb_table, extra); - /* Check start/end collation sequence values. */ - if (__glibc_unlikely (start_collseq == UINT_MAX - || end_collseq == UINT_MAX)) - return REG_ECOLLATE; - if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES) - && start_collseq > end_collseq)) - return REG_ERANGE; - - /* Got valid collation sequence values, add them as a new entry. - However, if we have no collation elements, and the character set - is single byte, the single byte character set that we - build below suffices. */ - if (nrules > 0 || dfa->mb_cur_max > 1) - { - /* Check the space of the arrays. */ - if (__glibc_unlikely (*range_alloc == mbcset->nranges)) - { - /* There is not enough space, need realloc. */ - uint32_t *new_array_start; - uint32_t *new_array_end; - int new_nranges; - - /* +1 in case of mbcset->nranges is 0. */ - new_nranges = 2 * mbcset->nranges + 1; - new_array_start = re_realloc (mbcset->range_starts, uint32_t, - new_nranges); - new_array_end = re_realloc (mbcset->range_ends, uint32_t, - new_nranges); - - if (__glibc_unlikely (new_array_start == NULL - || new_array_end == NULL)) - return REG_ESPACE; - - mbcset->range_starts = new_array_start; - mbcset->range_ends = new_array_end; - *range_alloc = new_nranges; - } - - mbcset->range_starts[mbcset->nranges] = start_collseq; - mbcset->range_ends[mbcset->nranges++] = end_collseq; - } - - /* Build the table for single byte characters. */ - for (ch = 0; ch < SBC_MAX; ch++) - { - uint32_t ch_collseq; - /* if (MB_CUR_MAX == 1) */ - if (nrules == 0) - ch_collseq = collseqmb[ch]; - else - ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); - if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) - bitset_set (sbcset, ch); - } - return REG_NOERROR; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Build the collating element which is represented by NAME. - The result are written to MBCSET and SBCSET. - COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a - pointer argument since we may update it. */ - -static __always_inline reg_errcode_t -build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, - Idx *coll_sym_alloc, const unsigned char *name, - uint_fast32_t nrules, int_fast32_t table_size, - const int32_t *symb_table, const unsigned char *extra) -{ - int32_t elem, idx; - size_t name_len = strlen ((const char *) name); - if (nrules != 0) - { - elem = seek_collating_symbol_entry (name, name_len, symb_table, - table_size, extra); - if (elem != -1) - { - /* We found the entry. */ - idx = symb_table[2 * elem + 1]; - /* Skip the name of collating element name. */ - idx += 1 + extra[idx]; - } - else if (name_len == 1) - { - /* No valid character, treat it as a normal - character. */ - bitset_set (sbcset, name[0]); - return REG_NOERROR; - } - else - return REG_ECOLLATE; - - /* Got valid collation sequence, add it as a new entry. */ - /* Check the space of the arrays. */ - if (__glibc_unlikely (*coll_sym_alloc == mbcset->ncoll_syms)) - { - /* Not enough, realloc it. */ - /* +1 in case of mbcset->ncoll_syms is 0. */ - int new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1; - /* Use realloc since mbcset->coll_syms is NULL - if *alloc == 0. */ - int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, - new_coll_sym_alloc); - if (__glibc_unlikely (new_coll_syms == NULL)) - return REG_ESPACE; - mbcset->coll_syms = new_coll_syms; - *coll_sym_alloc = new_coll_sym_alloc; - } - mbcset->coll_syms[mbcset->ncoll_syms++] = idx; - return REG_NOERROR; - } - else - { - if (__glibc_unlikely (name_len != 1)) - return REG_ECOLLATE; - else - { - bitset_set (sbcset, name[0]); - return REG_NOERROR; - } - } -} -#endif /* _LIBC */ - /* This function parse bracket expression like "[abc]", "[a-c]", "[[.a-a.]]" etc. */ @@ -3023,18 +2830,260 @@ static bin_tree_t * parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { - const unsigned char *collseqmb = NULL; - const char *collseqwc = NULL; - uint_fast32_t nrules = 0; - int_fast32_t table_size = 0; - const void *symb_table = NULL; - const unsigned char *extra = NULL; +#ifdef _LIBC + const unsigned char *collseqmb; + const char *collseqwc; + uint32_t nrules; + int32_t table_size; + const int32_t *symb_table; + const unsigned char *extra; + + /* Local function for parse_bracket_exp used in _LIBC environment. + Seek the collating symbol entry corresponding to NAME. + Return the index of the symbol in the SYMB_TABLE, + or -1 if not found. */ + + auto inline int32_t + __attribute__ ((always_inline)) + seek_collating_symbol_entry (const unsigned char *name, size_t name_len) + { + int32_t elem; + + for (elem = 0; elem < table_size; elem++) + if (symb_table[2 * elem] != 0) + { + int32_t idx = symb_table[2 * elem + 1]; + /* Skip the name of collating element name. */ + idx += 1 + extra[idx]; + if (/* Compare the length of the name. */ + name_len == extra[idx] + /* Compare the name. */ + && memcmp (name, &extra[idx + 1], name_len) == 0) + /* Yep, this is the entry. */ + return elem; + } + return -1; + } + + /* Local function for parse_bracket_exp used in _LIBC environment. + Look up the collation sequence value of BR_ELEM. + Return the value if succeeded, UINT_MAX otherwise. */ + + auto inline unsigned int + __attribute__ ((always_inline)) + lookup_collation_sequence_value (bracket_elem_t *br_elem) + { + if (br_elem->type == SB_CHAR) + { + /* + if (MB_CUR_MAX == 1) + */ + if (nrules == 0) + return collseqmb[br_elem->opr.ch]; + else + { + wint_t wc = __btowc (br_elem->opr.ch); + return __collseq_table_lookup (collseqwc, wc); + } + } + else if (br_elem->type == MB_CHAR) + { + if (nrules != 0) + return __collseq_table_lookup (collseqwc, br_elem->opr.wch); + } + else if (br_elem->type == COLL_SYM) + { + size_t sym_name_len = strlen ((char *) br_elem->opr.name); + if (nrules != 0) + { + int32_t elem, idx; + elem = seek_collating_symbol_entry (br_elem->opr.name, + sym_name_len); + if (elem != -1) + { + /* We found the entry. */ + idx = symb_table[2 * elem + 1]; + /* Skip the name of collating element name. */ + idx += 1 + extra[idx]; + /* Skip the byte sequence of the collating element. */ + idx += 1 + extra[idx]; + /* Adjust for the alignment. */ + idx = (idx + 3) & ~3; + /* Skip the multibyte collation sequence value. */ + idx += sizeof (unsigned int); + /* Skip the wide char sequence of the collating element. */ + idx += sizeof (unsigned int) * + (1 + *(unsigned int *) (extra + idx)); + /* Return the collation sequence value. */ + return *(unsigned int *) (extra + idx); + } + else if (sym_name_len == 1) + { + /* No valid character. Match it as a single byte + character. */ + return collseqmb[br_elem->opr.name[0]]; + } + } + else if (sym_name_len == 1) + return collseqmb[br_elem->opr.name[0]]; + } + return UINT_MAX; + } + + /* Local function for parse_bracket_exp used in _LIBC environment. + Build the range expression which starts from START_ELEM, and ends + at END_ELEM. The result are written to MBCSET and SBCSET. + RANGE_ALLOC is the allocated size of mbcset->range_starts, and + mbcset->range_ends, is a pointer argument since we may + update it. */ + + auto inline reg_errcode_t + __attribute__ ((always_inline)) + build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc, + bracket_elem_t *start_elem, bracket_elem_t *end_elem) + { + unsigned int ch; + uint32_t start_collseq; + uint32_t end_collseq; + + /* Equivalence Classes and Character Classes can't be a range + start/end. */ + if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS + || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, + 0)) + return REG_ERANGE; + + /* FIXME: Implement rational ranges here, too. */ + start_collseq = lookup_collation_sequence_value (start_elem); + end_collseq = lookup_collation_sequence_value (end_elem); + /* Check start/end collation sequence values. */ + if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0)) + return REG_ECOLLATE; + if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0)) + return REG_ERANGE; + + /* Got valid collation sequence values, add them as a new entry. + However, if we have no collation elements, and the character set + is single byte, the single byte character set that we + build below suffices. */ + if (nrules > 0 || dfa->mb_cur_max > 1) + { + /* Check the space of the arrays. */ + if (BE (*range_alloc == mbcset->nranges, 0)) + { + /* There is not enough space, need realloc. */ + uint32_t *new_array_start; + uint32_t *new_array_end; + Idx new_nranges; + + /* +1 in case of mbcset->nranges is 0. */ + new_nranges = 2 * mbcset->nranges + 1; + new_array_start = re_realloc (mbcset->range_starts, uint32_t, + new_nranges); + new_array_end = re_realloc (mbcset->range_ends, uint32_t, + new_nranges); + + if (BE (new_array_start == NULL || new_array_end == NULL, 0)) + return REG_ESPACE; + + mbcset->range_starts = new_array_start; + mbcset->range_ends = new_array_end; + *range_alloc = new_nranges; + } + + mbcset->range_starts[mbcset->nranges] = start_collseq; + mbcset->range_ends[mbcset->nranges++] = end_collseq; + } + + /* Build the table for single byte characters. */ + for (ch = 0; ch < SBC_MAX; ch++) + { + uint32_t ch_collseq; + /* + if (MB_CUR_MAX == 1) + */ + if (nrules == 0) + ch_collseq = collseqmb[ch]; + else + ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); + if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) + bitset_set (sbcset, ch); + } + return REG_NOERROR; + } + + /* Local function for parse_bracket_exp used in _LIBC environment. + Build the collating element which is represented by NAME. + The result are written to MBCSET and SBCSET. + COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a + pointer argument since we may update it. */ + + auto inline reg_errcode_t + __attribute__ ((always_inline)) + build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, + Idx *coll_sym_alloc, const unsigned char *name) + { + int32_t elem, idx; + size_t name_len = strlen ((const char *) name); + if (nrules != 0) + { + elem = seek_collating_symbol_entry (name, name_len); + if (elem != -1) + { + /* We found the entry. */ + idx = symb_table[2 * elem + 1]; + /* Skip the name of collating element name. */ + idx += 1 + extra[idx]; + } + else if (name_len == 1) + { + /* No valid character, treat it as a normal + character. */ + bitset_set (sbcset, name[0]); + return REG_NOERROR; + } + else + return REG_ECOLLATE; + + /* Got valid collation sequence, add it as a new entry. */ + /* Check the space of the arrays. */ + if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0)) + { + /* Not enough, realloc it. */ + /* +1 in case of mbcset->ncoll_syms is 0. */ + Idx new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1; + /* Use realloc since mbcset->coll_syms is NULL + if *alloc == 0. */ + int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, + new_coll_sym_alloc); + if (BE (new_coll_syms == NULL, 0)) + return REG_ESPACE; + mbcset->coll_syms = new_coll_syms; + *coll_sym_alloc = new_coll_sym_alloc; + } + mbcset->coll_syms[mbcset->ncoll_syms++] = idx; + return REG_NOERROR; + } + else + { + if (BE (name_len != 1, 0)) + return REG_ECOLLATE; + else + { + bitset_set (sbcset, name[0]); + return REG_NOERROR; + } + } + } +#endif re_token_t br_token; re_bitset_ptr_t sbcset; +#ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0; Idx equiv_class_alloc = 0, char_class_alloc = 0; +#endif /* not RE_ENABLE_I18N */ bool non_match = false; bin_tree_t *work_tree; int token_len; @@ -3050,36 +3099,47 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, */ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB); - symb_table = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB); + symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_SYMB_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); } #endif sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); +#ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); - if (__glibc_unlikely (sbcset == NULL || mbcset == NULL)) +#endif /* RE_ENABLE_I18N */ +#ifdef RE_ENABLE_I18N + if (BE (sbcset == NULL || mbcset == NULL, 0)) +#else + if (BE (sbcset == NULL, 0)) +#endif /* RE_ENABLE_I18N */ { re_free (sbcset); +#ifdef RE_ENABLE_I18N re_free (mbcset); +#endif *err = REG_ESPACE; return NULL; } token_len = peek_token_bracket (token, regexp, syntax); - if (__glibc_unlikely (token->type == END_OF_RE)) + if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } if (token->type == OP_NON_MATCH_LIST) { +#ifdef RE_ENABLE_I18N mbcset->non_match = 1; +#endif /* not RE_ENABLE_I18N */ non_match = true; if (syntax & RE_HAT_LISTS_NOT_NEWLINE) bitset_set (sbcset, '\n'); re_string_skip_bytes (regexp, token_len); /* Skip a token. */ token_len = peek_token_bracket (token, regexp, syntax); - if (__glibc_unlikely (token->type == END_OF_RE)) + if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; @@ -3101,10 +3161,9 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, re_token_t token2; start_elem.opr.name = start_name_buf; - start_elem.type = COLL_SYM; ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa, syntax, first_round); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; @@ -3117,7 +3176,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, /* Do not check for ranges if we know they are not allowed. */ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS) { - if (__glibc_unlikely (token->type == END_OF_RE)) + if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; @@ -3126,7 +3185,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, { re_string_skip_bytes (regexp, token_len); /* Skip '-'. */ token_len2 = peek_token_bracket (&token2, regexp, syntax); - if (__glibc_unlikely (token2.type == END_OF_RE)) + if (BE (token2.type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; @@ -3145,10 +3204,9 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, if (is_range_exp == true) { end_elem.opr.name = end_name_buf; - end_elem.type = COLL_SYM; ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2, dfa, syntax, true); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; @@ -3156,11 +3214,19 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, token_len = peek_token_bracket (token, regexp, syntax); +#ifdef _LIBC *err = build_range_exp (sbcset, mbcset, &range_alloc, - &start_elem, &end_elem, - dfa, syntax, nrules, collseqmb, collseqwc, - table_size, symb_table, extra); - if (__glibc_unlikely (*err != REG_NOERROR)) + &start_elem, &end_elem); +#else +# ifdef RE_ENABLE_I18N + *err = build_range_exp (syntax, sbcset, + dfa->mb_cur_max > 1 ? mbcset : NULL, + &range_alloc, &start_elem, &end_elem); +# else + *err = build_range_exp (syntax, sbcset, &start_elem, &end_elem); +# endif +#endif /* RE_ENABLE_I18N */ + if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; } else @@ -3170,9 +3236,10 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, case SB_CHAR: bitset_set (sbcset, start_elem.opr.ch); break; +#ifdef RE_ENABLE_I18N case MB_CHAR: /* Check whether the array has enough space. */ - if (__glibc_unlikely (mbchar_alloc == mbcset->nmbchars)) + if (BE (mbchar_alloc == mbcset->nmbchars, 0)) { wchar_t *new_mbchars; /* Not enough, realloc it. */ @@ -3181,41 +3248,47 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, /* Use realloc since array is NULL if *alloc == 0. */ new_mbchars = re_realloc (mbcset->mbchars, wchar_t, mbchar_alloc); - if (__glibc_unlikely (new_mbchars == NULL)) + if (BE (new_mbchars == NULL, 0)) goto parse_bracket_exp_espace; mbcset->mbchars = new_mbchars; } mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; break; +#endif /* RE_ENABLE_I18N */ case EQUIV_CLASS: *err = build_equiv_class (sbcset, +#ifdef RE_ENABLE_I18N mbcset, &equiv_class_alloc, +#endif /* RE_ENABLE_I18N */ start_elem.opr.name); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case COLL_SYM: *err = build_collating_symbol (sbcset, +#ifdef RE_ENABLE_I18N mbcset, &coll_sym_alloc, - start_elem.opr.name, - nrules, table_size, symb_table, extra); - if (__glibc_unlikely (*err != REG_NOERROR)) +#endif /* RE_ENABLE_I18N */ + start_elem.opr.name); + if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case CHAR_CLASS: *err = build_charclass (regexp->trans, sbcset, +#ifdef RE_ENABLE_I18N mbcset, &char_class_alloc, +#endif /* RE_ENABLE_I18N */ (const char *) start_elem.opr.name, syntax); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; default: - DEBUG_ASSERT (false); + assert (0); break; } } - if (__glibc_unlikely (token->type == END_OF_RE)) + if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; @@ -3230,6 +3303,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, if (non_match) bitset_not (sbcset); +#ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); @@ -3245,7 +3319,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (mbc_tree == NULL)) + if (BE (mbc_tree == NULL, 0)) goto parse_bracket_exp_espace; for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) if (sbcset[sbc_idx]) @@ -3258,12 +3332,12 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (work_tree == NULL)) + if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; /* Then join them by ALT node. */ work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); - if (__glibc_unlikely (work_tree == NULL)) + if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } else @@ -3273,13 +3347,16 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, } } else +#endif /* not RE_ENABLE_I18N */ { +#ifdef RE_ENABLE_I18N free_charset (mbcset); +#endif /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (work_tree == NULL)) + if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } return work_tree; @@ -3288,7 +3365,9 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, *err = REG_ESPACE; parse_bracket_exp_free_return: re_free (sbcset); +#ifdef RE_ENABLE_I18N free_charset (mbcset); +#endif /* RE_ENABLE_I18N */ return NULL; } @@ -3299,6 +3378,7 @@ parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, bool accept_hyphen) { +#ifdef RE_ENABLE_I18N int cur_char_size; cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); if (cur_char_size > 1) @@ -3308,11 +3388,12 @@ parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_string_skip_bytes (regexp, cur_char_size); return REG_NOERROR; } +#endif /* RE_ENABLE_I18N */ re_string_skip_bytes (regexp, token_len); /* Skip a token. */ if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS || token->type == OP_OPEN_EQUIV_CLASS) return parse_bracket_symbol (elem, regexp, token); - if (__glibc_unlikely (token->type == OP_CHARSET_RANGE) && !accept_hyphen) + if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen) { /* A '-' must only appear as anything but a range indicator before the closing bracket. Everything else is an error. */ @@ -3380,8 +3461,12 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, is a pointer argument since we may update it. */ static reg_errcode_t +#ifdef RE_ENABLE_I18N build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, const unsigned char *name) +#else /* not RE_ENABLE_I18N */ +build_equiv_class (bitset_t sbcset, const unsigned char *name) +#endif /* not RE_ENABLE_I18N */ { #ifdef _LIBC uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); @@ -3393,6 +3478,8 @@ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, int32_t idx1, idx2; unsigned int ch; size_t len; + /* This #include defines a local function! */ +# include /* Calculate the index for equivalence class. */ cp = name; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); @@ -3402,8 +3489,8 @@ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); - idx1 = findidx (table, indirect, extra, &cp, -1); - if (__glibc_unlikely (idx1 == 0 || *cp != '\0')) + idx1 = findidx (&cp, -1); + if (BE (idx1 == 0 || *cp != '\0', 0)) /* This isn't a valid character. */ return REG_ECOLLATE; @@ -3413,7 +3500,7 @@ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, { char_buf[0] = ch; cp = char_buf; - idx2 = findidx (table, indirect, extra, &cp, 1); + idx2 = findidx (&cp, 1); /* idx2 = table[ch]; */ @@ -3422,13 +3509,21 @@ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, continue; /* Compare only if the length matches and the collation rule index is the same. */ - if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24) - && memcmp (weights + (idx1 & 0xffffff) + 1, - weights + (idx2 & 0xffffff) + 1, len) == 0) - bitset_set (sbcset, ch); + if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24)) + { + int cnt = 0; + + while (cnt <= len && + weights[(idx1 & 0xffffff) + 1 + cnt] + == weights[(idx2 & 0xffffff) + 1 + cnt]) + ++cnt; + + if (cnt > len) + bitset_set (sbcset, ch); + } } /* Check whether the array has enough space. */ - if (__glibc_unlikely (*equiv_class_alloc == mbcset->nequiv_classes)) + if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nequiv_classes is 0. */ @@ -3437,7 +3532,7 @@ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes, int32_t, new_equiv_class_alloc); - if (__glibc_unlikely (new_equiv_classes == NULL)) + if (BE (new_equiv_classes == NULL, 0)) return REG_ESPACE; mbcset->equiv_classes = new_equiv_classes; *equiv_class_alloc = new_equiv_class_alloc; @@ -3447,7 +3542,7 @@ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, else #endif /* _LIBC */ { - if (__glibc_unlikely (strlen ((const char *) name) != 1)) + if (BE (strlen ((const char *) name) != 1, 0)) return REG_ECOLLATE; bitset_set (sbcset, *name); } @@ -3461,9 +3556,14 @@ build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, is a pointer argument since we may update it. */ static reg_errcode_t +#ifdef RE_ENABLE_I18N build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax) +#else /* not RE_ENABLE_I18N */ +build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, + const char *class_name, reg_syntax_t syntax) +#endif /* not RE_ENABLE_I18N */ { int i; const char *name = class_name; @@ -3474,8 +3574,9 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) name = "alpha"; +#ifdef RE_ENABLE_I18N /* Check the space of the arrays. */ - if (__glibc_unlikely (*char_class_alloc == mbcset->nchar_classes)) + if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nchar_classes is 0. */ @@ -3483,16 +3584,17 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, /* Use realloc since array is NULL if *alloc == 0. */ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t, new_char_class_alloc); - if (__glibc_unlikely (new_char_classes == NULL)) + if (BE (new_char_classes == NULL, 0)) return REG_ESPACE; mbcset->char_classes = new_char_classes; *char_class_alloc = new_char_class_alloc; } mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); +#endif /* RE_ENABLE_I18N */ #define BUILD_CHARCLASS_LOOP(ctype_func) \ do { \ - if (__glibc_unlikely (trans != NULL)) \ + if (BE (trans != NULL, 0)) \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ @@ -3543,33 +3645,49 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, reg_errcode_t *err) { re_bitset_ptr_t sbcset; +#ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx alloc = 0; +#endif /* not RE_ENABLE_I18N */ reg_errcode_t ret; + re_token_t br_token; bin_tree_t *tree; sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); - if (__glibc_unlikely (sbcset == NULL)) - { - *err = REG_ESPACE; - return NULL; - } +#ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); - if (__glibc_unlikely (mbcset == NULL)) +#endif /* RE_ENABLE_I18N */ + +#ifdef RE_ENABLE_I18N + if (BE (sbcset == NULL || mbcset == NULL, 0)) +#else /* not RE_ENABLE_I18N */ + if (BE (sbcset == NULL, 0)) +#endif /* not RE_ENABLE_I18N */ { - re_free (sbcset); *err = REG_ESPACE; return NULL; } - mbcset->non_match = non_match; + + if (non_match) + { +#ifdef RE_ENABLE_I18N + mbcset->non_match = 1; +#endif /* not RE_ENABLE_I18N */ + } /* We don't care the syntax in this case. */ - ret = build_charclass (trans, sbcset, mbcset, &alloc, class_name, 0); + ret = build_charclass (trans, sbcset, +#ifdef RE_ENABLE_I18N + mbcset, &alloc, +#endif /* RE_ENABLE_I18N */ + class_name, 0); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) { re_free (sbcset); +#ifdef RE_ENABLE_I18N free_charset (mbcset); +#endif /* RE_ENABLE_I18N */ *err = ret; return NULL; } @@ -3581,16 +3699,20 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, if (non_match) bitset_not (sbcset); +#ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); +#endif /* Build a tree for simple bracket. */ - re_token_t br_token = { .type = SIMPLE_BRACKET, .opr.sbcset = sbcset }; + br_token.type = SIMPLE_BRACKET; + br_token.opr.sbcset = sbcset; tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (tree == NULL)) + if (BE (tree == NULL, 0)) goto build_word_op_espace; +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { bin_tree_t *mbc_tree; @@ -3599,11 +3721,11 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, br_token.opr.mbcset = mbcset; dfa->has_mb_node = 1; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (mbc_tree == NULL)) + if (BE (mbc_tree == NULL, 0)) goto build_word_op_espace; /* Then join them by ALT node. */ tree = create_tree (dfa, tree, mbc_tree, OP_ALT); - if (__glibc_likely (mbc_tree != NULL)) + if (BE (mbc_tree != NULL, 1)) return tree; } else @@ -3611,55 +3733,63 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, free_charset (mbcset); return tree; } +#else /* not RE_ENABLE_I18N */ + return tree; +#endif /* not RE_ENABLE_I18N */ build_word_op_espace: re_free (sbcset); +#ifdef RE_ENABLE_I18N free_charset (mbcset); +#endif /* RE_ENABLE_I18N */ *err = REG_ESPACE; return NULL; } /* This is intended for the expressions like "a{1,3}". Fetch a number from 'input', and return the number. - Return -1 if the number field is empty like "{,1}". + Return REG_MISSING if the number field is empty like "{,1}". Return RE_DUP_MAX + 1 if the number field is too large. - Return -2 if an error occurred. */ + Return REG_ERROR if an error occurred. */ static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { - Idx num = -1; + Idx num = REG_MISSING; unsigned char c; while (1) { fetch_token (token, input, syntax); c = token->opr.c; - if (__glibc_unlikely (token->type == END_OF_RE)) - return -2; + if (BE (token->type == END_OF_RE, 0)) + return REG_ERROR; if (token->type == OP_CLOSE_DUP_NUM || c == ',') break; - num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2) - ? -2 - : num == -1 + num = ((token->type != CHARACTER || c < '0' || '9' < c + || num == REG_ERROR) + ? REG_ERROR + : num == REG_MISSING ? c - '0' : MIN (RE_DUP_MAX + 1, num * 10 + c - '0')); } return num; } +#ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset) { re_free (cset->mbchars); -#ifdef _LIBC +# ifdef _LIBC re_free (cset->coll_syms); re_free (cset->equiv_classes); -#endif re_free (cset->range_starts); re_free (cset->range_ends); +# endif re_free (cset->char_classes); re_free (cset); } +#endif /* RE_ENABLE_I18N */ /* Functions for binary tree operation. */ @@ -3669,7 +3799,8 @@ static bin_tree_t * create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type) { - re_token_t t = { .type = type }; + re_token_t t; + t.type = type; return create_token_tree (dfa, left, right, &t); } @@ -3678,7 +3809,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token) { bin_tree_t *tree; - if (__glibc_unlikely (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE)) + if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0)) { bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1); @@ -3698,7 +3829,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, tree->token.opt_subexp = 0; tree->first = NULL; tree->next = NULL; - tree->node_idx = -1; + tree->node_idx = REG_MISSING; if (left != NULL) left->parent = tree; @@ -3725,10 +3856,13 @@ mark_opt_subexp (void *extra, bin_tree_t *node) static void free_token (re_token_t *node) { +#ifdef RE_ENABLE_I18N if (node->type == COMPLEX_BRACKET && node->duplicated == 0) free_charset (node->opr.mbcset); - else if (node->type == SIMPLE_BRACKET && node->duplicated == 0) - re_free (node->opr.sbcset); + else +#endif /* RE_ENABLE_I18N */ + if (node->type == SIMPLE_BRACKET && node->duplicated == 0) + re_free (node->opr.sbcset); } /* Worker function for tree walking. Free the allocated memory inside NODE diff --git a/gl/regex.c b/gl/regex.c index 3beb0de..5a0332e 100644 --- a/gl/regex.c +++ b/gl/regex.c @@ -1,32 +1,29 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public + modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public + You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ - -#define __STDC_WANT_IEC_60559_BFP_EXT__ + . */ #ifndef _LIBC -# include +# include -# if __GNUC_PREREQ (4, 6) +# if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" -# pragma GCC diagnostic ignored "-Wvla" # endif -# if __GNUC_PREREQ (4, 3) +# if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wold-style-definition" # pragma GCC diagnostic ignored "-Wtype-limits" # endif diff --git a/gl/regex.h b/gl/regex.h index 9ef0252..854c6ed 100644 --- a/gl/regex.h +++ b/gl/regex.h @@ -1,21 +1,22 @@ /* Definitions for data structures and routines for the regular expression library. - Copyright (C) 1985, 1989-2023 Free Software Foundation, Inc. + Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2013 Free Software + Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public + modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public + You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _REGEX_H #define _REGEX_H 1 @@ -41,6 +42,11 @@ extern "C" { supported within glibc itself, and glibc users should not define _REGEX_LARGE_OFFSETS. */ +/* The type of nonnegative object indexes. Traditionally, GNU regex + uses 'int' for these. Code that uses __re_idx_t should work + regardless of whether the type is signed. */ +typedef size_t __re_idx_t; + /* The type of object sizes. */ typedef size_t __re_size_t; @@ -52,6 +58,7 @@ typedef size_t __re_long_size_t; /* The traditional GNU regex implementation mishandles strings longer than INT_MAX. */ +typedef int __re_idx_t; typedef unsigned int __re_size_t; typedef unsigned long int __re_long_size_t; @@ -237,16 +244,19 @@ extern reg_syntax_t re_syntax_options; | RE_INVALID_INTERVAL_ORD) # define RE_SYNTAX_GREP \ - ((RE_SYNTAX_POSIX_BASIC | RE_NEWLINE_ALT) \ - & ~(RE_CONTEXT_INVALID_DUP | RE_DOT_NOT_NULL)) + (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ + | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ + | RE_NEWLINE_ALT) # define RE_SYNTAX_EGREP \ - ((RE_SYNTAX_POSIX_EXTENDED | RE_INVALID_INTERVAL_ORD | RE_NEWLINE_ALT) \ - & ~(RE_CONTEXT_INVALID_OPS | RE_DOT_NOT_NULL)) + (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ + | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ + | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ + | RE_NO_BK_VBAR) -/* POSIX grep -E behavior is no longer incompatible with GNU. */ # define RE_SYNTAX_POSIX_EGREP \ - RE_SYNTAX_EGREP + (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \ + | RE_INVALID_INTERVAL_ORD) /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ # define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC @@ -481,8 +491,7 @@ typedef struct re_pattern_buffer regex_t; #ifdef _REGEX_LARGE_OFFSETS /* POSIX 1003.1-2008 requires that regoff_t be at least as wide as ptrdiff_t and ssize_t. We don't know of any hosts where ptrdiff_t - is wider than ssize_t, so ssize_t is safe. ptrdiff_t is not - visible here, so use ssize_t. */ + is wider than ssize_t, so ssize_t is safe. */ typedef ssize_t regoff_t; #else /* The traditional GNU regex implementation mishandles strings longer @@ -522,30 +531,6 @@ typedef struct /* Declarations for routines. */ -#ifndef _REGEX_NELTS -# if (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ - && !defined __STDC_NO_VLA__) -# define _REGEX_NELTS(n) n -# else -# define _REGEX_NELTS(n) -# endif -#endif - -#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wvla" -#endif - -#ifndef _Attr_access_ -# ifdef __attr_access -# define _Attr_access_(arg) __attr_access (arg) -# elif defined __GNUC__ && 10 <= __GNUC__ -# define _Attr_access_(x) __attribute__ ((__access__ x)) -# else -# define _Attr_access_(x) -# endif -#endif - #ifdef __USE_GNU /* Sets the current default syntax to SYNTAX, and return the old syntax. You can also simply assign to the 're_syntax_options' variable. */ @@ -556,12 +541,11 @@ extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); BUFFER. Return NULL if successful, and an error string if not. To free the allocated storage, you must call 'regfree' on BUFFER. - Note that the translate table must either have been initialized by + Note that the translate table must either have been initialised by 'regcomp', with a malloc'ed value, or set to NULL before calling 'regfree'. */ extern const char *re_compile_pattern (const char *__pattern, size_t __length, - struct re_pattern_buffer *__buffer) - _Attr_access_ ((__read_only__, 1, 2)); + struct re_pattern_buffer *__buffer); /* Compile a fastmap for the compiled pattern in BUFFER; used to @@ -576,40 +560,34 @@ extern int re_compile_fastmap (struct re_pattern_buffer *__buffer); match, or -2 for an internal error. Also return register information in REGS (if REGS and BUFFER->no_sub are nonzero). */ extern regoff_t re_search (struct re_pattern_buffer *__buffer, - const char *__String, regoff_t __length, - regoff_t __start, regoff_t __range, - struct re_registers *__regs) - _Attr_access_ ((__read_only__, 2, 3)); + const char *__string, __re_idx_t __length, + __re_idx_t __start, regoff_t __range, + struct re_registers *__regs); /* Like 're_search', but search in the concatenation of STRING1 and STRING2. Also, stop searching at index START + STOP. */ extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer, - const char *__string1, regoff_t __length1, - const char *__string2, regoff_t __length2, - regoff_t __start, regoff_t __range, + const char *__string1, __re_idx_t __length1, + const char *__string2, __re_idx_t __length2, + __re_idx_t __start, regoff_t __range, struct re_registers *__regs, - regoff_t __stop) - _Attr_access_ ((__read_only__, 2, 3)) - _Attr_access_ ((__read_only__, 4, 5)); + __re_idx_t __stop); /* Like 're_search', but return how many characters in STRING the regexp in BUFFER matched, starting at position START. */ extern regoff_t re_match (struct re_pattern_buffer *__buffer, - const char *__String, regoff_t __length, - regoff_t __start, struct re_registers *__regs) - _Attr_access_ ((__read_only__, 2, 3)); + const char *__string, __re_idx_t __length, + __re_idx_t __start, struct re_registers *__regs); /* Relates to 're_match' as 're_search_2' relates to 're_search'. */ extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer, - const char *__string1, regoff_t __length1, - const char *__string2, regoff_t __length2, - regoff_t __start, struct re_registers *__regs, - regoff_t __stop) - _Attr_access_ ((__read_only__, 2, 3)) - _Attr_access_ ((__read_only__, 4, 5)); + const char *__string1, __re_idx_t __length1, + const char *__string2, __re_idx_t __length2, + __re_idx_t __start, struct re_registers *__regs, + __re_idx_t __stop); /* Set REGS to hold NUM_REGS registers, storing them in STARTS and @@ -630,41 +608,36 @@ extern void re_set_registers (struct re_pattern_buffer *__buffer, regoff_t *__starts, regoff_t *__ends); #endif /* Use GNU */ -#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_MISC) +#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD) +# ifndef _CRAY /* 4.2 bsd compatibility. */ extern char *re_comp (const char *); extern int re_exec (const char *); +# endif #endif -/* For plain 'restrict', use glibc's __restrict if defined. - Otherwise, GCC 2.95 and later have "__restrict"; C99 compilers have +/* GCC 2.95 and later have "__restrict"; C99 compilers have "restrict", and "configure" may have defined "restrict". Other compilers use __restrict, __restrict__, and _Restrict, and 'configure' might #define 'restrict' to those words, so pick a different name. */ #ifndef _Restrict_ -# if defined __restrict \ - || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3 -# define _Restrict_ __restrict -# elif 199901L <= __STDC_VERSION__ || defined restrict +# if 199901L <= __STDC_VERSION__ # define _Restrict_ restrict +# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) +# define _Restrict_ __restrict # else # define _Restrict_ # endif #endif -/* For the ISO C99 syntax - array_name[restrict] - use glibc's __restrict_arr if available. - Otherwise, GCC 3.1 and clang support this syntax (but not in C++ mode). - Other ISO C99 compilers support it as well. */ +/* gcc 3.1 and up support the [restrict] syntax. Don't trust + sys/cdefs.h's definition of __restrict_arr, though, as it + mishandles gcc -ansi -pedantic. */ #ifndef _Restrict_arr_ -# ifdef __restrict_arr -# define _Restrict_arr_ __restrict_arr -# elif ((199901L <= __STDC_VERSION__ \ - || 3 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3) \ - && !defined __cplusplus) +# if ((199901L <= __STDC_VERSION__ \ + || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ + && !defined __STRICT_ANSI__)) \ + && !defined __GNUG__) # define _Restrict_arr_ _Restrict_ # else # define _Restrict_arr_ @@ -677,20 +650,15 @@ extern int regcomp (regex_t *_Restrict_ __preg, int __cflags); extern int regexec (const regex_t *_Restrict_ __preg, - const char *_Restrict_ __String, size_t __nmatch, - regmatch_t __pmatch[_Restrict_arr_ - _REGEX_NELTS (__nmatch)], + const char *_Restrict_ __string, size_t __nmatch, + regmatch_t __pmatch[_Restrict_arr_], int __eflags); extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg, - char *_Restrict_ __errbuf, size_t __errbuf_size) - _Attr_access_ ((__write_only__, 3, 4)); + char *_Restrict_ __errbuf, size_t __errbuf_size); extern void regfree (regex_t *__preg); -#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__) -# pragma GCC diagnostic pop -#endif #ifdef __cplusplus } diff --git a/gl/regex_internal.c b/gl/regex_internal.c index 998a19b..899b0ae 100644 --- a/gl/regex_internal.c +++ b/gl/regex_internal.c @@ -1,41 +1,33 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public + modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public + You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ static void re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, - const re_dfa_t *dfa); + const re_dfa_t *dfa) internal_function; static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, - re_hashval_t hash); + re_hashval_t hash) internal_function; static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, - re_hashval_t hash); -static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, - Idx new_buf_len); -static void build_wcs_buffer (re_string_t *pstr); -static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr); -static void build_upper_buffer (re_string_t *pstr); -static void re_string_translate_buffer (re_string_t *pstr); -static unsigned int re_string_context_at (const re_string_t *input, Idx idx, - int eflags) __attribute__ ((pure)); + re_hashval_t hash) internal_function; /* Functions for string operation. */ @@ -43,7 +35,7 @@ static unsigned int re_string_context_at (const re_string_t *input, Idx idx, re_string_reconstruct before using the object. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { @@ -57,7 +49,7 @@ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, re_string_construct_common (str, len, pstr, trans, icase, dfa); ret = re_string_realloc_buffers (pstr, init_buf_len); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; pstr->word_char = dfa->word_char; @@ -71,7 +63,7 @@ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, /* This function allocate the buffers, and initialize them. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_string_construct (re_string_t *pstr, const char *str, Idx len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { @@ -82,37 +74,41 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len, if (len > 0) { ret = re_string_realloc_buffers (pstr, len + 1); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; } pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; if (icase) { +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (1) { ret = build_wcs_upper_buffer (pstr); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; if (pstr->valid_raw_len >= len) break; if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) break; ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; } } else +#endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) build_wcs_buffer (pstr); else +#endif /* RE_ENABLE_I18N */ { if (trans != NULL) re_string_translate_buffer (pstr); @@ -130,36 +126,37 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len, /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) { +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { wint_t *new_wcs; /* Avoid overflow in realloc. */ const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx)); - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) - < new_buf_len)) + if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_buf_len, 0)) return REG_ESPACE; new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); - if (__glibc_unlikely (new_wcs == NULL)) + if (BE (new_wcs == NULL, 0)) return REG_ESPACE; pstr->wcs = new_wcs; if (pstr->offsets != NULL) { Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len); - if (__glibc_unlikely (new_offsets == NULL)) + if (BE (new_offsets == NULL, 0)) return REG_ESPACE; pstr->offsets = new_offsets; } } +#endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) { unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, new_buf_len); - if (__glibc_unlikely (new_mbs == NULL)) + if (BE (new_mbs == NULL, 0)) return REG_ESPACE; pstr->mbs = new_mbs; } @@ -169,6 +166,7 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) static void +internal_function re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) @@ -186,6 +184,7 @@ re_string_construct_common (const char *str, Idx len, re_string_t *pstr, pstr->raw_stop = pstr->stop; } +#ifdef RE_ENABLE_I18N /* Build wide character buffer PSTR->WCS. If the byte sequence of the string are: @@ -199,11 +198,12 @@ re_string_construct_common (const char *str, Idx len, re_string_t *pstr, built and starts from PSTR->VALID_LEN. */ static void +internal_function build_wcs_buffer (re_string_t *pstr) { #ifdef _LIBC unsigned char buf[MB_LEN_MAX]; - DEBUG_ASSERT (MB_LEN_MAX >= pstr->mb_cur_max); + assert (MB_LEN_MAX >= pstr->mb_cur_max); #else unsigned char buf[64]; #endif @@ -222,7 +222,7 @@ build_wcs_buffer (re_string_t *pstr) remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; /* Apply the translation if we need. */ - if (__glibc_unlikely (pstr->trans != NULL)) + if (BE (pstr->trans != NULL, 0)) { int i, ch; @@ -236,18 +236,17 @@ build_wcs_buffer (re_string_t *pstr) else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); - if (__glibc_unlikely (mbclen == (size_t) -1 || mbclen == 0 - || (mbclen == (size_t) -2 - && pstr->bufs_len >= pstr->len))) + if (BE (mbclen == (size_t) -1 || mbclen == 0 + || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0)) { /* We treat these cases as a singlebyte character. */ mbclen = 1; wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; - if (__glibc_unlikely (pstr->trans != NULL)) + if (BE (pstr->trans != NULL, 0)) wc = pstr->trans[wc]; pstr->cur_state = prev_st; } - else if (__glibc_unlikely (mbclen == (size_t) -2)) + else if (BE (mbclen == (size_t) -2, 0)) { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; @@ -268,7 +267,7 @@ build_wcs_buffer (re_string_t *pstr) but for REG_ICASE. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; @@ -276,7 +275,7 @@ build_wcs_upper_buffer (re_string_t *pstr) size_t mbclen; #ifdef _LIBC char buf[MB_LEN_MAX]; - DEBUG_ASSERT (pstr->mb_cur_max <= MB_LEN_MAX); + assert (MB_LEN_MAX >= pstr->mb_cur_max); #else char buf[64]; #endif @@ -291,20 +290,18 @@ build_wcs_upper_buffer (re_string_t *pstr) while (byte_idx < end_idx) { wchar_t wc; - unsigned char ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; - if (isascii (ch) && mbsinit (&pstr->cur_state)) + if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]) + && mbsinit (&pstr->cur_state)) { + /* In case of a singlebyte character. */ + pstr->mbs[byte_idx] + = toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]); /* The next step uses the assumption that wchar_t is encoded ASCII-safe: all ASCII values can be converted like this. */ - wchar_t wcu = __towupper (ch); - if (isascii (wcu)) - { - pstr->mbs[byte_idx] = wcu; - pstr->wcs[byte_idx] = wcu; - byte_idx++; - continue; - } + pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx]; + ++byte_idx; + continue; } remain_len = end_idx - byte_idx; @@ -312,15 +309,16 @@ build_wcs_upper_buffer (re_string_t *pstr) mbclen = __mbrtowc (&wc, ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx), remain_len, &pstr->cur_state); - if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2)) + if (BE (mbclen < (size_t) -2, 1)) { - wchar_t wcu = __towupper (wc); - if (wcu != wc) + wchar_t wcu = wc; + if (iswlower (wc)) { size_t mbcdlen; - mbcdlen = __wcrtomb (buf, wcu, &prev_st); - if (__glibc_likely (mbclen == mbcdlen)) + wcu = towupper (wc); + mbcdlen = wcrtomb (buf, wcu, &prev_st); + if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else { @@ -341,10 +339,11 @@ build_wcs_upper_buffer (re_string_t *pstr) { /* It is an invalid character, an incomplete character at the end of the string, or '\0'. Just use the byte. */ + int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; pstr->mbs[byte_idx] = ch; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; - if (__glibc_unlikely (mbclen == (size_t) -1)) + if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else @@ -366,7 +365,7 @@ build_wcs_upper_buffer (re_string_t *pstr) offsets_needed: remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; - if (__glibc_unlikely (pstr->trans != NULL)) + if (BE (pstr->trans != NULL, 0)) { int i, ch; @@ -380,15 +379,16 @@ build_wcs_upper_buffer (re_string_t *pstr) else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); - if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2)) + if (BE (mbclen < (size_t) -2, 1)) { - wchar_t wcu = __towupper (wc); - if (wcu != wc) + wchar_t wcu = wc; + if (iswlower (wc)) { size_t mbcdlen; - mbcdlen = __wcrtomb ((char *) buf, wcu, &prev_st); - if (__glibc_likely (mbclen == mbcdlen)) + wcu = towupper (wc); + mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st); + if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else if (mbcdlen != (size_t) -1) { @@ -438,7 +438,7 @@ build_wcs_upper_buffer (re_string_t *pstr) else memcpy (pstr->mbs + byte_idx, p, mbclen); - if (__glibc_unlikely (pstr->offsets_needed != 0)) + if (BE (pstr->offsets_needed != 0, 0)) { size_t i; for (i = 0; i < mbclen; ++i) @@ -457,17 +457,17 @@ build_wcs_upper_buffer (re_string_t *pstr) /* It is an invalid character or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx]; - if (__glibc_unlikely (pstr->trans != NULL)) + if (BE (pstr->trans != NULL, 0)) ch = pstr->trans [ch]; pstr->mbs[byte_idx] = ch; - if (__glibc_unlikely (pstr->offsets_needed != 0)) + if (BE (pstr->offsets_needed != 0, 0)) pstr->offsets[byte_idx] = src_idx; ++src_idx; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; - if (__glibc_unlikely (mbclen == (size_t) -1)) + if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else @@ -486,6 +486,7 @@ build_wcs_upper_buffer (re_string_t *pstr) Return the index. */ static Idx +internal_function re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) { mbstate_t prev_st; @@ -502,8 +503,7 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, remain_len, &pstr->cur_state); - if (__glibc_unlikely (mbclen == (size_t) -2 || mbclen == (size_t) -1 - || mbclen == 0)) + if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) { /* We treat these cases as a single byte character. */ if (mbclen == 0 || remain_len == 0) @@ -521,11 +521,13 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) *last_wc = wc; return rawbuf_idx; } +#endif /* RE_ENABLE_I18N */ /* Build the buffer PSTR->MBS, and apply the translation if we need. This function is used in case of REG_ICASE. */ static void +internal_function build_upper_buffer (re_string_t *pstr) { Idx char_idx, end_idx; @@ -534,9 +536,12 @@ build_upper_buffer (re_string_t *pstr) for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx]; - if (__glibc_unlikely (pstr->trans != NULL)) + if (BE (pstr->trans != NULL, 0)) ch = pstr->trans[ch]; - pstr->mbs[char_idx] = toupper (ch); + if (islower (ch)) + pstr->mbs[char_idx] = toupper (ch); + else + pstr->mbs[char_idx] = ch; } pstr->valid_len = char_idx; pstr->valid_raw_len = char_idx; @@ -545,6 +550,7 @@ build_upper_buffer (re_string_t *pstr) /* Apply TRANS to the buffer in PSTR. */ static void +internal_function re_string_translate_buffer (re_string_t *pstr) { Idx buf_idx, end_idx; @@ -565,18 +571,20 @@ re_string_translate_buffer (re_string_t *pstr) convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) { Idx offset; - if (__glibc_unlikely (pstr->raw_mbs_idx <= idx)) + if (BE (pstr->raw_mbs_idx <= idx, 0)) offset = idx - pstr->raw_mbs_idx; else { /* Reset buffer. */ +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); +#endif /* RE_ENABLE_I18N */ pstr->len = pstr->raw_len; pstr->stop = pstr->raw_stop; pstr->valid_len = 0; @@ -590,13 +598,14 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) offset = idx; } - if (__glibc_likely (offset != 0)) + if (BE (offset != 0, 1)) { /* Should the already checked characters be kept? */ - if (__glibc_likely (offset < pstr->valid_raw_len)) + if (BE (offset < pstr->valid_raw_len, 1)) { /* Yes, move them to the front of the buffer. */ - if (__glibc_unlikely (pstr->offsets_needed)) +#ifdef RE_ENABLE_I18N + if (BE (pstr->offsets_needed, 0)) { Idx low = 0, high = pstr->valid_len, mid; do @@ -659,32 +668,40 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) } } else +#endif { pstr->tip_context = re_string_context_at (pstr, offset - 1, eflags); +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); - if (__glibc_unlikely (pstr->mbs_allocated)) +#endif /* RE_ENABLE_I18N */ + if (BE (pstr->mbs_allocated, 0)) memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; - DEBUG_ASSERT (pstr->valid_len > 0); +#if DEBUG + assert (pstr->valid_len > 0); +#endif } } else { +#ifdef RE_ENABLE_I18N /* No, skip all characters until IDX. */ Idx prev_valid_len = pstr->valid_len; - if (__glibc_unlikely (pstr->offsets_needed)) + if (BE (pstr->offsets_needed, 0)) { pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; } +#endif pstr->valid_len = 0; +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { Idx wcs_idx; @@ -704,7 +721,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) #ifdef _LIBC /* We know the wchar_t encoding is UCS4, so for the simple case, ASCII characters, skip the conversion step. */ - if (isascii (*p) && __glibc_likely (pstr->trans == NULL)) + if (isascii (*p) && BE (pstr->trans == NULL, 1)) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); /* pstr->valid_len = 0; */ @@ -722,7 +739,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) size_t mbclen; const unsigned char *pp = p; - if (__glibc_unlikely (pstr->trans != NULL)) + if (BE (pstr->trans != NULL, 0)) { int i = mlen < 6 ? mlen : 6; while (--i >= 0) @@ -752,13 +769,13 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) pstr->tip_context = re_string_context_at (pstr, prev_valid_len - 1, eflags); else - pstr->tip_context = ((__glibc_unlikely (pstr->word_ops_used != 0) + pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) ? CONTEXT_WORD : ((IS_WIDE_NEWLINE (wc) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); - if (__glibc_unlikely (pstr->valid_len)) + if (BE (pstr->valid_len, 0)) { for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) pstr->wcs[wcs_idx] = WEOF; @@ -768,6 +785,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) pstr->valid_raw_len = pstr->valid_len; } else +#endif /* RE_ENABLE_I18N */ { int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1]; pstr->valid_raw_len = 0; @@ -779,7 +797,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) ? CONTEXT_NEWLINE : 0)); } } - if (!__glibc_unlikely (pstr->mbs_allocated)) + if (!BE (pstr->mbs_allocated, 0)) pstr->mbs += offset; } pstr->raw_mbs_idx = idx; @@ -787,19 +805,21 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) pstr->stop -= offset; /* Then build the buffers. */ +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { if (pstr->icase) { reg_errcode_t ret = build_wcs_upper_buffer (pstr); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; } else build_wcs_buffer (pstr); } else - if (__glibc_unlikely (pstr->mbs_allocated)) +#endif /* RE_ENABLE_I18N */ + if (BE (pstr->mbs_allocated, 0)) { if (pstr->icase) build_upper_buffer (pstr); @@ -814,42 +834,50 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) } static unsigned char -__attribute__ ((pure)) +internal_function __attribute__ ((pure)) re_string_peek_byte_case (const re_string_t *pstr, Idx idx) { int ch; Idx off; /* Handle the common (easiest) cases first. */ - if (__glibc_likely (!pstr->mbs_allocated)) + if (BE (!pstr->mbs_allocated, 1)) return re_string_peek_byte (pstr, idx); +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1 && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) return re_string_peek_byte (pstr, idx); +#endif off = pstr->cur_idx + idx; +#ifdef RE_ENABLE_I18N if (pstr->offsets_needed) off = pstr->offsets[off]; +#endif ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; +#ifdef RE_ENABLE_I18N /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I this function returns CAPITAL LETTER I instead of first byte of DOTLESS SMALL LETTER I. The latter would confuse the parser, since peek_byte_case doesn't advance cur_idx in any way. */ if (pstr->offsets_needed && !isascii (ch)) return re_string_peek_byte (pstr, idx); +#endif return ch; } static unsigned char +internal_function re_string_fetch_byte_case (re_string_t *pstr) { - if (__glibc_likely (!pstr->mbs_allocated)) + if (BE (!pstr->mbs_allocated, 1)) return re_string_fetch_byte (pstr); +#ifdef RE_ENABLE_I18N if (pstr->offsets_needed) { Idx off; @@ -875,15 +903,19 @@ re_string_fetch_byte_case (re_string_t *pstr) re_string_char_size_at (pstr, pstr->cur_idx)); return ch; } +#endif return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++]; } static void +internal_function re_string_destruct (re_string_t *pstr) { +#ifdef RE_ENABLE_I18N re_free (pstr->wcs); re_free (pstr->offsets); +#endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) re_free (pstr->mbs); } @@ -891,35 +923,40 @@ re_string_destruct (re_string_t *pstr) /* Return the context at IDX in INPUT. */ static unsigned int +internal_function re_string_context_at (const re_string_t *input, Idx idx, int eflags) { int c; - if (__glibc_unlikely (idx < 0)) + if (BE (! REG_VALID_INDEX (idx), 0)) /* In this case, we use the value stored in input->tip_context, since we can't know the character in input->mbs[-1] here. */ return input->tip_context; - if (__glibc_unlikely (idx == input->len)) + if (BE (idx == input->len, 0)) return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF : CONTEXT_NEWLINE | CONTEXT_ENDBUF); +#ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc; Idx wc_idx = idx; while(input->wcs[wc_idx] == WEOF) { - DEBUG_ASSERT (wc_idx >= 0); +#ifdef DEBUG + /* It must not happen. */ + assert (REG_VALID_INDEX (wc_idx)); +#endif --wc_idx; - if (wc_idx < 0) + if (! REG_VALID_INDEX (wc_idx)) return input->tip_context; } wc = input->wcs[wc_idx]; - if (__glibc_unlikely (input->word_ops_used != 0) - && IS_WIDE_WORD_CHAR (wc)) + if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) return CONTEXT_WORD; return (IS_WIDE_NEWLINE (wc) && input->newline_anchor ? CONTEXT_NEWLINE : 0); } else +#endif { c = re_string_byte_at (input, idx); if (bitset_contain (input->word_char, c)) @@ -931,26 +968,25 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags) /* Functions for set operation. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_alloc (re_node_set *set, Idx size) { set->alloc = size; set->nelem = 0; set->elems = re_malloc (Idx, size); - if (__glibc_unlikely (set->elems == NULL) - && (MALLOC_0_IS_NONNULL || size != 0)) + if (BE (set->elems == NULL, 0) && (MALLOC_0_IS_NONNULL || size != 0)) return REG_ESPACE; return REG_NOERROR; } static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_init_1 (re_node_set *set, Idx elem) { set->alloc = 1; set->nelem = 1; set->elems = re_malloc (Idx, 1); - if (__glibc_unlikely (set->elems == NULL)) + if (BE (set->elems == NULL, 0)) { set->alloc = set->nelem = 0; return REG_ESPACE; @@ -960,12 +996,12 @@ re_node_set_init_1 (re_node_set *set, Idx elem) } static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) { set->alloc = 2; set->elems = re_malloc (Idx, 2); - if (__glibc_unlikely (set->elems == NULL)) + if (BE (set->elems == NULL, 0)) return REG_ESPACE; if (elem1 == elem2) { @@ -990,7 +1026,7 @@ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) } static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; @@ -998,7 +1034,7 @@ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->alloc = dest->nelem; dest->elems = re_malloc (Idx, dest->alloc); - if (__glibc_unlikely (dest->elems == NULL)) + if (BE (dest->elems == NULL, 0)) { dest->alloc = dest->nelem = 0; return REG_ESPACE; @@ -1015,7 +1051,7 @@ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { @@ -1029,7 +1065,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, { Idx new_alloc = src1->nelem + src2->nelem + dest->alloc; Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc); - if (__glibc_unlikely (new_elems == NULL)) + if (BE (new_elems == NULL, 0)) return REG_ESPACE; dest->elems = new_elems; dest->alloc = new_alloc; @@ -1046,25 +1082,25 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, if (src1->elems[i1] == src2->elems[i2]) { /* Try to find the item in DEST. Maybe we could binary search? */ - while (id >= 0 && dest->elems[id] > src1->elems[i1]) + while (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1]) --id; - if (id < 0 || dest->elems[id] != src1->elems[i1]) + if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1]) dest->elems[--sbase] = src1->elems[i1]; - if (--i1 < 0 || --i2 < 0) + if (! REG_VALID_INDEX (--i1) || ! REG_VALID_INDEX (--i2)) break; } /* Lower the highest of the two items. */ else if (src1->elems[i1] < src2->elems[i2]) { - if (--i2 < 0) + if (! REG_VALID_INDEX (--i2)) break; } else { - if (--i1 < 0) + if (! REG_VALID_INDEX (--i1)) break; } } @@ -1077,7 +1113,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, DEST elements are already in place; this is more or less the same loop that is in re_node_set_merge. */ dest->nelem += delta; - if (delta > 0 && id >= 0) + if (delta > 0 && REG_VALID_INDEX (id)) for (;;) { if (dest->elems[is] > dest->elems[id]) @@ -1091,7 +1127,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; - if (--id < 0) + if (! REG_VALID_INDEX (--id)) break; } } @@ -1106,7 +1142,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { @@ -1115,7 +1151,7 @@ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, { dest->alloc = src1->nelem + src2->nelem; dest->elems = re_malloc (Idx, dest->alloc); - if (__glibc_unlikely (dest->elems == NULL)) + if (BE (dest->elems == NULL, 0)) return REG_ESPACE; } else @@ -1159,7 +1195,7 @@ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx is, id, sbase, delta; @@ -1169,18 +1205,14 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx new_alloc = 2 * (src->nelem + dest->alloc); Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc); - if (__glibc_unlikely (new_buffer == NULL)) + if (BE (new_buffer == NULL, 0)) return REG_ESPACE; dest->elems = new_buffer; dest->alloc = new_alloc; } - if (__glibc_unlikely (dest->nelem == 0)) + if (BE (dest->nelem == 0, 0)) { - /* Although we already guaranteed above that dest->alloc != 0 and - therefore dest->elems != NULL, add a debug assertion to pacify - GCC 11.2.1's -fanalyzer. */ - DEBUG_ASSERT (dest->elems); dest->nelem = src->nelem; memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); return REG_NOERROR; @@ -1189,7 +1221,8 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) /* Copy into the top of DEST the items of SRC that are not found in DEST. Maybe we could binary search in DEST? */ for (sbase = dest->nelem + 2 * src->nelem, - is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; ) + is = src->nelem - 1, id = dest->nelem - 1; + REG_VALID_INDEX (is) && REG_VALID_INDEX (id); ) { if (dest->elems[id] == src->elems[is]) is--, id--; @@ -1199,7 +1232,7 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) --id; } - if (is >= 0) + if (REG_VALID_INDEX (is)) { /* If DEST is exhausted, the remaining items of SRC must be unique. */ sbase -= is + 1; @@ -1228,7 +1261,7 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; - if (--id < 0) + if (! REG_VALID_INDEX (--id)) { /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, @@ -1246,20 +1279,17 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) Return true if successful. */ static bool -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_insert (re_node_set *set, Idx elem) { Idx idx; /* In case the set is empty. */ if (set->alloc == 0) - return __glibc_likely (re_node_set_init_1 (set, elem) == REG_NOERROR); + return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1); - if (__glibc_unlikely (set->nelem) == 0) + if (BE (set->nelem, 0) == 0) { - /* Although we already guaranteed above that set->alloc != 0 and - therefore set->elems != NULL, add a debug assertion to pacify - GCC 11.2 -fanalyzer. */ - DEBUG_ASSERT (set->elems); + /* We already guaranteed above that set->alloc != 0. */ set->elems[0] = elem; ++set->nelem; return true; @@ -1271,7 +1301,7 @@ re_node_set_insert (re_node_set *set, Idx elem) Idx *new_elems; set->alloc = set->alloc * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); - if (__glibc_unlikely (new_elems == NULL)) + if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } @@ -1280,6 +1310,7 @@ re_node_set_insert (re_node_set *set, Idx elem) first element separately to skip a check in the inner loop. */ if (elem < set->elems[0]) { + idx = 0; for (idx = set->nelem; idx > 0; idx--) set->elems[idx] = set->elems[idx - 1]; } @@ -1287,7 +1318,6 @@ re_node_set_insert (re_node_set *set, Idx elem) { for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) set->elems[idx] = set->elems[idx - 1]; - DEBUG_ASSERT (set->elems[idx - 1] < elem); } /* Insert the new element. */ @@ -1301,7 +1331,7 @@ re_node_set_insert (re_node_set *set, Idx elem) Return true if successful. */ static bool -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_node_set_insert_last (re_node_set *set, Idx elem) { /* Realloc if we need. */ @@ -1310,7 +1340,7 @@ re_node_set_insert_last (re_node_set *set, Idx elem) Idx *new_elems; set->alloc = (set->alloc + 1) * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); - if (__glibc_unlikely (new_elems == NULL)) + if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } @@ -1324,13 +1354,13 @@ re_node_set_insert_last (re_node_set *set, Idx elem) Return true if SET1 and SET2 are equivalent. */ static bool -__attribute__ ((pure)) +internal_function __attribute__ ((pure)) re_node_set_compare (const re_node_set *set1, const re_node_set *set2) { Idx i; if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem) return false; - for (i = set1->nelem ; --i >= 0 ; ) + for (i = set1->nelem ; REG_VALID_INDEX (--i) ; ) if (set1->elems[i] != set2->elems[i]) return false; return true; @@ -1339,11 +1369,11 @@ re_node_set_compare (const re_node_set *set1, const re_node_set *set2) /* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */ static Idx -__attribute__ ((pure)) +internal_function __attribute__ ((pure)) re_node_set_contains (const re_node_set *set, Idx elem) { __re_size_t idx, right, mid; - if (set->nelem <= 0) + if (! REG_VALID_NONZERO_INDEX (set->nelem)) return 0; /* Binary search the element. */ @@ -1361,6 +1391,7 @@ re_node_set_contains (const re_node_set *set, Idx elem) } static void +internal_function re_node_set_remove_at (re_node_set *set, Idx idx) { if (idx < 0 || idx >= set->nelem) @@ -1372,12 +1403,13 @@ re_node_set_remove_at (re_node_set *set, Idx idx) /* Add the token TOKEN to dfa->nodes, and return the index of the token. - Or return -1 if an error occurred. */ + Or return REG_MISSING if an error occurred. */ static Idx +internal_function re_dfa_add_node (re_dfa_t *dfa, re_token_t token) { - if (__glibc_unlikely (dfa->nodes_len >= dfa->nodes_alloc)) + if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0)) { size_t new_nodes_alloc = dfa->nodes_alloc * 2; Idx *new_nexts, *new_indices; @@ -1388,43 +1420,41 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token) const size_t max_object_size = MAX (sizeof (re_token_t), MAX (sizeof (re_node_set), sizeof (Idx))); - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) - < new_nodes_alloc)) - return -1; + if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0)) + return REG_MISSING; new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); - if (__glibc_unlikely (new_nodes == NULL)) - return -1; + if (BE (new_nodes == NULL, 0)) + return REG_MISSING; dfa->nodes = new_nodes; - dfa->nodes_alloc = new_nodes_alloc; new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc); - if (new_nexts != NULL) - dfa->nexts = new_nexts; new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc); - if (new_indices != NULL) - dfa->org_indices = new_indices; new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); - if (new_edests != NULL) - dfa->edests = new_edests; new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc); - if (new_eclosures != NULL) - dfa->eclosures = new_eclosures; - if (__glibc_unlikely (new_nexts == NULL || new_indices == NULL - || new_edests == NULL || new_eclosures == NULL)) - return -1; + if (BE (new_nexts == NULL || new_indices == NULL + || new_edests == NULL || new_eclosures == NULL, 0)) + return REG_MISSING; + dfa->nexts = new_nexts; + dfa->org_indices = new_indices; + dfa->edests = new_edests; + dfa->eclosures = new_eclosures; + dfa->nodes_alloc = new_nodes_alloc; } dfa->nodes[dfa->nodes_len] = token; dfa->nodes[dfa->nodes_len].constraint = 0; +#ifdef RE_ENABLE_I18N dfa->nodes[dfa->nodes_len].accept_mb = ((token.type == OP_PERIOD && dfa->mb_cur_max > 1) || token.type == COMPLEX_BRACKET); - dfa->nexts[dfa->nodes_len] = -1; +#endif + dfa->nexts[dfa->nodes_len] = REG_MISSING; re_node_set_init_empty (dfa->edests + dfa->nodes_len); re_node_set_init_empty (dfa->eclosures + dfa->nodes_len); return dfa->nodes_len++; } static re_hashval_t +internal_function calc_state_hash (const re_node_set *nodes, unsigned int context) { re_hashval_t hash = nodes->nelem + context; @@ -1444,7 +1474,7 @@ calc_state_hash (const re_node_set *nodes, unsigned int context) optimization. */ static re_dfastate_t * -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes) { @@ -1452,11 +1482,11 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; -#if defined GCC_LINT || defined lint +#ifdef lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif - if (__glibc_unlikely (nodes->nelem == 0)) + if (BE (nodes->nelem == 0, 0)) { *err = REG_NOERROR; return NULL; @@ -1475,7 +1505,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, /* There are no appropriate state in the dfa, create the new one. */ new_state = create_ci_newstate (dfa, nodes, hash); - if (__glibc_unlikely (new_state == NULL)) + if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; @@ -1492,7 +1522,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, optimization. */ static re_dfastate_t * -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context) { @@ -1500,7 +1530,7 @@ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; -#if defined GCC_LINT || defined lint +#ifdef lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif @@ -1522,7 +1552,7 @@ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, } /* There are no appropriate state in 'dfa', create the new one. */ new_state = create_cd_newstate (dfa, nodes, context, hash); - if (__glibc_unlikely (new_state == NULL)) + if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; @@ -1543,7 +1573,7 @@ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, newstate->hash = hash; err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < newstate->nodes.nelem; i++) { @@ -1554,12 +1584,12 @@ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, } spot = dfa->state_table + (hash & dfa->state_hash_mask); - if (__glibc_unlikely (spot->alloc <= spot->num)) + if (BE (spot->alloc <= spot->num, 0)) { Idx new_alloc = 2 * spot->num + 2; re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *, new_alloc); - if (__glibc_unlikely (new_array == NULL)) + if (BE (new_array == NULL, 0)) return REG_ESPACE; spot->array = new_array; spot->alloc = new_alloc; @@ -1588,7 +1618,7 @@ free_state (re_dfastate_t *state) Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) { @@ -1597,10 +1627,10 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); - if (__glibc_unlikely (newstate == NULL)) + if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; @@ -1613,7 +1643,9 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_token_type_t type = node->type; if (type == CHARACTER && !node->constraint) continue; +#ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; +#endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) @@ -1624,7 +1656,7 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, newstate->has_constraint = 1; } err = register_state (dfa, newstate, hash); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; @@ -1636,7 +1668,7 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) { @@ -1645,10 +1677,10 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); - if (__glibc_unlikely (newstate == NULL)) + if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; @@ -1665,7 +1697,9 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, if (type == CHARACTER && !constraint) continue; +#ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; +#endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) @@ -1677,19 +1711,15 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, { if (newstate->entrance_nodes == &newstate->nodes) { - re_node_set *entrance_nodes = re_malloc (re_node_set, 1); - if (__glibc_unlikely (entrance_nodes == NULL)) + newstate->entrance_nodes = re_malloc (re_node_set, 1); + if (BE (newstate->entrance_nodes == NULL, 0)) { free_state (newstate); return NULL; } - newstate->entrance_nodes = entrance_nodes; if (re_node_set_init_copy (newstate->entrance_nodes, nodes) != REG_NOERROR) - { - free_state (newstate); - return NULL; - } + return NULL; nctx_nodes = 0; newstate->has_constraint = 1; } @@ -1702,7 +1732,7 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, } } err = register_state (dfa, newstate, hash); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; diff --git a/gl/regex_internal.h b/gl/regex_internal.h index 149ec2e..a2b8f16 100644 --- a/gl/regex_internal.h +++ b/gl/regex_internal.h @@ -1,25 +1,26 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public + modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public + You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _REGEX_INTERNAL_H #define _REGEX_INTERNAL_H 1 +#include #include #include #include @@ -29,37 +30,39 @@ #include #include #include +#include #include -#ifndef _LIBC -# include -#endif - -#include -#include - -#if defined DEBUG && DEBUG != 0 -# include -# define DEBUG_ASSERT(x) assert (x) -#else -# define DEBUG_ASSERT(x) assume (x) -#endif - #ifdef _LIBC -# include +# include # define lock_define(name) __libc_lock_define (, name) # define lock_init(lock) (__libc_lock_init (lock), 0) -# define lock_fini(lock) ((void) 0) +# define lock_fini(lock) 0 # define lock_lock(lock) __libc_lock_lock (lock) # define lock_unlock(lock) __libc_lock_unlock (lock) -#elif defined GNULIB_LOCK && !defined GNULIB_REGEX_SINGLE_THREAD +#elif defined GNULIB_LOCK # include "glthread/lock.h" -# define lock_define(name) gl_lock_define (, name) + /* Use gl_lock_define if empty macro arguments are known to work. + Otherwise, fall back on less-portable substitutes. */ +# if ((defined __GNUC__ && !defined __STRICT_ANSI__) \ + || (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__)) +# define lock_define(name) gl_lock_define (, name) +# elif USE_POSIX_THREADS +# define lock_define(name) pthread_mutex_t name; +# elif USE_PTH_THREADS +# define lock_define(name) pth_mutex_t name; +# elif USE_SOLARIS_THREADS +# define lock_define(name) mutex_t name; +# elif USE_WINDOWS_THREADS +# define lock_define(name) gl_lock_t name; +# else +# define lock_define(name) +# endif # define lock_init(lock) glthread_lock_init (&(lock)) # define lock_fini(lock) glthread_lock_destroy (&(lock)) # define lock_lock(lock) glthread_lock_lock (&(lock)) # define lock_unlock(lock) glthread_lock_unlock (&(lock)) -#elif defined GNULIB_PTHREAD && !defined GNULIB_REGEX_SINGLE_THREAD +#elif defined GNULIB_PTHREAD # include # define lock_define(name) pthread_mutex_t name; # define lock_init(lock) pthread_mutex_init (&(lock), 0) @@ -80,18 +83,11 @@ # define isblank(ch) ((ch) == ' ' || (ch) == '\t') #endif -/* regex code assumes isascii has its usual numeric meaning, - even if the portable character set uses EBCDIC encoding, - and even if wint_t is wider than int. */ -#ifndef _LIBC -# undef isascii -# define isascii(c) (((c) & ~0x7f) == 0) -#endif - #ifdef _LIBC # ifndef _RE_DEFINE_LOCALE_FUNCTIONS # define _RE_DEFINE_LOCALE_FUNCTIONS 1 # include +# include # include # endif #endif @@ -105,7 +101,6 @@ __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES) # endif #else -# undef gettext # define gettext(msgid) (msgid) #endif @@ -115,6 +110,16 @@ # define gettext_noop(String) String #endif +#if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCSCOLL) || _LIBC +# define RE_ENABLE_I18N +#endif + +#if __GNUC__ >= 3 +# define BE(expr, val) __builtin_expect (expr, val) +#else +# define BE(expr, val) (expr) +#endif + /* Number of ASCII characters. */ #define ASCII_CHARS 0x80 @@ -130,62 +135,47 @@ /* Rename to standard API for using out of glibc. */ #ifndef _LIBC # undef __wctype -# undef __iswalnum # undef __iswctype -# undef __towlower -# undef __towupper # define __wctype wctype -# define __iswalnum iswalnum # define __iswctype iswctype -# define __towlower towlower -# define __towupper towupper # define __btowc btowc # define __mbrtowc mbrtowc # define __wcrtomb wcrtomb # define __regfree regfree +# define attribute_hidden #endif /* not _LIBC */ -/* Types related to integers. Unless protected by #ifdef _LIBC, the - regex code should avoid exact-width types like int32_t and uint64_t - as some non-GCC platforms lack them, an issue when this code is - used in Gnulib. */ - -#ifndef SSIZE_MAX -# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) -#endif -#ifndef ULONG_WIDTH -# define ULONG_WIDTH REGEX_UINTEGER_WIDTH (ULONG_MAX) -/* The number of usable bits in an unsigned integer type with maximum - value MAX, as an int expression suitable in #if. Cover all known - practical hosts. This implementation exploits the fact that MAX is - 1 less than a power of 2, and merely counts the number of 1 bits in - MAX; "COBn" means "count the number of 1 bits in the low-order n bits". */ -# define REGEX_UINTEGER_WIDTH(max) REGEX_COB128 (max) -# define REGEX_COB128(n) (REGEX_COB64 ((n) >> 31 >> 31 >> 2) + REGEX_COB64 (n)) -# define REGEX_COB64(n) (REGEX_COB32 ((n) >> 31 >> 1) + REGEX_COB32 (n)) -# define REGEX_COB32(n) (REGEX_COB16 ((n) >> 16) + REGEX_COB16 (n)) -# define REGEX_COB16(n) (REGEX_COB8 ((n) >> 8) + REGEX_COB8 (n)) -# define REGEX_COB8(n) (REGEX_COB4 ((n) >> 4) + REGEX_COB4 (n)) -# define REGEX_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + ((n) & 1)) -# if ULONG_MAX / 2 + 1 != 1ul << (ULONG_WIDTH - 1) -# error "ULONG_MAX out of range" -# endif +#if __GNUC__ < 3 + (__GNUC_MINOR__ < 1) +# define __attribute__(arg) #endif -/* The type of indexes into strings. This is signed, not size_t, - since the API requires indexes to fit in regoff_t anyway, and using - signed integers makes the code a bit smaller and presumably faster. - The traditional GNU regex implementation uses int for indexes. - The POSIX-compatible implementation uses a possibly-wider type. - The name 'Idx' is three letters to minimize the hassle of - reindenting a lot of regex code that formerly used 'int'. */ -typedef regoff_t Idx; +typedef __re_idx_t Idx; #ifdef _REGEX_LARGE_OFFSETS -# define IDX_MAX SSIZE_MAX +# define IDX_MAX (SIZE_MAX - 2) #else # define IDX_MAX INT_MAX #endif +/* Special return value for failure to match. */ +#define REG_MISSING ((Idx) -1) + +/* Special return value for internal error. */ +#define REG_ERROR ((Idx) -2) + +/* Test whether N is a valid index, and is not one of the above. */ +#ifdef _REGEX_LARGE_OFFSETS +# define REG_VALID_INDEX(n) ((Idx) (n) < REG_ERROR) +#else +# define REG_VALID_INDEX(n) (0 <= (n)) +#endif + +/* Test whether N is a valid nonzero index. */ +#ifdef _REGEX_LARGE_OFFSETS +# define REG_VALID_NONZERO_INDEX(n) ((Idx) ((n) - 1) < (Idx) (REG_ERROR - 1)) +#else +# define REG_VALID_NONZERO_INDEX(n) (0 < (n)) +#endif + /* A hash value, suitable for computing hash tables. */ typedef __re_size_t re_hashval_t; @@ -194,8 +184,36 @@ typedef __re_size_t re_hashval_t; typedef unsigned long int bitset_word_t; /* All bits set in a bitset_word_t. */ #define BITSET_WORD_MAX ULONG_MAX -/* Number of bits in a bitset_word_t. */ -#define BITSET_WORD_BITS ULONG_WIDTH + +/* Number of bits in a bitset_word_t. For portability to hosts with + padding bits, do not use '(sizeof (bitset_word_t) * CHAR_BIT)'; + instead, deduce it directly from BITSET_WORD_MAX. Avoid + greater-than-32-bit integers and unconditional shifts by more than + 31 bits, as they're not portable. */ +#if BITSET_WORD_MAX == 0xffffffffUL +# define BITSET_WORD_BITS 32 +#elif BITSET_WORD_MAX >> 31 >> 4 == 1 +# define BITSET_WORD_BITS 36 +#elif BITSET_WORD_MAX >> 31 >> 16 == 1 +# define BITSET_WORD_BITS 48 +#elif BITSET_WORD_MAX >> 31 >> 28 == 1 +# define BITSET_WORD_BITS 60 +#elif BITSET_WORD_MAX >> 31 >> 31 >> 1 == 1 +# define BITSET_WORD_BITS 64 +#elif BITSET_WORD_MAX >> 31 >> 31 >> 9 == 1 +# define BITSET_WORD_BITS 72 +#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 3 == 1 +# define BITSET_WORD_BITS 128 +#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 == 1 +# define BITSET_WORD_BITS 256 +#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 > 1 +# define BITSET_WORD_BITS 257 /* any value > SBC_MAX will do here */ +# if BITSET_WORD_BITS <= SBC_MAX +# error "Invalid SBC_MAX" +# endif +#else +# error "Add case for new bitset_word_t size" +#endif /* Number of bitset_word_t values in a bitset_t. */ #define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS) @@ -246,8 +264,10 @@ typedef enum SIMPLE_BRACKET = 3, OP_BACK_REF = 4, OP_PERIOD = 5, +#ifdef RE_ENABLE_I18N COMPLEX_BRACKET = 6, OP_UTF8_PERIOD = 7, +#endif /* RE_ENABLE_I18N */ /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used when the debugger shows values of this enum type. */ @@ -285,29 +305,30 @@ typedef enum } re_token_type_t; +#ifdef RE_ENABLE_I18N typedef struct { /* Multibyte characters. */ wchar_t *mbchars; -#ifdef _LIBC /* Collating symbols. */ +# ifdef _LIBC int32_t *coll_syms; -#endif +# endif -#ifdef _LIBC /* Equivalence classes. */ +# ifdef _LIBC int32_t *equiv_classes; -#endif +# endif /* Range expressions. */ -#ifdef _LIBC +# ifdef _LIBC uint32_t *range_starts; uint32_t *range_ends; -#else +# else /* not _LIBC */ wchar_t *range_starts; wchar_t *range_ends; -#endif +# endif /* not _LIBC */ /* Character classes. */ wctype_t *char_classes; @@ -330,6 +351,7 @@ typedef struct /* # of character classes. */ Idx nchar_classes; } re_charset_t; +#endif /* RE_ENABLE_I18N */ typedef struct { @@ -337,11 +359,13 @@ typedef struct { unsigned char c; /* for CHARACTER */ re_bitset_ptr_t sbcset; /* for SIMPLE_BRACKET */ +#ifdef RE_ENABLE_I18N re_charset_t *mbcset; /* for COMPLEX_BRACKET */ +#endif /* RE_ENABLE_I18N */ Idx idx; /* for BACK_REF */ re_context_type ctx_type; /* for ANCHOR */ } opr; -#if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__ +#if __GNUC__ >= 2 && !defined __STRICT_ANSI__ re_token_type_t type : 8; #else re_token_type_t type; @@ -349,10 +373,12 @@ typedef struct unsigned int constraint : 10; /* context constraint */ unsigned int duplicated : 1; unsigned int opt_subexp : 1; +#ifdef RE_ENABLE_I18N unsigned int accept_mb : 1; /* These 2 bits can be moved into the union if needed (e.g. if running out of bits; move opr.c to opr.c.c and move the flags to opr.c.flags). */ unsigned int mb_partial : 1; +#endif unsigned int word_char : 1; } re_token_t; @@ -367,10 +393,12 @@ struct re_string_t REG_ICASE, upper cases of the string are stored, otherwise MBS points the same address that RAW_MBS points. */ unsigned char *mbs; +#ifdef RE_ENABLE_I18N /* Store the wide character string which is corresponding to MBS. */ wint_t *wcs; Idx *offsets; mbstate_t cur_state; +#endif /* Index in RAW_MBS. Each character mbs[i] corresponds to raw_mbs[raw_mbs_idx + i]. */ Idx raw_mbs_idx; @@ -418,9 +446,24 @@ struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; #ifndef _LIBC -# define IS_IN(libc) false +# define internal_function #endif +#ifndef NOT_IN_libc +static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, + Idx new_buf_len) + internal_function; +# ifdef RE_ENABLE_I18N +static void build_wcs_buffer (re_string_t *pstr) internal_function; +static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr) + internal_function; +# endif /* RE_ENABLE_I18N */ +static void build_upper_buffer (re_string_t *pstr) internal_function; +static void re_string_translate_buffer (re_string_t *pstr) internal_function; +static unsigned int re_string_context_at (const re_string_t *input, Idx idx, + int eflags) + internal_function __attribute__ ((pure)); +#endif #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) #define re_string_fetch_byte(pstr) \ @@ -438,6 +481,25 @@ typedef struct re_dfa_t re_dfa_t; #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) +#if defined _LIBC || HAVE_ALLOCA +# include +#endif + +#ifndef _LIBC +# if HAVE_ALLOCA +/* The OS usually guarantees only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + allocate anything larger than 4096 bytes. Also care for the possibility + of a few compiler-allocated temporary stack slots. */ +# define __libc_use_alloca(n) ((n) < 4032) +# else +/* alloca is implemented with malloc, so just use malloc. */ +# define __libc_use_alloca(n) 0 +# undef alloca +# define alloca(n) malloc (n) +# endif +#endif + #ifdef _LIBC # define MALLOC_0_IS_NONNULL 1 #elif !defined MALLOC_0_IS_NONNULL @@ -494,7 +556,7 @@ typedef struct bin_tree_storage_t bin_tree_storage_t; #define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_') #define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR) -#define IS_WIDE_WORD_CHAR(ch) (__iswalnum (ch) || (ch) == L'_') +#define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_') #define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR) #define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \ @@ -574,15 +636,20 @@ struct re_backref_cache_entry Idx str_idx; Idx subexp_from; Idx subexp_to; - bitset_word_t eps_reachable_subexps_map; char more; + char unused; + unsigned short int eps_reachable_subexps_map; }; typedef struct { /* The string object corresponding to the input string. */ re_string_t input; +#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) const re_dfa_t *const dfa; +#else + const re_dfa_t *dfa; +#endif /* EFLAGS of the argument of regexec. */ int eflags; /* Where the matching ends. */ @@ -702,31 +769,31 @@ typedef struct /* Functions for bitset_t operation. */ -static inline void +static void bitset_set (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS; } -static inline void +static void bitset_clear (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS); } -static inline bool +static bool bitset_contain (const bitset_t set, Idx i) { return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1; } -static inline void +static void bitset_empty (bitset_t set) { memset (set, '\0', sizeof (bitset_t)); } -static inline void +static void bitset_set_all (bitset_t set) { memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS)); @@ -735,13 +802,13 @@ bitset_set_all (bitset_t set) ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1; } -static inline void +static void bitset_copy (bitset_t dest, const bitset_t src) { memcpy (dest, src, sizeof (bitset_t)); } -static inline void +static void __attribute__ ((unused)) bitset_not (bitset_t set) { int bitset_i; @@ -753,7 +820,7 @@ bitset_not (bitset_t set) & ~set[BITSET_WORDS - 1]); } -static inline void +static void __attribute__ ((unused)) bitset_merge (bitset_t dest, const bitset_t src) { int bitset_i; @@ -761,7 +828,7 @@ bitset_merge (bitset_t dest, const bitset_t src) dest[bitset_i] |= src[bitset_i]; } -static inline void +static void __attribute__ ((unused)) bitset_mask (bitset_t dest, const bitset_t src) { int bitset_i; @@ -769,9 +836,10 @@ bitset_mask (bitset_t dest, const bitset_t src) dest[bitset_i] &= src[bitset_i]; } +#ifdef RE_ENABLE_I18N /* Functions for re_string. */ static int -__attribute__ ((pure, unused)) +internal_function __attribute__ ((pure, unused)) re_string_char_size_at (const re_string_t *pstr, Idx idx) { int byte_idx; @@ -784,7 +852,7 @@ re_string_char_size_at (const re_string_t *pstr, Idx idx) } static wint_t -__attribute__ ((pure, unused)) +internal_function __attribute__ ((pure, unused)) re_string_wchar_at (const re_string_t *pstr, Idx idx) { if (pstr->mb_cur_max == 1) @@ -792,17 +860,15 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx) return (wint_t) pstr->wcs[idx]; } -#ifdef _LIBC -# include -#endif - +# ifndef NOT_IN_libc static int -__attribute__ ((pure, unused)) +internal_function __attribute__ ((pure, unused)) re_string_elem_size_at (const re_string_t *pstr, Idx idx) { -#ifdef _LIBC +# ifdef _LIBC const unsigned char *p, *extra; const int32_t *table, *indirect; +# include uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) @@ -813,22 +879,31 @@ re_string_elem_size_at (const re_string_t *pstr, Idx idx) indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); p = pstr->mbs + idx; - findidx (table, indirect, extra, &p, pstr->len - idx); + findidx (&p, pstr->len - idx); return p - pstr->mbs - idx; } -#endif /* _LIBC */ - - return 1; + else +# endif /* _LIBC */ + return 1; } - -#ifdef _LIBC -# if __GNUC__ >= 7 -# define FALLTHROUGH __attribute__ ((__fallthrough__)) -# else -# define FALLTHROUGH ((void) 0) # endif +#endif /* RE_ENABLE_I18N */ + +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + +#if __GNUC_PREREQ (3,4) +# undef __attribute_warn_unused_result__ +# define __attribute_warn_unused_result__ \ + __attribute__ ((__warn_unused_result__)) #else -# include "attribute.h" +# define __attribute_warn_unused_result__ /* empty */ #endif #endif /* _REGEX_INTERNAL_H */ diff --git a/gl/regexec.c b/gl/regexec.c index 13e0349..d29d442 100644 --- a/gl/regexec.c +++ b/gl/regexec.c @@ -1,170 +1,206 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public + modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + General Public License for more details. - You should have received a copy of the GNU Lesser General Public + You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see - . */ + . */ static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, - Idx n); -static void match_ctx_clean (re_match_context_t *mctx); -static void match_ctx_free (re_match_context_t *cache); + Idx n) internal_function; +static void match_ctx_clean (re_match_context_t *mctx) internal_function; +static void match_ctx_free (re_match_context_t *cache) internal_function; static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node, - Idx str_idx, Idx from, Idx to); -static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx); + Idx str_idx, Idx from, Idx to) + internal_function; +static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) + internal_function; static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node, - Idx str_idx); + Idx str_idx) internal_function; static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, - Idx node, Idx str_idx); + Idx node, Idx str_idx) + internal_function; static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, - Idx last_str_idx); + Idx last_str_idx) + internal_function; static reg_errcode_t re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], - int eflags); + int eflags) internal_function; static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, - Idx stop, bool ret_len); + Idx stop, bool ret_len) internal_function; static regoff_t re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, - bool ret_len); + bool ret_len) internal_function; static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, - Idx nregs, int regs_allocated); -static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx); + Idx nregs, int regs_allocated) internal_function; +static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx) + internal_function; static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match, - Idx *p_match_first); + Idx *p_match_first) internal_function; static Idx check_halt_state_context (const re_match_context_t *mctx, - const re_dfastate_t *state, Idx idx); + const re_dfastate_t *state, Idx idx) + internal_function; static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, - Idx cur_idx, Idx nmatch); + Idx cur_idx, Idx nmatch) internal_function; static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, - regmatch_t *regs, regmatch_t *prevregs, - re_node_set *eps_via_nodes); + regmatch_t *regs, + re_node_set *eps_via_nodes) + internal_function; static reg_errcode_t set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, - bool fl_backtrack); -static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs); + bool fl_backtrack) internal_function; +static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) + internal_function; +#ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, - Idx node_idx, Idx str_idx, Idx max_str_idx); + Idx node_idx, Idx str_idx, Idx max_str_idx) + internal_function; +#endif /* RE_ENABLE_I18N */ static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, - re_sift_context_t *sctx); + re_sift_context_t *sctx) + internal_function; static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, - re_node_set *cur_dest); + re_node_set *cur_dest) + internal_function; static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, - re_node_set *dest_nodes); + re_node_set *dest_nodes) + internal_function; static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, - const re_node_set *candidates); + const re_node_set *candidates) + internal_function; static bool check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, - Idx src_idx); + Idx src_idx) internal_function; static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, - Idx from_node, Idx bkref_idx); + Idx from_node, Idx bkref_idx) + internal_function; static int check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx node, Idx str_idx, - Idx bkref_idx); + Idx bkref_idx) internal_function; static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, - Idx str_idx); + Idx str_idx) internal_function; static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, - Idx str_idx, const re_node_set *candidates); + Idx str_idx, const re_node_set *candidates) + internal_function; static reg_errcode_t merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, - re_dfastate_t **src, Idx num); + re_dfastate_t **src, Idx num) + internal_function; static re_dfastate_t *find_recover_state (reg_errcode_t *err, - re_match_context_t *mctx); + re_match_context_t *mctx) internal_function; static re_dfastate_t *transit_state (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *state); + re_dfastate_t *state) internal_function; static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *next_state); + re_dfastate_t *next_state) + internal_function; static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, - Idx str_idx); + Idx str_idx) internal_function; #if 0 static re_dfastate_t *transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *pstate); + re_dfastate_t *pstate) + internal_function; #endif +#ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, - re_dfastate_t *pstate); + re_dfastate_t *pstate) + internal_function; +#endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, - const re_node_set *nodes); + const re_node_set *nodes) + internal_function; static reg_errcode_t get_subexp (re_match_context_t *mctx, - Idx bkref_node, Idx bkref_str_idx); + Idx bkref_node, Idx bkref_str_idx) + internal_function; static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, - Idx bkref_node, Idx bkref_str); + Idx bkref_node, Idx bkref_str) + internal_function; static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, - Idx subexp_idx, int type); + Idx subexp_idx, int type) internal_function; static reg_errcode_t check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, - int type); + int type) internal_function; static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, - re_node_set *next_nodes); + re_node_set *next_nodes) + internal_function; static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, - Idx ex_subexp, int type); + Idx ex_subexp, int type) + internal_function; static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, - int type); + int type) internal_function; static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, - Idx subexp_num, int type); -static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state); + Idx subexp_num, int type) + internal_function; +static bool build_trtable (const re_dfa_t *dfa, + re_dfastate_t *state) internal_function; +#ifdef RE_ENABLE_I18N static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, - const re_string_t *input, Idx idx); -#ifdef _LIBC + const re_string_t *input, Idx idx) + internal_function; +# ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, - size_t name_len); -#endif + size_t name_len) + internal_function; +# endif /* _LIBC */ +#endif /* RE_ENABLE_I18N */ static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *states_node, - bitset_t *states_ch); + bitset_t *states_ch) internal_function; static bool check_node_accept (const re_match_context_t *mctx, - const re_token_t *node, Idx idx); -static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len); + const re_token_t *node, Idx idx) + internal_function; +static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) + internal_function; /* Entry point for POSIX code. */ @@ -180,12 +216,15 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len); REG_NOTBOL is set, then ^ does not match at the beginning of the string; if REG_NOTEOL is set, then $ does not match at the end. - Return 0 if a match is found, REG_NOMATCH if not, REG_BADPAT if - EFLAGS is invalid. */ + We return 0 if we find a match and REG_NOMATCH if not. */ int -regexec (const regex_t *__restrict preg, const char *__restrict string, - size_t nmatch, regmatch_t pmatch[_REGEX_NELTS (nmatch)], int eflags) +regexec (preg, string, nmatch, pmatch, eflags) + const regex_t *_Restrict_ preg; + const char *_Restrict_ string; + size_t nmatch; + regmatch_t pmatch[_Restrict_arr_]; + int eflags; { reg_errcode_t err; Idx start, length; @@ -217,8 +256,6 @@ regexec (const regex_t *__restrict preg, const char *__restrict string, } #ifdef _LIBC -libc_hidden_def (__regexec) - # include versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); @@ -227,9 +264,9 @@ __typeof__ (__regexec) __compat_regexec; int attribute_compat_text_section -__compat_regexec (const regex_t *__restrict preg, - const char *__restrict string, size_t nmatch, - regmatch_t pmatch[_REGEX_NELTS (nmatch)], int eflags) +__compat_regexec (const regex_t *_Restrict_ preg, + const char *_Restrict_ string, size_t nmatch, + regmatch_t pmatch[], int eflags) { return regexec (preg, string, nmatch, pmatch, eflags & (REG_NOTBOL | REG_NOTEOL)); @@ -264,12 +301,15 @@ compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); strings.) On success, re_match* functions return the length of the match, re_search* - return the position of the start of the match. They return -1 on - match failure, -2 on error. */ + return the position of the start of the match. Return value -1 means no + match was found and -2 indicates an internal error. */ regoff_t -re_match (struct re_pattern_buffer *bufp, const char *string, Idx length, - Idx start, struct re_registers *regs) +re_match (bufp, string, length, start, regs) + struct re_pattern_buffer *bufp; + const char *string; + Idx length, start; + struct re_registers *regs; { return re_search_stub (bufp, string, length, start, 0, length, regs, true); } @@ -278,8 +318,12 @@ weak_alias (__re_match, re_match) #endif regoff_t -re_search (struct re_pattern_buffer *bufp, const char *string, Idx length, - Idx start, regoff_t range, struct re_registers *regs) +re_search (bufp, string, length, start, range, regs) + struct re_pattern_buffer *bufp; + const char *string; + Idx length, start; + regoff_t range; + struct re_registers *regs; { return re_search_stub (bufp, string, length, start, range, length, regs, false); @@ -289,9 +333,11 @@ weak_alias (__re_search, re_search) #endif regoff_t -re_match_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, - const char *string2, Idx length2, Idx start, - struct re_registers *regs, Idx stop) +re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop) + struct re_pattern_buffer *bufp; + const char *string1, *string2; + Idx length1, length2, start, stop; + struct re_registers *regs; { return re_search_2_stub (bufp, string1, length1, string2, length2, start, 0, regs, stop, true); @@ -301,9 +347,12 @@ weak_alias (__re_match_2, re_match_2) #endif regoff_t -re_search_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, - const char *string2, Idx length2, Idx start, regoff_t range, - struct re_registers *regs, Idx stop) +re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop) + struct re_pattern_buffer *bufp; + const char *string1, *string2; + Idx length1, length2, start, stop; + regoff_t range; + struct re_registers *regs; { return re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs, stop, false); @@ -313,18 +362,18 @@ weak_alias (__re_search_2, re_search_2) #endif static regoff_t -re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, - Idx length1, const char *string2, Idx length2, Idx start, - regoff_t range, struct re_registers *regs, +re_search_2_stub (struct re_pattern_buffer *bufp, + const char *string1, Idx length1, + const char *string2, Idx length2, + Idx start, regoff_t range, struct re_registers *regs, Idx stop, bool ret_len) { const char *str; regoff_t rval; - Idx len; + Idx len = length1 + length2; char *s = NULL; - if (__glibc_unlikely ((length1 < 0 || length2 < 0 || stop < 0 - || INT_ADD_WRAPV (length1, length2, &len)))) + if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0)) return -2; /* Concatenate the strings. */ @@ -333,7 +382,7 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, { s = re_malloc (char, len); - if (__glibc_unlikely (s == NULL)) + if (BE (s == NULL, 0)) return -2; #ifdef _LIBC memcpy (__mempcpy (s, string1, length1), string2, length2); @@ -360,7 +409,8 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, otherwise the position of the match is returned. */ static regoff_t -re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, +re_search_stub (struct re_pattern_buffer *bufp, + const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, bool ret_len) { @@ -373,13 +423,11 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx last_start = start + range; /* Check for out-of-range. */ - if (__glibc_unlikely (start < 0 || start > length)) + if (BE (start < 0 || start > length, 0)) return -1; - if (__glibc_unlikely (length < last_start - || (0 <= range && last_start < start))) + if (BE (length < last_start || (0 <= range && last_start < start), 0)) last_start = length; - else if (__glibc_unlikely (last_start < 0 - || (range < 0 && start <= last_start))) + else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0)) last_start = 0; lock_lock (dfa->lock); @@ -391,17 +439,17 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate) re_compile_fastmap (bufp); - if (__glibc_unlikely (bufp->no_sub)) + if (BE (bufp->no_sub, 0)) regs = NULL; /* We need at least 1 register. */ if (regs == NULL) nregs = 1; - else if (__glibc_unlikely (bufp->regs_allocated == REGS_FIXED - && regs->num_regs <= bufp->re_nsub)) + else if (BE (bufp->regs_allocated == REGS_FIXED + && regs->num_regs <= bufp->re_nsub, 0)) { nregs = regs->num_regs; - if (__glibc_unlikely (nregs < 1)) + if (BE (nregs < 1, 0)) { /* Nothing can be copied to regs. */ regs = NULL; @@ -411,7 +459,7 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, else nregs = bufp->re_nsub + 1; pmatch = re_malloc (regmatch_t, nregs); - if (__glibc_unlikely (pmatch == NULL)) + if (BE (pmatch == NULL, 0)) { rval = -2; goto out; @@ -430,15 +478,15 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, /* If caller wants register contents data back, copy them. */ bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs, bufp->regs_allocated); - if (__glibc_unlikely (bufp->regs_allocated == REGS_UNALLOCATED)) + if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0)) rval = -2; } - if (__glibc_likely (rval == 0)) + if (BE (rval == 0, 1)) { if (ret_len) { - DEBUG_ASSERT (pmatch[0].rm_so == start); + assert (pmatch[0].rm_so == start); rval = pmatch[0].rm_eo - start; } else @@ -464,10 +512,10 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, if (regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. */ regs->start = re_malloc (regoff_t, need_regs); - if (__glibc_unlikely (regs->start == NULL)) + if (BE (regs->start == NULL, 0)) return REGS_UNALLOCATED; regs->end = re_malloc (regoff_t, need_regs); - if (__glibc_unlikely (regs->end == NULL)) + if (BE (regs->end == NULL, 0)) { re_free (regs->start); return REGS_UNALLOCATED; @@ -478,14 +526,14 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ - if (__glibc_unlikely (need_regs > regs->num_regs)) + if (BE (need_regs > regs->num_regs, 0)) { regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs); regoff_t *new_end; - if (__glibc_unlikely (new_start == NULL)) + if (BE (new_start == NULL, 0)) return REGS_UNALLOCATED; new_end = re_realloc (regs->end, regoff_t, need_regs); - if (__glibc_unlikely (new_end == NULL)) + if (BE (new_end == NULL, 0)) { re_free (new_start); return REGS_UNALLOCATED; @@ -497,9 +545,9 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, } else { - DEBUG_ASSERT (regs_allocated == REGS_FIXED); + assert (regs_allocated == REGS_FIXED); /* This function may not be called with REGS_FIXED and nregs too big. */ - DEBUG_ASSERT (nregs <= regs->num_regs); + assert (regs->num_regs >= nregs); rval = REGS_FIXED; } @@ -529,8 +577,11 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, freeing the old data. */ void -re_set_registers (struct re_pattern_buffer *bufp, struct re_registers *regs, - __re_size_t num_regs, regoff_t *starts, regoff_t *ends) +re_set_registers (bufp, regs, num_regs, starts, ends) + struct re_pattern_buffer *bufp; + struct re_registers *regs; + __re_size_t num_regs; + regoff_t *starts, *ends; { if (num_regs) { @@ -558,7 +609,8 @@ int # ifdef _LIBC weak_function # endif -re_exec (const char *s) +re_exec (s) + const char *s; { return 0 == regexec (&re_comp_buf, s, 0, NULL, 0); } @@ -577,9 +629,11 @@ re_exec (const char *s) static reg_errcode_t __attribute_warn_unused_result__ -re_search_internal (const regex_t *preg, const char *string, Idx length, - Idx start, Idx last_start, Idx stop, size_t nmatch, - regmatch_t pmatch[], int eflags) +re_search_internal (const regex_t *preg, + const char *string, Idx length, + Idx start, Idx last_start, Idx stop, + size_t nmatch, regmatch_t pmatch[], + int eflags) { reg_errcode_t err; const re_dfa_t *dfa = preg->buffer; @@ -588,28 +642,38 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, bool fl_longest_match; int match_kind; Idx match_first; - Idx match_last = -1; + Idx match_last = REG_MISSING; Idx extra_nmatch; bool sb; int ch; +#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) re_match_context_t mctx = { .dfa = dfa }; +#else + re_match_context_t mctx; +#endif char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate && start != last_start && !preg->can_be_null) ? preg->fastmap : NULL); RE_TRANSLATE_TYPE t = preg->translate; +#if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) + memset (&mctx, '\0', sizeof (re_match_context_t)); + mctx.dfa = dfa; +#endif + extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0; nmatch -= extra_nmatch; /* Check if the DFA haven't been compiled. */ - if (__glibc_unlikely (preg->used == 0 || dfa->init_state == NULL - || dfa->init_state_word == NULL - || dfa->init_state_nl == NULL - || dfa->init_state_begbuf == NULL)) + if (BE (preg->used == 0 || dfa->init_state == NULL + || dfa->init_state_word == NULL || dfa->init_state_nl == NULL + || dfa->init_state_begbuf == NULL, 0)) return REG_NOMATCH; +#ifdef DEBUG /* We assume front-end functions already check them. */ - DEBUG_ASSERT (0 <= last_start && last_start <= length); + assert (0 <= last_start && last_start <= length); +#endif /* If initial states with non-begbuf contexts have no elements, the regex must be anchored. If preg->newline_anchor is set, @@ -630,14 +694,14 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1, preg->translate, (preg->syntax & RE_ICASE) != 0, dfa); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; mctx.input.stop = stop; mctx.input.raw_stop = stop; mctx.input.newline_anchor = preg->newline_anchor; err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; /* We will log all the DFA states through which the dfa pass, @@ -647,20 +711,22 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, if (nmatch > 1 || dfa->has_mb_node) { /* Avoid overflow. */ - if (__glibc_unlikely ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) - <= mctx.input.bufs_len))) + if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) + <= mctx.input.bufs_len), 0)) { err = REG_ESPACE; goto free_return; } mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1); - if (__glibc_unlikely (mctx.state_log == NULL)) + if (BE (mctx.state_log == NULL, 0)) { err = REG_ESPACE; goto free_return; } } + else + mctx.state_log = NULL; match_first = start; mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF @@ -697,19 +763,19 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, case 7: /* Fastmap with single-byte translation, match forward. */ - while (__glibc_likely (match_first < right_lim) + while (BE (match_first < right_lim, 1) && !fastmap[t[(unsigned char) string[match_first]]]) ++match_first; goto forward_match_found_start_or_reached_end; case 6: /* Fastmap without translation, match forward. */ - while (__glibc_likely (match_first < right_lim) + while (BE (match_first < right_lim, 1) && !fastmap[(unsigned char) string[match_first]]) ++match_first; forward_match_found_start_or_reached_end: - if (__glibc_unlikely (match_first == right_lim)) + if (BE (match_first == right_lim, 0)) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; @@ -742,19 +808,19 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, /* If MATCH_FIRST is out of the valid range, reconstruct the buffers. */ __re_size_t offset = match_first - mctx.input.raw_mbs_idx; - if (__glibc_unlikely (offset - >= (__re_size_t) mctx.input.valid_raw_len)) + if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0)) { err = re_string_reconstruct (&mctx.input, match_first, eflags); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; offset = match_first - mctx.input.raw_mbs_idx; } - /* Use buffer byte if OFFSET is in buffer, otherwise '\0'. */ - ch = (offset < mctx.input.valid_len - ? re_string_byte_at (&mctx.input, offset) : 0); + /* If MATCH_FIRST is out of the buffer, leave it as '\0'. + Note that MATCH_FIRST must not be smaller than 0. */ + ch = (match_first >= length + ? 0 : re_string_byte_at (&mctx.input, offset)); if (fastmap[ch]) break; match_first += incr; @@ -770,22 +836,24 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, /* Reconstruct the buffers so that the matcher can assume that the matching starts from the beginning of the buffer. */ err = re_string_reconstruct (&mctx.input, match_first, eflags); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; - /* Don't consider this char as a possible match start if it part, - yet isn't the head, of a multibyte character. */ +#ifdef RE_ENABLE_I18N + /* Don't consider this char as a possible match start if it part, + yet isn't the head, of a multibyte character. */ if (!sb && !re_string_first_byte (&mctx.input, 0)) continue; +#endif /* It seems to be appropriate one, then use the matcher. */ /* We assume that the matching starts from 0. */ mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0; match_last = check_matching (&mctx, fl_longest_match, start <= last_start ? &match_first : NULL); - if (match_last != -1) + if (match_last != REG_MISSING) { - if (__glibc_unlikely (match_last == -2)) + if (BE (match_last == REG_ERROR, 0)) { err = REG_ESPACE; goto free_return; @@ -805,9 +873,9 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, err = prune_impossible_nodes (&mctx); if (err == REG_NOERROR) break; - if (__glibc_unlikely (err != REG_NOMATCH)) + if (BE (err != REG_NOMATCH, 0)) goto free_return; - match_last = -1; + match_last = REG_MISSING; } else break; /* We found a match. */ @@ -817,8 +885,10 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, match_ctx_clean (&mctx); } - DEBUG_ASSERT (match_last != -1); - DEBUG_ASSERT (err == REG_NOERROR); +#ifdef DEBUG + assert (match_last != REG_MISSING); + assert (err == REG_NOERROR); +#endif /* Set pmatch[] if we need. */ if (nmatch > 0) @@ -840,7 +910,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, { err = set_regs (preg, &mctx, nmatch, pmatch, dfa->has_plural_match && dfa->nbackref > 0); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; } @@ -850,7 +920,8 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so != -1) { - if (__glibc_unlikely (mctx.input.offsets_needed != 0)) +#ifdef RE_ENABLE_I18N + if (BE (mctx.input.offsets_needed != 0, 0)) { pmatch[reg_idx].rm_so = (pmatch[reg_idx].rm_so == mctx.input.valid_len @@ -861,6 +932,9 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_eo]); } +#else + assert (mctx.input.offsets_needed == 0); +#endif pmatch[reg_idx].rm_so += match_first; pmatch[reg_idx].rm_eo += match_first; } @@ -899,17 +973,18 @@ prune_impossible_nodes (re_match_context_t *mctx) re_dfastate_t **sifted_states; re_dfastate_t **lim_states = NULL; re_sift_context_t sctx; - DEBUG_ASSERT (mctx->state_log != NULL); +#ifdef DEBUG + assert (mctx->state_log != NULL); +#endif match_last = mctx->match_last; halt_node = mctx->last_node; /* Avoid overflow. */ - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) - <= match_last)) + if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0)) return REG_ESPACE; sifted_states = re_malloc (re_dfastate_t *, match_last + 1); - if (__glibc_unlikely (sifted_states == NULL)) + if (BE (sifted_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; @@ -917,7 +992,7 @@ prune_impossible_nodes (re_match_context_t *mctx) if (dfa->nbackref) { lim_states = re_malloc (re_dfastate_t *, match_last + 1); - if (__glibc_unlikely (lim_states == NULL)) + if (BE (lim_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; @@ -930,14 +1005,14 @@ prune_impossible_nodes (re_match_context_t *mctx) match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] != NULL || lim_states[0] != NULL) break; do { --match_last; - if (match_last < 0) + if (! REG_VALID_INDEX (match_last)) { ret = REG_NOMATCH; goto free_return; @@ -952,7 +1027,7 @@ prune_impossible_nodes (re_match_context_t *mctx) match_last + 1); re_free (lim_states); lim_states = NULL; - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) goto free_return; } else @@ -960,7 +1035,7 @@ prune_impossible_nodes (re_match_context_t *mctx) sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] == NULL) { @@ -984,7 +1059,8 @@ prune_impossible_nodes (re_match_context_t *mctx) We must select appropriate initial state depending on the context, since initial states may have constraints like "\<", "^", etc.. */ -static __always_inline re_dfastate_t * +static inline re_dfastate_t * +__attribute__ ((always_inline)) internal_function acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, Idx idx) { @@ -1017,8 +1093,8 @@ acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, } /* Check whether the regular expression match input string INPUT or not, - and return the index where the matching end. Return -1 if - there is no match, and return -2 in case of an error. + and return the index where the matching end. Return REG_MISSING if + there is no match, and return REG_ERROR in case of an error. FL_LONGEST_MATCH means we want the POSIX longest matching. If P_MATCH_FIRST is not NULL, and the match fails, it is set to the next place where we may want to try matching. @@ -1026,14 +1102,14 @@ acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, index of the buffer. */ static Idx -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx match = 0; - Idx match_last = -1; + Idx match_last = REG_MISSING; Idx cur_str_idx = re_string_cur_idx (&mctx->input); re_dfastate_t *cur_state; bool at_init_state = p_match_first != NULL; @@ -1042,10 +1118,10 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, err = REG_NOERROR; cur_state = acquire_init_state_context (&err, mctx, cur_str_idx); /* An initial state must not be NULL (invalid). */ - if (__glibc_unlikely (cur_state == NULL)) + if (BE (cur_state == NULL, 0)) { - DEBUG_ASSERT (err == REG_ESPACE); - return -2; + assert (err == REG_ESPACE); + return REG_ERROR; } if (mctx->state_log != NULL) @@ -1054,24 +1130,24 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, /* Check OP_OPEN_SUBEXP in the initial state in case that we use them later. E.g. Processing back references. */ - if (__glibc_unlikely (dfa->nbackref)) + if (BE (dfa->nbackref, 0)) { at_init_state = false; err = check_subexp_matching_top (mctx, &cur_state->nodes, 0); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; if (cur_state->has_backref) { err = transit_state_bkref (mctx, &cur_state->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } } } /* If the RE accepts NULL string. */ - if (__glibc_unlikely (cur_state->halt)) + if (BE (cur_state->halt, 0)) { if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, cur_str_idx)) @@ -1091,16 +1167,16 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, re_dfastate_t *old_state = cur_state; Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1; - if ((__glibc_unlikely (next_char_idx >= mctx->input.bufs_len) + if ((BE (next_char_idx >= mctx->input.bufs_len, 0) && mctx->input.bufs_len < mctx->input.len) - || (__glibc_unlikely (next_char_idx >= mctx->input.valid_len) + || (BE (next_char_idx >= mctx->input.valid_len, 0) && mctx->input.valid_len < mctx->input.len)) { err = extend_buffers (mctx, next_char_idx + 1); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { - DEBUG_ASSERT (err == REG_ESPACE); - return -2; + assert (err == REG_ESPACE); + return REG_ERROR; } } @@ -1113,8 +1189,8 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, /* Reached the invalid state or an error. Try to recover a valid state using the state log, if available and if we have not already found a valid (even if not the longest) match. */ - if (__glibc_unlikely (err != REG_NOERROR)) - return -2; + if (BE (err != REG_NOERROR, 0)) + return REG_ERROR; if (mctx->state_log == NULL || (match && !fl_longest_match) @@ -1122,7 +1198,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, break; } - if (__glibc_unlikely (at_init_state)) + if (BE (at_init_state, 0)) { if (old_state == cur_state) next_start_idx = next_char_idx; @@ -1159,6 +1235,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, /* Check NODE match the current context. */ static bool +internal_function check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) { re_token_type_t type = dfa->nodes[node].type; @@ -1177,12 +1254,15 @@ check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) match the context, return the node. */ static Idx +internal_function check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx) { Idx i; unsigned int context; - DEBUG_ASSERT (state->halt); +#ifdef DEBUG + assert (state->halt); +#endif context = re_string_context_at (&mctx->input, idx, mctx->eflags); for (i = 0; i < state->nodes.nelem; ++i) if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context)) @@ -1193,35 +1273,33 @@ check_halt_state_context (const re_match_context_t *mctx, /* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA corresponding to the DFA). Return the destination node, and update EPS_VIA_NODES; - return -1 on match failure, -2 on error. */ + return REG_MISSING in case of errors. */ static Idx +internal_function proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, - regmatch_t *prevregs, Idx *pidx, Idx node, re_node_set *eps_via_nodes, struct re_fail_stack_t *fs) { const re_dfa_t *const dfa = mctx->dfa; + Idx i; + bool ok; if (IS_EPSILON_NODE (dfa->nodes[node].type)) { re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; re_node_set *edests = &dfa->edests[node]; - - if (! re_node_set_contains (eps_via_nodes, node)) - { - bool ok = re_node_set_insert (eps_via_nodes, node); - if (__glibc_unlikely (! ok)) - return -2; - } - - /* Pick a valid destination, or return -1 if none is found. */ - Idx dest_node = -1; - for (Idx i = 0; i < edests->nelem; i++) + Idx dest_node; + ok = re_node_set_insert (eps_via_nodes, node); + if (BE (! ok, 0)) + return REG_ERROR; + /* Pick up a valid destination, or return REG_MISSING if none + is found. */ + for (dest_node = REG_MISSING, i = 0; i < edests->nelem; ++i) { Idx candidate = edests->elems[i]; if (!re_node_set_contains (cur_nodes, candidate)) continue; - if (dest_node == -1) + if (dest_node == REG_MISSING) dest_node = candidate; else @@ -1234,8 +1312,8 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, /* Otherwise, push the second epsilon-transition on the fail stack. */ else if (fs != NULL && push_fail_stack (fs, *pidx, candidate, nregs, regs, - prevregs, eps_via_nodes)) - return -2; + eps_via_nodes)) + return REG_ERROR; /* We know we are going to exit. */ break; @@ -1248,36 +1326,34 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, Idx naccepted = 0; re_token_type_t type = dfa->nodes[node].type; +#ifdef RE_ENABLE_I18N if (dfa->nodes[node].accept_mb) naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx); - else if (type == OP_BACK_REF) + else +#endif /* RE_ENABLE_I18N */ + if (type == OP_BACK_REF) { Idx subexp_idx = dfa->nodes[node].opr.idx + 1; - if (subexp_idx < nregs) - naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so; + naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so; if (fs != NULL) { - if (subexp_idx >= nregs - || regs[subexp_idx].rm_so == -1 - || regs[subexp_idx].rm_eo == -1) - return -1; + if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1) + return REG_MISSING; else if (naccepted) { char *buf = (char *) re_string_get_buffer (&mctx->input); - if (mctx->input.valid_len - *pidx < naccepted - || (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, - naccepted) - != 0)) - return -1; + if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, + naccepted) != 0) + return REG_MISSING; } } if (naccepted == 0) { Idx dest_node; - bool ok = re_node_set_insert (eps_via_nodes, node); - if (__glibc_unlikely (! ok)) - return -2; + ok = re_node_set_insert (eps_via_nodes, node); + if (BE (! ok, 0)) + return REG_ERROR; dest_node = dfa->edests[node].elems[0]; if (re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node)) @@ -1293,27 +1369,26 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL || !re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node))) - return -1; + return REG_MISSING; re_node_set_empty (eps_via_nodes); return dest_node; } } - return -1; + return REG_MISSING; } static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, - Idx nregs, regmatch_t *regs, regmatch_t *prevregs, - re_node_set *eps_via_nodes) + Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { reg_errcode_t err; - Idx num = fs->num; - if (num == fs->alloc) + Idx num = fs->num++; + if (fs->num == fs->alloc) { struct re_fail_stack_ent_t *new_array; - new_array = re_realloc (fs->stack, struct re_fail_stack_ent_t, - fs->alloc * 2); + new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t) + * fs->alloc * 2)); if (new_array == NULL) return REG_ESPACE; fs->alloc *= 2; @@ -1321,47 +1396,36 @@ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, } fs->stack[num].idx = str_idx; fs->stack[num].node = dest_node; - fs->stack[num].regs = re_malloc (regmatch_t, 2 * nregs); + fs->stack[num].regs = re_malloc (regmatch_t, nregs); if (fs->stack[num].regs == NULL) return REG_ESPACE; - fs->num = num + 1; memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs); - memcpy (fs->stack[num].regs + nregs, prevregs, sizeof (regmatch_t) * nregs); err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes); return err; } static Idx +internal_function pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, - regmatch_t *regs, regmatch_t *prevregs, - re_node_set *eps_via_nodes) + regmatch_t *regs, re_node_set *eps_via_nodes) { - if (fs == NULL || fs->num == 0) - return -1; Idx num = --fs->num; + assert (REG_VALID_INDEX (num)); *pidx = fs->stack[num].idx; memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs); - memcpy (prevregs, fs->stack[num].regs + nregs, sizeof (regmatch_t) * nregs); re_node_set_free (eps_via_nodes); re_free (fs->stack[num].regs); *eps_via_nodes = fs->stack[num].eps_via_nodes; - DEBUG_ASSERT (0 <= fs->stack[num].node); return fs->stack[num].node; } - -#define DYNARRAY_STRUCT regmatch_list -#define DYNARRAY_ELEMENT regmatch_t -#define DYNARRAY_PREFIX regmatch_list_ -#include - /* Set the positions where the subexpressions are starts/ends to registers PMATCH. Note: We assume that pmatch[0] is already set, and pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack) { @@ -1370,11 +1434,13 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, re_node_set eps_via_nodes; struct re_fail_stack_t *fs; struct re_fail_stack_t fs_body = { 0, 2, NULL }; - struct regmatch_list prev_match; - regmatch_list_init (&prev_match); + regmatch_t *prev_idx_match; + bool prev_idx_match_malloced = false; - DEBUG_ASSERT (nmatch > 1); - DEBUG_ASSERT (mctx->state_log != NULL); +#ifdef DEBUG + assert (nmatch > 1); + assert (mctx->state_log != NULL); +#endif if (fl_backtrack) { fs = &fs_body; @@ -1388,73 +1454,85 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, cur_node = dfa->init_node; re_node_set_init_empty (&eps_via_nodes); - if (!regmatch_list_resize (&prev_match, nmatch)) + if (__libc_use_alloca (nmatch * sizeof (regmatch_t))) + prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t)); + else { - regmatch_list_free (&prev_match); - free_fail_stack_return (fs); - return REG_ESPACE; + prev_idx_match = re_malloc (regmatch_t, nmatch); + if (prev_idx_match == NULL) + { + free_fail_stack_return (fs); + return REG_ESPACE; + } + prev_idx_match_malloced = true; } - regmatch_t *prev_idx_match = regmatch_list_begin (&prev_match); memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) { update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); - if ((idx == pmatch[0].rm_eo && cur_node == mctx->last_node) - || (fs && re_node_set_contains (&eps_via_nodes, cur_node))) + if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node) { Idx reg_idx; - cur_node = -1; if (fs) { for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1) - { - cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, - prev_idx_match, &eps_via_nodes); - break; - } + break; + if (reg_idx == nmatch) + { + re_node_set_free (&eps_via_nodes); + if (prev_idx_match_malloced) + re_free (prev_idx_match); + return free_fail_stack_return (fs); + } + cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, + &eps_via_nodes); } - if (cur_node < 0) + else { re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); - return free_fail_stack_return (fs); + if (prev_idx_match_malloced) + re_free (prev_idx_match); + return REG_NOERROR; } } /* Proceed to next node. */ - cur_node = proceed_next_node (mctx, nmatch, pmatch, prev_idx_match, - &idx, cur_node, + cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node, &eps_via_nodes, fs); - if (__glibc_unlikely (cur_node < 0)) + if (BE (! REG_VALID_INDEX (cur_node), 0)) { - if (__glibc_unlikely (cur_node == -2)) + if (BE (cur_node == REG_ERROR, 0)) { re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); + if (prev_idx_match_malloced) + re_free (prev_idx_match); free_fail_stack_return (fs); return REG_ESPACE; } - cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, - prev_idx_match, &eps_via_nodes); - if (cur_node < 0) + if (fs) + cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, + &eps_via_nodes); + else { re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); - free_fail_stack_return (fs); + if (prev_idx_match_malloced) + re_free (prev_idx_match); return REG_NOMATCH; } } } re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); + if (prev_idx_match_malloced) + re_free (prev_idx_match); return free_fail_stack_return (fs); } static reg_errcode_t +internal_function free_fail_stack_return (struct re_fail_stack_t *fs) { if (fs) @@ -1471,6 +1549,7 @@ free_fail_stack_return (struct re_fail_stack_t *fs) } static void +internal_function update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) { @@ -1488,10 +1567,10 @@ update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, } else if (type == OP_CLOSE_SUBEXP) { - /* We are at the last node of this sub expression. */ Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; if (reg_num < nmatch) { + /* We are at the last node of this sub expression. */ if (pmatch[reg_num].rm_so < cur_idx) { pmatch[reg_num].rm_eo = cur_idx; @@ -1542,6 +1621,7 @@ update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) static reg_errcode_t +internal_function sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; @@ -1549,15 +1629,17 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) Idx str_idx = sctx->last_str_idx; re_node_set cur_dest; - DEBUG_ASSERT (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL); +#ifdef DEBUG + assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL); +#endif /* Build sifted state_log[str_idx]. It has the nodes which can epsilon transit to the last_node and the last_node itself. */ err = re_node_set_init_1 (&cur_dest, sctx->last_node); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; /* Then check each states in the state_log. */ @@ -1578,7 +1660,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) if (mctx->state_log[str_idx]) { err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; } @@ -1587,7 +1669,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) - It is in CUR_SRC. And update state_log. */ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; } err = REG_NOERROR; @@ -1597,7 +1679,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) } static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) { @@ -1617,12 +1699,17 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx prev_node = cur_src->elems[i]; int naccepted = 0; bool ok; - DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[prev_node].type)); +#ifdef DEBUG + re_token_type_t type = dfa->nodes[prev_node].type; + assert (!IS_EPSILON_NODE (type)); +#endif +#ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[prev_node].accept_mb) naccepted = sift_states_iter_mb (mctx, sctx, prev_node, str_idx, sctx->last_str_idx); +#endif /* RE_ENABLE_I18N */ /* We don't check backreferences here. See update_cur_sifted_state(). */ @@ -1644,7 +1731,7 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, continue; } ok = re_node_set_insert (cur_dest, prev_node); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; } @@ -1654,6 +1741,7 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, /* Helper functions. */ static reg_errcode_t +internal_function clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { Idx top = mctx->state_log_top; @@ -1665,13 +1753,12 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { reg_errcode_t err; err = extend_buffers (mctx, next_state_log_idx + 1); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } if (top < next_state_log_idx) { - DEBUG_ASSERT (mctx->state_log != NULL); memset (mctx->state_log + top + 1, '\0', sizeof (re_dfastate_t *) * (next_state_log_idx - top)); mctx->state_log_top = next_state_log_idx; @@ -1680,6 +1767,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) } static reg_errcode_t +internal_function merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num) { @@ -1694,11 +1782,11 @@ merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_node_set merged_set; err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes, &src[st_idx]->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; dst[st_idx] = re_acquire_state (&err, dfa, &merged_set); re_node_set_free (&merged_set); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } } @@ -1706,6 +1794,7 @@ merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, } static reg_errcode_t +internal_function update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes) @@ -1725,7 +1814,7 @@ update_cur_sifted_state (const re_match_context_t *mctx, /* At first, add the nodes which can epsilon transit to a node in DEST_NODE. */ err = add_epsilon_src_nodes (dfa, dest_nodes, candidates); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; /* Then, check the limitations in the current sift_context. */ @@ -1733,27 +1822,27 @@ update_cur_sifted_state (const re_match_context_t *mctx, { err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits, mctx->bkref_ents, str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } } sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } if (candidates && mctx->state_log[str_idx]->has_backref) { err = sift_states_bkref (mctx, sctx, str_idx, candidates); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) { @@ -1761,19 +1850,19 @@ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, Idx i; re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; if (!state->inveclosure.alloc) { err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < dest_nodes->nelem; i++) { err = re_node_set_merge (&state->inveclosure, dfa->inveclosures + dest_nodes->elems[i]); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; } } @@ -1782,6 +1871,7 @@ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, } static reg_errcode_t +internal_function sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, const re_node_set *candidates) { @@ -1799,16 +1889,16 @@ sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, { Idx edst1 = dfa->edests[cur_node].elems[0]; Idx edst2 = ((dfa->edests[cur_node].nelem > 1) - ? dfa->edests[cur_node].elems[1] : -1); + ? dfa->edests[cur_node].elems[1] : REG_MISSING); if ((!re_node_set_contains (inv_eclosure, edst1) && re_node_set_contains (dest_nodes, edst1)) - || (edst2 > 0 + || (REG_VALID_NONZERO_INDEX (edst2) && !re_node_set_contains (inv_eclosure, edst2) && re_node_set_contains (dest_nodes, edst2))) { err = re_node_set_add_intersect (&except_nodes, candidates, dfa->inveclosures + cur_node); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&except_nodes); return err; @@ -1830,6 +1920,7 @@ sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, } static bool +internal_function check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) { @@ -1865,6 +1956,7 @@ check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, } static int +internal_function check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx) { @@ -1880,7 +1972,7 @@ check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, switch (dfa->nodes[node].type) { case OP_BACK_REF: - if (bkref_idx != -1) + if (bkref_idx != REG_MISSING) { struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx; do @@ -1946,6 +2038,7 @@ check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, } static int +internal_function check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx from_node, Idx str_idx, Idx bkref_idx) @@ -1975,6 +2068,7 @@ check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, which are against limitations from DEST_NODES. */ static reg_errcode_t +internal_function check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx) @@ -1994,8 +2088,8 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, subexp_idx = dfa->nodes[ent->node].opr.idx; if (ent->subexp_to == str_idx) { - Idx ops_node = -1; - Idx cls_node = -1; + Idx ops_node = REG_MISSING; + Idx cls_node = REG_MISSING; for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; @@ -2010,16 +2104,16 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, /* Check the limitation of the open subexpression. */ /* Note that (ent->subexp_to = str_idx != ent->subexp_from). */ - if (ops_node >= 0) + if (REG_VALID_INDEX (ops_node)) { err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes, candidates); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } /* Check the limitation of the close subexpression. */ - if (cls_node >= 0) + if (REG_VALID_INDEX (cls_node)) for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; @@ -2032,7 +2126,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; --node_idx; } @@ -2052,7 +2146,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } } @@ -2062,7 +2156,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, } static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) { @@ -2072,7 +2166,7 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, re_sift_context_t local_sctx; Idx first_idx = search_cur_bkref_entry (mctx, str_idx); - if (first_idx == -1) + if (first_idx == REG_MISSING) return REG_NOERROR; local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized. */ @@ -2118,27 +2212,27 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, { local_sctx = *sctx; err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.last_node = node; local_sctx.last_str_idx = str_idx; ok = re_node_set_insert (&local_sctx.limits, enabled_idx); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) { err = REG_ESPACE; goto free_return; } cur_state = local_sctx.sifted_states[str_idx]; err = sift_states_backward (mctx, &local_sctx); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; if (sctx->limited_states != NULL) { err = merge_state_array (dfa, sctx->limited_states, local_sctx.sifted_states, str_idx + 1); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.sifted_states[str_idx] = cur_state; @@ -2160,7 +2254,9 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, } +#ifdef RE_ENABLE_I18N static int +internal_function sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx) { @@ -2168,41 +2264,44 @@ sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, int naccepted; /* Check the node can accept "multi byte". */ naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx); - if (naccepted > 0 && str_idx + naccepted <= max_str_idx - && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted], - dfa->nexts[node_idx])) + if (naccepted > 0 && str_idx + naccepted <= max_str_idx && + !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted], + dfa->nexts[node_idx])) /* The node can't accept the "multi byte", or the destination was already thrown away, then the node - couldn't accept the current input "multi byte". */ + could't accept the current input "multi byte". */ naccepted = 0; /* Otherwise, it is sure that the node could accept 'naccepted' bytes input. */ return naccepted; } +#endif /* RE_ENABLE_I18N */ + /* Functions for state transition. */ /* Return the next state to which the current state STATE will transit by accepting the current input byte, and update STATE_LOG if necessary. - Return NULL on failure. If STATE can accept a multibyte char/collating element/back reference update the destination of STATE_LOG. */ static re_dfastate_t * -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { re_dfastate_t **trtable; unsigned char ch; +#ifdef RE_ENABLE_I18N /* If the current state can accept multibyte. */ - if (__glibc_unlikely (state->accept_mb)) + if (BE (state->accept_mb, 0)) { *err = transit_state_mb (mctx, state); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) return NULL; } +#endif /* RE_ENABLE_I18N */ /* Then decide the next state with the single byte. */ #if 0 @@ -2216,11 +2315,11 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx, for (;;) { trtable = state->trtable; - if (__glibc_likely (trtable != NULL)) + if (BE (trtable != NULL, 1)) return trtable[ch]; trtable = state->word_trtable; - if (__glibc_likely (trtable != NULL)) + if (BE (trtable != NULL, 1)) { unsigned int context; context @@ -2245,6 +2344,7 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx, /* Update the state_log if we need */ static re_dfastate_t * +internal_function merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) { @@ -2276,7 +2376,7 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, table_nodes = next_state->entrance_nodes; *err = re_node_set_init_union (&next_nodes, table_nodes, log_nodes); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) return NULL; } else @@ -2296,21 +2396,21 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_node_set_free (&next_nodes); } - if (__glibc_unlikely (dfa->nbackref) && next_state != NULL) + if (BE (dfa->nbackref, 0) && next_state != NULL) { /* Check OP_OPEN_SUBEXP in the current state in case that we use them later. We must check them here, since the back references in the next state might use them. */ *err = check_subexp_matching_top (mctx, &next_state->nodes, cur_idx); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) return NULL; /* If the next state has back references. */ if (next_state->has_backref) { *err = transit_state_bkref (mctx, &next_state->nodes); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) return NULL; next_state = mctx->state_log[cur_idx]; } @@ -2323,6 +2423,7 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, multi-byte match, then look in the log for a state from which to restart matching. */ static re_dfastate_t * +internal_function find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) { re_dfastate_t *cur_state; @@ -2353,6 +2454,7 @@ find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) corresponding back references. */ static reg_errcode_t +internal_function check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx) { @@ -2374,7 +2476,7 @@ check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) { err = match_ctx_add_subtop (mctx, node, str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } } @@ -2383,7 +2485,7 @@ check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, #if 0 /* Return the next state to which the current state STATE will transit by - accepting the current input byte. Return NULL on failure. */ + accepting the current input byte. */ static re_dfastate_t * transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, @@ -2396,7 +2498,7 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, unsigned int context; *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) return NULL; for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt) { @@ -2405,7 +2507,7 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, { *err = re_node_set_merge (&next_nodes, dfa->eclosures + dfa->nexts[cur_node]); - if (__glibc_unlikely (*err != REG_NOERROR)) + if (BE (*err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return NULL; @@ -2423,7 +2525,9 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, } #endif +#ifdef RE_ENABLE_I18N static reg_errcode_t +internal_function transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { const re_dfa_t *const dfa = mctx->dfa; @@ -2463,9 +2567,11 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted : mctx->max_mb_elem_len); err = clean_state_log_if_needed (mctx, dest_idx); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; - DEBUG_ASSERT (dfa->nexts[cur_node_idx] != -1); +#ifdef DEBUG + assert (dfa->nexts[cur_node_idx] != REG_MISSING); +#endif new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx]; dest_state = mctx->state_log[dest_idx]; @@ -2475,7 +2581,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } context = re_string_context_at (&mctx->input, dest_idx - 1, @@ -2484,14 +2590,15 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) = re_acquire_state_context (&err, dfa, &dest_nodes, context); if (dest_state != NULL) re_node_set_free (&dest_nodes); - if (__glibc_unlikely (mctx->state_log[dest_idx] == NULL - && err != REG_NOERROR)) + if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } +#endif /* RE_ENABLE_I18N */ static reg_errcode_t +internal_function transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { const re_dfa_t *const dfa = mctx->dfa; @@ -2523,12 +2630,14 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) Check the substring which the substring matched. */ bkc_idx = mctx->nbkref_ents; err = get_subexp (mctx, node_idx, cur_str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; /* And add the epsilon closures (which is 'new_dest_nodes') of the backreference to appropriate state_log. */ - DEBUG_ASSERT (dfa->nexts[node_idx] != -1); +#ifdef DEBUG + assert (dfa->nexts[node_idx] != REG_MISSING); +#endif for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx) { Idx subexp_len; @@ -2554,8 +2663,8 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, new_dest_nodes, context); - if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL - && err != REG_NOERROR)) + if (BE (mctx->state_log[dest_str_idx] == NULL + && err != REG_NOERROR, 0)) goto free_return; } else @@ -2564,7 +2673,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&dest_nodes); goto free_return; @@ -2572,8 +2681,8 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); re_node_set_free (&dest_nodes); - if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL - && err != REG_NOERROR)) + if (BE (mctx->state_log[dest_str_idx] == NULL + && err != REG_NOERROR, 0)) goto free_return; } /* We need to check recursively if the backreference can epsilon @@ -2583,10 +2692,10 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { err = check_subexp_matching_top (mctx, new_dest_nodes, cur_str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; err = transit_state_bkref (mctx, new_dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto free_return; } } @@ -2603,7 +2712,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) delay these checking for prune_impossible_nodes(). */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) { const re_dfa_t *const dfa = mctx->dfa; @@ -2611,7 +2720,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) const char *buf = (const char *) re_string_get_buffer (&mctx->input); /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */ Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx); - if (cache_idx != -1) + if (cache_idx != REG_MISSING) { const struct re_backref_cache_entry *entry = mctx->bkref_ents + cache_idx; @@ -2647,8 +2756,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) at the back reference? */ if (sl_str_diff > 0) { - if (__glibc_unlikely (bkref_str_off + sl_str_diff - > mctx->input.valid_len)) + if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0)) { /* Not enough chars for a successful match. */ if (bkref_str_off + sl_str_diff > mctx->input.len) @@ -2657,7 +2765,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) err = clean_state_log_if_needed (mctx, bkref_str_off + sl_str_diff); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } @@ -2676,7 +2784,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) if (err == REG_NOMATCH) continue; - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } @@ -2695,14 +2803,14 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) at the back reference? */ if (sl_str_off > 0) { - if (__glibc_unlikely (bkref_str_off >= mctx->input.valid_len)) + if (BE (bkref_str_off >= mctx->input.valid_len, 0)) { /* If we are at the end of the input, we cannot match. */ if (bkref_str_off >= mctx->input.len) break; err = extend_buffers (mctx, bkref_str_off + 1); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); @@ -2717,7 +2825,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) nodes = &mctx->state_log[sl_str]->nodes; cls_node = find_subexp_node (dfa, nodes, subexp_num, OP_CLOSE_SUBEXP); - if (cls_node == -1) + if (cls_node == REG_MISSING) continue; /* No. */ if (sub_top->path == NULL) { @@ -2733,18 +2841,15 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) OP_CLOSE_SUBEXP); if (err == REG_NOMATCH) continue; - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str); - if (__glibc_unlikely (sub_last == NULL)) + if (BE (sub_last == NULL, 0)) return REG_ESPACE; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); - buf = (const char *) re_string_get_buffer (&mctx->input); if (err == REG_NOMATCH) continue; - if (__glibc_unlikely (err != REG_NOERROR)) - return err; } } return REG_NOERROR; @@ -2757,6 +2862,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) and SUB_LAST. */ static reg_errcode_t +internal_function get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) { @@ -2770,7 +2876,7 @@ get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, return err; err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, sub_last->str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx; return clean_state_log_if_needed (mctx, to_idx); @@ -2785,6 +2891,7 @@ get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, E.g. RE: (a){2} */ static Idx +internal_function find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type) { @@ -2797,17 +2904,16 @@ find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, && node->opr.idx == subexp_idx) return cls_node; } - return -1; + return REG_MISSING; } /* Check whether the node TOP_NODE at TOP_STR can arrive to the node LAST_NODE at LAST_STR. We record the path onto PATH since it will be heavily reused. - Return REG_NOERROR if it can arrive, REG_NOMATCH if it cannot, - REG_ESPACE if memory is exhausted. */ + Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) { @@ -2821,19 +2927,19 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, subexp_num = dfa->nodes[top_node].opr.idx; /* Extend the buffer if we need. */ - if (__glibc_unlikely (path->alloc < last_str + mctx->max_mb_elem_len + 1)) + if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0)) { re_dfastate_t **new_array; Idx old_alloc = path->alloc; Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1; Idx new_alloc; - if (__glibc_unlikely (IDX_MAX - old_alloc < incr_alloc)) + if (BE (IDX_MAX - old_alloc < incr_alloc, 0)) return REG_ESPACE; new_alloc = old_alloc + incr_alloc; - if (__glibc_unlikely (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc)) + if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0)) return REG_ESPACE; new_array = re_realloc (path->array, re_dfastate_t *, new_alloc); - if (__glibc_unlikely (new_array == NULL)) + if (BE (new_array == NULL, 0)) return REG_ESPACE; path->array = new_array; path->alloc = new_alloc; @@ -2854,10 +2960,10 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, if (str_idx == top_str) { err = re_node_set_init_1 (&next_nodes, top_node); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -2869,7 +2975,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, if (cur_state && cur_state->has_backref) { err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } else @@ -2881,14 +2987,14 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, { err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); - if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR)) + if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -2903,7 +3009,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, { err = re_node_set_merge (&next_nodes, &mctx->state_log[str_idx + 1]->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -2914,7 +3020,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, err = check_arrival_add_next_nodes (mctx, str_idx, &cur_state->non_eps_nodes, &next_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -2924,14 +3030,14 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, if (next_nodes.nelem) { err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -2939,7 +3045,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, } context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); - if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR)) + if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -2972,22 +3078,27 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Can't we unify them? */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) { const re_dfa_t *const dfa = mctx->dfa; bool ok; Idx cur_idx; +#ifdef RE_ENABLE_I18N reg_errcode_t err = REG_NOERROR; +#endif re_node_set union_set; re_node_set_init_empty (&union_set); for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx) { int naccepted = 0; Idx cur_node = cur_nodes->elems[cur_idx]; - DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[cur_node].type)); - +#ifdef DEBUG + re_token_type_t type = dfa->nodes[cur_node].type; + assert (!IS_EPSILON_NODE (type)); +#endif +#ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[cur_node].accept_mb) { @@ -3003,34 +3114,34 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, if (dest_state) { err = re_node_set_merge (&union_set, &dest_state->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } ok = re_node_set_insert (&union_set, next_node); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } mctx->state_log[next_idx] = re_acquire_state (&err, dfa, &union_set); - if (__glibc_unlikely (mctx->state_log[next_idx] == NULL - && err != REG_NOERROR)) + if (BE (mctx->state_log[next_idx] == NULL + && err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } } - +#endif /* RE_ENABLE_I18N */ if (naccepted || check_node_accept (mctx, dfa->nodes + cur_node, str_idx)) { ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; @@ -3048,15 +3159,18 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, */ static reg_errcode_t +internal_function check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type) { reg_errcode_t err; Idx idx, outside_node; re_node_set new_nodes; - DEBUG_ASSERT (cur_nodes->nelem); +#ifdef DEBUG + assert (cur_nodes->nelem); +#endif err = re_node_set_alloc (&new_nodes, cur_nodes->nelem); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; /* Create a new node set NEW_NODES with the nodes which are epsilon closures of the node in CUR_NODES. */ @@ -3066,11 +3180,11 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx cur_node = cur_nodes->elems[idx]; const re_node_set *eclosure = dfa->eclosures + cur_node; outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type); - if (outside_node == -1) + if (outside_node == REG_MISSING) { /* There are no problematic nodes, just merge them. */ err = re_node_set_merge (&new_nodes, eclosure); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; @@ -3081,7 +3195,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, /* There are problematic nodes, re-calculate incrementally. */ err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node, ex_subexp, type); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; @@ -3098,7 +3212,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, problematic append it to DST_NODES. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) { @@ -3113,13 +3227,13 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, if (type == OP_CLOSE_SUBEXP) { ok = re_node_set_insert (dst_nodes, cur_node); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; } break; } ok = re_node_set_insert (dst_nodes, cur_node); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) return REG_ESPACE; if (dfa->edests[cur_node].nelem == 0) break; @@ -3129,7 +3243,7 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, err = check_arrival_expand_ecl_sub (dfa, dst_nodes, dfa->edests[cur_node].elems[1], ex_subexp, type); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } cur_node = dfa->edests[cur_node].elems[0]; @@ -3143,7 +3257,7 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, in MCTX->BKREF_ENTS. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) { @@ -3152,7 +3266,7 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str); struct re_backref_cache_entry *ent; - if (cache_idx_start == -1) + if (cache_idx_start == REG_MISSING) return REG_NOERROR; restart: @@ -3181,8 +3295,8 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type); err3 = re_node_set_merge (cur_nodes, &new_dests); re_node_set_free (&new_dests); - if (__glibc_unlikely (err != REG_NOERROR || err2 != REG_NOERROR - || err3 != REG_NOERROR)) + if (BE (err != REG_NOERROR || err2 != REG_NOERROR + || err3 != REG_NOERROR, 0)) { err = (err != REG_NOERROR ? err : (err2 != REG_NOERROR ? err2 : err3)); @@ -3204,7 +3318,7 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, err = re_node_set_init_copy (&union_set, &mctx->state_log[to_idx]->nodes); ok = re_node_set_insert (&union_set, next_node); - if (__glibc_unlikely (err != REG_NOERROR || ! ok)) + if (BE (err != REG_NOERROR || ! ok, 0)) { re_node_set_free (&union_set); err = err != REG_NOERROR ? err : REG_ESPACE; @@ -3214,13 +3328,13 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, else { err = re_node_set_init_1 (&union_set, next_node); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) return err; } mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set); re_node_set_free (&union_set); - if (__glibc_unlikely (mctx->state_log[to_idx] == NULL - && err != REG_NOERROR)) + if (BE (mctx->state_log[to_idx] == NULL + && err != REG_NOERROR, 0)) return err; } } @@ -3231,7 +3345,8 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, /* Build transition table for the state. Return true if successful. */ -static bool __attribute_noinline__ +static bool +internal_function build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { reg_errcode_t err; @@ -3239,20 +3354,36 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) int ch; bool need_word_trtable = false; bitset_word_t elem, mask; + bool dests_node_malloced = false; + bool dest_states_malloced = false; Idx ndests; /* Number of the destination states from 'state'. */ re_dfastate_t **trtable; - re_dfastate_t *dest_states[SBC_MAX]; - re_dfastate_t *dest_states_word[SBC_MAX]; - re_dfastate_t *dest_states_nl[SBC_MAX]; - re_node_set follows; + re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl; + re_node_set follows, *dests_node; + bitset_t *dests_ch; bitset_t acceptable; + struct dests_alloc + { + re_node_set dests_node[SBC_MAX]; + bitset_t dests_ch[SBC_MAX]; + } *dests_alloc; + /* We build DFA states which corresponds to the destination nodes from 'state'. 'dests_node[i]' represents the nodes which i-th destination state contains, and 'dests_ch[i]' represents the characters which i-th destination state accepts. */ - re_node_set dests_node[SBC_MAX]; - bitset_t dests_ch[SBC_MAX]; + if (__libc_use_alloca (sizeof (struct dests_alloc))) + dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc)); + else + { + dests_alloc = re_malloc (struct dests_alloc, 1); + if (BE (dests_alloc == NULL, 0)) + return false; + dests_node_malloced = true; + } + dests_node = dests_alloc->dests_node; + dests_ch = dests_alloc->dests_ch; /* Initialize transition table. */ state->word_trtable = state->trtable = NULL; @@ -3260,14 +3391,16 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) /* At first, group all nodes belonging to 'state' into several destinations. */ ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch); - if (__glibc_unlikely (ndests <= 0)) + if (BE (! REG_VALID_NONZERO_INDEX (ndests), 0)) { + if (dests_node_malloced) + free (dests_alloc); /* Return false in case of an error, true otherwise. */ if (ndests == 0) { state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); - if (__glibc_unlikely (state->trtable == NULL)) + if (BE (state->trtable == NULL, 0)) return false; return true; } @@ -3275,15 +3408,40 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) } err = re_node_set_alloc (&follows, ndests + 1); - if (__glibc_unlikely (err != REG_NOERROR)) - { - out_free: - re_node_set_free (&follows); - for (i = 0; i < ndests; ++i) - re_node_set_free (dests_node + i); - return false; - } + if (BE (err != REG_NOERROR, 0)) + goto out_free; + /* Avoid arithmetic overflow in size calculation. */ + if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX) + / (3 * sizeof (re_dfastate_t *))) + < ndests), + 0)) + goto out_free; + + if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX + + ndests * 3 * sizeof (re_dfastate_t *))) + dest_states = (re_dfastate_t **) + alloca (ndests * 3 * sizeof (re_dfastate_t *)); + else + { + dest_states = (re_dfastate_t **) + malloc (ndests * 3 * sizeof (re_dfastate_t *)); + if (BE (dest_states == NULL, 0)) + { +out_free: + if (dest_states_malloced) + free (dest_states); + re_node_set_free (&follows); + for (i = 0; i < ndests; ++i) + re_node_set_free (dests_node + i); + if (dests_node_malloced) + free (dests_alloc); + return false; + } + dest_states_malloced = true; + } + dest_states_word = dest_states + ndests; + dest_states_nl = dest_states_word + ndests; bitset_empty (acceptable); /* Then build the states for all destinations. */ @@ -3295,15 +3453,15 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) for (j = 0; j < dests_node[i].nelem; ++j) { next_node = dfa->nexts[dests_node[i].elems[j]]; - if (next_node != -1) + if (next_node != REG_MISSING) { err = re_node_set_merge (&follows, dfa->eclosures + next_node); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto out_free; } } dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0); - if (__glibc_unlikely (dest_states[i] == NULL && err != REG_NOERROR)) + if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0)) goto out_free; /* If the new state has context constraint, build appropriate states for these contexts. */ @@ -3311,8 +3469,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_WORD); - if (__glibc_unlikely (dest_states_word[i] == NULL - && err != REG_NOERROR)) + if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) goto out_free; if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) @@ -3320,7 +3477,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_NEWLINE); - if (__glibc_unlikely (dest_states_nl[i] == NULL && err != REG_NOERROR)) + if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0)) goto out_free; } else @@ -3331,7 +3488,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) bitset_merge (acceptable, dests_ch[i]); } - if (!__glibc_unlikely (need_word_trtable)) + if (!BE (need_word_trtable, 0)) { /* We don't care about whether the following character is a word character, or we are in a single-byte character set so we can @@ -3339,7 +3496,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) 256-entry transition table. */ trtable = state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); - if (__glibc_unlikely (trtable == NULL)) + if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ @@ -3347,7 +3504,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) - if (__glibc_unlikely (elem & 1)) + if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ @@ -3370,7 +3527,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) starting at trtable[SBC_MAX]. */ trtable = state->word_trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX); - if (__glibc_unlikely (trtable == NULL)) + if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ @@ -3378,7 +3535,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) - if (__glibc_unlikely (elem & 1)) + if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ @@ -3408,19 +3565,26 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) } } + if (dest_states_malloced) + free (dest_states); + re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); + + if (dests_node_malloced) + free (dests_alloc); + return true; } /* Group all nodes belonging to STATE into several destinations. Then for all destinations, set the nodes belonging to the destination to DESTS_NODE[i] and set the characters accepted by the destination - to DEST_CH[i]. Return the number of destinations if successful, - -1 on internal error. */ + to DEST_CH[i]. This function return the number of destinations. */ static Idx +internal_function group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *dests_node, bitset_t *dests_ch) { @@ -3449,15 +3613,18 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, } else if (type == OP_PERIOD) { +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) bitset_merge (accepts, dfa->sb_char); else +#endif bitset_set_all (accepts); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } +#ifdef RE_ENABLE_I18N else if (type == OP_UTF8_PERIOD) { if (ASCII_CHARS % BITSET_WORD_BITS == 0) @@ -3469,6 +3636,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } +#endif else continue; @@ -3499,10 +3667,12 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, bitset_empty (accepts); continue; } +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); else +#endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= dfa->word_char[j]); if (!any_set) @@ -3516,10 +3686,12 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, bitset_empty (accepts); continue; } +#ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); else +#endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~dfa->word_char[j]); if (!any_set) @@ -3563,14 +3735,14 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, bitset_copy (dests_ch[ndests], remains); bitset_copy (dests_ch[j], intersec); err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; } /* Put the position in the current group. */ ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]); - if (__glibc_unlikely (! ok)) + if (BE (! ok, 0)) goto error_return; /* If all characters are consumed, go to next node. */ @@ -3582,20 +3754,20 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, { bitset_copy (dests_ch[ndests], accepts); err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]); - if (__glibc_unlikely (err != REG_NOERROR)) + if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; bitset_empty (accepts); } } - assume (ndests <= SBC_MAX); return ndests; error_return: for (j = 0; j < ndests; ++j) re_node_set_free (dests_node + j); - return -1; + return REG_MISSING; } +#ifdef RE_ENABLE_I18N /* Check how many bytes the node 'dfa->nodes[node_idx]' accepts. Return the number of the bytes the node accepts. STR_IDX is the current index of the input string. @@ -3604,11 +3776,8 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, one collating element like '.', '[a-z]', opposite to the other nodes can only accept one byte. */ -#ifdef _LIBC -# include -#endif - static int +internal_function check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx str_idx) { @@ -3616,10 +3785,10 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, int char_len, elem_len; Idx i; - if (__glibc_unlikely (node->type == OP_UTF8_PERIOD)) + if (BE (node->type == OP_UTF8_PERIOD, 0)) { unsigned char c = re_string_byte_at (input, str_idx), d; - if (__glibc_likely (c < 0xc2)) + if (BE (c < 0xc2, 1)) return 0; if (str_idx + 2 > input->len) @@ -3675,10 +3844,10 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, /* FIXME: I don't think this if is needed, as both '\n' and '\0' are char_len == 1. */ /* '.' accepts any one character except the following two cases. */ - if ((!(dfa->syntax & RE_DOT_NEWLINE) - && re_string_byte_at (input, str_idx) == '\n') - || ((dfa->syntax & RE_DOT_NOT_NULL) - && re_string_byte_at (input, str_idx) == '\0')) + if ((!(dfa->syntax & RE_DOT_NEWLINE) && + re_string_byte_at (input, str_idx) == '\n') || + ((dfa->syntax & RE_DOT_NOT_NULL) && + re_string_byte_at (input, str_idx) == '\0')) return 0; return char_len; } @@ -3690,12 +3859,12 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, if (node->type == COMPLEX_BRACKET) { const re_charset_t *cset = node->opr.mbcset; -#ifdef _LIBC +# ifdef _LIBC const unsigned char *pin = ((const unsigned char *) re_string_get_buffer (input) + str_idx); Idx j; uint32_t nrules; -#endif +# endif /* _LIBC */ int match_len = 0; wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) ? re_string_wchar_at (input, str_idx) : 0); @@ -3718,7 +3887,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, } } -#ifdef _LIBC +# ifdef _LIBC nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { @@ -3726,6 +3895,8 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const int32_t *table, *indirect; const unsigned char *weights, *extra; const char *collseqwc; + /* This #include defines a local function! */ +# include /* match with collating_symbol? */ if (cset->ncoll_syms) @@ -3782,32 +3953,35 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); - int32_t idx = findidx (table, indirect, extra, &cp, elem_len); - int32_t rule = idx >> 24; - idx &= 0xffffff; + int32_t idx = findidx (&cp, elem_len); if (idx > 0) - { - size_t weight_len = weights[idx]; - for (i = 0; i < cset->nequiv_classes; ++i) - { - int32_t equiv_class_idx = cset->equiv_classes[i]; - int32_t equiv_class_rule = equiv_class_idx >> 24; - equiv_class_idx &= 0xffffff; - if (weights[equiv_class_idx] == weight_len - && equiv_class_rule == rule - && memcmp (weights + idx + 1, - weights + equiv_class_idx + 1, - weight_len) == 0) - { - match_len = elem_len; - goto check_node_accept_bytes_match; - } - } - } + for (i = 0; i < cset->nequiv_classes; ++i) + { + int32_t equiv_class_idx = cset->equiv_classes[i]; + size_t weight_len = weights[idx & 0xffffff]; + if (weight_len == weights[equiv_class_idx & 0xffffff] + && (idx >> 24) == (equiv_class_idx >> 24)) + { + Idx cnt = 0; + + idx &= 0xffffff; + equiv_class_idx &= 0xffffff; + + while (cnt <= weight_len + && (weights[equiv_class_idx + 1 + cnt] + == weights[idx + 1 + cnt])) + ++cnt; + if (cnt > weight_len) + { + match_len = elem_len; + goto check_node_accept_bytes_match; + } + } + } } } else -#endif /* _LIBC */ +# endif /* _LIBC */ { /* match with range expression? */ for (i = 0; i < cset->nranges; ++i) @@ -3833,8 +4007,9 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, return 0; } -#ifdef _LIBC +# ifdef _LIBC static unsigned int +internal_function find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) { uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); @@ -3891,12 +4066,14 @@ find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) return UINT_MAX; } } -#endif /* _LIBC */ +# endif /* _LIBC */ +#endif /* RE_ENABLE_I18N */ /* Check whether the node accepts the byte which is IDX-th byte of the INPUT. */ static bool +internal_function check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx) { @@ -3914,10 +4091,12 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, return false; break; +#ifdef RE_ENABLE_I18N case OP_UTF8_PERIOD: if (ch >= ASCII_CHARS) return false; - FALLTHROUGH; + /* FALLTHROUGH */ +#endif case OP_PERIOD: if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE)) || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL))) @@ -3944,22 +4123,22 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ extend_buffers (re_match_context_t *mctx, int min_len) { reg_errcode_t ret; re_string_t *pstr = &mctx->input; /* Avoid overflow. */ - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 - <= pstr->bufs_len)) + if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 + <= pstr->bufs_len, 0)) return REG_ESPACE; /* Double the lengths of the buffers, but allocate at least MIN_LEN. */ ret = re_string_realloc_buffers (pstr, MAX (min_len, MIN (pstr->len, pstr->bufs_len * 2))); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; if (mctx->state_log != NULL) @@ -3970,7 +4149,7 @@ extend_buffers (re_match_context_t *mctx, int min_len) does not have the right size. */ re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *, pstr->bufs_len + 1); - if (__glibc_unlikely (new_array == NULL)) + if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->state_log = new_array; } @@ -3978,20 +4157,24 @@ extend_buffers (re_match_context_t *mctx, int min_len) /* Then reconstruct the buffers. */ if (pstr->icase) { +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { ret = build_wcs_upper_buffer (pstr); - if (__glibc_unlikely (ret != REG_NOERROR)) + if (BE (ret != REG_NOERROR, 0)) return ret; } else +#endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { +#ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) build_wcs_buffer (pstr); else +#endif /* RE_ENABLE_I18N */ { if (pstr->trans != NULL) re_string_translate_buffer (pstr); @@ -4006,23 +4189,23 @@ extend_buffers (re_match_context_t *mctx, int min_len) /* Initialize MCTX. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) { mctx->eflags = eflags; - mctx->match_last = -1; + mctx->match_last = REG_MISSING; if (n > 0) { /* Avoid overflow. */ size_t max_object_size = MAX (sizeof (struct re_backref_cache_entry), sizeof (re_sub_match_top_t *)); - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n)) + if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0)) return REG_ESPACE; mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n); mctx->sub_tops = re_malloc (re_sub_match_top_t *, n); - if (__glibc_unlikely (mctx->bkref_ents == NULL || mctx->sub_tops == NULL)) + if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0)) return REG_ESPACE; } /* Already zero-ed by the caller. @@ -4041,6 +4224,7 @@ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) of the input, or changes the input string. */ static void +internal_function match_ctx_clean (re_match_context_t *mctx) { Idx st_idx; @@ -4060,7 +4244,7 @@ match_ctx_clean (re_match_context_t *mctx) re_free (top->path->array); re_free (top->path); } - re_free (top); + free (top); } mctx->nsub_tops = 0; @@ -4070,6 +4254,7 @@ match_ctx_clean (re_match_context_t *mctx) /* Free all the memory associated with MCTX. */ static void +internal_function match_ctx_free (re_match_context_t *mctx) { /* First, free all the memory associated with MCTX->SUB_TOPS. */ @@ -4084,7 +4269,7 @@ match_ctx_free (re_match_context_t *mctx) */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, Idx to) { @@ -4093,7 +4278,7 @@ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, struct re_backref_cache_entry* new_entry; new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry, mctx->abkref_ents * 2); - if (__glibc_unlikely (new_entry == NULL)) + if (BE (new_entry == NULL, 0)) { re_free (mctx->bkref_ents); return REG_ESPACE; @@ -4129,10 +4314,11 @@ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, return REG_NOERROR; } -/* Return the first entry with the same str_idx, or -1 if none is +/* Return the first entry with the same str_idx, or REG_MISSING if none is found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ static Idx +internal_function search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) { Idx left, right, mid, last; @@ -4148,31 +4334,33 @@ search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) if (left < last && mctx->bkref_ents[left].str_idx == str_idx) return left; else - return -1; + return REG_MISSING; } /* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches at STR_IDX. */ static reg_errcode_t -__attribute_warn_unused_result__ +internal_function __attribute_warn_unused_result__ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) { - DEBUG_ASSERT (mctx->sub_tops != NULL); - DEBUG_ASSERT (mctx->asub_tops > 0); - if (__glibc_unlikely (mctx->nsub_tops == mctx->asub_tops)) +#ifdef DEBUG + assert (mctx->sub_tops != NULL); + assert (mctx->asub_tops > 0); +#endif + if (BE (mctx->nsub_tops == mctx->asub_tops, 0)) { Idx new_asub_tops = mctx->asub_tops * 2; re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops, re_sub_match_top_t *, new_asub_tops); - if (__glibc_unlikely (new_array == NULL)) + if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->sub_tops = new_array; mctx->asub_tops = new_asub_tops; } mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t)); - if (__glibc_unlikely (mctx->sub_tops[mctx->nsub_tops] == NULL)) + if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0)) return REG_ESPACE; mctx->sub_tops[mctx->nsub_tops]->node = node; mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx; @@ -4180,26 +4368,26 @@ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) } /* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches - at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. - Return the new entry if successful, NULL if memory is exhausted. */ + at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */ static re_sub_match_last_t * +internal_function match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) { re_sub_match_last_t *new_entry; - if (__glibc_unlikely (subtop->nlasts == subtop->alasts)) + if (BE (subtop->nlasts == subtop->alasts, 0)) { Idx new_alasts = 2 * subtop->alasts + 1; re_sub_match_last_t **new_array = re_realloc (subtop->lasts, re_sub_match_last_t *, new_alasts); - if (__glibc_unlikely (new_array == NULL)) + if (BE (new_array == NULL, 0)) return NULL; subtop->lasts = new_array; subtop->alasts = new_alasts; } new_entry = calloc (1, sizeof (re_sub_match_last_t)); - if (__glibc_likely (new_entry != NULL)) + if (BE (new_entry != NULL, 1)) { subtop->lasts[subtop->nlasts] = new_entry; new_entry->node = node; @@ -4210,6 +4398,7 @@ match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) } static void +internal_function sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) { diff --git a/gl/safe-read.c b/gl/safe-read.c new file mode 100644 index 0000000..6a48c0c --- /dev/null +++ b/gl/safe-read.c @@ -0,0 +1,77 @@ +/* An interface to read and write that retries after interrupts. + + Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2013 Free Software + Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#ifdef SAFE_WRITE +# include "safe-write.h" +#else +# include "safe-read.h" +#endif + +/* Get ssize_t. */ +#include +#include + +#include + +#ifdef EINTR +# define IS_EINTR(x) ((x) == EINTR) +#else +# define IS_EINTR(x) 0 +#endif + +#include + +#ifdef SAFE_WRITE +# define safe_rw safe_write +# define rw write +#else +# define safe_rw safe_read +# define rw read +# undef const +# define const /* empty */ +#endif + +/* Read(write) up to COUNT bytes at BUF from(to) descriptor FD, retrying if + interrupted. Return the actual number of bytes read(written), zero for EOF, + or SAFE_READ_ERROR(SAFE_WRITE_ERROR) upon error. */ +size_t +safe_rw (int fd, void const *buf, size_t count) +{ + /* Work around a bug in Tru64 5.1. Attempting to read more than + INT_MAX bytes fails with errno == EINVAL. See + . + When decreasing COUNT, keep it block-aligned. */ + enum { BUGGY_READ_MAXIMUM = INT_MAX & ~8191 }; + + for (;;) + { + ssize_t result = rw (fd, buf, count); + + if (0 <= result) + return result; + else if (IS_EINTR (errno)) + continue; + else if (errno == EINVAL && BUGGY_READ_MAXIMUM < count) + count = BUGGY_READ_MAXIMUM; + else + return result; + } +} diff --git a/gl/safe-read.h b/gl/safe-read.h new file mode 100644 index 0000000..992b7a6 --- /dev/null +++ b/gl/safe-read.h @@ -0,0 +1,47 @@ +/* An interface to read() that retries after interrupts. + Copyright (C) 2002, 2006, 2009-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Some system calls may be interrupted and fail with errno = EINTR in the + following situations: + - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user + types Ctrl-Z) on some platforms: Mac OS X. + - The process receives a signal for which a signal handler was installed + with sigaction() with an sa_flags field that does not contain + SA_RESTART. + - The process receives a signal for which a signal handler was installed + with signal() and for which no call to siginterrupt(sig,0) was done, + on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris. + + This module provides a wrapper around read() that handles EINTR. */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SAFE_READ_ERROR ((size_t) -1) + +/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted. + Return the actual number of bytes read, zero for EOF, or SAFE_READ_ERROR + upon error. */ +extern size_t safe_read (int fd, void *buf, size_t count); + + +#ifdef __cplusplus +} +#endif diff --git a/gl/setenv.c b/gl/setenv.c index f0b8899..995a0f2 100644 --- a/gl/setenv.c +++ b/gl/setenv.c @@ -1,18 +1,18 @@ -/* Copyright (C) 1992, 1995-2003, 2005-2023 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995-2003, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #if !_LIBC /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc @@ -72,7 +72,7 @@ __libc_lock_define_initialized (static, envlock) values are from a small set. Outside glibc this will eat up all memory after a while. */ #if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ - && (defined __GNUC__ || defined __clang__)) + && defined __GNUC__) # define USE_TSEARCH 1 # include typedef int (*compar_fn_t) (const void *, const void *); diff --git a/gl/setlocale-lock.c b/gl/setlocale-lock.c deleted file mode 100644 index b70ba09..0000000 --- a/gl/setlocale-lock.c +++ /dev/null @@ -1,150 +0,0 @@ -/* Return the internal lock used by setlocale_null_r. - Copyright (C) 2019-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#include - -/* When it is known that the gl_get_setlocale_null_lock function is defined - by a dependency library, it should not be defined here. */ -#if OMIT_SETLOCALE_LOCK - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#else - -/* This file defines the internal lock used by setlocale_null_r. - It is a separate compilation unit, so that only one copy of it is - present when linking statically. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_setlocale_null_lock - -/* Macro for exporting a symbol (function, not variable) defined in this file, - when compiled into a shared library. */ -# ifndef DLL_EXPORTED -# if HAVE_VISIBILITY - /* Override the effect of the compiler option '-fvisibility=hidden'. */ -# define DLL_EXPORTED __attribute__((__visibility__("default"))) -# elif defined _WIN32 || defined __CYGWIN__ -# define DLL_EXPORTED __declspec(dllexport) -# else -# define DLL_EXPORTED -# endif -# endif - -# if defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-initguard.h" - -/* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *', - because the latter is not guaranteed to be a stable ABI in the future. */ - -/* Make sure the function gets exported from DLLs. */ -DLL_EXPORTED CRITICAL_SECTION *gl_get_setlocale_null_lock (void); - -static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT; -static CRITICAL_SECTION lock; - -/* Returns the internal lock used by setlocale_null_r. */ -CRITICAL_SECTION * -gl_get_setlocale_null_lock (void) -{ - if (!guard.done) - { - if (InterlockedIncrement (&guard.started) == 0) - { - /* This thread is the first one to need the lock. Initialize it. */ - InitializeCriticalSection (&lock); - guard.done = 1; - } - else - { - /* Don't let guard.started grow and wrap around. */ - InterlockedDecrement (&guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this mutex. */ - while (!guard.done) - Sleep (0); - } - } - return &lock; -} - -# elif HAVE_PTHREAD_API - -# include - -static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - -/* Make sure the function gets exported from shared libraries. */ -DLL_EXPORTED pthread_mutex_t *gl_get_setlocale_null_lock (void); - -/* Returns the internal lock used by setlocale_null_r. */ -pthread_mutex_t * -gl_get_setlocale_null_lock (void) -{ - return &mutex; -} - -# elif HAVE_THREADS_H - -# include -# include - -static int volatile init_needed = 1; -static once_flag init_once = ONCE_FLAG_INIT; -static mtx_t mutex; - -static void -atomic_init (void) -{ - if (mtx_init (&mutex, mtx_plain) != thrd_success) - abort (); - init_needed = 0; -} - -/* Make sure the function gets exported from shared libraries. */ -DLL_EXPORTED mtx_t *gl_get_setlocale_null_lock (void); - -/* Returns the internal lock used by setlocale_null_r. */ -mtx_t * -gl_get_setlocale_null_lock (void) -{ - if (init_needed) - call_once (&init_once, atomic_init); - return &mutex; -} - -# endif - -# if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER -/* Make sure the '__declspec(dllimport)' in setlocale_null.c does not cause - a link failure when no DLLs are involved. */ -# if defined _WIN64 || defined _LP64 -# define IMP(x) __imp_##x -# else -# define IMP(x) _imp__##x -# endif -void * IMP(gl_get_setlocale_null_lock) = &gl_get_setlocale_null_lock; -# endif - -#endif diff --git a/gl/setlocale_null.c b/gl/setlocale_null.c deleted file mode 100644 index 6ac563d..0000000 --- a/gl/setlocale_null.c +++ /dev/null @@ -1,411 +0,0 @@ -/* Query the name of the current global locale. - Copyright (C) 2019-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#include - -/* Specification. */ -#include "setlocale_null.h" - -#include -#include -#include -#include -#if defined _WIN32 && !defined __CYGWIN__ -# include -#endif - -#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) -# if defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# elif HAVE_PTHREAD_API - -# include -# if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif - -# elif HAVE_THREADS_H - -# include - -# endif -#endif - -/* Use the system's setlocale() function, not the gnulib override, here. */ -#undef setlocale - -static const char * -setlocale_null_androidfix (int category) -{ - const char *result = setlocale (category, NULL); - -#ifdef __ANDROID__ - if (result == NULL) - switch (category) - { - case LC_CTYPE: - case LC_NUMERIC: - case LC_TIME: - case LC_COLLATE: - case LC_MONETARY: - case LC_MESSAGES: - case LC_ALL: - case LC_PAPER: - case LC_NAME: - case LC_ADDRESS: - case LC_TELEPHONE: - case LC_MEASUREMENT: - result = "C"; - break; - default: - break; - } -#endif - - return result; -} - -static int -setlocale_null_unlocked (int category, char *buf, size_t bufsize) -{ -#if defined _WIN32 && !defined __CYGWIN__ && defined _MSC_VER - /* On native Windows, nowadays, the setlocale() implementation is based - on _wsetlocale() and uses malloc() for the result. We are better off - using _wsetlocale() directly. */ - const wchar_t *result = _wsetlocale (category, NULL); - - if (result == NULL) - { - /* CATEGORY is invalid. */ - if (bufsize > 0) - /* Return an empty string in BUF. - This is a convenience for callers that don't want to write explicit - code for handling EINVAL. */ - buf[0] = '\0'; - return EINVAL; - } - else - { - size_t length = wcslen (result); - if (length < bufsize) - { - size_t i; - - /* Convert wchar_t[] -> char[], assuming plain ASCII. */ - for (i = 0; i <= length; i++) - buf[i] = result[i]; - - return 0; - } - else - { - if (bufsize > 0) - { - /* Return a truncated result in BUF. - This is a convenience for callers that don't want to write - explicit code for handling ERANGE. */ - size_t i; - - /* Convert wchar_t[] -> char[], assuming plain ASCII. */ - for (i = 0; i < bufsize; i++) - buf[i] = result[i]; - buf[bufsize - 1] = '\0'; - } - return ERANGE; - } - } -#else - const char *result = setlocale_null_androidfix (category); - - if (result == NULL) - { - /* CATEGORY is invalid. */ - if (bufsize > 0) - /* Return an empty string in BUF. - This is a convenience for callers that don't want to write explicit - code for handling EINVAL. */ - buf[0] = '\0'; - return EINVAL; - } - else - { - size_t length = strlen (result); - if (length < bufsize) - { - memcpy (buf, result, length + 1); - return 0; - } - else - { - if (bufsize > 0) - { - /* Return a truncated result in BUF. - This is a convenience for callers that don't want to write - explicit code for handling ERANGE. */ - memcpy (buf, result, bufsize - 1); - buf[bufsize - 1] = '\0'; - } - return ERANGE; - } - } -#endif -} - -#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin */ - -/* Use a lock, so that no two threads can invoke setlocale_null_unlocked - at the same time. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_setlocale_null_lock - -# if defined _WIN32 && !defined __CYGWIN__ - -extern __declspec(dllimport) CRITICAL_SECTION *gl_get_setlocale_null_lock (void); - -static int -setlocale_null_with_lock (int category, char *buf, size_t bufsize) -{ - CRITICAL_SECTION *lock = gl_get_setlocale_null_lock (); - int ret; - - EnterCriticalSection (lock); - ret = setlocale_null_unlocked (category, buf, bufsize); - LeaveCriticalSection (lock); - - return ret; -} - -# elif HAVE_PTHREAD_API /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin */ - -extern -# if defined _WIN32 || defined __CYGWIN__ - __declspec(dllimport) -# endif - pthread_mutex_t *gl_get_setlocale_null_lock (void); - -# if HAVE_WEAK_SYMBOLS /* musl libc, FreeBSD, NetBSD, OpenBSD, Haiku */ - - /* Avoid the need to link with '-lpthread'. */ -# pragma weak pthread_mutex_lock -# pragma weak pthread_mutex_unlock - - /* Determine whether libpthread is in use. */ -# pragma weak pthread_mutexattr_gettype - /* See the comments in lock.h. */ -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) - -# else -# define pthread_in_use() 1 -# endif - -static int -setlocale_null_with_lock (int category, char *buf, size_t bufsize) -{ - if (pthread_in_use()) - { - pthread_mutex_t *lock = gl_get_setlocale_null_lock (); - int ret; - - if (pthread_mutex_lock (lock)) - abort (); - ret = setlocale_null_unlocked (category, buf, bufsize); - if (pthread_mutex_unlock (lock)) - abort (); - - return ret; - } - else - return setlocale_null_unlocked (category, buf, bufsize); -} - -# elif HAVE_THREADS_H - -extern mtx_t *gl_get_setlocale_null_lock (void); - -static int -setlocale_null_with_lock (int category, char *buf, size_t bufsize) -{ - mtx_t *lock = gl_get_setlocale_null_lock (); - int ret; - - if (mtx_lock (lock) != thrd_success) - abort (); - ret = setlocale_null_unlocked (category, buf, bufsize); - if (mtx_unlock (lock) != thrd_success) - abort (); - - return ret; -} - -# endif - -#endif - -int -setlocale_null_r (int category, char *buf, size_t bufsize) -{ -#if SETLOCALE_NULL_ALL_MTSAFE -# if SETLOCALE_NULL_ONE_MTSAFE - - return setlocale_null_unlocked (category, buf, bufsize); - -# else - - if (category == LC_ALL) - return setlocale_null_unlocked (category, buf, bufsize); - else - return setlocale_null_with_lock (category, buf, bufsize); - -# endif -#else -# if SETLOCALE_NULL_ONE_MTSAFE - - if (category == LC_ALL) - return setlocale_null_with_lock (category, buf, bufsize); - else - return setlocale_null_unlocked (category, buf, bufsize); - -# else - - return setlocale_null_with_lock (category, buf, bufsize); - -# endif -#endif -} - -const char * -setlocale_null (int category) -{ -#if SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE - return setlocale_null_androidfix (category); -#else - - /* This call must be multithread-safe. To achieve this without using - thread-local storage: - 1. We use a specific static buffer for each possible CATEGORY - argument. So that different threads can call setlocale_mtsafe - with different CATEGORY arguments, without interfering. - 2. We use a simple strcpy or memcpy to fill this static buffer. - Filling it through, for example, strcpy + strcat would not be - guaranteed to leave the buffer's contents intact if another thread - is currently accessing it. If necessary, the contents is first - assembled in a stack-allocated buffer. */ - if (category == LC_ALL) - { -# if SETLOCALE_NULL_ALL_MTSAFE - return setlocale_null_androidfix (LC_ALL); -# else - char buf[SETLOCALE_NULL_ALL_MAX]; - static char resultbuf[SETLOCALE_NULL_ALL_MAX]; - - if (setlocale_null_r (LC_ALL, buf, sizeof (buf))) - return "C"; - strcpy (resultbuf, buf); - return resultbuf; -# endif - } - else - { -# if SETLOCALE_NULL_ONE_MTSAFE - return setlocale_null_androidfix (category); -# else - enum - { - LC_CTYPE_INDEX, - LC_NUMERIC_INDEX, - LC_TIME_INDEX, - LC_COLLATE_INDEX, - LC_MONETARY_INDEX, - LC_MESSAGES_INDEX, -# ifdef LC_PAPER - LC_PAPER_INDEX, -# endif -# ifdef LC_NAME - LC_NAME_INDEX, -# endif -# ifdef LC_ADDRESS - LC_ADDRESS_INDEX, -# endif -# ifdef LC_TELEPHONE - LC_TELEPHONE_INDEX, -# endif -# ifdef LC_MEASUREMENT - LC_MEASUREMENT_INDEX, -# endif -# ifdef LC_IDENTIFICATION - LC_IDENTIFICATION_INDEX, -# endif - LC_INDICES_COUNT - } - i; - char buf[SETLOCALE_NULL_MAX]; - static char resultbuf[LC_INDICES_COUNT][SETLOCALE_NULL_MAX]; - int err; - - err = setlocale_null_r (category, buf, sizeof (buf)); - if (err == EINVAL) - return NULL; - if (err) - return "C"; - - switch (category) - { - case LC_CTYPE: i = LC_CTYPE_INDEX; break; - case LC_NUMERIC: i = LC_NUMERIC_INDEX; break; - case LC_TIME: i = LC_TIME_INDEX; break; - case LC_COLLATE: i = LC_COLLATE_INDEX; break; - case LC_MONETARY: i = LC_MONETARY_INDEX; break; - case LC_MESSAGES: i = LC_MESSAGES_INDEX; break; -# ifdef LC_PAPER - case LC_PAPER: i = LC_PAPER_INDEX; break; -# endif -# ifdef LC_NAME - case LC_NAME: i = LC_NAME_INDEX; break; -# endif -# ifdef LC_ADDRESS - case LC_ADDRESS: i = LC_ADDRESS_INDEX; break; -# endif -# ifdef LC_TELEPHONE - case LC_TELEPHONE: i = LC_TELEPHONE_INDEX; break; -# endif -# ifdef LC_MEASUREMENT - case LC_MEASUREMENT: i = LC_MEASUREMENT_INDEX; break; -# endif -# ifdef LC_IDENTIFICATION - case LC_IDENTIFICATION: i = LC_IDENTIFICATION_INDEX; break; -# endif - default: - /* If you get here, a #ifdef LC_xxx is missing. */ - abort (); - } - - strcpy (resultbuf[i], buf); - return resultbuf[i]; -# endif - } -#endif -} diff --git a/gl/setlocale_null.h b/gl/setlocale_null.h deleted file mode 100644 index c740fa0..0000000 --- a/gl/setlocale_null.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Query the name of the current global locale. - Copyright (C) 2019-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#ifndef _SETLOCALE_NULL_H -#define _SETLOCALE_NULL_H - -#include - -#include "arg-nonnull.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Recommended size of a buffer for a locale name for a single category. - On glibc systems, you can have locale names that are relative file names; - assume a maximum length 256. - In native Windows, in 2018 the longest locale name was of length 58 - ("FYRO Macedonian_Former Yugoslav Republic of Macedonia.1251"). */ -#define SETLOCALE_NULL_MAX (256+1) - -/* Recommended size of a buffer for a locale name with all categories. - On glibc systems, you can have locale names that are relative file names; - assume maximum length 256 for each. There are 12 categories; so, the - maximum total length is 148+12*256. - In native Windows, there are 5 categories, and the maximum total length is - 55+5*58. */ -#define SETLOCALE_NULL_ALL_MAX (148+12*256+1) - -/* setlocale_null_r (CATEGORY, BUF, BUFSIZE) is like setlocale (CATEGORY, NULL), - except that - - it is guaranteed to be multithread-safe, - - it returns the resulting locale category name or locale name in the - user-supplied buffer BUF, which must be BUFSIZE bytes long. - The recommended minimum buffer size is - - SETLOCALE_NULL_MAX for CATEGORY != LC_ALL, and - - SETLOCALE_NULL_ALL_MAX for CATEGORY == LC_ALL. - The return value is an error code: 0 if the call is successful, EINVAL if - CATEGORY is invalid, or ERANGE if BUFSIZE is smaller than the length needed - size (including the trailing NUL byte). In the latter case, a truncated - result is returned in BUF, but still NUL-terminated if BUFSIZE > 0. - For this call to be multithread-safe, *all* calls to - setlocale (CATEGORY, NULL) in all other threads must have been converted - to use setlocale_null_r or setlocale_null as well, and the other threads - must not make other setlocale invocations (since changing the global locale - has side effects on all threads). */ -extern int setlocale_null_r (int category, char *buf, size_t bufsize) - _GL_ARG_NONNULL ((2)); - -/* setlocale_null (CATEGORY) is like setlocale (CATEGORY, NULL), except that - it is guaranteed to be multithread-safe. - The return value is NULL if CATEGORY is invalid. - For this call to be multithread-safe, *all* calls to - setlocale (CATEGORY, NULL) in all other threads must have been converted - to use setlocale_null_r or setlocale_null as well, and the other threads - must not make other setlocale invocations (since changing the global locale - has side effects on all threads). */ -extern const char *setlocale_null (int category); - - -#ifdef __cplusplus -} -#endif - -#endif /* _SETLOCALE_NULL_H */ diff --git a/gl/sha1.c b/gl/sha1.c new file mode 100644 index 0000000..778389a --- /dev/null +++ b/gl/sha1.c @@ -0,0 +1,426 @@ +/* sha1.c - Functions to compute SHA1 message digest of files or + memory blocks according to the NIST specification FIPS-180-1. + + Copyright (C) 2000-2001, 2003-2006, 2008-2013 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +/* Written by Scott G. Miller + Credits: + Robert Klep -- Expansion function fix +*/ + +#include + +#include "sha1.h" + +#include +#include +#include +#include + +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +#endif + +#ifdef WORDS_BIGENDIAN +# define SWAP(n) (n) +#else +# define SWAP(n) \ + (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) +#endif + +#define BLOCKSIZE 32768 +#if BLOCKSIZE % 64 != 0 +# error "invalid BLOCKSIZE" +#endif + +/* This array contains the bytes used to pad the buffer to the next + 64-byte boundary. (RFC 1321, 3.1: Step 1) */ +static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; + + +/* Take a pointer to a 160 bit block of data (five 32 bit ints) and + initialize it to the start constants of the SHA1 algorithm. This + must be called before using hash in the call to sha1_hash. */ +void +sha1_init_ctx (struct sha1_ctx *ctx) +{ + ctx->A = 0x67452301; + ctx->B = 0xefcdab89; + ctx->C = 0x98badcfe; + ctx->D = 0x10325476; + ctx->E = 0xc3d2e1f0; + + ctx->total[0] = ctx->total[1] = 0; + ctx->buflen = 0; +} + +/* Copy the 4 byte value from v into the memory location pointed to by *cp, + If your architecture allows unaligned access this is equivalent to + * (uint32_t *) cp = v */ +static void +set_uint32 (char *cp, uint32_t v) +{ + memcpy (cp, &v, sizeof v); +} + +/* Put result from CTX in first 20 bytes following RESBUF. The result + must be in little endian byte order. */ +void * +sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf) +{ + char *r = resbuf; + set_uint32 (r + 0 * sizeof ctx->A, SWAP (ctx->A)); + set_uint32 (r + 1 * sizeof ctx->B, SWAP (ctx->B)); + set_uint32 (r + 2 * sizeof ctx->C, SWAP (ctx->C)); + set_uint32 (r + 3 * sizeof ctx->D, SWAP (ctx->D)); + set_uint32 (r + 4 * sizeof ctx->E, SWAP (ctx->E)); + + return resbuf; +} + +/* Process the remaining bytes in the internal buffer and the usual + prolog according to the standard and write the result to RESBUF. */ +void * +sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf) +{ + /* Take yet unprocessed bytes into account. */ + uint32_t bytes = ctx->buflen; + size_t size = (bytes < 56) ? 64 / 4 : 64 * 2 / 4; + + /* Now count remaining bytes. */ + ctx->total[0] += bytes; + if (ctx->total[0] < bytes) + ++ctx->total[1]; + + /* Put the 64-bit file length in *bits* at the end of the buffer. */ + ctx->buffer[size - 2] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); + ctx->buffer[size - 1] = SWAP (ctx->total[0] << 3); + + memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 4 - bytes); + + /* Process last bytes. */ + sha1_process_block (ctx->buffer, size * 4, ctx); + + return sha1_read_ctx (ctx, resbuf); +} + +/* Compute SHA1 message digest for bytes read from STREAM. The + resulting message digest number will be written into the 16 bytes + beginning at RESBLOCK. */ +int +sha1_stream (FILE *stream, void *resblock) +{ + struct sha1_ctx ctx; + size_t sum; + + char *buffer = malloc (BLOCKSIZE + 72); + if (!buffer) + return 1; + + /* Initialize the computation context. */ + sha1_init_ctx (&ctx); + + /* Iterate over full file contents. */ + while (1) + { + /* We read the file in blocks of BLOCKSIZE bytes. One call of the + computation function processes the whole buffer so that with the + next round of the loop another block can be read. */ + size_t n; + sum = 0; + + /* Read block. Take care for partial reads. */ + while (1) + { + n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream); + + sum += n; + + if (sum == BLOCKSIZE) + break; + + if (n == 0) + { + /* Check for the error flag IFF N == 0, so that we don't + exit the loop after a partial read due to e.g., EAGAIN + or EWOULDBLOCK. */ + if (ferror (stream)) + { + free (buffer); + return 1; + } + goto process_partial_block; + } + + /* We've read at least one byte, so ignore errors. But always + check for EOF, since feof may be true even though N > 0. + Otherwise, we could end up calling fread after EOF. */ + if (feof (stream)) + goto process_partial_block; + } + + /* Process buffer with BLOCKSIZE bytes. Note that + BLOCKSIZE % 64 == 0 + */ + sha1_process_block (buffer, BLOCKSIZE, &ctx); + } + + process_partial_block:; + + /* Process any remaining bytes. */ + if (sum > 0) + sha1_process_bytes (buffer, sum, &ctx); + + /* Construct result in desired memory. */ + sha1_finish_ctx (&ctx, resblock); + free (buffer); + return 0; +} + +/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +void * +sha1_buffer (const char *buffer, size_t len, void *resblock) +{ + struct sha1_ctx ctx; + + /* Initialize the computation context. */ + sha1_init_ctx (&ctx); + + /* Process whole buffer but last len % 64 bytes. */ + sha1_process_bytes (buffer, len, &ctx); + + /* Put result in desired memory area. */ + return sha1_finish_ctx (&ctx, resblock); +} + +void +sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx) +{ + /* When we already have some bits in our internal buffer concatenate + both inputs first. */ + if (ctx->buflen != 0) + { + size_t left_over = ctx->buflen; + size_t add = 128 - left_over > len ? len : 128 - left_over; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, add); + ctx->buflen += add; + + if (ctx->buflen > 64) + { + sha1_process_block (ctx->buffer, ctx->buflen & ~63, ctx); + + ctx->buflen &= 63; + /* The regions in the following copy operation cannot overlap. */ + memcpy (ctx->buffer, + &((char *) ctx->buffer)[(left_over + add) & ~63], + ctx->buflen); + } + + buffer = (const char *) buffer + add; + len -= add; + } + + /* Process available complete blocks. */ + if (len >= 64) + { +#if !_STRING_ARCH_unaligned +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) + if (UNALIGNED_P (buffer)) + while (len > 64) + { + sha1_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); + buffer = (const char *) buffer + 64; + len -= 64; + } + else +#endif + { + sha1_process_block (buffer, len & ~63, ctx); + buffer = (const char *) buffer + (len & ~63); + len &= 63; + } + } + + /* Move remaining bytes in internal buffer. */ + if (len > 0) + { + size_t left_over = ctx->buflen; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, len); + left_over += len; + if (left_over >= 64) + { + sha1_process_block (ctx->buffer, 64, ctx); + left_over -= 64; + memcpy (ctx->buffer, &ctx->buffer[16], left_over); + } + ctx->buflen = left_over; + } +} + +/* --- Code below is the primary difference between md5.c and sha1.c --- */ + +/* SHA1 round constants */ +#define K1 0x5a827999 +#define K2 0x6ed9eba1 +#define K3 0x8f1bbcdc +#define K4 0xca62c1d6 + +/* Round functions. Note that F2 is the same as F4. */ +#define F1(B,C,D) ( D ^ ( B & ( C ^ D ) ) ) +#define F2(B,C,D) (B ^ C ^ D) +#define F3(B,C,D) ( ( B & C ) | ( D & ( B | C ) ) ) +#define F4(B,C,D) (B ^ C ^ D) + +/* Process LEN bytes of BUFFER, accumulating context into CTX. + It is assumed that LEN % 64 == 0. + Most of this code comes from GnuPG's cipher/sha1.c. */ + +void +sha1_process_block (const void *buffer, size_t len, struct sha1_ctx *ctx) +{ + const uint32_t *words = buffer; + size_t nwords = len / sizeof (uint32_t); + const uint32_t *endp = words + nwords; + uint32_t x[16]; + uint32_t a = ctx->A; + uint32_t b = ctx->B; + uint32_t c = ctx->C; + uint32_t d = ctx->D; + uint32_t e = ctx->E; + uint32_t lolen = len; + + /* First increment the byte count. RFC 1321 specifies the possible + length of the file up to 2^64 bits. Here we only compute the + number of bytes. Do a double word increment. */ + ctx->total[0] += lolen; + ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); + +#define rol(x, n) (((x) << (n)) | ((uint32_t) (x) >> (32 - (n)))) + +#define M(I) ( tm = x[I&0x0f] ^ x[(I-14)&0x0f] \ + ^ x[(I-8)&0x0f] ^ x[(I-3)&0x0f] \ + , (x[I&0x0f] = rol(tm, 1)) ) + +#define R(A,B,C,D,E,F,K,M) do { E += rol( A, 5 ) \ + + F( B, C, D ) \ + + K \ + + M; \ + B = rol( B, 30 ); \ + } while(0) + + while (words < endp) + { + uint32_t tm; + int t; + for (t = 0; t < 16; t++) + { + x[t] = SWAP (*words); + words++; + } + + R( a, b, c, d, e, F1, K1, x[ 0] ); + R( e, a, b, c, d, F1, K1, x[ 1] ); + R( d, e, a, b, c, F1, K1, x[ 2] ); + R( c, d, e, a, b, F1, K1, x[ 3] ); + R( b, c, d, e, a, F1, K1, x[ 4] ); + R( a, b, c, d, e, F1, K1, x[ 5] ); + R( e, a, b, c, d, F1, K1, x[ 6] ); + R( d, e, a, b, c, F1, K1, x[ 7] ); + R( c, d, e, a, b, F1, K1, x[ 8] ); + R( b, c, d, e, a, F1, K1, x[ 9] ); + R( a, b, c, d, e, F1, K1, x[10] ); + R( e, a, b, c, d, F1, K1, x[11] ); + R( d, e, a, b, c, F1, K1, x[12] ); + R( c, d, e, a, b, F1, K1, x[13] ); + R( b, c, d, e, a, F1, K1, x[14] ); + R( a, b, c, d, e, F1, K1, x[15] ); + R( e, a, b, c, d, F1, K1, M(16) ); + R( d, e, a, b, c, F1, K1, M(17) ); + R( c, d, e, a, b, F1, K1, M(18) ); + R( b, c, d, e, a, F1, K1, M(19) ); + R( a, b, c, d, e, F2, K2, M(20) ); + R( e, a, b, c, d, F2, K2, M(21) ); + R( d, e, a, b, c, F2, K2, M(22) ); + R( c, d, e, a, b, F2, K2, M(23) ); + R( b, c, d, e, a, F2, K2, M(24) ); + R( a, b, c, d, e, F2, K2, M(25) ); + R( e, a, b, c, d, F2, K2, M(26) ); + R( d, e, a, b, c, F2, K2, M(27) ); + R( c, d, e, a, b, F2, K2, M(28) ); + R( b, c, d, e, a, F2, K2, M(29) ); + R( a, b, c, d, e, F2, K2, M(30) ); + R( e, a, b, c, d, F2, K2, M(31) ); + R( d, e, a, b, c, F2, K2, M(32) ); + R( c, d, e, a, b, F2, K2, M(33) ); + R( b, c, d, e, a, F2, K2, M(34) ); + R( a, b, c, d, e, F2, K2, M(35) ); + R( e, a, b, c, d, F2, K2, M(36) ); + R( d, e, a, b, c, F2, K2, M(37) ); + R( c, d, e, a, b, F2, K2, M(38) ); + R( b, c, d, e, a, F2, K2, M(39) ); + R( a, b, c, d, e, F3, K3, M(40) ); + R( e, a, b, c, d, F3, K3, M(41) ); + R( d, e, a, b, c, F3, K3, M(42) ); + R( c, d, e, a, b, F3, K3, M(43) ); + R( b, c, d, e, a, F3, K3, M(44) ); + R( a, b, c, d, e, F3, K3, M(45) ); + R( e, a, b, c, d, F3, K3, M(46) ); + R( d, e, a, b, c, F3, K3, M(47) ); + R( c, d, e, a, b, F3, K3, M(48) ); + R( b, c, d, e, a, F3, K3, M(49) ); + R( a, b, c, d, e, F3, K3, M(50) ); + R( e, a, b, c, d, F3, K3, M(51) ); + R( d, e, a, b, c, F3, K3, M(52) ); + R( c, d, e, a, b, F3, K3, M(53) ); + R( b, c, d, e, a, F3, K3, M(54) ); + R( a, b, c, d, e, F3, K3, M(55) ); + R( e, a, b, c, d, F3, K3, M(56) ); + R( d, e, a, b, c, F3, K3, M(57) ); + R( c, d, e, a, b, F3, K3, M(58) ); + R( b, c, d, e, a, F3, K3, M(59) ); + R( a, b, c, d, e, F4, K4, M(60) ); + R( e, a, b, c, d, F4, K4, M(61) ); + R( d, e, a, b, c, F4, K4, M(62) ); + R( c, d, e, a, b, F4, K4, M(63) ); + R( b, c, d, e, a, F4, K4, M(64) ); + R( a, b, c, d, e, F4, K4, M(65) ); + R( e, a, b, c, d, F4, K4, M(66) ); + R( d, e, a, b, c, F4, K4, M(67) ); + R( c, d, e, a, b, F4, K4, M(68) ); + R( b, c, d, e, a, F4, K4, M(69) ); + R( a, b, c, d, e, F4, K4, M(70) ); + R( e, a, b, c, d, F4, K4, M(71) ); + R( d, e, a, b, c, F4, K4, M(72) ); + R( c, d, e, a, b, F4, K4, M(73) ); + R( b, c, d, e, a, F4, K4, M(74) ); + R( a, b, c, d, e, F4, K4, M(75) ); + R( e, a, b, c, d, F4, K4, M(76) ); + R( d, e, a, b, c, F4, K4, M(77) ); + R( c, d, e, a, b, F4, K4, M(78) ); + R( b, c, d, e, a, F4, K4, M(79) ); + + a = ctx->A += a; + b = ctx->B += b; + c = ctx->C += c; + d = ctx->D += d; + e = ctx->E += e; + } +} diff --git a/gl/sha1.h b/gl/sha1.h new file mode 100644 index 0000000..ddd386f --- /dev/null +++ b/gl/sha1.h @@ -0,0 +1,91 @@ +/* Declarations of functions and data types used for SHA1 sum + library functions. + Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2013 Free Software + Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +#ifndef SHA1_H +# define SHA1_H 1 + +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +#define SHA1_DIGEST_SIZE 20 + +/* Structure to save state of computation between the single steps. */ +struct sha1_ctx +{ + uint32_t A; + uint32_t B; + uint32_t C; + uint32_t D; + uint32_t E; + + uint32_t total[2]; + uint32_t buflen; + uint32_t buffer[32]; +}; + + +/* Initialize structure containing state of computation. */ +extern void sha1_init_ctx (struct sha1_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is necessary that LEN is a multiple of 64!!! */ +extern void sha1_process_block (const void *buffer, size_t len, + struct sha1_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is NOT required that LEN is a multiple of 64. */ +extern void sha1_process_bytes (const void *buffer, size_t len, + struct sha1_ctx *ctx); + +/* Process the remaining bytes in the buffer and put result from CTX + in first 20 bytes following RESBUF. The result is always in little + endian byte order, so that a byte-wise output yields to the wanted + ASCII representation of the message digest. */ +extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf); + + +/* Put result from CTX in first 20 bytes following RESBUF. The result is + always in little endian byte order, so that a byte-wise output yields + to the wanted ASCII representation of the message digest. */ +extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf); + + +/* Compute SHA1 message digest for bytes read from STREAM. The + resulting message digest number will be written into the 20 bytes + beginning at RESBLOCK. */ +extern int sha1_stream (FILE *stream, void *resblock); + +/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +extern void *sha1_buffer (const char *buffer, size_t len, void *resblock); + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/gl/sha256-stream.c b/gl/sha256-stream.c deleted file mode 100644 index 0e83380..0000000 --- a/gl/sha256-stream.c +++ /dev/null @@ -1,145 +0,0 @@ -/* sha256.c - Functions to compute SHA256 and SHA224 message digest of files or - memory blocks according to the NIST specification FIPS-180-2. - - Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by David Madore, considerably copypasting from - Scott G. Miller's sha1.c -*/ - -#include - -/* Specification. */ -#if HAVE_OPENSSL_SHA256 -# define GL_OPENSSL_INLINE _GL_EXTERN_INLINE -#endif -#include "sha256.h" - -#include - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -#include "af_alg.h" - -#define BLOCKSIZE 32768 -#if BLOCKSIZE % 64 != 0 -# error "invalid BLOCKSIZE" -#endif - -/* Compute message digest for bytes read from STREAM using algorithm ALG. - Write the message digest into RESBLOCK, which contains HASHLEN bytes. - The initial and finishing operations are INIT_CTX and FINISH_CTX. - Return zero if and only if successful. */ -static int -shaxxx_stream (FILE *stream, char const *alg, void *resblock, - ssize_t hashlen, void (*init_ctx) (struct sha256_ctx *), - void *(*finish_ctx) (struct sha256_ctx *, void *)) -{ - switch (afalg_stream (stream, alg, resblock, hashlen)) - { - case 0: return 0; - case -EIO: return 1; - } - - char *buffer = malloc (BLOCKSIZE + 72); - if (!buffer) - return 1; - - struct sha256_ctx ctx; - init_ctx (&ctx); - size_t sum; - - /* Iterate over full file contents. */ - while (1) - { - /* We read the file in blocks of BLOCKSIZE bytes. One call of the - computation function processes the whole buffer so that with the - next round of the loop another block can be read. */ - size_t n; - sum = 0; - - /* Read block. Take care for partial reads. */ - while (1) - { - /* Either process a partial fread() from this loop, - or the fread() in afalg_stream may have gotten EOF. - We need to avoid a subsequent fread() as EOF may - not be sticky. For details of such systems, see: - https://sourceware.org/bugzilla/show_bug.cgi?id=1190 */ - if (feof (stream)) - goto process_partial_block; - - n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream); - - sum += n; - - if (sum == BLOCKSIZE) - break; - - if (n == 0) - { - /* Check for the error flag IFF N == 0, so that we don't - exit the loop after a partial read due to e.g., EAGAIN - or EWOULDBLOCK. */ - if (ferror (stream)) - { - free (buffer); - return 1; - } - goto process_partial_block; - } - } - - /* Process buffer with BLOCKSIZE bytes. Note that - BLOCKSIZE % 64 == 0 - */ - sha256_process_block (buffer, BLOCKSIZE, &ctx); - } - - process_partial_block:; - - /* Process any remaining bytes. */ - if (sum > 0) - sha256_process_bytes (buffer, sum, &ctx); - - /* Construct result in desired memory. */ - finish_ctx (&ctx, resblock); - free (buffer); - return 0; -} - -int -sha256_stream (FILE *stream, void *resblock) -{ - return shaxxx_stream (stream, "sha256", resblock, SHA256_DIGEST_SIZE, - sha256_init_ctx, sha256_finish_ctx); -} - -int -sha224_stream (FILE *stream, void *resblock) -{ - return shaxxx_stream (stream, "sha224", resblock, SHA224_DIGEST_SIZE, - sha224_init_ctx, sha224_finish_ctx); -} - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/gl/sha256.c b/gl/sha256.c deleted file mode 100644 index e5fea02..0000000 --- a/gl/sha256.c +++ /dev/null @@ -1,432 +0,0 @@ -/* sha256.c - Functions to compute SHA256 and SHA224 message digest of files or - memory blocks according to the NIST specification FIPS-180-2. - - Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by David Madore, considerably copypasting from - Scott G. Miller's sha1.c -*/ - -#include - -/* Specification. */ -#if HAVE_OPENSSL_SHA256 -# define GL_OPENSSL_INLINE _GL_EXTERN_INLINE -#endif -#include "sha256.h" - -#include -#include - -#include -#ifdef WORDS_BIGENDIAN -# define SWAP(n) (n) -#else -# define SWAP(n) bswap_32 (n) -#endif - -#if ! HAVE_OPENSSL_SHA256 - -/* This array contains the bytes used to pad the buffer to the next - 64-byte boundary. */ -static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; - - -/* - Takes a pointer to a 256 bit block of data (eight 32 bit ints) and - initializes it to the start constants of the SHA256 algorithm. This - must be called before using hash in the call to sha256_hash -*/ -void -sha256_init_ctx (struct sha256_ctx *ctx) -{ - ctx->state[0] = 0x6a09e667UL; - ctx->state[1] = 0xbb67ae85UL; - ctx->state[2] = 0x3c6ef372UL; - ctx->state[3] = 0xa54ff53aUL; - ctx->state[4] = 0x510e527fUL; - ctx->state[5] = 0x9b05688cUL; - ctx->state[6] = 0x1f83d9abUL; - ctx->state[7] = 0x5be0cd19UL; - - ctx->total[0] = ctx->total[1] = 0; - ctx->buflen = 0; -} - -void -sha224_init_ctx (struct sha256_ctx *ctx) -{ - ctx->state[0] = 0xc1059ed8UL; - ctx->state[1] = 0x367cd507UL; - ctx->state[2] = 0x3070dd17UL; - ctx->state[3] = 0xf70e5939UL; - ctx->state[4] = 0xffc00b31UL; - ctx->state[5] = 0x68581511UL; - ctx->state[6] = 0x64f98fa7UL; - ctx->state[7] = 0xbefa4fa4UL; - - ctx->total[0] = ctx->total[1] = 0; - ctx->buflen = 0; -} - -/* Copy the value from v into the memory location pointed to by *CP, - If your architecture allows unaligned access, this is equivalent to - * (__typeof__ (v) *) cp = v */ -static void -set_uint32 (char *cp, uint32_t v) -{ - memcpy (cp, &v, sizeof v); -} - -/* Put result from CTX in first 32 bytes following RESBUF. - The result must be in little endian byte order. */ -void * -sha256_read_ctx (const struct sha256_ctx *ctx, void *resbuf) -{ - int i; - char *r = resbuf; - - for (i = 0; i < 8; i++) - set_uint32 (r + i * sizeof ctx->state[0], SWAP (ctx->state[i])); - - return resbuf; -} - -void * -sha224_read_ctx (const struct sha256_ctx *ctx, void *resbuf) -{ - int i; - char *r = resbuf; - - for (i = 0; i < 7; i++) - set_uint32 (r + i * sizeof ctx->state[0], SWAP (ctx->state[i])); - - return resbuf; -} - -/* Process the remaining bytes in the internal buffer and the usual - prolog according to the standard and write the result to RESBUF. */ -static void -sha256_conclude_ctx (struct sha256_ctx *ctx) -{ - /* Take yet unprocessed bytes into account. */ - size_t bytes = ctx->buflen; - size_t size = (bytes < 56) ? 64 / 4 : 64 * 2 / 4; - - /* Now count remaining bytes. */ - ctx->total[0] += bytes; - if (ctx->total[0] < bytes) - ++ctx->total[1]; - - /* Put the 64-bit file length in *bits* at the end of the buffer. - Use set_uint32 rather than a simple assignment, to avoid risk of - unaligned access. */ - set_uint32 ((char *) &ctx->buffer[size - 2], - SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29))); - set_uint32 ((char *) &ctx->buffer[size - 1], - SWAP (ctx->total[0] << 3)); - - memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 4 - bytes); - - /* Process last bytes. */ - sha256_process_block (ctx->buffer, size * 4, ctx); -} - -void * -sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf) -{ - sha256_conclude_ctx (ctx); - return sha256_read_ctx (ctx, resbuf); -} - -void * -sha224_finish_ctx (struct sha256_ctx *ctx, void *resbuf) -{ - sha256_conclude_ctx (ctx); - return sha224_read_ctx (ctx, resbuf); -} - -/* Compute SHA256 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -void * -sha256_buffer (const char *buffer, size_t len, void *resblock) -{ - struct sha256_ctx ctx; - - /* Initialize the computation context. */ - sha256_init_ctx (&ctx); - - /* Process whole buffer but last len % 64 bytes. */ - sha256_process_bytes (buffer, len, &ctx); - - /* Put result in desired memory area. */ - return sha256_finish_ctx (&ctx, resblock); -} - -void * -sha224_buffer (const char *buffer, size_t len, void *resblock) -{ - struct sha256_ctx ctx; - - /* Initialize the computation context. */ - sha224_init_ctx (&ctx); - - /* Process whole buffer but last len % 64 bytes. */ - sha256_process_bytes (buffer, len, &ctx); - - /* Put result in desired memory area. */ - return sha224_finish_ctx (&ctx, resblock); -} - -void -sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx) -{ - /* When we already have some bits in our internal buffer concatenate - both inputs first. */ - if (ctx->buflen != 0) - { - size_t left_over = ctx->buflen; - size_t add = 128 - left_over > len ? len : 128 - left_over; - - memcpy (&((char *) ctx->buffer)[left_over], buffer, add); - ctx->buflen += add; - - if (ctx->buflen > 64) - { - sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx); - - ctx->buflen &= 63; - /* The regions in the following copy operation cannot overlap, - because ctx->buflen < 64 ≤ (left_over + add) & ~63. */ - memcpy (ctx->buffer, - &((char *) ctx->buffer)[(left_over + add) & ~63], - ctx->buflen); - } - - buffer = (const char *) buffer + add; - len -= add; - } - - /* Process available complete blocks. */ - if (len >= 64) - { -#if !(_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) -# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) - if (UNALIGNED_P (buffer)) - while (len > 64) - { - sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); - buffer = (const char *) buffer + 64; - len -= 64; - } - else -#endif - { - sha256_process_block (buffer, len & ~63, ctx); - buffer = (const char *) buffer + (len & ~63); - len &= 63; - } - } - - /* Move remaining bytes in internal buffer. */ - if (len > 0) - { - size_t left_over = ctx->buflen; - - memcpy (&((char *) ctx->buffer)[left_over], buffer, len); - left_over += len; - if (left_over >= 64) - { - sha256_process_block (ctx->buffer, 64, ctx); - left_over -= 64; - /* The regions in the following copy operation cannot overlap, - because left_over ≤ 64. */ - memcpy (ctx->buffer, &ctx->buffer[16], left_over); - } - ctx->buflen = left_over; - } -} - -/* --- Code below is the primary difference between sha1.c and sha256.c --- */ - -/* SHA256 round constants */ -#define K(I) sha256_round_constants[I] -static const uint32_t sha256_round_constants[64] = { - 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, - 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, - 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL, - 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL, - 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL, - 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, - 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, - 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL, - 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL, - 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL, - 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, - 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, - 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL, - 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL, - 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL, - 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL, -}; - -/* Round functions. */ -#define F2(A,B,C) ( ( A & B ) | ( C & ( A | B ) ) ) -#define F1(E,F,G) ( G ^ ( E & ( F ^ G ) ) ) - -/* Process LEN bytes of BUFFER, accumulating context into CTX. - It is assumed that LEN % 64 == 0. - Most of this code comes from GnuPG's cipher/sha1.c. */ - -void -sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx) -{ - const uint32_t *words = buffer; - size_t nwords = len / sizeof (uint32_t); - const uint32_t *endp = words + nwords; - uint32_t x[16]; - uint32_t a = ctx->state[0]; - uint32_t b = ctx->state[1]; - uint32_t c = ctx->state[2]; - uint32_t d = ctx->state[3]; - uint32_t e = ctx->state[4]; - uint32_t f = ctx->state[5]; - uint32_t g = ctx->state[6]; - uint32_t h = ctx->state[7]; - uint32_t lolen = len; - - /* First increment the byte count. FIPS PUB 180-2 specifies the possible - length of the file up to 2^64 bits. Here we only compute the - number of bytes. Do a double word increment. */ - ctx->total[0] += lolen; - ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); - -#define rol(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) -#define S0(x) (rol(x,25)^rol(x,14)^(x>>3)) -#define S1(x) (rol(x,15)^rol(x,13)^(x>>10)) -#define SS0(x) (rol(x,30)^rol(x,19)^rol(x,10)) -#define SS1(x) (rol(x,26)^rol(x,21)^rol(x,7)) - -#define M(I) ( tm = S1(x[(I-2)&0x0f]) + x[(I-7)&0x0f] \ - + S0(x[(I-15)&0x0f]) + x[I&0x0f] \ - , x[I&0x0f] = tm ) - -#define R(A,B,C,D,E,F,G,H,K,M) do { t0 = SS0(A) + F2(A,B,C); \ - t1 = H + SS1(E) \ - + F1(E,F,G) \ - + K \ - + M; \ - D += t1; H = t0 + t1; \ - } while(0) - - while (words < endp) - { - uint32_t tm; - uint32_t t0, t1; - int t; - /* FIXME: see sha1.c for a better implementation. */ - for (t = 0; t < 16; t++) - { - x[t] = SWAP (*words); - words++; - } - - R( a, b, c, d, e, f, g, h, K( 0), x[ 0] ); - R( h, a, b, c, d, e, f, g, K( 1), x[ 1] ); - R( g, h, a, b, c, d, e, f, K( 2), x[ 2] ); - R( f, g, h, a, b, c, d, e, K( 3), x[ 3] ); - R( e, f, g, h, a, b, c, d, K( 4), x[ 4] ); - R( d, e, f, g, h, a, b, c, K( 5), x[ 5] ); - R( c, d, e, f, g, h, a, b, K( 6), x[ 6] ); - R( b, c, d, e, f, g, h, a, K( 7), x[ 7] ); - R( a, b, c, d, e, f, g, h, K( 8), x[ 8] ); - R( h, a, b, c, d, e, f, g, K( 9), x[ 9] ); - R( g, h, a, b, c, d, e, f, K(10), x[10] ); - R( f, g, h, a, b, c, d, e, K(11), x[11] ); - R( e, f, g, h, a, b, c, d, K(12), x[12] ); - R( d, e, f, g, h, a, b, c, K(13), x[13] ); - R( c, d, e, f, g, h, a, b, K(14), x[14] ); - R( b, c, d, e, f, g, h, a, K(15), x[15] ); - R( a, b, c, d, e, f, g, h, K(16), M(16) ); - R( h, a, b, c, d, e, f, g, K(17), M(17) ); - R( g, h, a, b, c, d, e, f, K(18), M(18) ); - R( f, g, h, a, b, c, d, e, K(19), M(19) ); - R( e, f, g, h, a, b, c, d, K(20), M(20) ); - R( d, e, f, g, h, a, b, c, K(21), M(21) ); - R( c, d, e, f, g, h, a, b, K(22), M(22) ); - R( b, c, d, e, f, g, h, a, K(23), M(23) ); - R( a, b, c, d, e, f, g, h, K(24), M(24) ); - R( h, a, b, c, d, e, f, g, K(25), M(25) ); - R( g, h, a, b, c, d, e, f, K(26), M(26) ); - R( f, g, h, a, b, c, d, e, K(27), M(27) ); - R( e, f, g, h, a, b, c, d, K(28), M(28) ); - R( d, e, f, g, h, a, b, c, K(29), M(29) ); - R( c, d, e, f, g, h, a, b, K(30), M(30) ); - R( b, c, d, e, f, g, h, a, K(31), M(31) ); - R( a, b, c, d, e, f, g, h, K(32), M(32) ); - R( h, a, b, c, d, e, f, g, K(33), M(33) ); - R( g, h, a, b, c, d, e, f, K(34), M(34) ); - R( f, g, h, a, b, c, d, e, K(35), M(35) ); - R( e, f, g, h, a, b, c, d, K(36), M(36) ); - R( d, e, f, g, h, a, b, c, K(37), M(37) ); - R( c, d, e, f, g, h, a, b, K(38), M(38) ); - R( b, c, d, e, f, g, h, a, K(39), M(39) ); - R( a, b, c, d, e, f, g, h, K(40), M(40) ); - R( h, a, b, c, d, e, f, g, K(41), M(41) ); - R( g, h, a, b, c, d, e, f, K(42), M(42) ); - R( f, g, h, a, b, c, d, e, K(43), M(43) ); - R( e, f, g, h, a, b, c, d, K(44), M(44) ); - R( d, e, f, g, h, a, b, c, K(45), M(45) ); - R( c, d, e, f, g, h, a, b, K(46), M(46) ); - R( b, c, d, e, f, g, h, a, K(47), M(47) ); - R( a, b, c, d, e, f, g, h, K(48), M(48) ); - R( h, a, b, c, d, e, f, g, K(49), M(49) ); - R( g, h, a, b, c, d, e, f, K(50), M(50) ); - R( f, g, h, a, b, c, d, e, K(51), M(51) ); - R( e, f, g, h, a, b, c, d, K(52), M(52) ); - R( d, e, f, g, h, a, b, c, K(53), M(53) ); - R( c, d, e, f, g, h, a, b, K(54), M(54) ); - R( b, c, d, e, f, g, h, a, K(55), M(55) ); - R( a, b, c, d, e, f, g, h, K(56), M(56) ); - R( h, a, b, c, d, e, f, g, K(57), M(57) ); - R( g, h, a, b, c, d, e, f, K(58), M(58) ); - R( f, g, h, a, b, c, d, e, K(59), M(59) ); - R( e, f, g, h, a, b, c, d, K(60), M(60) ); - R( d, e, f, g, h, a, b, c, K(61), M(61) ); - R( c, d, e, f, g, h, a, b, K(62), M(62) ); - R( b, c, d, e, f, g, h, a, K(63), M(63) ); - - a = ctx->state[0] += a; - b = ctx->state[1] += b; - c = ctx->state[2] += c; - d = ctx->state[3] += d; - e = ctx->state[4] += e; - f = ctx->state[5] += f; - g = ctx->state[6] += g; - h = ctx->state[7] += h; - } -} - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/gl/sha256.h b/gl/sha256.h deleted file mode 100644 index 2879477..0000000 --- a/gl/sha256.h +++ /dev/null @@ -1,121 +0,0 @@ -/* Declarations of functions and data types used for SHA256 and SHA224 sum - library functions. - Copyright (C) 2005-2006, 2008-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef SHA256_H -# define SHA256_H 1 - -# include -# include - -# if HAVE_OPENSSL_SHA256 -# ifndef OPENSSL_API_COMPAT -# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ -# endif -# include -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -enum { SHA224_DIGEST_SIZE = 224 / 8 }; -enum { SHA256_DIGEST_SIZE = 256 / 8 }; - -# if HAVE_OPENSSL_SHA256 -# define GL_OPENSSL_NAME 224 -# include "gl_openssl.h" -# define GL_OPENSSL_NAME 256 -# include "gl_openssl.h" -# else -/* Structure to save state of computation between the single steps. */ -struct sha256_ctx -{ - uint32_t state[8]; - - uint32_t total[2]; - size_t buflen; /* ≥ 0, ≤ 128 */ - uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ -}; - -/* Initialize structure containing state of computation. */ -extern void sha256_init_ctx (struct sha256_ctx *ctx); -extern void sha224_init_ctx (struct sha256_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void sha256_process_block (const void *buffer, size_t len, - struct sha256_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void sha256_process_bytes (const void *buffer, size_t len, - struct sha256_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 32 (28) bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *sha256_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf); -extern void *sha224_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf); - - -/* Put result from CTX in first 32 (28) bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. */ -extern void *sha256_read_ctx (const struct sha256_ctx *ctx, - void *restrict resbuf); -extern void *sha224_read_ctx (const struct sha256_ctx *ctx, - void *restrict resbuf); - - -/* Compute SHA256 (SHA224) message digest for LEN bytes beginning at BUFFER. - The result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *sha256_buffer (const char *buffer, size_t len, - void *restrict resblock); -extern void *sha224_buffer (const char *buffer, size_t len, - void *restrict resblock); - -# endif - -/* Compute SHA256 (SHA224) message digest for bytes read from STREAM. - STREAM is an open file stream. Regular files are handled more efficiently. - The contents of STREAM from its current position to its end will be read. - The case that the last operation on STREAM was an 'ungetc' is not supported. - The resulting message digest number will be written into the 32 (28) bytes - beginning at RESBLOCK. */ -extern int sha256_stream (FILE *stream, void *resblock); -extern int sha224_stream (FILE *stream, void *resblock); - - -# ifdef __cplusplus -} -# endif - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/gl/size_max.h b/gl/size_max.h index 48af025..5f33124 100644 --- a/gl/size_max.h +++ b/gl/size_max.h @@ -1,19 +1,19 @@ /* size_max.h -- declare SIZE_MAX through system headers - Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc. Written by Simon Josefsson. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef GNULIB_SIZE_MAX_H #define GNULIB_SIZE_MAX_H diff --git a/gl/snprintf.c b/gl/snprintf.c index cdff314..9c4ab3f 100644 --- a/gl/snprintf.c +++ b/gl/snprintf.c @@ -1,19 +1,19 @@ /* Formatted output to strings. - Copyright (C) 2004, 2006-2023 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc. Written by Simon Josefsson and Paul Eggert. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #include diff --git a/gl/sockets.c b/gl/sockets.c index ca99db8..ae96148 100644 --- a/gl/sockets.c +++ b/gl/sockets.c @@ -1,19 +1,19 @@ /* sockets.c --- wrappers for Windows socket functions - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Simon Josefsson */ @@ -28,11 +28,7 @@ # include # include "fd-hook.h" -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif +# include "msvc-nothrow.h" /* Get set_winsock_errno, FD_TO_SOCKET etc. */ # include "w32sock.h" @@ -113,7 +109,7 @@ static int initialized_sockets_version /* = 0 */; #endif /* WINDOWS_SOCKETS */ int -gl_sockets_startup (_GL_UNUSED int version) +gl_sockets_startup (int version _GL_UNUSED) { #if WINDOWS_SOCKETS if (version > initialized_sockets_version) @@ -125,11 +121,8 @@ gl_sockets_startup (_GL_UNUSED int version) if (err != 0) return 1; - if (data.wVersion != version) - { - WSACleanup (); - return 2; - } + if (data.wVersion < version) + return 2; if (initialized_sockets_version == 0) register_fd_hook (close_fd_maybe_socket, ioctl_fd_maybe_socket, diff --git a/gl/sockets.h b/gl/sockets.h index a0b1601..1570ad8 100644 --- a/gl/sockets.h +++ b/gl/sockets.h @@ -1,39 +1,39 @@ /* sockets.h - wrappers for Windows socket functions - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Simon Josefsson */ #ifndef SOCKETS_H -#define SOCKETS_H 1 +# define SOCKETS_H 1 -#define SOCKETS_1_0 0x0001 -#define SOCKETS_1_1 0x0101 -#define SOCKETS_2_0 0x0002 -#define SOCKETS_2_1 0x0102 -#define SOCKETS_2_2 0x0202 +#define SOCKETS_1_0 0x100 /* don't use - does not work on Windows XP */ +#define SOCKETS_1_1 0x101 +#define SOCKETS_2_0 0x200 /* don't use - does not work on Windows XP */ +#define SOCKETS_2_1 0x201 +#define SOCKETS_2_2 0x202 int gl_sockets_startup (int version) -#ifndef WINDOWS_SOCKETS +#if !WINDOWS_SOCKETS _GL_ATTRIBUTE_CONST #endif ; int gl_sockets_cleanup (void) -#ifndef WINDOWS_SOCKETS +#if !WINDOWS_SOCKETS _GL_ATTRIBUTE_CONST #endif ; @@ -41,15 +41,11 @@ int gl_sockets_cleanup (void) /* This function is useful it you create a socket using gnulib's Winsock wrappers but needs to pass on the socket handle to some other library that only accepts sockets. */ -#ifdef WINDOWS_SOCKETS +#if WINDOWS_SOCKETS -# include +#include -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif +#include "msvc-nothrow.h" static inline SOCKET gl_fd_to_handle (int fd) @@ -59,7 +55,7 @@ gl_fd_to_handle (int fd) #else -# define gl_fd_to_handle(x) (x) +#define gl_fd_to_handle(x) (x) #endif /* WINDOWS_SOCKETS */ diff --git a/gl/stat-time.c b/gl/stat-time.c deleted file mode 100644 index bc28223..0000000 --- a/gl/stat-time.c +++ /dev/null @@ -1,21 +0,0 @@ -/* stat-related time functions. - - Copyright (C) 2012-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -#define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE -#include "stat-time.h" diff --git a/gl/stat-time.h b/gl/stat-time.h deleted file mode 100644 index 92aa1e6..0000000 --- a/gl/stat-time.h +++ /dev/null @@ -1,251 +0,0 @@ -/* stat-related time functions. - - Copyright (C) 2005, 2007, 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef STAT_TIME_H -#define STAT_TIME_H 1 - -#include -#include -#include -#include -#include - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_STAT_TIME_INLINE -# define _GL_STAT_TIME_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type - struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, - ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, - if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim - for access, status change, data modification, or birth (creation) - time respectively. - - These macros are private to stat-time.h. */ -#if _GL_WINDOWS_STAT_TIMESPEC || defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC -# if _GL_WINDOWS_STAT_TIMESPEC || defined TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC -# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim) -# else -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec) -# endif -#elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC -# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec) -#elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec) -#elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec) -#endif - -/* Return the nanosecond component of *ST's access time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_atime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_atim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_atim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's status change time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_ctime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_ctim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_ctim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's data modification time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_mtime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_mtim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_mtim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's birth time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_birthtime_ns (_GL_UNUSED struct stat const *st) -{ -# if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC - return STAT_TIMESPEC (st, st_birthtim).tv_nsec; -# elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC - return STAT_TIMESPEC_NS (st, st_birthtim); -# else - return 0; -# endif -} - -/* Return *ST's access time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_atime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_atim); -#else - struct timespec t; - t.tv_sec = st->st_atime; - t.tv_nsec = get_stat_atime_ns (st); - return t; -#endif -} - -/* Return *ST's status change time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_ctime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_ctim); -#else - struct timespec t; - t.tv_sec = st->st_ctime; - t.tv_nsec = get_stat_ctime_ns (st); - return t; -#endif -} - -/* Return *ST's data modification time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_mtime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_mtim); -#else - struct timespec t; - t.tv_sec = st->st_mtime; - t.tv_nsec = get_stat_mtime_ns (st); - return t; -#endif -} - -/* Return *ST's birth time, if available; otherwise return a value - with tv_sec and tv_nsec both equal to -1. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_birthtime (_GL_UNUSED struct stat const *st) -{ - struct timespec t; - -#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC) - t = STAT_TIMESPEC (st, st_birthtim); -#elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC - t.tv_sec = st->st_birthtime; - t.tv_nsec = st->st_birthtimensec; -#elif defined _WIN32 && ! defined __CYGWIN__ - /* Native Windows platforms (but not Cygwin) put the "file creation - time" in st_ctime (!). See - . */ -# if _GL_WINDOWS_STAT_TIMESPEC - t = st->st_ctim; -# else - t.tv_sec = st->st_ctime; - t.tv_nsec = 0; -# endif -#else - /* Birth time is not supported. */ - t.tv_sec = -1; - t.tv_nsec = -1; -#endif - -#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC) - /* FreeBSD and NetBSD sometimes signal the absence of knowledge by - using zero. Attempt to work around this problem. Alas, this can - report failure even for valid timestamps. Also, NetBSD - sometimes returns junk in the birth time fields; work around this - bug if it is detected. */ - if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000)) - { - t.tv_sec = -1; - t.tv_nsec = -1; - } -#endif - - return t; -} - -/* If a stat-like function returned RESULT, normalize the timestamps - in *ST, in case this platform suffers from the Solaris 11 bug where - tv_nsec might be negative. Return the adjusted RESULT, setting - errno to EOVERFLOW if normalization overflowed. This function - is intended to be private to this .h file. */ -_GL_STAT_TIME_INLINE int -stat_time_normalize (int result, _GL_UNUSED struct stat *st) -{ -#if defined __sun && defined STAT_TIMESPEC - if (result == 0) - { - long int timespec_hz = 1000000000; - short int const ts_off[] = { offsetof (struct stat, st_atim), - offsetof (struct stat, st_mtim), - offsetof (struct stat, st_ctim) }; - int i; - for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) - { - struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); - long int q = ts->tv_nsec / timespec_hz; - long int r = ts->tv_nsec % timespec_hz; - if (r < 0) - { - r += timespec_hz; - q--; - } - ts->tv_nsec = r; - /* Overflow is possible, as Solaris 11 stat can yield - tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. - INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */ - if (ckd_add (&ts->tv_sec, q, ts->tv_sec)) - { - errno = EOVERFLOW; - return -1; - } - } - } -#endif - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/gl/stat-w32.c b/gl/stat-w32.c deleted file mode 100644 index 2f01197..0000000 --- a/gl/stat-w32.c +++ /dev/null @@ -1,460 +0,0 @@ -/* Core of implementation of fstat and stat for native Windows. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible. */ - -#include - -#if defined _WIN32 && ! defined __CYGWIN__ - -/* Attempt to make define FILE_ID_INFO. - But ensure that the redefinition of _WIN32_WINNT does not make us assume - Windows Vista or newer when building for an older version of Windows. */ -#if HAVE_SDKDDKVER_H -# include -# if _WIN32_WINNT >= _WIN32_WINNT_VISTA -# define WIN32_ASSUME_VISTA 1 -# else -# define WIN32_ASSUME_VISTA 0 -# endif -# if !defined _WIN32_WINNT || (_WIN32_WINNT < _WIN32_WINNT_WIN8) -# undef _WIN32_WINNT -# define _WIN32_WINNT _WIN32_WINNT_WIN8 -# endif -#else -# define WIN32_ASSUME_VISTA (_WIN32_WINNT >= _WIN32_WINNT_VISTA) -#endif - -#include -#include -#include -#include -#include -#include -#include - -/* Specification. */ -#include "stat-w32.h" - -#include "pathmax.h" - -/* Don't assume that UNICODE is not defined. */ -#undef LoadLibrary -#define LoadLibrary LoadLibraryA -#undef GetFinalPathNameByHandle -#define GetFinalPathNameByHandle GetFinalPathNameByHandleA - -/* Older mingw headers do not define VOLUME_NAME_NONE. */ -#ifndef VOLUME_NAME_NONE -# define VOLUME_NAME_NONE 4 -#endif - -#if !WIN32_ASSUME_VISTA - -/* Avoid warnings from gcc -Wcast-function-type. */ -# define GetProcAddress \ - (void *) GetProcAddress - -# if _GL_WINDOWS_STAT_INODES == 2 -/* GetFileInformationByHandleEx was introduced only in Windows Vista. */ -typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile, - FILE_INFO_BY_HANDLE_CLASS fiClass, - LPVOID lpBuffer, - DWORD dwBufferSize); -static GetFileInformationByHandleExFuncType GetFileInformationByHandleExFunc = NULL; -# endif -/* GetFinalPathNameByHandle was introduced only in Windows Vista. */ -typedef DWORD (WINAPI * GetFinalPathNameByHandleFuncType) (HANDLE hFile, - LPSTR lpFilePath, - DWORD lenFilePath, - DWORD dwFlags); -static GetFinalPathNameByHandleFuncType GetFinalPathNameByHandleFunc = NULL; -static BOOL initialized = FALSE; - -static void -initialize (void) -{ - HMODULE kernel32 = LoadLibrary ("kernel32.dll"); - if (kernel32 != NULL) - { -# if _GL_WINDOWS_STAT_INODES == 2 - GetFileInformationByHandleExFunc = - (GetFileInformationByHandleExFuncType) GetProcAddress (kernel32, "GetFileInformationByHandleEx"); -# endif - GetFinalPathNameByHandleFunc = - (GetFinalPathNameByHandleFuncType) GetProcAddress (kernel32, "GetFinalPathNameByHandleA"); - } - initialized = TRUE; -} - -#else - -# define GetFileInformationByHandleExFunc GetFileInformationByHandleEx -# define GetFinalPathNameByHandleFunc GetFinalPathNameByHandle - -#endif - -/* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ -#if _GL_WINDOWS_STAT_TIMESPEC -struct timespec -_gl_convert_FILETIME_to_timespec (const FILETIME *ft) -{ - struct timespec result; - /* FILETIME: */ - unsigned long long since_1601 = - ((unsigned long long) ft->dwHighDateTime << 32) - | (unsigned long long) ft->dwLowDateTime; - if (since_1601 == 0) - { - result.tv_sec = 0; - result.tv_nsec = 0; - } - else - { - /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 - leap years, in total 134774 days. */ - unsigned long long since_1970 = - since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; - result.tv_sec = since_1970 / (unsigned long long) 10000000; - result.tv_nsec = (unsigned long) (since_1970 % (unsigned long long) 10000000) * 100; - } - return result; -} -#else -time_t -_gl_convert_FILETIME_to_POSIX (const FILETIME *ft) -{ - /* FILETIME: */ - unsigned long long since_1601 = - ((unsigned long long) ft->dwHighDateTime << 32) - | (unsigned long long) ft->dwLowDateTime; - if (since_1601 == 0) - return 0; - else - { - /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 - leap years, in total 134774 days. */ - unsigned long long since_1970 = - since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; - return since_1970 / (unsigned long long) 10000000; - } -} -#endif - -/* Fill *BUF with information about the file designated by H. - PATH is the file name, if known, otherwise NULL. - Return 0 if successful, or -1 with errno set upon failure. */ -int -_gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf) -{ - /* GetFileType - */ - DWORD type = GetFileType (h); - if (type == FILE_TYPE_DISK) - { -#if !WIN32_ASSUME_VISTA - if (!initialized) - initialize (); -#endif - - /* st_mode can be determined through - GetFileAttributesEx - - - or through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileBasicInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - BY_HANDLE_FILE_INFORMATION info; - if (! GetFileInformationByHandle (h, &info)) - goto failed; - - /* Test for error conditions before starting to fill *buf. */ - if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) - { - errno = EOVERFLOW; - return -1; - } - -#if _GL_WINDOWS_STAT_INODES - /* st_ino can be determined through - GetFileInformationByHandle - - - as 64 bits, or through - GetFileInformationByHandleEx with argument FileIdInfo - - - as 128 bits. - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_WIN8 or higher. */ - /* Experiments show that GetFileInformationByHandleEx does not provide - much more information than GetFileInformationByHandle: - * The dwVolumeSerialNumber from GetFileInformationByHandle is equal - to the low 32 bits of the 64-bit VolumeSerialNumber from - GetFileInformationByHandleEx, and is apparently sufficient for - identifying the device. - * The nFileIndex from GetFileInformationByHandle is equal to the low - 64 bits of the 128-bit FileId from GetFileInformationByHandleEx, - and the high 64 bits of this 128-bit FileId are zero. - * On a FAT file system, GetFileInformationByHandleEx fails with error - ERROR_INVALID_PARAMETER, whereas GetFileInformationByHandle - succeeds. - * On a CIFS/SMB file system, GetFileInformationByHandleEx fails with - error ERROR_INVALID_LEVEL, whereas GetFileInformationByHandle - succeeds. */ -# if _GL_WINDOWS_STAT_INODES == 2 - if (GetFileInformationByHandleExFunc != NULL) - { - FILE_ID_INFO id; - if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id))) - { - buf->st_dev = id.VolumeSerialNumber; - static_assert (sizeof (ino_t) == sizeof (id.FileId)); - memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t)); - goto ino_done; - } - else - { - switch (GetLastError ()) - { - case ERROR_INVALID_PARAMETER: /* older Windows version, or FAT */ - case ERROR_INVALID_LEVEL: /* CIFS/SMB file system */ - goto fallback; - default: - goto failed; - } - } - } - fallback: ; - /* Fallback for older Windows versions. */ - buf->st_dev = info.dwVolumeSerialNumber; - buf->st_ino._gl_ino[0] = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; - buf->st_ino._gl_ino[1] = 0; - ino_done: ; -# else /* _GL_WINDOWS_STAT_INODES == 1 */ - buf->st_dev = info.dwVolumeSerialNumber; - buf->st_ino = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; -# endif -#else - /* st_ino is not wide enough for identifying a file on a device. - Without st_ino, st_dev is pointless. */ - buf->st_dev = 0; - buf->st_ino = 0; -#endif - - /* st_mode. */ - unsigned int mode = - /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ - ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) - | S_IREAD_UGO - | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); - if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) - { - /* Determine whether the file is executable by looking at the file - name suffix. - If the file name is already known, use it. Otherwise, for - non-empty files, it can be determined through - GetFinalPathNameByHandle - - or through - GetFileInformationByHandleEx with argument FileNameInfo - - - Both require -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) - { - char fpath[PATH_MAX]; - if (path != NULL - || (GetFinalPathNameByHandleFunc != NULL - && GetFinalPathNameByHandleFunc (h, fpath, sizeof (fpath), VOLUME_NAME_NONE) - < sizeof (fpath) - && (path = fpath, 1))) - { - const char *last_dot = NULL; - const char *p; - for (p = path; *p != '\0'; p++) - if (*p == '.') - last_dot = p; - if (last_dot != NULL) - { - const char *suffix = last_dot + 1; - if (_stricmp (suffix, "exe") == 0 - || _stricmp (suffix, "bat") == 0 - || _stricmp (suffix, "cmd") == 0 - || _stricmp (suffix, "com") == 0) - mode |= S_IEXEC_UGO; - } - } - else - /* Cannot determine file name. Pretend that it is executable. */ - mode |= S_IEXEC_UGO; - } - } - buf->st_mode = mode; - - /* st_nlink can be determined through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileStandardInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - buf->st_nlink = (info.nNumberOfLinks > SHRT_MAX ? SHRT_MAX : info.nNumberOfLinks); - - /* There's no easy way to map the Windows SID concept to an integer. */ - buf->st_uid = 0; - buf->st_gid = 0; - - /* st_rdev is irrelevant for normal files and directories. */ - buf->st_rdev = 0; - - /* st_size can be determined through - GetFileSizeEx - - or through - GetFileAttributesEx - - - or through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileStandardInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - if (sizeof (buf->st_size) <= 4) - /* Range check already done above. */ - buf->st_size = info.nFileSizeLow; - else - buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; - - /* st_atime, st_mtime, st_ctime can be determined through - GetFileTime - - or through - GetFileAttributesEx - - - or through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileBasicInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ -#if _GL_WINDOWS_STAT_TIMESPEC - buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); - buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); - buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); -#else - buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); - buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); - buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); -#endif - - return 0; - } - else if (type == FILE_TYPE_CHAR || type == FILE_TYPE_PIPE) - { - buf->st_dev = 0; -#if _GL_WINDOWS_STAT_INODES == 2 - buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; -#else - buf->st_ino = 0; -#endif - buf->st_mode = (type == FILE_TYPE_PIPE ? _S_IFIFO : _S_IFCHR); - buf->st_nlink = 1; - buf->st_uid = 0; - buf->st_gid = 0; - buf->st_rdev = 0; - if (type == FILE_TYPE_PIPE) - { - /* PeekNamedPipe - */ - DWORD bytes_available; - if (PeekNamedPipe (h, NULL, 0, NULL, &bytes_available, NULL)) - buf->st_size = bytes_available; - else - buf->st_size = 0; - } - else - buf->st_size = 0; -#if _GL_WINDOWS_STAT_TIMESPEC - buf->st_atim.tv_sec = 0; buf->st_atim.tv_nsec = 0; - buf->st_mtim.tv_sec = 0; buf->st_mtim.tv_nsec = 0; - buf->st_ctim.tv_sec = 0; buf->st_ctim.tv_nsec = 0; -#else - buf->st_atime = 0; - buf->st_mtime = 0; - buf->st_ctime = 0; -#endif - return 0; - } - else - { - errno = ENOENT; - return -1; - } - - failed: - { - DWORD error = GetLastError (); - #if 0 - fprintf (stderr, "_gl_fstat_by_handle error 0x%x\n", (unsigned int) error); - #endif - switch (error) - { - case ERROR_ACCESS_DENIED: - case ERROR_SHARING_VIOLATION: - errno = EACCES; - break; - - case ERROR_OUTOFMEMORY: - errno = ENOMEM; - break; - - case ERROR_WRITE_FAULT: - case ERROR_READ_FAULT: - case ERROR_GEN_FAILURE: - errno = EIO; - break; - - default: - errno = EINVAL; - break; - } - return -1; - } -} - -#else - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#endif diff --git a/gl/stat-w32.h b/gl/stat-w32.h deleted file mode 100644 index c673874..0000000 --- a/gl/stat-w32.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Core of implementation of fstat and stat for native Windows. - Copyright (C) 2017-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _STAT_W32_H -#define _STAT_W32_H 1 - -/* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ -#if _GL_WINDOWS_STAT_TIMESPEC -extern struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft); -#else -extern time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft); -#endif - -/* Fill *BUF with information about the file designated by H. - PATH is the file name, if known, otherwise NULL. - Return 0 if successful, or -1 with errno set upon failure. */ -extern int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf); - -/* Bitmasks for st_mode. */ -#define S_IREAD_UGO (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6)) -#define S_IWRITE_UGO (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6)) -#define S_IEXEC_UGO (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6)) - -#endif /* _STAT_W32_H */ diff --git a/gl/stat.c b/gl/stat.c deleted file mode 100644 index 7987e26..0000000 --- a/gl/stat.c +++ /dev/null @@ -1,438 +0,0 @@ -/* Work around platform bugs in stat. - Copyright (C) 2009-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Eric Blake and Bruno Haible. */ - -/* If the user's config.h happens to include , let it include only - the system's here, so that orig_stat doesn't recurse to - rpl_stat. */ -#define __need_system_sys_stat_h -#include - -/* Get the original definition of stat. It might be defined as a macro. */ -#include -#include -#undef __need_system_sys_stat_h - -#if defined _WIN32 && ! defined __CYGWIN__ -# define WINDOWS_NATIVE -#endif - -#if !defined WINDOWS_NATIVE - -static int -orig_stat (const char *filename, struct stat *buf) -{ - return stat (filename, buf); -} - -#endif - -/* Specification. */ -#ifdef __osf__ -/* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc - eliminates this include because of the preliminary #include - above. */ -# include "sys/stat.h" -#else -# include -#endif - -#include "stat-time.h" - -#include -#include -#include -#include "filename.h" -#include "malloca.h" - -#ifdef WINDOWS_NATIVE -# define WIN32_LEAN_AND_MEAN -# include -# include "stat-w32.h" -/* Don't assume that UNICODE is not defined. */ -# undef WIN32_FIND_DATA -# define WIN32_FIND_DATA WIN32_FIND_DATAA -# undef CreateFile -# define CreateFile CreateFileA -# undef FindFirstFile -# define FindFirstFile FindFirstFileA -#endif - -#ifdef WINDOWS_NATIVE -/* Return TRUE if the given file name denotes an UNC root. */ -static BOOL -is_unc_root (const char *rname) -{ - /* Test whether it has the syntax '\\server\share'. */ - if (ISSLASH (rname[0]) && ISSLASH (rname[1])) - { - /* It starts with two slashes. Find the next slash. */ - const char *p = rname + 2; - const char *q = p; - while (*q != '\0' && !ISSLASH (*q)) - q++; - if (q > p && *q != '\0') - { - /* Found the next slash at q. */ - q++; - const char *r = q; - while (*r != '\0' && !ISSLASH (*r)) - r++; - if (r > q && *r == '\0') - return TRUE; - } - } - return FALSE; -} -#endif - -/* Store information about NAME into ST. Work around bugs with - trailing slashes. Mingw has other bugs (such as st_ino always - being 0 on success) which this wrapper does not work around. But - at least this implementation provides the ability to emulate fchdir - correctly. */ - -int -rpl_stat (char const *name, struct stat *buf) -{ -#ifdef WINDOWS_NATIVE - /* Fill the fields ourselves, because the original stat function returns - values for st_atime, st_mtime, st_ctime that depend on the current time - zone. See - */ - /* XXX Should we convert to wchar_t* and prepend '\\?\', in order to work - around length limitations - ? */ - - /* POSIX - specifies: "More than two leading characters shall be treated as - a single character." */ - if (ISSLASH (name[0]) && ISSLASH (name[1]) && ISSLASH (name[2])) - { - name += 2; - while (ISSLASH (name[1])) - name++; - } - - size_t len = strlen (name); - size_t drive_prefix_len = (HAS_DEVICE (name) ? 2 : 0); - - /* Remove trailing slashes (except the very first one, at position - drive_prefix_len), but remember their presence. */ - size_t rlen; - bool check_dir = false; - - rlen = len; - while (rlen > drive_prefix_len && ISSLASH (name[rlen-1])) - { - check_dir = true; - if (rlen == drive_prefix_len + 1) - break; - rlen--; - } - - /* Handle '' and 'C:'. */ - if (!check_dir && rlen == drive_prefix_len) - { - errno = ENOENT; - return -1; - } - - /* Handle '\\'. */ - if (rlen == 1 && ISSLASH (name[0]) && len >= 2) - { - errno = ENOENT; - return -1; - } - - const char *rname; - char *malloca_rname; - if (rlen == len) - { - rname = name; - malloca_rname = NULL; - } - else - { - malloca_rname = malloca (rlen + 1); - if (malloca_rname == NULL) - { - errno = ENOMEM; - return -1; - } - memcpy (malloca_rname, name, rlen); - malloca_rname[rlen] = '\0'; - rname = malloca_rname; - } - - /* There are two ways to get at the requested information: - - by scanning the parent directory and examining the relevant - directory entry, - - by opening the file directly. - The first approach fails for root directories (e.g. 'C:\') and - UNC root directories (e.g. '\\server\share'). - The second approach fails for some system files (e.g. 'C:\pagefile.sys' - and 'C:\hiberfil.sys'): ERROR_SHARING_VIOLATION. - The second approach gives more information (in particular, correct - st_dev, st_ino, st_nlink fields). - So we use the second approach and, as a fallback except for root and - UNC root directories, also the first approach. */ - { - int ret; - - { - /* Approach based on the file. */ - - /* Open a handle to the file. - CreateFile - - */ - HANDLE h = - CreateFile (rname, - FILE_READ_ATTRIBUTES, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - NULL, - OPEN_EXISTING, - /* FILE_FLAG_POSIX_SEMANTICS (treat file names that differ only - in case as different) makes sense only when applied to *all* - filesystem operations. */ - FILE_FLAG_BACKUP_SEMANTICS /* | FILE_FLAG_POSIX_SEMANTICS */, - NULL); - if (h != INVALID_HANDLE_VALUE) - { - ret = _gl_fstat_by_handle (h, rname, buf); - CloseHandle (h); - goto done; - } - } - - /* Test for root and UNC root directories. */ - if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) - || is_unc_root (rname)) - goto failed; - - /* Fallback. */ - { - /* Approach based on the directory entry. */ - - if (strchr (rname, '?') != NULL || strchr (rname, '*') != NULL) - { - /* Other Windows API functions would fail with error - ERROR_INVALID_NAME. */ - if (malloca_rname != NULL) - freea (malloca_rname); - errno = ENOENT; - return -1; - } - - /* Get the details about the directory entry. This can be done through - FindFirstFile - - - or through - FindFirstFileEx with argument FindExInfoBasic - - - */ - WIN32_FIND_DATA info; - HANDLE h = FindFirstFile (rname, &info); - if (h == INVALID_HANDLE_VALUE) - goto failed; - - /* Test for error conditions before starting to fill *buf. */ - if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) - { - FindClose (h); - if (malloca_rname != NULL) - freea (malloca_rname); - errno = EOVERFLOW; - return -1; - } - -# if _GL_WINDOWS_STAT_INODES - buf->st_dev = 0; -# if _GL_WINDOWS_STAT_INODES == 2 - buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; -# else /* _GL_WINDOWS_STAT_INODES == 1 */ - buf->st_ino = 0; -# endif -# else - /* st_ino is not wide enough for identifying a file on a device. - Without st_ino, st_dev is pointless. */ - buf->st_dev = 0; - buf->st_ino = 0; -# endif - - /* st_mode. */ - unsigned int mode = - /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ - ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) - | S_IREAD_UGO - | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); - if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) - { - /* Determine whether the file is executable by looking at the file - name suffix. */ - if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) - { - const char *last_dot = NULL; - const char *p; - for (p = info.cFileName; *p != '\0'; p++) - if (*p == '.') - last_dot = p; - if (last_dot != NULL) - { - const char *suffix = last_dot + 1; - if (_stricmp (suffix, "exe") == 0 - || _stricmp (suffix, "bat") == 0 - || _stricmp (suffix, "cmd") == 0 - || _stricmp (suffix, "com") == 0) - mode |= S_IEXEC_UGO; - } - } - } - buf->st_mode = mode; - - /* st_nlink. Ignore hard links here. */ - buf->st_nlink = 1; - - /* There's no easy way to map the Windows SID concept to an integer. */ - buf->st_uid = 0; - buf->st_gid = 0; - - /* st_rdev is irrelevant for normal files and directories. */ - buf->st_rdev = 0; - - /* st_size. */ - if (sizeof (buf->st_size) <= 4) - /* Range check already done above. */ - buf->st_size = info.nFileSizeLow; - else - buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; - - /* st_atime, st_mtime, st_ctime. */ -# if _GL_WINDOWS_STAT_TIMESPEC - buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); - buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); - buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); -# else - buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); - buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); - buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); -# endif - - FindClose (h); - - ret = 0; - } - - done: - if (ret >= 0 && check_dir && !S_ISDIR (buf->st_mode)) - { - errno = ENOTDIR; - ret = -1; - } - if (malloca_rname != NULL) - { - int saved_errno = errno; - freea (malloca_rname); - errno = saved_errno; - } - return ret; - } - - failed: - { - DWORD error = GetLastError (); - #if 0 - fprintf (stderr, "rpl_stat error 0x%x\n", (unsigned int) error); - #endif - - if (malloca_rname != NULL) - freea (malloca_rname); - - switch (error) - { - /* Some of these errors probably cannot happen with the specific flags - that we pass to CreateFile. But who knows... */ - case ERROR_FILE_NOT_FOUND: /* The last component of rname does not exist. */ - case ERROR_PATH_NOT_FOUND: /* Some directory component in rname does not exist. */ - case ERROR_BAD_PATHNAME: /* rname is such as '\\server'. */ - case ERROR_BAD_NET_NAME: /* rname is such as '\\server\nonexistentshare'. */ - case ERROR_INVALID_NAME: /* rname contains wildcards, misplaced colon, etc. */ - case ERROR_DIRECTORY: - errno = ENOENT; - break; - - case ERROR_ACCESS_DENIED: /* rname is such as 'C:\System Volume Information\foo'. */ - case ERROR_SHARING_VIOLATION: /* rname is such as 'C:\pagefile.sys' (second approach only). */ - /* XXX map to EACCES or EPERM? */ - errno = EACCES; - break; - - case ERROR_OUTOFMEMORY: - errno = ENOMEM; - break; - - case ERROR_WRITE_PROTECT: - errno = EROFS; - break; - - case ERROR_WRITE_FAULT: - case ERROR_READ_FAULT: - case ERROR_GEN_FAILURE: - errno = EIO; - break; - - case ERROR_BUFFER_OVERFLOW: - case ERROR_FILENAME_EXCED_RANGE: - errno = ENAMETOOLONG; - break; - - case ERROR_DELETE_PENDING: /* XXX map to EACCES or EPERM? */ - errno = EPERM; - break; - - default: - errno = EINVAL; - break; - } - - return -1; - } -#else - int result = orig_stat (name, buf); - if (result == 0) - { -# if REPLACE_FUNC_STAT_FILE - /* Solaris 9 mistakenly succeeds when given a non-directory with a - trailing slash. */ - if (!S_ISDIR (buf->st_mode)) - { - size_t len = strlen (name); - if (ISSLASH (name[len - 1])) - { - errno = ENOTDIR; - return -1; - } - } -# endif /* REPLACE_FUNC_STAT_FILE */ - result = stat_time_normalize (result, buf); - } - return result; -#endif -} diff --git a/gl/stdalign.in.h b/gl/stdalign.in.h index 7f9dbb4..7254a3d 100644 --- a/gl/stdalign.in.h +++ b/gl/stdalign.in.h @@ -1,19 +1,19 @@ /* A substitute for ISO C11 . - Copyright 2011-2023 Free Software Foundation, Inc. + Copyright 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Paul Eggert and Bruno Haible. */ @@ -34,15 +34,17 @@ requirement of a structure member (i.e., slot or field) that is of type TYPE, as an integer constant expression. - This differs from GCC's and clang's __alignof__ operator, which can - yield a better-performing alignment for an object of that type. For - example, on x86 with GCC and on Linux/x86 with clang, - __alignof__ (double) and __alignof__ (long long) are 8, whereas - alignof (double) and alignof (long long) are 4 unless the option - '-malign-double' is used. + This differs from GCC's __alignof__ operator, which can yield a + better-performing alignment for an object of that type. For + example, on x86 with GCC, __alignof__ (double) and __alignof__ + (long long) are 8, whereas alignof (double) and alignof (long long) + are 4 unless the option '-malign-double' is used. The result cannot be used as a value for an 'enum' constant, if you - want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ + want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. + + Include for offsetof. */ +#include /* FreeBSD 9.1 , included by and lots of other standard headers, defines conflicting implementations of _Alignas @@ -50,33 +52,19 @@ #undef _Alignas #undef _Alignof -/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 - . - clang versions < 8.0.0 have the same bug. */ -#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ - || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ - && !defined __clang__) \ - || (defined __clang__ && __clang_major__ < 8)) +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # ifdef __cplusplus -# if (201103 <= __cplusplus || defined _MSC_VER) +# if 201103 <= __cplusplus # define _Alignof(type) alignof (type) # else template struct __alignof_helper { char __a; __t __b; }; # define _Alignof(type) offsetof (__alignof_helper, __b) -# define _GL_STDALIGN_NEEDS_STDDEF 1 # endif # else -# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ -# define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) -# else -# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) -# define _GL_STDALIGN_NEEDS_STDDEF 1 -# endif +# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) # endif #endif -#if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) -# define alignof _Alignof -#endif +#define alignof _Alignof #define __alignof_is_defined 1 /* alignas (A), also known as _Alignas (A), aligns a variable or type @@ -105,33 +93,17 @@ */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 -# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) +# if defined __cplusplus && 201103 <= __cplusplus # define _Alignas(a) alignas (a) -# elif (!defined __attribute__ \ - && ((defined __APPLE__ && defined __MACH__ \ - ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - : __GNUC__ && !defined __ibmxl__) \ - || (4 <= __clang_major__) \ - || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ - || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) +# elif __GNUC__ || __IBMC__ || __IBMCPP__ || __ICC || 0x5110 <= __SUNPRO_C # define _Alignas(a) __attribute__ ((__aligned__ (a))) # elif 1300 <= _MSC_VER # define _Alignas(a) __declspec (align (a)) # endif #endif -#if ((defined _Alignas \ - && !(defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) \ - || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) +#if defined _Alignas || (defined __STDC_VERSION && 201112 <= __STDC_VERSION__) # define alignas _Alignas -#endif -#if (defined alignas \ - || (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER))) # define __alignas_is_defined 1 #endif -/* Include if needed for offsetof. */ -#if _GL_STDALIGN_NEEDS_STDDEF -# include -#endif - #endif /* _GL_STDALIGN_H */ diff --git a/gl/stdbool.in.h b/gl/stdbool.in.h new file mode 100644 index 0000000..7c15772 --- /dev/null +++ b/gl/stdbool.in.h @@ -0,0 +1,132 @@ +/* Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +#ifndef _GL_STDBOOL_H +#define _GL_STDBOOL_H + +/* ISO C 99 for platforms that lack it. */ + +/* Usage suggestions: + + Programs that use should be aware of some limitations + and standards compliance issues. + + Standards compliance: + + - must be #included before 'bool', 'false', 'true' + can be used. + + - You cannot assume that sizeof (bool) == 1. + + - Programs should not undefine the macros bool, true, and false, + as C99 lists that as an "obsolescent feature". + + Limitations of this substitute, when used in a C89 environment: + + - must be #included before the '_Bool' type can be used. + + - You cannot assume that _Bool is a typedef; it might be a macro. + + - Bit-fields of type 'bool' are not supported. Portable code + should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. + + - In C99, casts and automatic conversions to '_Bool' or 'bool' are + performed in such a way that every nonzero value gets converted + to 'true', and zero gets converted to 'false'. This doesn't work + with this substitute. With this substitute, only the values 0 and 1 + give the expected result when converted to _Bool' or 'bool'. + + - C99 allows the use of (_Bool)0.0 in constant expressions, but + this substitute cannot always provide this property. + + Also, it is suggested that programs use 'bool' rather than '_Bool'; + this isn't required, but 'bool' is more common. */ + + +/* 7.16. Boolean type and values */ + +/* BeOS already #defines false 0, true 1. We use the same + definitions below, but temporarily we have to #undef them. */ +#if defined __BEOS__ && !defined __HAIKU__ +# include /* defines bool but not _Bool */ +# undef false +# undef true +#endif + +#ifdef __cplusplus +# define _Bool bool +# define bool bool +#else +# if defined __BEOS__ && !defined __HAIKU__ + /* A compiler known to have 'bool'. */ + /* If the compiler already has both 'bool' and '_Bool', we can assume they + are the same types. */ +# if !@HAVE__BOOL@ +typedef bool _Bool; +# endif +# else +# if !defined __GNUC__ + /* If @HAVE__BOOL@: + Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when + the built-in _Bool type is used. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html + Similar bugs are likely with other compilers as well; this file + wouldn't be used if was working. + So we override the _Bool type. + If !@HAVE__BOOL@: + Need to define _Bool ourselves. As 'signed char' or as an enum type? + Use of a typedef, with SunPRO C, leads to a stupid + "warning: _Bool is a keyword in ISO C99". + Use of an enum type, with IRIX cc, leads to a stupid + "warning(1185): enumerated type mixed with another type". + Even the existence of an enum type, without a typedef, + "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. + The only benefit of the enum, debuggability, is not important + with these compilers. So use 'signed char' and no enum. */ +# define _Bool signed char +# else + /* With this compiler, trust the _Bool type if the compiler has it. */ +# if !@HAVE__BOOL@ + /* For the sake of symbolic names in gdb, define true and false as + enum constants, not only as macros. + It is tempting to write + typedef enum { false = 0, true = 1 } _Bool; + so that gdb prints values of type 'bool' symbolically. But then + values of type '_Bool' might promote to 'int' or 'unsigned int' + (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' + (see ISO C 99 6.3.1.1.(2)). So add a negative value to the + enum; this ensures that '_Bool' promotes to 'int'. */ +typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; +# endif +# endif +# endif +# define bool _Bool +#endif + +/* The other macros must be usable in preprocessor directives. */ +#ifdef __cplusplus +# define false false +# define true true +#else +# define false 0 +# define true 1 +#endif + +#define __bool_true_false_are_defined 1 + +#endif /* _GL_STDBOOL_H */ diff --git a/gl/stdckdint.in.h b/gl/stdckdint.in.h deleted file mode 100644 index 71bab5f..0000000 --- a/gl/stdckdint.in.h +++ /dev/null @@ -1,35 +0,0 @@ -/* stdckdint.h -- checked integer arithmetic - - Copyright 2022-2023 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_STDCKDINT_H -#define _GL_STDCKDINT_H - -#include "intprops-internal.h" - -/* Store into *R the low-order bits of A + B, A - B, A * B, respectively. - Return 1 if the result overflows, 0 otherwise. - A, B, and *R can have any integer type other than char, bool, a - bit-precise integer type, or an enumeration type. - - These are like the standard macros introduced in C23, except that - arguments should not have side effects. */ - -#define ckd_add(r, a, b) ((bool) _GL_INT_ADD_WRAPV (a, b, r)) -#define ckd_sub(r, a, b) ((bool) _GL_INT_SUBTRACT_WRAPV (a, b, r)) -#define ckd_mul(r, a, b) ((bool) _GL_INT_MULTIPLY_WRAPV (a, b, r)) - -#endif /* _GL_STDCKDINT_H */ diff --git a/gl/stddef.in.h b/gl/stddef.in.h index 6eadcc3..40f0536 100644 --- a/gl/stddef.in.h +++ b/gl/stddef.in.h @@ -1,25 +1,25 @@ /* A substitute for POSIX 2008 , for platforms that have issues. - Copyright (C) 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Eric Blake. */ /* * POSIX 2008 for platforms that have issues. - * + * */ #if __GNUC__ >= 3 @@ -39,16 +39,10 @@ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t +# undef _@GUARD_PREFIX@_STDDEF_H # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ - /* On TinyCC, make sure that the macros that indicate the special invocation - convention get undefined. */ -# undef __need_wchar_t -# undef __need_size_t -# undef __need_ptrdiff_t -# undef __need_NULL -# undef __need_wint_t # endif #else @@ -56,92 +50,37 @@ # ifndef _@GUARD_PREFIX@_STDDEF_H -/* On AIX 7.2, with xlc in 64-bit mode, defines max_align_t to a - type with alignment 4, but 'long' has alignment 8. */ -# if defined _AIX && defined __LP64__ -# if !GNULIB_defined_max_align_t -# ifdef _MAX_ALIGN_T -/* /usr/include/stddef.h has already defined max_align_t. Override it. */ -typedef long rpl_max_align_t; -# define max_align_t rpl_max_align_t -# else -/* Prevent /usr/include/stddef.h from defining max_align_t. */ -typedef long max_align_t; -# define _MAX_ALIGN_T -# endif -# define GNULIB_defined_max_align_t 1 -# endif -# endif - /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ +# ifndef _@GUARD_PREFIX@_STDDEF_H +# define _@GUARD_PREFIX@_STDDEF_H + /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ -# if (@REPLACE_NULL@ \ - && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) -# undef NULL -# ifdef __cplusplus +#if @REPLACE_NULL@ +# undef NULL +# ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ -# if __GNUG__ >= 3 +# if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ -# define NULL __null -# else -# define NULL 0L -# endif -# else -# define NULL ((void *) 0) -# endif +# define NULL __null +# else +# define NULL 0L # endif - -# ifndef _@GUARD_PREFIX@_STDDEF_H -# define _@GUARD_PREFIX@_STDDEF_H +# else +# define NULL ((void *) 0) +# endif +#endif /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif -/* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is - a hack in case the configure-time test was done with g++ even though - we are currently compiling with gcc. - On MSVC, max_align_t is defined only in C++ mode, after was - included. Its definition is good since it has an alignment of 8 (on x86 - and x86_64). - Similarly on OS/2 kLIBC. */ -#if (defined _MSC_VER || (defined __KLIBC__ && !defined __LIBCN__)) \ - && defined __cplusplus -# include -#else -# if ! (@HAVE_MAX_ALIGN_T@ || (defined _GCC_MAX_ALIGN_T && !defined __clang__)) -# if !GNULIB_defined_max_align_t -/* On the x86, the maximum storage alignment of double, long, etc. is 4, - but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, - and the C11 standard allows this. Work around this problem by - using __alignof__ (which returns 8 for double) rather than _Alignof - (which returns 4), and align each union member accordingly. */ -# if defined __GNUC__ || (__clang_major__ >= 4) -# define _GL_STDDEF_ALIGNAS(type) \ - __attribute__ ((__aligned__ (__alignof__ (type)))) -# else -# define _GL_STDDEF_ALIGNAS(type) /* */ -# endif -typedef union -{ - char *__p _GL_STDDEF_ALIGNAS (char *); - double __d _GL_STDDEF_ALIGNAS (double); - long double __ld _GL_STDDEF_ALIGNAS (long double); - long int __i _GL_STDDEF_ALIGNAS (long int); -} rpl_max_align_t; -# define max_align_t rpl_max_align_t -# define GNULIB_defined_max_align_t 1 -# endif -# endif -#endif - # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ diff --git a/gl/stdint.in.h b/gl/stdint.in.h index 5ddc644..2db8b2e 100644 --- a/gl/stdint.in.h +++ b/gl/stdint.in.h @@ -1,23 +1,23 @@ -/* Copyright (C) 2001-2002, 2004-2023 Free Software Foundation, Inc. +/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* * ISO C 99 for platforms that lack it. - * + * */ #ifndef _@GUARD_PREFIX@_STDINT_H @@ -38,7 +38,8 @@ other system header files; just include the system's . Ideally we should test __BIONIC__ here, but it is only defined after has been included; hence test __ANDROID__ instead. */ -#if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H +#if defined __ANDROID__ \ + && defined _SYS_TYPES_H_ && !defined __need_size_t # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else @@ -79,65 +80,54 @@ #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H -/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, - LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ -#include - -/* Override WINT_MIN and WINT_MAX if gnulib's or overrides - wint_t. */ -#if @GNULIBHEADERS_OVERRIDE_WINT_T@ -# undef WINT_MIN -# undef WINT_MAX -# define WINT_MIN 0x0U -# define WINT_MAX 0xffffffffU -#endif - -#if ! @HAVE_C99_STDINT_H@ - /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). AIX 5.2 isn't needed and causes troubles. Mac OS X 10.4.6 includes (which is us), but relies on the system definitions, so include after @NEXT_STDINT_H@. */ -# if @HAVE_SYS_TYPES_H@ && ! defined _AIX -# include -# endif +#if @HAVE_SYS_TYPES_H@ && ! defined _AIX +# include +#endif -# if @HAVE_INTTYPES_H@ +/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, + LONG_MIN, LONG_MAX, ULONG_MAX. */ +#include + +#if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, includes , which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. also defines intptr_t and uintptr_t. */ -# include -# elif @HAVE_SYS_INTTYPES_H@ +# include +#elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ -# include -# endif +# include +#endif -# if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ +#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by . */ -# include -# endif +# include +#endif -# undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H +#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ -/* These are separate macros, because if you try to merge these macros into - a single one, HP-UX cc rejects the resulting expression in constant - expressions. */ -# define _STDINT_UNSIGNED_MIN(bits, zero) \ - (zero) -# define _STDINT_SIGNED_MIN(bits, zero) \ - (~ _STDINT_MAX (1, bits, zero)) +#define _STDINT_MIN(signed, bits, zero) \ + ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) -# define _STDINT_MAX(signed, bits, zero) \ - (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) +#define _STDINT_MAX(signed, bits, zero) \ + ((signed) \ + ? ~ _STDINT_MIN (signed, bits, zero) \ + : /* The expression for the unsigned case. The subtraction of (signed) \ + is a nop in the unsigned case and avoids "signed integer overflow" \ + warnings in the signed case. */ \ + ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types @@ -146,26 +136,26 @@ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ -# undef int8_t -# undef uint8_t +#undef int8_t +#undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; -# define int8_t gl_int8_t -# define uint8_t gl_uint8_t +#define int8_t gl_int8_t +#define uint8_t gl_uint8_t -# undef int16_t -# undef uint16_t +#undef int16_t +#undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; -# define int16_t gl_int16_t -# define uint16_t gl_uint16_t +#define int16_t gl_int16_t +#define uint16_t gl_uint16_t -# undef int32_t -# undef uint32_t +#undef int32_t +#undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; -# define int32_t gl_int32_t -# define uint32_t gl_uint32_t +#define int32_t gl_int32_t +#define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long @@ -173,54 +163,54 @@ typedef unsigned int gl_uint32_t; int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ -# ifdef INT64_MAX -# define GL_INT64_T -# else +#ifdef INT64_MAX +# define GL_INT64_T +#else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ -# if LONG_MAX >> 31 >> 31 == 1 -# undef int64_t +# if LONG_MAX >> 31 >> 31 == 1 +# undef int64_t typedef long int gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# elif defined _MSC_VER -# undef int64_t +# define int64_t gl_int64_t +# define GL_INT64_T +# elif defined _MSC_VER +# undef int64_t typedef __int64 gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# else -# undef int64_t +# define int64_t gl_int64_t +# define GL_INT64_T +# elif @HAVE_LONG_LONG_INT@ +# undef int64_t typedef long long int gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# endif +# define int64_t gl_int64_t +# define GL_INT64_T # endif +#endif -# ifdef UINT64_MAX -# define GL_UINT64_T -# else -# if ULONG_MAX >> 31 >> 31 >> 1 == 1 -# undef uint64_t +#ifdef UINT64_MAX +# define GL_UINT64_T +#else +# if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# undef uint64_t typedef unsigned long int gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# elif defined _MSC_VER -# undef uint64_t +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# elif defined _MSC_VER +# undef uint64_t typedef unsigned __int64 gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# else -# undef uint64_t +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# elif @HAVE_UNSIGNED_LONG_LONG_INT@ +# undef uint64_t typedef unsigned long long int gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# endif +# define uint64_t gl_uint64_t +# define GL_UINT64_T # endif +#endif /* Avoid collision with Solaris 2.5.1 etc. */ -# define _UINT8_T -# define _UINT32_T -# define _UINT64_T +#define _UINT8_T +#define _UINT32_T +#define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ @@ -229,26 +219,26 @@ typedef unsigned long long int gl_uint64_t; types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ -# undef int_least8_t -# undef uint_least8_t -# undef int_least16_t -# undef uint_least16_t -# undef int_least32_t -# undef uint_least32_t -# undef int_least64_t -# undef uint_least64_t -# define int_least8_t int8_t -# define uint_least8_t uint8_t -# define int_least16_t int16_t -# define uint_least16_t uint16_t -# define int_least32_t int32_t -# define uint_least32_t uint32_t -# ifdef GL_INT64_T -# define int_least64_t int64_t -# endif -# ifdef GL_UINT64_T -# define uint_least64_t uint64_t -# endif +#undef int_least8_t +#undef uint_least8_t +#undef int_least16_t +#undef uint_least16_t +#undef int_least32_t +#undef uint_least32_t +#undef int_least64_t +#undef uint_least64_t +#define int_least8_t int8_t +#define uint_least8_t uint8_t +#define int_least16_t int16_t +#define uint_least16_t uint16_t +#define int_least32_t int32_t +#define uint_least32_t uint32_t +#ifdef GL_INT64_T +# define int_least64_t int64_t +#endif +#ifdef GL_UINT64_T +# define uint_least64_t uint64_t +#endif /* 7.18.1.3. Fastest minimum-width integer types */ @@ -261,64 +251,50 @@ typedef unsigned long long int gl_uint64_t; uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ -# undef int_fast8_t -# undef uint_fast8_t -# undef int_fast16_t -# undef uint_fast16_t -# undef int_fast32_t -# undef uint_fast32_t -# undef int_fast64_t -# undef uint_fast64_t +#undef int_fast8_t +#undef uint_fast8_t +#undef int_fast16_t +#undef uint_fast16_t +#undef int_fast32_t +#undef uint_fast32_t +#undef int_fast64_t +#undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; -# ifdef __sun +#ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; -# else +#else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; -# endif +#endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; -# define int_fast8_t gl_int_fast8_t -# define uint_fast8_t gl_uint_fast8_t -# define int_fast16_t gl_int_fast16_t -# define uint_fast16_t gl_uint_fast16_t -# define int_fast32_t gl_int_fast32_t -# define uint_fast32_t gl_uint_fast32_t -# ifdef GL_INT64_T -# define int_fast64_t int64_t -# endif -# ifdef GL_UINT64_T -# define uint_fast64_t uint64_t -# endif +#define int_fast8_t gl_int_fast8_t +#define uint_fast8_t gl_uint_fast8_t +#define int_fast16_t gl_int_fast16_t +#define uint_fast16_t gl_uint_fast16_t +#define int_fast32_t gl_int_fast32_t +#define uint_fast32_t gl_uint_fast32_t +#ifdef GL_INT64_T +# define int_fast64_t int64_t +#endif +#ifdef GL_UINT64_T +# define uint_fast64_t uint64_t +#endif /* 7.18.1.4. Integer types capable of holding object pointers */ -/* kLIBC's defines _INTPTR_T_DECLARED and needs its own - definitions of intptr_t and uintptr_t (which use int and unsigned) - to avoid clashes with declarations of system functions like sbrk. - Similarly, MinGW WSL-5.4.1 needs its own intptr_t and - uintptr_t to avoid conflicting declarations of system functions like - _findclose in . */ -# if !((defined __KLIBC__ && defined _INTPTR_T_DECLARED) \ - || defined __MINGW32__) -# undef intptr_t -# undef uintptr_t -# ifdef _WIN64 -typedef long long int gl_intptr_t; -typedef unsigned long long int gl_uintptr_t; -# else +#undef intptr_t +#undef uintptr_t typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; -# endif -# define intptr_t gl_intptr_t -# define uintptr_t gl_uintptr_t -# endif +#define intptr_t gl_intptr_t +#define uintptr_t gl_uintptr_t /* 7.18.1.5. Greatest-width integer types */ @@ -329,33 +305,33 @@ typedef unsigned long int gl_uintptr_t; similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ -# ifndef INTMAX_MAX -# undef INTMAX_C -# undef intmax_t -# if LONG_MAX >> 30 == 1 +#ifndef INTMAX_MAX +# undef INTMAX_C +# undef intmax_t +# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; -# define intmax_t gl_intmax_t -# elif defined GL_INT64_T -# define intmax_t int64_t -# else +# define intmax_t gl_intmax_t +# elif defined GL_INT64_T +# define intmax_t int64_t +# else typedef long int gl_intmax_t; -# define intmax_t gl_intmax_t -# endif +# define intmax_t gl_intmax_t # endif +#endif -# ifndef UINTMAX_MAX -# undef UINTMAX_C -# undef uintmax_t -# if ULONG_MAX >> 31 == 1 +#ifndef UINTMAX_MAX +# undef UINTMAX_C +# undef uintmax_t +# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; -# define uintmax_t gl_uintmax_t -# elif defined GL_UINT64_T -# define uintmax_t uint64_t -# else +# define uintmax_t gl_uintmax_t +# elif defined GL_UINT64_T +# define uintmax_t uint64_t +# else typedef unsigned long int gl_uintmax_t; -# define uintmax_t gl_uintmax_t -# endif +# define uintmax_t gl_uintmax_t # endif +#endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely @@ -363,8 +339,8 @@ typedef unsigned long int gl_uintmax_t; typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; -# define GNULIB_defined_stdint_types 1 -# endif /* !GNULIB_defined_stdint_types */ +#define GNULIB_defined_stdint_types 1 +#endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ @@ -373,37 +349,37 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ -# undef INT8_MIN -# undef INT8_MAX -# undef UINT8_MAX -# define INT8_MIN (~ INT8_MAX) -# define INT8_MAX 127 -# define UINT8_MAX 255 +#undef INT8_MIN +#undef INT8_MAX +#undef UINT8_MAX +#define INT8_MIN (~ INT8_MAX) +#define INT8_MAX 127 +#define UINT8_MAX 255 -# undef INT16_MIN -# undef INT16_MAX -# undef UINT16_MAX -# define INT16_MIN (~ INT16_MAX) -# define INT16_MAX 32767 -# define UINT16_MAX 65535 +#undef INT16_MIN +#undef INT16_MAX +#undef UINT16_MAX +#define INT16_MIN (~ INT16_MAX) +#define INT16_MAX 32767 +#define UINT16_MAX 65535 -# undef INT32_MIN -# undef INT32_MAX -# undef UINT32_MAX -# define INT32_MIN (~ INT32_MAX) -# define INT32_MAX 2147483647 -# define UINT32_MAX 4294967295U +#undef INT32_MIN +#undef INT32_MAX +#undef UINT32_MAX +#define INT32_MIN (~ INT32_MAX) +#define INT32_MAX 2147483647 +#define UINT32_MAX 4294967295U -# if defined GL_INT64_T && ! defined INT64_MAX +#if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ -# define INT64_MIN (- INTMAX_C (1) << 63) -# define INT64_MAX INTMAX_C (9223372036854775807) -# endif +# define INT64_MIN (- INTMAX_C (1) << 63) +# define INT64_MAX INTMAX_C (9223372036854775807) +#endif -# if defined GL_UINT64_T && ! defined UINT64_MAX -# define UINT64_MAX UINTMAX_C (18446744073709551615) -# endif +#if defined GL_UINT64_T && ! defined UINT64_MAX +# define UINT64_MAX UINTMAX_C (18446744073709551615) +#endif /* 7.18.2.2. Limits of minimum-width integer types */ @@ -411,38 +387,38 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ -# undef INT_LEAST8_MIN -# undef INT_LEAST8_MAX -# undef UINT_LEAST8_MAX -# define INT_LEAST8_MIN INT8_MIN -# define INT_LEAST8_MAX INT8_MAX -# define UINT_LEAST8_MAX UINT8_MAX +#undef INT_LEAST8_MIN +#undef INT_LEAST8_MAX +#undef UINT_LEAST8_MAX +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define UINT_LEAST8_MAX UINT8_MAX -# undef INT_LEAST16_MIN -# undef INT_LEAST16_MAX -# undef UINT_LEAST16_MAX -# define INT_LEAST16_MIN INT16_MIN -# define INT_LEAST16_MAX INT16_MAX -# define UINT_LEAST16_MAX UINT16_MAX +#undef INT_LEAST16_MIN +#undef INT_LEAST16_MAX +#undef UINT_LEAST16_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define UINT_LEAST16_MAX UINT16_MAX -# undef INT_LEAST32_MIN -# undef INT_LEAST32_MAX -# undef UINT_LEAST32_MAX -# define INT_LEAST32_MIN INT32_MIN -# define INT_LEAST32_MAX INT32_MAX -# define UINT_LEAST32_MAX UINT32_MAX +#undef INT_LEAST32_MIN +#undef INT_LEAST32_MAX +#undef UINT_LEAST32_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define UINT_LEAST32_MAX UINT32_MAX -# undef INT_LEAST64_MIN -# undef INT_LEAST64_MAX -# ifdef GL_INT64_T -# define INT_LEAST64_MIN INT64_MIN -# define INT_LEAST64_MAX INT64_MAX -# endif +#undef INT_LEAST64_MIN +#undef INT_LEAST64_MAX +#ifdef GL_INT64_T +# define INT_LEAST64_MIN INT64_MIN +# define INT_LEAST64_MAX INT64_MAX +#endif -# undef UINT_LEAST64_MAX -# ifdef GL_UINT64_T -# define UINT_LEAST64_MAX UINT64_MAX -# endif +#undef UINT_LEAST64_MAX +#ifdef GL_UINT64_T +# define UINT_LEAST64_MAX UINT64_MAX +#endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ @@ -450,127 +426,117 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ -# undef INT_FAST8_MIN -# undef INT_FAST8_MAX -# undef UINT_FAST8_MAX -# define INT_FAST8_MIN SCHAR_MIN -# define INT_FAST8_MAX SCHAR_MAX -# define UINT_FAST8_MAX UCHAR_MAX +#undef INT_FAST8_MIN +#undef INT_FAST8_MAX +#undef UINT_FAST8_MAX +#define INT_FAST8_MIN SCHAR_MIN +#define INT_FAST8_MAX SCHAR_MAX +#define UINT_FAST8_MAX UCHAR_MAX -# undef INT_FAST16_MIN -# undef INT_FAST16_MAX -# undef UINT_FAST16_MAX -# define INT_FAST16_MIN INT_FAST32_MIN -# define INT_FAST16_MAX INT_FAST32_MAX -# define UINT_FAST16_MAX UINT_FAST32_MAX +#undef INT_FAST16_MIN +#undef INT_FAST16_MAX +#undef UINT_FAST16_MAX +#define INT_FAST16_MIN INT_FAST32_MIN +#define INT_FAST16_MAX INT_FAST32_MAX +#define UINT_FAST16_MAX UINT_FAST32_MAX -# undef INT_FAST32_MIN -# undef INT_FAST32_MAX -# undef UINT_FAST32_MAX -# ifdef __sun -# define INT_FAST32_MIN INT_MIN -# define INT_FAST32_MAX INT_MAX -# define UINT_FAST32_MAX UINT_MAX -# else -# define INT_FAST32_MIN LONG_MIN -# define INT_FAST32_MAX LONG_MAX -# define UINT_FAST32_MAX ULONG_MAX -# endif +#undef INT_FAST32_MIN +#undef INT_FAST32_MAX +#undef UINT_FAST32_MAX +#ifdef __sun +# define INT_FAST32_MIN INT_MIN +# define INT_FAST32_MAX INT_MAX +# define UINT_FAST32_MAX UINT_MAX +#else +# define INT_FAST32_MIN LONG_MIN +# define INT_FAST32_MAX LONG_MAX +# define UINT_FAST32_MAX ULONG_MAX +#endif -# undef INT_FAST64_MIN -# undef INT_FAST64_MAX -# ifdef GL_INT64_T -# define INT_FAST64_MIN INT64_MIN -# define INT_FAST64_MAX INT64_MAX -# endif +#undef INT_FAST64_MIN +#undef INT_FAST64_MAX +#ifdef GL_INT64_T +# define INT_FAST64_MIN INT64_MIN +# define INT_FAST64_MAX INT64_MAX +#endif -# undef UINT_FAST64_MAX -# ifdef GL_UINT64_T -# define UINT_FAST64_MAX UINT64_MAX -# endif +#undef UINT_FAST64_MAX +#ifdef GL_UINT64_T +# define UINT_FAST64_MAX UINT64_MAX +#endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ -# undef INTPTR_MIN -# undef INTPTR_MAX -# undef UINTPTR_MAX -# ifdef _WIN64 -# define INTPTR_MIN LLONG_MIN -# define INTPTR_MAX LLONG_MAX -# define UINTPTR_MAX ULLONG_MAX -# else -# define INTPTR_MIN LONG_MIN -# define INTPTR_MAX LONG_MAX -# define UINTPTR_MAX ULONG_MAX -# endif +#undef INTPTR_MIN +#undef INTPTR_MAX +#undef UINTPTR_MAX +#define INTPTR_MIN LONG_MIN +#define INTPTR_MAX LONG_MAX +#define UINTPTR_MAX ULONG_MAX /* 7.18.2.5. Limits of greatest-width integer types */ -# ifndef INTMAX_MAX -# undef INTMAX_MIN -# ifdef INT64_MAX -# define INTMAX_MIN INT64_MIN -# define INTMAX_MAX INT64_MAX -# else -# define INTMAX_MIN INT32_MIN -# define INTMAX_MAX INT32_MAX -# endif +#ifndef INTMAX_MAX +# undef INTMAX_MIN +# ifdef INT64_MAX +# define INTMAX_MIN INT64_MIN +# define INTMAX_MAX INT64_MAX +# else +# define INTMAX_MIN INT32_MIN +# define INTMAX_MAX INT32_MAX # endif +#endif -# ifndef UINTMAX_MAX -# ifdef UINT64_MAX -# define UINTMAX_MAX UINT64_MAX -# else -# define UINTMAX_MAX UINT32_MAX -# endif +#ifndef UINTMAX_MAX +# ifdef UINT64_MAX +# define UINTMAX_MAX UINT64_MAX +# else +# define UINTMAX_MAX UINT32_MAX # endif +#endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ -# undef PTRDIFF_MIN -# undef PTRDIFF_MAX -# if @APPLE_UNIVERSAL_BUILD@ -# ifdef _LP64 -# define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) -# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) -# else -# define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) -# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) -# endif +#undef PTRDIFF_MIN +#undef PTRDIFF_MAX +#if @APPLE_UNIVERSAL_BUILD@ +# ifdef _LP64 +# define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) +# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else -# define PTRDIFF_MIN \ - _STDINT_SIGNED_MIN (@BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) -# define PTRDIFF_MAX \ - _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) +# define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) +# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif +#else +# define PTRDIFF_MIN \ + _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) +# define PTRDIFF_MAX \ + _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) +#endif /* sig_atomic_t limits */ -# undef SIG_ATOMIC_MIN -# undef SIG_ATOMIC_MAX -# if @HAVE_SIGNED_SIG_ATOMIC_T@ -# define SIG_ATOMIC_MIN \ - _STDINT_SIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) -# else -# define SIG_ATOMIC_MIN \ - _STDINT_UNSIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) -# endif -# define SIG_ATOMIC_MAX \ +#undef SIG_ATOMIC_MIN +#undef SIG_ATOMIC_MAX +#define SIG_ATOMIC_MIN \ + _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ + 0@SIG_ATOMIC_T_SUFFIX@) +#define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ -# undef SIZE_MAX -# if @APPLE_UNIVERSAL_BUILD@ -# ifdef _LP64 -# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) -# else -# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) -# endif +#undef SIZE_MAX +#if @APPLE_UNIVERSAL_BUILD@ +# ifdef _LP64 +# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else -# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) +# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif +#else +# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) +#endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. @@ -578,39 +544,30 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ -# if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) -# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H -# include -# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H -# endif -# undef WCHAR_MIN -# undef WCHAR_MAX -# if @HAVE_SIGNED_WCHAR_T@ -# define WCHAR_MIN \ - _STDINT_SIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) -# else -# define WCHAR_MIN \ - _STDINT_UNSIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) -# endif -# define WCHAR_MAX \ +#if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) + /* BSD/OS 4.0.1 has a bug: , and must be + included before . */ +# include +# include +# include +# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H +# include +# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H +#endif +#undef WCHAR_MIN +#undef WCHAR_MAX +#define WCHAR_MIN \ + _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) +#define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ -/* If gnulib's or overrides wint_t, @WINT_T_SUFFIX@ is not - accurate, therefore use the definitions from above. */ -# if !@GNULIBHEADERS_OVERRIDE_WINT_T@ -# undef WINT_MIN -# undef WINT_MAX -# if @HAVE_SIGNED_WINT_T@ -# define WINT_MIN \ - _STDINT_SIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) -# else -# define WINT_MIN \ - _STDINT_UNSIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) -# endif -# define WINT_MAX \ - _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) -# endif +#undef WINT_MIN +#undef WINT_MAX +#define WINT_MIN \ + _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) +#define WINT_MAX \ + _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) /* 7.18.4. Macros for integer constants */ @@ -620,120 +577,59 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ -# undef INT8_C -# undef UINT8_C -# define INT8_C(x) x -# define UINT8_C(x) x +#undef INT8_C +#undef UINT8_C +#define INT8_C(x) x +#define UINT8_C(x) x -# undef INT16_C -# undef UINT16_C -# define INT16_C(x) x -# define UINT16_C(x) x +#undef INT16_C +#undef UINT16_C +#define INT16_C(x) x +#define UINT16_C(x) x -# undef INT32_C -# undef UINT32_C -# define INT32_C(x) x -# define UINT32_C(x) x ## U +#undef INT32_C +#undef UINT32_C +#define INT32_C(x) x +#define UINT32_C(x) x ## U -# undef INT64_C -# undef UINT64_C -# if LONG_MAX >> 31 >> 31 == 1 -# define INT64_C(x) x##L -# elif defined _MSC_VER -# define INT64_C(x) x##i64 -# else -# define INT64_C(x) x##LL -# endif -# if ULONG_MAX >> 31 >> 31 >> 1 == 1 -# define UINT64_C(x) x##UL -# elif defined _MSC_VER -# define UINT64_C(x) x##ui64 -# else -# define UINT64_C(x) x##ULL -# endif +#undef INT64_C +#undef UINT64_C +#if LONG_MAX >> 31 >> 31 == 1 +# define INT64_C(x) x##L +#elif defined _MSC_VER +# define INT64_C(x) x##i64 +#elif @HAVE_LONG_LONG_INT@ +# define INT64_C(x) x##LL +#endif +#if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# define UINT64_C(x) x##UL +#elif defined _MSC_VER +# define UINT64_C(x) x##ui64 +#elif @HAVE_UNSIGNED_LONG_LONG_INT@ +# define UINT64_C(x) x##ULL +#endif /* 7.18.4.2. Macros for greatest-width integer constants */ -# ifndef INTMAX_C -# if LONG_MAX >> 30 == 1 -# define INTMAX_C(x) x##LL -# elif defined GL_INT64_T -# define INTMAX_C(x) INT64_C(x) -# else -# define INTMAX_C(x) x##L -# endif +#ifndef INTMAX_C +# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 +# define INTMAX_C(x) x##LL +# elif defined GL_INT64_T +# define INTMAX_C(x) INT64_C(x) +# else +# define INTMAX_C(x) x##L # endif +#endif -# ifndef UINTMAX_C -# if ULONG_MAX >> 31 == 1 -# define UINTMAX_C(x) x##ULL -# elif defined GL_UINT64_T -# define UINTMAX_C(x) UINT64_C(x) -# else -# define UINTMAX_C(x) x##UL -# endif +#ifndef UINTMAX_C +# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 +# define UINTMAX_C(x) x##ULL +# elif defined GL_UINT64_T +# define UINTMAX_C(x) UINT64_C(x) +# else +# define UINTMAX_C(x) x##UL # endif - -#endif /* !@HAVE_C99_STDINT_H@ */ - -/* Macros specified by ISO/IEC TS 18661-1:2014. */ - -#if (!defined UINTMAX_WIDTH \ - && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) -# ifdef INT8_MAX -# define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) -# endif -# ifdef UINT8_MAX -# define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) -# endif -# ifdef INT16_MAX -# define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) -# endif -# ifdef UINT16_MAX -# define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) -# endif -# ifdef INT32_MAX -# define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) -# endif -# ifdef UINT32_MAX -# define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) -# endif -# ifdef INT64_MAX -# define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) -# endif -# ifdef UINT64_MAX -# define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) -# endif -# define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) -# define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) -# define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) -# define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) -# define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) -# define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) -# define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) -# define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) -# define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) -# define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) -# define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) -# define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) -# define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) -# define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) -# define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) -# define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) -# define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) -# define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) -# define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) -# define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) -# define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) -# define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) -# define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) -# ifdef WINT_MAX -# define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) -# endif -# ifdef SIG_ATOMIC_MAX -# define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) -# endif -#endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ +#endif #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ diff --git a/gl/stdio-impl.h b/gl/stdio-impl.h deleted file mode 100644 index 46608be..0000000 --- a/gl/stdio-impl.h +++ /dev/null @@ -1,218 +0,0 @@ -/* Implementation details of FILE streams. - Copyright (C) 2007-2008, 2010-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Many stdio implementations have the same logic and therefore can share - the same implementation of stdio extension API, except that some fields - have different naming conventions, or their access requires some casts. */ - -/* Glibc 2.28 made _IO_UNBUFFERED and _IO_IN_BACKUP private. For now, work - around this problem by defining them ourselves. FIXME: Do not rely on glibc - internals. */ -#if defined _IO_EOF_SEEN -# if !defined _IO_UNBUFFERED -# define _IO_UNBUFFERED 0x2 -# endif -# if !defined _IO_IN_BACKUP -# define _IO_IN_BACKUP 0x100 -# endif -#endif - -/* BSD stdio derived implementations. */ - -#if defined __NetBSD__ /* NetBSD */ -/* Get __NetBSD_Version__. */ -# include -#endif - -#include /* For detecting Plan9. */ - -#if defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - -# if defined __DragonFly__ /* DragonFly */ - /* See . */ -# define fp_ ((struct { struct __FILE_public pub; \ - struct { unsigned char *_base; int _size; } _bf; \ - void *cookie; \ - void *_close; \ - void *_read; \ - void *_seek; \ - void *_write; \ - struct { unsigned char *_base; int _size; } _ub; \ - int _ur; \ - unsigned char _ubuf[3]; \ - unsigned char _nbuf[1]; \ - struct { unsigned char *_base; int _size; } _lb; \ - int _blksize; \ - fpos_t _offset; \ - /* More fields, not relevant here. */ \ - } *) fp) - /* See . */ -# define _p pub._p -# define _flags pub._flags -# define _r pub._r -# define _w pub._w -# elif defined __ANDROID__ /* Android */ -# ifdef __LP64__ -# define _gl_flags_file_t int -# else -# define _gl_flags_file_t short -# endif -# ifdef __LP64__ -# define _gl_file_offset_t int64_t -# else - /* see https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */ -# define _gl_file_offset_t __kernel_off_t -# endif - /* Up to this commit from 2015-10-12 - - the innards of FILE were public, and fp_ub could be defined like for OpenBSD, - see - and . - After this commit, the innards of FILE are hidden. */ -# define fp_ ((struct { unsigned char *_p; \ - int _r; \ - int _w; \ - _gl_flags_file_t _flags; \ - _gl_flags_file_t _file; \ - struct { unsigned char *_base; size_t _size; } _bf; \ - int _lbfsize; \ - void *_cookie; \ - void *_close; \ - void *_read; \ - void *_seek; \ - void *_write; \ - struct { unsigned char *_base; size_t _size; } _ext; \ - unsigned char *_up; \ - int _ur; \ - unsigned char _ubuf[3]; \ - unsigned char _nbuf[1]; \ - struct { unsigned char *_base; size_t _size; } _lb; \ - int _blksize; \ - _gl_file_offset_t _offset; \ - /* More fields, not relevant here. */ \ - } *) fp) -# else -# define fp_ fp -# endif - -# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix /* NetBSD >= 1.5ZA, OpenBSD, Minix 3 */ - /* See - and - and */ - struct __sfileext - { - struct __sbuf _ub; /* ungetc buffer */ - /* More fields, not relevant here. */ - }; -# define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub -# elif defined __ANDROID__ /* Android */ - struct __sfileext - { - struct { unsigned char *_base; size_t _size; } _ub; /* ungetc buffer */ - /* More fields, not relevant here. */ - }; -# define fp_ub ((struct __sfileext *) fp_->_ext._base)->_ub -# else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin */ -# define fp_ub fp_->_ub -# endif - -# define HASUB(fp) (fp_ub._base != NULL) - -# if defined __ANDROID__ /* Android */ - /* Needed after this commit from 2016-01-25 - */ -# ifndef __SEOF -# define __SLBF 1 -# define __SNBF 2 -# define __SRD 4 -# define __SWR 8 -# define __SRW 0x10 -# define __SEOF 0x20 -# define __SERR 0x40 -# endif -# ifndef __SOFF -# define __SOFF 0x1000 -# endif -# endif - -#endif - - -/* SystemV derived implementations. */ - -#ifdef __TANDEM /* NonStop Kernel */ -# ifndef _IOERR -/* These values were determined by the program 'stdioext-flags' at - . */ -# define _IOERR 0x40 -# define _IOREAD 0x80 -# define _IOWRT 0x4 -# define _IORW 0x100 -# endif -#endif - -#if defined _IOERR - -# if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */ -# define fp_ ((struct { unsigned char *_ptr; \ - unsigned char *_base; \ - unsigned char *_end; \ - long _cnt; \ - int _file; \ - unsigned int _flag; \ - } *) fp) -# elif defined __VMS /* OpenVMS */ -# define fp_ ((struct _iobuf *) fp) -# else -# define fp_ fp -# endif - -# if defined _SCO_DS || (defined __SCO_VERSION__ || defined __sysv5__) /* OpenServer 5, OpenServer 6, UnixWare 7 */ -# define _cnt __cnt -# define _ptr __ptr -# define _base __base -# define _flag __flag -# endif - -#elif defined _WIN32 && ! defined __CYGWIN__ /* newer Windows with MSVC */ - -/* does not define the innards of FILE any more. */ -# define WINDOWS_OPAQUE_FILE - -struct _gl_real_FILE -{ - /* Note: Compared to older Windows and to mingw, it has the fields - _base and _cnt swapped. */ - unsigned char *_ptr; - unsigned char *_base; - int _cnt; - int _flag; - int _file; - int _charbuf; - int _bufsiz; -}; -# define fp_ ((struct _gl_real_FILE *) fp) - -/* These values were determined by a program similar to the one at - . */ -# define _IOREAD 0x1 -# define _IOWRT 0x2 -# define _IORW 0x4 -# define _IOEOF 0x8 -# define _IOERR 0x10 - -#endif diff --git a/gl/stdio-read.c b/gl/stdio-read.c deleted file mode 100644 index 6e2984c..0000000 --- a/gl/stdio-read.c +++ /dev/null @@ -1,168 +0,0 @@ -/* POSIX compatible FILE stream read function. - Copyright (C) 2008-2023 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* Replace these functions only if module 'nonblocking' is requested. */ -#if GNULIB_NONBLOCKING - -/* On native Windows platforms, when read() is called on a non-blocking pipe - with an empty buffer, ReadFile() fails with error GetLastError() = - ERROR_NO_DATA, and read() in consequence fails with error EINVAL. This - read() function is at the basis of the function which fills the buffer of - a FILE stream. */ - -# if defined _WIN32 && ! defined __CYGWIN__ - -# include -# include - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -/* Don't assume that UNICODE is not defined. */ -# undef GetNamedPipeHandleState -# define GetNamedPipeHandleState GetNamedPipeHandleStateA - -# define CALL_WITH_ERRNO_FIX(RETTYPE, EXPRESSION, FAILED) \ - if (ferror (stream)) \ - return (EXPRESSION); \ - else \ - { \ - RETTYPE ret; \ - SetLastError (0); \ - ret = (EXPRESSION); \ - if (FAILED) \ - { \ - if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0) \ - { \ - HANDLE h = (HANDLE) _get_osfhandle (fd); \ - if (GetFileType (h) == FILE_TYPE_PIPE) \ - { \ - /* h is a pipe or socket. */ \ - DWORD state; \ - if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ - NULL, NULL, 0) \ - && (state & PIPE_NOWAIT) != 0) \ - /* h is a pipe in non-blocking mode. \ - Change errno from EINVAL to EAGAIN. */ \ - errno = EAGAIN; \ - } \ - } \ - } \ - } \ - return ret; \ - } - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_SCANF -int -scanf (const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfscanf (stdin, format, args); - va_end (args); - - return retval; -} -# endif - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_FSCANF -int -fscanf (FILE *stream, const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfscanf (stream, format, args); - va_end (args); - - return retval; -} -# endif - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_VSCANF -int -vscanf (const char *format, va_list args) -{ - return vfscanf (stdin, format, args); -} -# endif - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_VFSCANF -int -vfscanf (FILE *stream, const char *format, va_list args) -#undef vfscanf -{ - CALL_WITH_ERRNO_FIX (int, vfscanf (stream, format, args), ret == EOF) -} -# endif - -int -getchar (void) -{ - return fgetc (stdin); -} - -int -fgetc (FILE *stream) -#undef fgetc -{ - CALL_WITH_ERRNO_FIX (int, fgetc (stream), ret == EOF) -} - -char * -fgets (char *s, int n, FILE *stream) -#undef fgets -{ - CALL_WITH_ERRNO_FIX (char *, fgets (s, n, stream), ret == NULL) -} - -/* We intentionally don't bother to fix gets. */ - -size_t -fread (void *ptr, size_t s, size_t n, FILE *stream) -#undef fread -{ - CALL_WITH_ERRNO_FIX (size_t, fread (ptr, s, n, stream), ret < n) -} - -# endif -#endif diff --git a/gl/stdio-write.c b/gl/stdio-write.c deleted file mode 100644 index 9cf36cc..0000000 --- a/gl/stdio-write.c +++ /dev/null @@ -1,206 +0,0 @@ -/* POSIX compatible FILE stream write function. - Copyright (C) 2008-2023 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* Replace these functions only if module 'nonblocking' or module 'sigpipe' is - requested. */ -#if GNULIB_NONBLOCKING || GNULIB_SIGPIPE - -/* On native Windows platforms, SIGPIPE does not exist. When write() is - called on a pipe with no readers, WriteFile() fails with error - GetLastError() = ERROR_NO_DATA, and write() in consequence fails with - error EINVAL. This write() function is at the basis of the function - which flushes the buffer of a FILE stream. */ - -# if defined _WIN32 && ! defined __CYGWIN__ - -# include -# include -# include - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -/* Don't assume that UNICODE is not defined. */ -# undef GetNamedPipeHandleState -# define GetNamedPipeHandleState GetNamedPipeHandleStateA - -# if GNULIB_NONBLOCKING -# define CLEAR_ERRNO \ - errno = 0; -# define HANDLE_ENOSPC \ - if (errno == ENOSPC && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0) \ - { \ - HANDLE h = (HANDLE) _get_osfhandle (fd); \ - if (GetFileType (h) == FILE_TYPE_PIPE) \ - { \ - /* h is a pipe or socket. */ \ - DWORD state; \ - if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ - NULL, NULL, 0) \ - && (state & PIPE_NOWAIT) != 0) \ - /* h is a pipe in non-blocking mode. \ - Change errno from ENOSPC to EAGAIN. */ \ - errno = EAGAIN; \ - } \ - } \ - } \ - else -# else -# define CLEAR_ERRNO -# define HANDLE_ENOSPC -# endif - -# if GNULIB_SIGPIPE -# define CLEAR_LastError \ - SetLastError (0); -# define HANDLE_ERROR_NO_DATA \ - if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0 \ - && GetFileType ((HANDLE) _get_osfhandle (fd)) \ - == FILE_TYPE_PIPE) \ - { \ - /* Try to raise signal SIGPIPE. */ \ - raise (SIGPIPE); \ - /* If it is currently blocked or ignored, change errno from \ - EINVAL to EPIPE. */ \ - errno = EPIPE; \ - } \ - } \ - else -# else -# define CLEAR_LastError -# define HANDLE_ERROR_NO_DATA -# endif - -# define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \ - if (ferror (stream)) \ - return (EXPRESSION); \ - else \ - { \ - RETTYPE ret; \ - CLEAR_ERRNO \ - CLEAR_LastError \ - ret = (EXPRESSION); \ - if (FAILED) \ - { \ - HANDLE_ENOSPC \ - HANDLE_ERROR_NO_DATA \ - ; \ - } \ - return ret; \ - } - -# if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */ -int -printf (const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfprintf (stdout, format, args); - va_end (args); - - return retval; -} -# endif - -# if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */ -int -fprintf (FILE *stream, const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfprintf (stream, format, args); - va_end (args); - - return retval; -} -# endif - -# if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */ -int -vprintf (const char *format, va_list args) -{ - return vfprintf (stdout, format, args); -} -# endif - -# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */ -int -vfprintf (FILE *stream, const char *format, va_list args) -#undef vfprintf -{ - CALL_WITH_SIGPIPE_EMULATION (int, vfprintf (stream, format, args), ret == EOF) -} -# endif - -int -putchar (int c) -{ - return fputc (c, stdout); -} - -int -fputc (int c, FILE *stream) -#undef fputc -{ - CALL_WITH_SIGPIPE_EMULATION (int, fputc (c, stream), ret == EOF) -} - -int -fputs (const char *string, FILE *stream) -#undef fputs -{ - CALL_WITH_SIGPIPE_EMULATION (int, fputs (string, stream), ret == EOF) -} - -int -puts (const char *string) -#undef puts -{ - FILE *stream = stdout; - CALL_WITH_SIGPIPE_EMULATION (int, puts (string), ret == EOF) -} - -size_t -fwrite (const void *ptr, size_t s, size_t n, FILE *stream) -#undef fwrite -{ - CALL_WITH_SIGPIPE_EMULATION (size_t, fwrite (ptr, s, n, stream), ret < n) -} - -# endif -#endif diff --git a/gl/stdio.in.h b/gl/stdio.in.h index 59cbea3..06cbad0 100644 --- a/gl/stdio.in.h +++ b/gl/stdio.in.h @@ -1,19 +1,19 @@ /* A GNU-like . - Copyright (C) 2004, 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2004, 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -56,103 +56,36 @@ May also define off_t to a 64-bit type on native Windows. */ #include -/* Solaris 10 and NetBSD 7.0 declare renameat in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ - && ! defined __GLIBC__ -# include -#endif - -/* Android 4.3 declares renameat in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ - && ! defined __GLIBC__ -# include -#endif - -/* MSVC declares 'perror' in , not in . We must include - it before we #define perror rpl_perror. */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) \ - && ! defined __GLIBC__ -# include -#endif - -/* MSVC declares 'remove' in , not in . We must include - it before we #define remove rpl_remove. */ -/* MSVC declares 'rename' in , not in . We must include - it before we #define rename rpl_rename. */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) \ - && ! defined __GLIBC__ -# include -#endif - - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ -#ifndef _GL_ATTRIBUTE_FORMAT -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || defined __clang__ -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -# else -# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ -# endif -#endif - -/* An __attribute__ __format__ specifier for a function that takes a format - string and arguments, where the format string directives are the ones - standardized by ISO C99 and POSIX. - _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD */ -/* __gnu_printf__ is supported in GCC >= 4.4. */ -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) -# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else -# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__ +# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif -/* An __attribute__ __format__ specifier for a function that takes a format - string and arguments, where the format string directives are the ones of the - system printf(), rather than the ones standardized by ISO C99 and POSIX. - _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM */ -/* On mingw, Gnulib sets __USE_MINGW_ANSI_STDIO in order to get closer to - the standards. The macro GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU indicates - whether this change is effective. On older mingw, it is not. */ -#if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU -# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD -#else -# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM __printf__ -#endif - -/* _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD +/* _GL_ATTRIBUTE_FORMAT_PRINTF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument)) +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) +# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) +#else +# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) +#endif -/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD, +/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF, except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument)) + _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, @@ -173,6 +106,14 @@ #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) +/* Solaris 10 declares renameat in , not in . */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \ + && ! defined __GLIBC__ +# include +#endif + + /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ @@ -183,32 +124,23 @@ #define _GL_STDIO_STRINGIZE(token) #token #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) -/* When also using extern inline, suppress the use of static inline in - standard headers of problematic Apple configurations, as Libc at - least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., - . - Perhaps Apple will fix this some day. */ -#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ - && defined __GNUC__ && defined __STDC__) -# undef putc_unlocked -#endif #if @GNULIB_DPRINTF@ # if @REPLACE_DPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dprintf rpl_dprintf # endif -_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) +_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...)); +_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); # else # if !@HAVE_DPRINTF@ -_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) +_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); # endif -_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); +_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); # endif _GL_CXXALIASWARN (dprintf); #elif defined GNULIB_POSIXCHECK @@ -230,9 +162,7 @@ _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fclose); -# endif #elif defined GNULIB_POSIXCHECK # undef fclose /* Assume fclose is always declared. */ @@ -240,84 +170,24 @@ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " "use gnulib module fclose for portable POSIX compliance"); #endif -#if @GNULIB_MDA_FCLOSEALL@ -/* On native Windows, map 'fcloseall' to '_fcloseall', so that -loldnames is - not required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fcloseall on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcloseall -# define fcloseall _fcloseall -# endif -_GL_CXXALIAS_MDA (fcloseall, int, (void)); -# else -# if @HAVE_DECL_FCLOSEALL@ -# if defined __FreeBSD__ || defined __DragonFly__ -_GL_CXXALIAS_SYS (fcloseall, void, (void)); -# else -_GL_CXXALIAS_SYS (fcloseall, int, (void)); -# endif -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCLOSEALL@ -_GL_CXXALIASWARN (fcloseall); -# endif -#endif - #if @GNULIB_FDOPEN@ # if @REPLACE_FDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen rpl_fdopen # endif -_GL_FUNCDECL_RPL (fdopen, FILE *, - (int fd, const char *mode) - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +_GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) + _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen _fdopen -# endif -_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); # else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode) - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); -#else -# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fdopen -/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode) - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef fdopen +#elif defined GNULIB_POSIXCHECK +# undef fdopen /* Assume fdopen is always declared. */ _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); -# elif @GNULIB_MDA_FDOPEN@ -/* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fdopen always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen _fdopen -# endif -_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); -# else -_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); -# endif -_GL_CXXALIASWARN (fdopen); -# endif #endif #if @GNULIB_FFLUSH@ @@ -336,9 +206,7 @@ _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); # else _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fflush); -# endif #elif defined GNULIB_POSIXCHECK # undef fflush /* Assume fflush is always declared. */ @@ -357,9 +225,7 @@ _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fgetc); -# endif #endif #if @GNULIB_FGETS@ @@ -368,74 +234,33 @@ _GL_CXXALIASWARN (fgetc); # undef fgets # define fgets rpl_fgets # endif -_GL_FUNCDECL_RPL (fgets, char *, - (char *restrict s, int n, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (fgets, char *, - (char *restrict s, int n, FILE *restrict stream)); +_GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream) + _GL_ARG_NONNULL ((1, 3))); +_GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream)); # else -_GL_CXXALIAS_SYS (fgets, char *, - (char *restrict s, int n, FILE *restrict stream)); +_GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fgets); -# endif -#endif - -#if @GNULIB_MDA_FILENO@ -/* On native Windows, map 'fileno' to '_fileno', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fileno always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fileno -# define fileno _fileno -# endif -_GL_CXXALIAS_MDA (fileno, int, (FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fileno, int, (FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (fileno); #endif #if @GNULIB_FOPEN@ -# if (@GNULIB_FOPEN@ && @REPLACE_FOPEN@) \ - || (@GNULIB_FOPEN_GNU@ && @REPLACE_FOPEN_FOR_FOPEN_GNU@) +# if @REPLACE_FOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fopen # define fopen rpl_fopen # endif -_GL_FUNCDECL_RPL (fopen, FILE *, - (const char *restrict filename, const char *restrict mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -_GL_CXXALIAS_RPL (fopen, FILE *, - (const char *restrict filename, const char *restrict mode)); +_GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode)); # else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -_GL_CXXALIAS_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode)); +_GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fopen); -# endif -#else -# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fopen -/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef fopen +#elif defined GNULIB_POSIXCHECK +# undef fopen /* Assume fopen is always declared. */ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); -# endif #endif #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ @@ -446,25 +271,19 @@ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX complian # endif # define GNULIB_overrides_fprintf 1 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ -_GL_FUNCDECL_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); +_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) + _GL_ARG_NONNULL ((1, 2))); # else -_GL_FUNCDECL_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) - _GL_ARG_NONNULL ((1, 2))); +_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) + _GL_ARG_NONNULL ((1, 2))); # endif -_GL_CXXALIAS_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...)); +_GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); # else -_GL_CXXALIAS_SYS (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...)); +_GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fprintf); -# endif #endif #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_fprintf @@ -515,9 +334,7 @@ _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fputc); -# endif #endif #if @GNULIB_FPUTS@ @@ -526,18 +343,13 @@ _GL_CXXALIASWARN (fputc); # undef fputs # define fputs rpl_fputs # endif -_GL_FUNCDECL_RPL (fputs, int, - (const char *restrict string, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (fputs, int, - (const char *restrict string, FILE *restrict stream)); +_GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream)); # else -_GL_CXXALIAS_SYS (fputs, int, - (const char *restrict string, FILE *restrict stream)); +_GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fputs); -# endif #endif #if @GNULIB_FREAD@ @@ -546,21 +358,13 @@ _GL_CXXALIASWARN (fputs); # undef fread # define fread rpl_fread # endif -_GL_FUNCDECL_RPL (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream) - _GL_ARG_NONNULL ((4))); -_GL_CXXALIAS_RPL (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); +_GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream) + _GL_ARG_NONNULL ((4))); +_GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # else -_GL_CXXALIAS_SYS (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); +_GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fread); -# endif #endif #if @GNULIB_FREOPEN@ @@ -570,20 +374,15 @@ _GL_CXXALIASWARN (fread); # define freopen rpl_freopen # endif _GL_FUNCDECL_RPL (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream) + (const char *filename, const char *mode, FILE *stream) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream)); + (const char *filename, const char *mode, FILE *stream)); # else _GL_CXXALIAS_SYS (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream)); + (const char *filename, const char *mode, FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (freopen); -# endif #elif defined GNULIB_POSIXCHECK # undef freopen /* Assume freopen is always declared. */ @@ -598,19 +397,14 @@ _GL_WARN_ON_USE (freopen, # undef fscanf # define fscanf rpl_fscanf # endif -_GL_FUNCDECL_RPL (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...)); +_GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...)); # else -_GL_CXXALIAS_SYS (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...)); +_GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fscanf); -# endif #endif @@ -661,9 +455,7 @@ _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); # else _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fseek); -# endif #endif #if @GNULIB_FSEEKO@ @@ -726,9 +518,7 @@ _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (ftell); -# endif #endif #if @GNULIB_FTELLO@ @@ -777,19 +567,16 @@ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " # define fwrite rpl_fwrite # endif _GL_FUNCDECL_RPL (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream) + (const void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); + (const void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); + (const void *ptr, size_t s, size_t n, FILE *stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 - , + , which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc and clang, and is not needed for C++. */ @@ -811,9 +598,7 @@ extern size_t __REDIRECT (rpl_fwrite_unlocked, # define fwrite_unlocked rpl_fwrite_unlocked # endif # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (fwrite); -# endif #endif #if @GNULIB_GETC@ @@ -827,9 +612,7 @@ _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (getc); -# endif #endif #if @GNULIB_GETCHAR@ @@ -843,9 +626,7 @@ _GL_CXXALIAS_RPL (getchar, int, (void)); # else _GL_CXXALIAS_SYS (getchar, int, (void)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (getchar); -# endif #endif #if @GNULIB_GETDELIM@ @@ -861,26 +642,22 @@ _GL_CXXALIASWARN (getchar); # define getdelim rpl_getdelim # endif _GL_FUNCDECL_RPL (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream) + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); _GL_CXXALIAS_RPL (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream)); + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream)); # else # if !@HAVE_DECL_GETDELIM@ _GL_FUNCDECL_SYS (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream) + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream)); + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream)); # endif _GL_CXXALIASWARN (getdelim); #elif defined GNULIB_POSIXCHECK @@ -904,22 +681,18 @@ _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " # define getline rpl_getline # endif _GL_FUNCDECL_RPL (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream) + (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream)); + (char **lineptr, size_t *linesize, FILE *stream)); # else # if !@HAVE_DECL_GETLINE@ _GL_FUNCDECL_SYS (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream) + (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream)); + (char **lineptr, size_t *linesize, FILE *stream)); # endif # if @HAVE_DECL_GETLINE@ _GL_CXXALIASWARN (getline); @@ -936,25 +709,10 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " so any use of gets warrants an unconditional warning; besides, C11 removed it. */ #undef gets -#if HAVE_RAW_DECL_GETS && !defined __cplusplus +#if HAVE_RAW_DECL_GETS _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif -#if @GNULIB_MDA_GETW@ -/* On native Windows, map 'getw' to '_getw', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getw always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getw -# define getw _getw -# endif -_GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (getw); -#endif #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; @@ -969,7 +727,7 @@ struct obstack; # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); @@ -977,7 +735,7 @@ _GL_CXXALIAS_RPL (obstack_printf, int, # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, @@ -990,7 +748,7 @@ _GL_CXXALIASWARN (obstack_printf); # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); @@ -998,7 +756,7 @@ _GL_CXXALIAS_RPL (obstack_vprintf, int, # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, @@ -1034,9 +792,7 @@ _GL_CXXALIAS_RPL (perror, void, (const char *string)); # else _GL_CXXALIAS_SYS (perror, void, (const char *string)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (perror); -# endif #elif defined GNULIB_POSIXCHECK # undef perror /* Assume perror is always declared. */ @@ -1050,53 +806,43 @@ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " # undef popen # define popen rpl_popen # endif -_GL_FUNCDECL_RPL (popen, FILE *, - (const char *cmd, const char *mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); +_GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) + _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else -# if !@HAVE_POPEN@ || __GNUC__ >= 11 -_GL_FUNCDECL_SYS (popen, FILE *, - (const char *cmd, const char *mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); +# if !@HAVE_POPEN@ +_GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) + _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif _GL_CXXALIASWARN (popen); -#else -# if @GNULIB_PCLOSE@ && __GNUC__ >= 11 && !defined popen -/* For -Wmismatched-dealloc: Associate popen with pclose or rpl_pclose. */ -_GL_FUNCDECL_SYS (popen, FILE *, - (const char *cmd, const char *mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef popen -# if HAVE_RAW_DECL_POPEN +#elif defined GNULIB_POSIXCHECK +# undef popen +# if HAVE_RAW_DECL_POPEN _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " "use gnulib module popen or pipe for more portability"); -# endif # endif #endif #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) -# if defined __GNUC__ || defined __clang__ +# if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL_1 (__printf__, int, - (const char *restrict format, ...) + (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) + _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL_1 (__printf__, int, - (const char *restrict format, ...) + (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) @@ -1108,18 +854,16 @@ _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # define printf rpl_printf # endif _GL_FUNCDECL_RPL (printf, int, - (const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) + (const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...)); +_GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); # endif # define GNULIB_overrides_printf 1 # else -_GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...)); +_GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (printf); -# endif #endif #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_printf @@ -1142,9 +886,7 @@ _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (putc); -# endif #endif #if @GNULIB_PUTCHAR@ @@ -1158,9 +900,7 @@ _GL_CXXALIAS_RPL (putchar, int, (int c)); # else _GL_CXXALIAS_SYS (putchar, int, (int c)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (putchar); -# endif #endif #if @GNULIB_PUTS@ @@ -1174,25 +914,7 @@ _GL_CXXALIAS_RPL (puts, int, (const char *string)); # else _GL_CXXALIAS_SYS (puts, int, (const char *string)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (puts); -# endif -#endif - -#if @GNULIB_MDA_PUTW@ -/* On native Windows, map 'putw' to '_putw', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::putw always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putw -# define putw _putw -# endif -_GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (putw); #endif #if @GNULIB_REMOVE@ @@ -1206,9 +928,7 @@ _GL_CXXALIAS_RPL (remove, int, (const char *name)); # else _GL_CXXALIAS_SYS (remove, int, (const char *name)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (remove); -# endif #elif defined GNULIB_POSIXCHECK # undef remove /* Assume remove is always declared. */ @@ -1231,9 +951,7 @@ _GL_CXXALIAS_RPL (rename, int, _GL_CXXALIAS_SYS (rename, int, (const char *old_filename, const char *new_filename)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (rename); -# endif #elif defined GNULIB_POSIXCHECK # undef rename /* Assume rename is always declared. */ @@ -1272,35 +990,33 @@ _GL_WARN_ON_USE (renameat, "renameat is not portable - " #if @GNULIB_SCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ -# if defined __GNUC__ || defined __clang__ +# if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf /* Don't break __attribute__((format(scanf,M,N))). */ # define scanf __scanf__ # endif _GL_FUNCDECL_RPL_1 (__scanf__, int, - (const char *restrict format, ...) + (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); +_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf # define scanf rpl_scanf # endif -_GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...) +_GL_FUNCDECL_RPL (scanf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); +_GL_CXXALIAS_RPL (scanf, int, (const char *format, ...)); # endif # else -_GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...)); +_GL_CXXALIAS_SYS (scanf, int, (const char *format, ...)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (scanf); -# endif #endif #if @GNULIB_SNPRINTF@ @@ -1308,30 +1024,23 @@ _GL_CXXALIASWARN (scanf); # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define snprintf rpl_snprintf # endif -# define GNULIB_overrides_snprintf 1 _GL_FUNCDECL_RPL (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) + (char *str, size_t size, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...)); + (char *str, size_t size, const char *format, ...)); # else # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) + (char *str, size_t size, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...)); + (char *str, size_t size, const char *format, ...)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (snprintf); -# endif #elif defined GNULIB_POSIXCHECK # undef snprintf # if HAVE_RAW_DECL_SNPRINTF @@ -1354,20 +1063,14 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define sprintf rpl_sprintf # endif -# define GNULIB_overrides_sprintf 1 -_GL_FUNCDECL_RPL (sprintf, int, - (char *restrict str, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (sprintf, int, - (char *restrict str, const char *restrict format, ...)); +_GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); # else -_GL_CXXALIAS_SYS (sprintf, int, - (char *restrict str, const char *restrict format, ...)); +_GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (sprintf); -# endif #elif defined GNULIB_POSIXCHECK # undef sprintf /* Assume sprintf is always declared. */ @@ -1376,53 +1079,22 @@ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " "POSIX compliance"); #endif -#if @GNULIB_MDA_TEMPNAM@ -/* On native Windows, map 'tempnam' to '_tempnam', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::tempnam always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tempnam -# define tempnam _tempnam -# endif -_GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix)); -# else -_GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix)); -# endif -_GL_CXXALIASWARN (tempnam); -#endif - #if @GNULIB_TMPFILE@ # if @REPLACE_TMPFILE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define tmpfile rpl_tmpfile # endif -_GL_FUNCDECL_RPL (tmpfile, FILE *, (void) - _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +_GL_FUNCDECL_RPL (tmpfile, FILE *, (void)); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (tmpfile, FILE *, (void) - _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (tmpfile); -# endif -#else -# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined tmpfile -/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (tmpfile, FILE *, (void) - _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef tmpfile -# if HAVE_RAW_DECL_TMPFILE +#elif defined GNULIB_POSIXCHECK +# undef tmpfile +# if HAVE_RAW_DECL_TMPFILE _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " "use gnulib module tmpfile for portability"); -# endif # endif #endif @@ -1435,10 +1107,9 @@ _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define asprintf rpl_asprintf # endif -# define GNULIB_overrides_asprintf _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); @@ -1446,7 +1117,7 @@ _GL_CXXALIAS_RPL (asprintf, int, # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, @@ -1457,10 +1128,9 @@ _GL_CXXALIASWARN (asprintf); # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vasprintf rpl_vasprintf # endif -# define GNULIB_overrides_vasprintf 1 _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); @@ -1468,7 +1138,7 @@ _GL_CXXALIAS_RPL (vasprintf, int, # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, @@ -1482,27 +1152,22 @@ _GL_CXXALIASWARN (vasprintf); # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vdprintf rpl_vdprintf # endif -_GL_FUNCDECL_RPL (vdprintf, int, - (int fd, const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (vdprintf, int, - (int fd, const char *restrict format, va_list args)); +_GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); # else # if !@HAVE_VDPRINTF@ -_GL_FUNCDECL_SYS (vdprintf, int, - (int fd, const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((2))); +_GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) + _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be __va_list args. */ _GL_CXXALIAS_SYS_CAST (vdprintf, int, - (int fd, const char *restrict format, va_list args)); + (int fd, const char *format, va_list args)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (vdprintf); -# endif #elif defined GNULIB_POSIXCHECK # undef vdprintf # if HAVE_RAW_DECL_VDPRINTF @@ -1519,32 +1184,23 @@ _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " # endif # define GNULIB_overrides_vfprintf 1 # if @GNULIB_VFPRINTF_POSIX@ -_GL_FUNCDECL_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); +_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) + _GL_ARG_NONNULL ((1, 2))); # else -_GL_FUNCDECL_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) - _GL_ARG_NONNULL ((1, 2))); +_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) + _GL_ARG_NONNULL ((1, 2))); # endif -_GL_CXXALIAS_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args)); +_GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args)); + (FILE *fp, const char *format, va_list args)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (vfprintf); -# endif #endif #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vfprintf @@ -1563,21 +1219,16 @@ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " # define vfscanf rpl_vfscanf # endif _GL_FUNCDECL_RPL (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args) + (FILE *stream, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args)); + (FILE *stream, const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args)); + (FILE *stream, const char *format, va_list args)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (vfscanf); -# endif #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ @@ -1588,25 +1239,22 @@ _GL_CXXALIASWARN (vfscanf); # endif # define GNULIB_overrides_vprintf 1 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ -_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) +_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0) _GL_ARG_NONNULL ((1))); # else -_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) +_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); # endif -_GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args)); +_GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ -_GL_CXXALIAS_SYS_CAST (vprintf, int, - (const char *restrict format, va_list args)); +_GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (vprintf); -# endif #endif #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vprintf @@ -1624,16 +1272,14 @@ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " # undef vscanf # define vscanf rpl_vscanf # endif -_GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args) +_GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); +_GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args)); # else -_GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); +_GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (vscanf); -# endif #endif #if @GNULIB_VSNPRINTF@ @@ -1641,30 +1287,23 @@ _GL_CXXALIASWARN (vscanf); # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsnprintf rpl_vsnprintf # endif -# define GNULIB_overrides_vsnprintf 1 _GL_FUNCDECL_RPL (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) + (char *str, size_t size, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args)); + (char *str, size_t size, const char *format, va_list args)); # else # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) + (char *str, size_t size, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args)); + (char *str, size_t size, const char *format, va_list args)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (vsnprintf); -# endif #elif defined GNULIB_POSIXCHECK # undef vsnprintf # if HAVE_RAW_DECL_VSNPRINTF @@ -1678,26 +1317,20 @@ _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsprintf rpl_vsprintf # endif -# define GNULIB_overrides_vsprintf 1 _GL_FUNCDECL_RPL (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + (char *str, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args)); + (char *str, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args)); + (char *str, const char *format, va_list args)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (vsprintf); -# endif #elif defined GNULIB_POSIXCHECK # undef vsprintf /* Assume vsprintf is always declared. */ diff --git a/gl/stdlib.in.h b/gl/stdlib.in.h index b79e5f7..c955248 100644 --- a/gl/stdlib.in.h +++ b/gl/stdlib.in.h @@ -1,19 +1,19 @@ /* A GNU-like . - Copyright (C) 1995, 2001-2004, 2006-2023 Free Software Foundation, Inc. + Copyright (C) 1995, 2001-2004, 2006-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -47,14 +47,11 @@ /* Solaris declares getloadavg() in . */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ -/* OpenIndiana has a bug: must be included before - . */ -# include # include #endif -/* Native Windows platforms declare _mktemp() in . */ -#if defined _WIN32 && !defined __CYGWIN__ +/* Native Windows platforms declare mktemp() in . */ +#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif @@ -90,52 +87,20 @@ struct random_data # endif #endif -#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) +#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* On Mac OS X 10.3, only declares mkstemp. */ /* On Mac OS X 10.5, only declares mkstemps. */ -/* On Mac OS X 10.13, only declares mkostemp and mkostemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definition of _Noreturn is copied here. */ @@ -178,73 +143,6 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " #endif -#if @GNULIB_FREE_POSIX@ -# if @REPLACE_FREE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef free -# define free rpl_free -# endif -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_FUNCDECL_RPL (free, void, (void *ptr) throw ()); -# else -_GL_FUNCDECL_RPL (free, void, (void *ptr)); -# endif -_GL_CXXALIAS_RPL (free, void, (void *ptr)); -# else -_GL_CXXALIAS_SYS (free, void, (void *ptr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (free); -# endif -#elif defined GNULIB_POSIXCHECK -# undef free -/* Assume free is always declared. */ -_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - " - "use gnulib module free for portability"); -#endif - - -/* Allocate memory with indefinite extent and specified alignment. */ -#if @GNULIB_ALIGNED_ALLOC@ -# if @REPLACE_ALIGNED_ALLOC@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef aligned_alloc -# define aligned_alloc rpl_aligned_alloc -# endif -_GL_FUNCDECL_RPL (aligned_alloc, void *, - (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); -# else -# if @HAVE_ALIGNED_ALLOC@ -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); -# endif -# endif -# if (__GLIBC__ >= 2) && @HAVE_ALIGNED_ALLOC@ -_GL_CXXALIASWARN (aligned_alloc); -# endif -#else -# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc -/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef aligned_alloc -# if HAVE_RAW_DECL_ALIGNED_ALLOC -_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - " - "use gnulib module aligned_alloc for portability"); -# endif -# endif -#endif - #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ @@ -264,41 +162,22 @@ _GL_WARN_ON_USE (atoll, "atoll is unportable - " #endif #if @GNULIB_CALLOC_POSIX@ -# if (@GNULIB_CALLOC_POSIX@ && @REPLACE_CALLOC_FOR_CALLOC_POSIX@) \ - || (@GNULIB_CALLOC_GNU@ && @REPLACE_CALLOC_FOR_CALLOC_GNU@) +# if @REPLACE_CALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif -_GL_FUNCDECL_RPL (calloc, void *, - (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (calloc); -# endif -#else -# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc -/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef calloc +#elif defined GNULIB_POSIXCHECK +# undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); -# endif #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ @@ -306,108 +185,23 @@ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif -_GL_FUNCDECL_RPL (canonicalize_file_name, char *, - (const char *name) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) + _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else -# if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11 -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# if !@HAVE_CANONICALIZE_FILE_NAME@ +_GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) + _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif -# ifndef GNULIB_defined_canonicalize_file_name -# define GNULIB_defined_canonicalize_file_name \ - (!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@) -# endif _GL_CXXALIASWARN (canonicalize_file_name); -#else -# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name -/* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or - rpl_free. */ -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef canonicalize_file_name -# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME +#elif defined GNULIB_POSIXCHECK +# undef canonicalize_file_name +# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); -# endif -# endif -#endif - -#if @GNULIB_MDA_ECVT@ -/* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ecvt -# define ecvt _ecvt -# endif -_GL_CXXALIAS_MDA (ecvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# else -# if @HAVE_DECL_ECVT@ -_GL_CXXALIAS_SYS (ecvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_ECVT@ -_GL_CXXALIASWARN (ecvt); -# endif -#endif - -#if @GNULIB_MDA_FCVT@ -/* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcvt -# define fcvt _fcvt -# endif -_GL_CXXALIAS_MDA (fcvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# else -# if @HAVE_DECL_FCVT@ -_GL_CXXALIAS_SYS (fcvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCVT@ -_GL_CXXALIASWARN (fcvt); -# endif -#endif - -#if @GNULIB_MDA_GCVT@ -/* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gcvt -# define gcvt _gcvt -# endif -_GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf)); -# else -# if @HAVE_DECL_GCVT@ -_GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_GCVT@ -_GL_CXXALIASWARN (gcvt); # endif #endif @@ -440,8 +234,8 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. - For more details see the POSIX specification. - https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ + For more details see the POSIX:2001 specification. + http://www.opengroup.org/susv3xsh/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) @@ -479,42 +273,23 @@ _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ -# if (@GNULIB_MALLOC_POSIX@ && @REPLACE_MALLOC_FOR_MALLOC_POSIX@) \ - || (@GNULIB_MALLOC_GNU@ && @REPLACE_MALLOC_FOR_MALLOC_GNU@) +# if @REPLACE_MALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif -_GL_FUNCDECL_RPL (malloc, void *, - (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (malloc); -# endif -#else -# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc -/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC -# undef malloc +#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC +# undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); -# endif #endif /* Convert a multibyte character to a wide character. */ @@ -524,27 +299,12 @@ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " # undef mbtowc # define mbtowc rpl_mbtowc # endif -_GL_FUNCDECL_RPL (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -_GL_CXXALIAS_RPL (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); +_GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); +_GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # else -# if !@HAVE_MBTOWC@ -_GL_FUNCDECL_SYS (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -# endif -_GL_CXXALIAS_SYS (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); +_GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbtowc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbtowc -# if HAVE_RAW_DECL_MBTOWC -_GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " - "use gnulib module mbtowc for portability"); -# endif #endif #if @GNULIB_MKDTEMP@ @@ -679,51 +439,6 @@ _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " # endif #endif -#if @GNULIB_MDA_MKTEMP@ -/* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::mktemp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mktemp -# define mktemp _mktemp -# endif -_GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/)); -# else -_GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/)); -# endif -_GL_CXXALIASWARN (mktemp); -#endif - -/* Allocate memory with indefinite extent and specified alignment. */ -#if @GNULIB_POSIX_MEMALIGN@ -# if @REPLACE_POSIX_MEMALIGN@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef posix_memalign -# define posix_memalign rpl_posix_memalign -# endif -_GL_FUNCDECL_RPL (posix_memalign, int, - (void **memptr, size_t alignment, size_t size) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (posix_memalign, int, - (void **memptr, size_t alignment, size_t size)); -# else -# if @HAVE_POSIX_MEMALIGN@ -_GL_CXXALIAS_SYS (posix_memalign, int, - (void **memptr, size_t alignment, size_t size)); -# endif -# endif -# if @HAVE_POSIX_MEMALIGN@ -_GL_CXXALIASWARN (posix_memalign); -# endif -#elif defined GNULIB_POSIXCHECK -# undef posix_memalign -# if HAVE_RAW_DECL_POSIX_MEMALIGN -_GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " - "use gnulib module posix_memalign for portability"); -# endif -#endif - #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ @@ -782,9 +497,6 @@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif -# ifndef GNULIB_defined_ptsname_r -# define GNULIB_defined_ptsname_r (!@HAVE_PTSNAME_R@ || @REPLACE_PTSNAME_R@) -# endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r @@ -802,76 +514,10 @@ _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv _putenv -# endif -_GL_CXXALIAS_MDA (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); -#elif @GNULIB_MDA_PUTENV@ -/* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::putenv always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv _putenv -# endif -/* Need to cast, because on mingw, the parameter is either - 'const char *string' or 'char *string'. */ -_GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); -# else -_GL_CXXALIAS_SYS (putenv, int, (char *string)); -# endif -_GL_CXXALIASWARN (putenv); -#endif - -#if @GNULIB_QSORT_R@ -/* Sort an array of NMEMB elements, starting at address BASE, each element - occupying SIZE bytes, in ascending order according to the comparison - function COMPARE. */ -# ifdef __cplusplus -extern "C" { -# endif -# if !GNULIB_defined_qsort_r_fn_types -typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *); -# define GNULIB_defined_qsort_r_fn_types 1 -# endif -# ifdef __cplusplus -} -# endif -# if @REPLACE_QSORT_R@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef qsort_r -# define qsort_r rpl_qsort_r -# endif -_GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg) _GL_ARG_NONNULL ((1, 4))); -_GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg)); -# else -# if !@HAVE_QSORT_R@ -_GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg) _GL_ARG_NONNULL ((1, 4))); -# endif -_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg)); -# endif -_GL_CXXALIASWARN (qsort_r); -#elif defined GNULIB_POSIXCHECK -# undef qsort_r -# if HAVE_RAW_DECL_QSORT_R -_GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " - "use gnulib module qsort_r for portability"); -# endif #endif @@ -885,21 +531,10 @@ _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " #if @GNULIB_RANDOM@ -# if @REPLACE_RANDOM@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef random -# define random rpl_random -# endif -_GL_FUNCDECL_RPL (random, long, (void)); -_GL_CXXALIAS_RPL (random, long, (void)); -# else -# if !@HAVE_RANDOM@ +# if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); -# endif -/* Need to cast, because on Haiku, the return type is - int. */ -_GL_CXXALIAS_SYS_CAST (random, long, (void)); # endif +_GL_CXXALIAS_SYS (random, long, (void)); _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random @@ -910,21 +545,10 @@ _GL_WARN_ON_USE (random, "random is unportable - " #endif #if @GNULIB_RANDOM@ -# if @REPLACE_RANDOM@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef srandom -# define srandom rpl_srandom -# endif -_GL_FUNCDECL_RPL (srandom, void, (unsigned int seed)); -_GL_CXXALIAS_RPL (srandom, void, (unsigned int seed)); -# else -# if !@HAVE_RANDOM@ +# if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); -# endif -/* Need to cast, because on FreeBSD, the first parameter is - unsigned long seed. */ -_GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); # endif +_GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom @@ -935,56 +559,31 @@ _GL_WARN_ON_USE (srandom, "srandom is unportable - " #endif #if @GNULIB_RANDOM@ -# if @REPLACE_INITSTATE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef initstate -# define initstate rpl_initstate -# endif -_GL_FUNCDECL_RPL (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size)); -# else -# if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@ +# if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); -# endif -/* Need to cast, because on FreeBSD, the first parameter is - unsigned long seed. */ -_GL_CXXALIAS_SYS_CAST (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size)); # endif +_GL_CXXALIAS_SYS (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size)); _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate -# if HAVE_RAW_DECL_INITSTATE +# if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ -# if @REPLACE_SETSTATE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setstate -# define setstate rpl_setstate -# endif -_GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (setstate, char *, (char *arg_state)); -# else -# if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@ +# if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter - is const char *arg_state. */ -_GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); # endif +_GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate -# if HAVE_RAW_DECL_SETSTATE +# if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif @@ -1065,11 +664,9 @@ _GL_FUNCDECL_SYS (initstate_r, int, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif -/* Need to cast, because on Haiku, the third parameter is - unsigned long buf_size. */ -_GL_CXXALIAS_SYS_CAST (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state)); +_GL_CXXALIAS_SYS (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK @@ -1097,10 +694,8 @@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif -/* Need to cast, because on Haiku, the first parameter is - void *arg_state. */ -_GL_CXXALIAS_SYS_CAST (setstate_r, int, - (char *arg_state, struct random_data *rand_state)); +_GL_CXXALIAS_SYS (setstate_r, int, + (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK @@ -1113,67 +708,23 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " #if @GNULIB_REALLOC_POSIX@ -# if (@GNULIB_REALLOC_POSIX@ && @REPLACE_REALLOC_FOR_REALLOC_POSIX@) \ - || (@GNULIB_REALLOC_GNU@ && @REPLACE_REALLOC_FOR_REALLOC_GNU@) +# if @REPLACE_REALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif -_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); -# endif _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (realloc); -# endif -#else -# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc -/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC -# undef realloc +#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC +# undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); -# endif -#endif - - -#if @GNULIB_REALLOCARRAY@ -# if @REPLACE_REALLOCARRAY@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef reallocarray -# define reallocarray rpl_reallocarray -# endif -_GL_FUNCDECL_RPL (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -_GL_CXXALIAS_RPL (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# else -# if ! @HAVE_REALLOCARRAY@ -_GL_FUNCDECL_SYS (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# endif -_GL_CXXALIAS_SYS (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# endif -_GL_CXXALIASWARN (reallocarray); -#elif defined GNULIB_POSIXCHECK -# undef reallocarray -# if HAVE_RAW_DECL_REALLOCARRAY -_GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " - "use gnulib module reallocarray for portability"); -# endif #endif #if @GNULIB_REALPATH@ @@ -1181,19 +732,15 @@ _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif -_GL_FUNCDECL_RPL (realpath, char *, - (const char *restrict name, char *restrict resolved) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (realpath, char *, - (const char *restrict name, char *restrict resolved)); +_GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved)); # else # if !@HAVE_REALPATH@ -_GL_FUNCDECL_SYS (realpath, char *, - (const char *restrict name, char *restrict resolved) - _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved) + _GL_ARG_NONNULL ((1))); # endif -_GL_CXXALIAS_SYS (realpath, char *, - (const char *restrict name, char *restrict resolved)); +_GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK @@ -1275,24 +822,17 @@ _GL_WARN_ON_USE (setenv, "setenv is unportable - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif -# define GNULIB_defined_strtod_function 1 -_GL_FUNCDECL_RPL (strtod, double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtod, double, - (const char *restrict str, char **restrict endp)); +_GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); # else # if !@HAVE_STRTOD@ -_GL_FUNCDECL_SYS (strtod, double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp) + _GL_ARG_NONNULL ((1))); # endif -_GL_CXXALIAS_SYS (strtod, double, - (const char *restrict str, char **restrict endp)); +_GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (strtod); -# endif #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD @@ -1301,79 +841,6 @@ _GL_WARN_ON_USE (strtod, "strtod is unportable - " # endif #endif -#if @GNULIB_STRTOLD@ - /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ -# if @REPLACE_STRTOLD@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtold rpl_strtold -# endif -# define GNULIB_defined_strtold_function 1 -_GL_FUNCDECL_RPL (strtold, long double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtold, long double, - (const char *restrict str, char **restrict endp)); -# else -# if !@HAVE_STRTOLD@ -_GL_FUNCDECL_SYS (strtold, long double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtold, long double, - (const char *restrict str, char **restrict endp)); -# endif -_GL_CXXALIASWARN (strtold); -#elif defined GNULIB_POSIXCHECK -# undef strtold -# if HAVE_RAW_DECL_STRTOLD -_GL_WARN_ON_USE (strtold, "strtold is unportable - " - "use gnulib module strtold for portability"); -# endif -#endif - -#if @GNULIB_STRTOL@ -/* Parse a signed integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set - to ERANGE. */ -# if @REPLACE_STRTOL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtol rpl_strtol -# endif -# define GNULIB_defined_strtol_function 1 -_GL_FUNCDECL_RPL (strtol, long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtol, long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !@HAVE_STRTOL@ -_GL_FUNCDECL_SYS (strtol, long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtol, long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strtol); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtol -# if HAVE_RAW_DECL_STRTOL -_GL_WARN_ON_USE (strtol, "strtol is unportable - " - "use gnulib module strtol for portability"); -# endif -#endif - #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, @@ -1383,29 +850,13 @@ _GL_WARN_ON_USE (strtol, "strtol is unportable - " stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ -# if @REPLACE_STRTOLL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoll rpl_strtoll -# endif -# define GNULIB_defined_strtoll_function 1 -_GL_FUNCDECL_RPL (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !@HAVE_STRTOLL@ +# if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base) + (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base)); # endif +_GL_CXXALIAS_SYS (strtoll, long long, + (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll @@ -1415,48 +866,6 @@ _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " # endif #endif -#if @GNULIB_STRTOUL@ -/* Parse an unsigned integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */ -# if @REPLACE_STRTOUL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoul rpl_strtoul -# endif -# define GNULIB_defined_strtoul_function 1 -_GL_FUNCDECL_RPL (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !@HAVE_STRTOUL@ -_GL_FUNCDECL_SYS (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strtoul); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtoul -# if HAVE_RAW_DECL_STRTOUL -_GL_WARN_ON_USE (strtoul, "strtoul is unportable - " - "use gnulib module strtoul for portability"); -# endif -#endif - #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, @@ -1466,29 +875,13 @@ _GL_WARN_ON_USE (strtoul, "strtoul is unportable - " stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ -# if @REPLACE_STRTOULL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoull rpl_strtoull -# endif -# define GNULIB_defined_strtoull_function 1 -_GL_FUNCDECL_RPL (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !@HAVE_STRTOULL@ +# if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base) + (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base)); # endif +_GL_CXXALIAS_SYS (strtoull, unsigned long long, + (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull @@ -1552,9 +945,7 @@ _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctomb); -# endif #endif diff --git a/gl/str-two-way.h b/gl/str-two-way.h index dfe7022..707145d 100644 --- a/gl/str-two-way.h +++ b/gl/str-two-way.h @@ -1,24 +1,24 @@ /* Byte-wise substring search, using the Two-Way algorithm. - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Eric Blake , 2008. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ /* Before including this file, you need to include and , and define: - RETURN_TYPE A macro that expands to the return type. + RESULT_TYPE A macro that expands to the return type. AVAILABLE(h, h_l, j, n_l) A macro that returns nonzero if there are at least N_L bytes left starting at H[J]. @@ -49,9 +49,9 @@ character shift table similar to the Boyer-Moore algorithm to achieve improved (potentially sub-linear) performance. - See https://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260, - https://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm, - https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf + See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260, + http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm, + http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf */ /* Point at which computing a bad-byte shift table is likely to be @@ -231,7 +231,7 @@ critical_factorization (const unsigned char *needle, size_t needle_len, most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ -static RETURN_TYPE _GL_ATTRIBUTE_PURE +static RETURN_TYPE two_way_short_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { @@ -325,7 +325,7 @@ two_way_short_needle (const unsigned char *haystack, size_t haystack_len, If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and sublinear performance is not possible. */ -static RETURN_TYPE _GL_ATTRIBUTE_PURE +static RETURN_TYPE two_way_long_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { diff --git a/gl/strcasecmp.c b/gl/strcasecmp.c index 3a5ce3e..0f0a742 100644 --- a/gl/strcasecmp.c +++ b/gl/strcasecmp.c @@ -1,18 +1,18 @@ /* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #include @@ -58,5 +58,5 @@ strcasecmp (const char *s1, const char *s2) /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ - return _GL_CMP (c1, c2); + return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } diff --git a/gl/strcasestr.c b/gl/strcasestr.c index 8eea435..53474a4 100644 --- a/gl/strcasestr.c +++ b/gl/strcasestr.c @@ -1,19 +1,19 @@ /* Case-insensitive searching in a string. - Copyright (C) 2005-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2005. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #include @@ -21,6 +21,7 @@ #include #include +#include #include #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) diff --git a/gl/streq.h b/gl/streq.h index 712948e..12c1867 100644 --- a/gl/streq.h +++ b/gl/streq.h @@ -1,18 +1,18 @@ /* Optimized string comparison. - Copyright (C) 2001-2002, 2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Bruno Haible . */ @@ -29,7 +29,7 @@ /* Help GCC to generate good code for string comparisons with immediate strings. */ -#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ +#if defined (__GNUC__) && defined (__OPTIMIZE__) static inline int streq9 (const char *s1, const char *s2) diff --git a/gl/strerror-override.c b/gl/strerror-override.c index cddaa4a..d0ed2fb 100644 --- a/gl/strerror-override.c +++ b/gl/strerror-override.c @@ -1,19 +1,19 @@ /* strerror-override.c --- POSIX compatible system error routine - Copyright (C) 2010-2023 Free Software Foundation, Inc. + Copyright (C) 2010-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ @@ -29,8 +29,6 @@ # endif #endif -#if !GNULIB_defined_strerror_override_macro - /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ const char * @@ -39,12 +37,12 @@ strerror_override (int errnum) /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ switch (errnum) { -# if REPLACE_STRERROR_0 +#if REPLACE_STRERROR_0 case 0: return "Success"; -# endif +#endif -# if GNULIB_defined_ESOCK /* native Windows platforms with older */ +#if GNULIB_defined_ESOCK /* native Windows platforms with older */ case EINPROGRESS: return "Operation now in progress"; case EALREADY: @@ -91,8 +89,8 @@ strerror_override (int errnum) return "No route to host"; case EWOULDBLOCK: return "Operation would block"; -# endif -# if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ +#endif +#if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ case ETXTBSY: return "Text file busy"; case ENODATA: @@ -105,8 +103,8 @@ strerror_override (int errnum) return "Timer expired"; case EOTHER: return "Other error"; -# endif -# if GNULIB_defined_EWINSOCK /* native Windows platforms */ +#endif +#if GNULIB_defined_EWINSOCK /* native Windows platforms */ case ESOCKTNOSUPPORT: return "Socket type not supported"; case EPFNOSUPPORT: @@ -127,7 +125,7 @@ strerror_override (int errnum) return "Stale NFS file handle"; case EREMOTE: return "Object is remote"; -# if HAVE_WINSOCK2_H +# if HAVE_WINSOCK2_H /* WSA_INVALID_HANDLE maps to EBADF */ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ /* WSA_INVALID_PARAMETER maps to EINVAL */ @@ -215,92 +213,90 @@ strerror_override (int errnum) case WSANO_DATA: return "Valid name, no data record of requested type"; /* WSA_QOS_* omitted */ -# endif # endif +#endif -# if GNULIB_defined_ENOMSG +#if GNULIB_defined_ENOMSG case ENOMSG: return "No message of desired type"; -# endif +#endif -# if GNULIB_defined_EIDRM +#if GNULIB_defined_EIDRM case EIDRM: return "Identifier removed"; -# endif +#endif -# if GNULIB_defined_ENOLINK +#if GNULIB_defined_ENOLINK case ENOLINK: return "Link has been severed"; -# endif +#endif -# if GNULIB_defined_EPROTO +#if GNULIB_defined_EPROTO case EPROTO: return "Protocol error"; -# endif +#endif -# if GNULIB_defined_EMULTIHOP +#if GNULIB_defined_EMULTIHOP case EMULTIHOP: return "Multihop attempted"; -# endif +#endif -# if GNULIB_defined_EBADMSG +#if GNULIB_defined_EBADMSG case EBADMSG: return "Bad message"; -# endif +#endif -# if GNULIB_defined_EOVERFLOW +#if GNULIB_defined_EOVERFLOW case EOVERFLOW: return "Value too large for defined data type"; -# endif +#endif -# if GNULIB_defined_ENOTSUP +#if GNULIB_defined_ENOTSUP case ENOTSUP: return "Not supported"; -# endif +#endif -# if GNULIB_defined_ENETRESET +#if GNULIB_defined_ENETRESET case ENETRESET: return "Network dropped connection on reset"; -# endif +#endif -# if GNULIB_defined_ECONNABORTED +#if GNULIB_defined_ECONNABORTED case ECONNABORTED: return "Software caused connection abort"; -# endif +#endif -# if GNULIB_defined_ESTALE +#if GNULIB_defined_ESTALE case ESTALE: return "Stale NFS file handle"; -# endif +#endif -# if GNULIB_defined_EDQUOT +#if GNULIB_defined_EDQUOT case EDQUOT: return "Disk quota exceeded"; -# endif +#endif -# if GNULIB_defined_ECANCELED +#if GNULIB_defined_ECANCELED case ECANCELED: return "Operation canceled"; -# endif +#endif -# if GNULIB_defined_EOWNERDEAD +#if GNULIB_defined_EOWNERDEAD case EOWNERDEAD: return "Owner died"; -# endif +#endif -# if GNULIB_defined_ENOTRECOVERABLE +#if GNULIB_defined_ENOTRECOVERABLE case ENOTRECOVERABLE: return "State not recoverable"; -# endif +#endif -# if GNULIB_defined_EILSEQ +#if GNULIB_defined_EILSEQ case EILSEQ: return "Invalid or incomplete multibyte or wide character"; -# endif +#endif default: return NULL; } } - -#endif diff --git a/gl/strerror-override.h b/gl/strerror-override.h index 388cc28..3b8f24b 100644 --- a/gl/strerror-override.h +++ b/gl/strerror-override.h @@ -1,19 +1,19 @@ /* strerror-override.h --- POSIX compatible system error routine - Copyright (C) 2010-2023 Free Software Foundation, Inc. + Copyright (C) 2010-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _GL_STRERROR_OVERRIDE_H # define _GL_STRERROR_OVERRIDE_H @@ -48,10 +48,9 @@ || GNULIB_defined_EOWNERDEAD \ || GNULIB_defined_ENOTRECOVERABLE \ || GNULIB_defined_EILSEQ -extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; +extern const char *strerror_override (int errnum); # else # define strerror_override(ignored) NULL -# define GNULIB_defined_strerror_override_macro 1 # endif #endif /* _GL_STRERROR_OVERRIDE_H */ diff --git a/gl/strerror.c b/gl/strerror.c index d754f60..80a2f2e 100644 --- a/gl/strerror.c +++ b/gl/strerror.c @@ -1,19 +1,19 @@ /* strerror.c --- POSIX compatible system error routine - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include @@ -27,6 +27,7 @@ #include "intprops.h" #include "strerror-override.h" +#include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf @@ -54,7 +55,7 @@ strerror (int n) if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; - static_assert (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); + verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; @@ -65,6 +66,5 @@ strerror (int n) if (sizeof buf <= len) abort (); - memcpy (buf, msg, len + 1); - return buf; + return memcpy (buf, msg, len + 1); } diff --git a/gl/string.in.h b/gl/string.in.h index e993b2f..d7a6c9c 100644 --- a/gl/string.in.h +++ b/gl/string.in.h @@ -1,46 +1,30 @@ /* A GNU-like . - Copyright (C) 1995-1996, 2001-2023 Free Software Foundation, Inc. + Copyright (C) 1995-1996, 2001-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +#ifndef _@GUARD_PREFIX@_STRING_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ -#if defined _GL_ALREADY_INCLUDING_STRING_H -/* Special invocation convention: - - On OS X/NetBSD we have a sequence of nested includes - -> -> "string.h" - In this situation system _chk variants due to -D_FORTIFY_SOURCE - might be used after any replacements defined here. */ - -#@INCLUDE_NEXT@ @NEXT_STRING_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _@GUARD_PREFIX@_STRING_H - -#define _GL_ALREADY_INCLUDING_STRING_H - /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ -#undef _GL_ALREADY_INCLUDING_STRING_H - #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H @@ -52,6 +36,14 @@ # include #endif +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The attribute __pure__ was added in gcc 2.96. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ +#endif + /* NetBSD 5.0 declares strsignal in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ @@ -59,122 +51,12 @@ # include #endif -/* AIX 7.2 declares ffsl and ffsll in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if ((@GNULIB_FFSL@ || @GNULIB_FFSLL@ || defined GNULIB_POSIXCHECK) \ - && defined _AIX) \ - && ! defined __GLIBC__ -# include -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug */ -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) -# else -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC (free, 1) -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ -/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have - been included yet. */ -#if @GNULIB_FREE_POSIX@ -# if (@REPLACE_FREE@ && !defined free \ - && !(defined __cplusplus && defined GNULIB_NAMESPACE)) -/* We can't do '#define free rpl_free' here. */ -_GL_EXTERN_C void rpl_free (void *); -# undef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) -# else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -# endif -#else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -#endif - -/* Clear a block of memory. The compiler will not delete a call to - this function, even if the block is dead after the call. */ -#if @GNULIB_EXPLICIT_BZERO@ -# if ! @HAVE_EXPLICIT_BZERO@ -_GL_FUNCDECL_SYS (explicit_bzero, void, - (void *__dest, size_t __n) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); -_GL_CXXALIASWARN (explicit_bzero); -#elif defined GNULIB_POSIXCHECK -# undef explicit_bzero -# if HAVE_RAW_DECL_EXPLICIT_BZERO -_GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " - "use gnulib module explicit_bzero for portability"); -# endif -#endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ @@ -193,18 +75,10 @@ _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ -# if @REPLACE_FFSLL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define ffsll rpl_ffsll -# endif -_GL_FUNCDECL_RPL (ffsll, int, (long long int i)); -_GL_CXXALIAS_RPL (ffsll, int, (long long int i)); -# else -# if !@HAVE_FFSLL@ +# if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); -# endif -_GL_CXXALIAS_SYS (ffsll, int, (long long int i)); # endif +_GL_CXXALIAS_SYS (ffsll, int, (long long int i)); _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll @@ -214,30 +88,10 @@ _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); #endif -#if @GNULIB_MDA_MEMCCPY@ -/* On native Windows, map 'memccpy' to '_memccpy', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::memccpy always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef memccpy -# define memccpy _memccpy -# endif -_GL_CXXALIAS_MDA (memccpy, void *, - (void *dest, const void *src, int c, size_t n)); -# else -_GL_CXXALIAS_SYS (memccpy, void *, - (void *dest, const void *src, int c, size_t n)); -# endif -_GL_CXXALIASWARN (memccpy); -#endif - - /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef memchr # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) @@ -245,6 +99,11 @@ _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else +# if ! @HAVE_MEMCHR@ +_GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ @@ -253,12 +112,11 @@ _GL_CXXALIAS_SYS_CAST2 (memchr, void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n) throw ()); + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, - (void const *__s, int __c, size_t __n) throw ()); -# elif __GLIBC__ >= 2 + (void const *__s, int __c, size_t __n)); +# else _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK @@ -339,10 +197,9 @@ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t) throw ()); -_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t) throw ()); + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); +_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif @@ -354,23 +211,6 @@ _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " # endif #endif -/* Overwrite a block of memory. The compiler will not optimize - effects away, even if the block is dead after the call. */ -#if @GNULIB_MEMSET_EXPLICIT@ -# if ! @HAVE_MEMSET_EXPLICIT@ -_GL_FUNCDECL_SYS (memset_explicit, void *, - (void *__dest, int __c, size_t __n) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n)); -_GL_CXXALIASWARN (memset_explicit); -#elif defined GNULIB_POSIXCHECK -# undef memset_explicit -# if HAVE_RAW_DECL_MEMSET_EXPLICIT -_GL_WARN_ON_USE (memset_explicit, "memset_explicit is unportable - " - "use gnulib module memset_explicit for portability"); -# endif -#endif - /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ @@ -387,11 +227,9 @@ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in) throw ()); -_GL_CXXALIASWARN1 (rawmemchr, void const *, - (void const *__s, int __c_in) throw ()); + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); +_GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif @@ -461,11 +299,9 @@ _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ -_GL_WARN_ON_USE_CXX (strchr, - const char *, char *, (const char *, int), - "strchr cannot work correctly on character strings " - "in some multibyte locales - " - "use mbschr if you care about internationalization"); +_GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ @@ -493,11 +329,9 @@ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in) throw ()); -_GL_CXXALIASWARN1 (strchrnul, char const *, - (char const *__s, int __c_in) throw ()); + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); +_GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif @@ -516,62 +350,24 @@ _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " # undef strdup # define strdup rpl_strdup # endif -_GL_FUNCDECL_RPL (strdup, char *, - (char const *__s) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup _strdup -# endif -_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif -# if (!@HAVE_DECL_STRDUP@ || __GNUC__ >= 11) && !defined strdup -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# if !(@HAVE_DECL_STRDUP@ || defined strdup) +_GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); -#else -# if __GNUC__ >= 11 && !defined strdup -/* For -Wmismatched-dealloc: Associate strdup with free or rpl_free. */ -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef strdup -# if HAVE_RAW_DECL_STRDUP +#elif defined GNULIB_POSIXCHECK +# undef strdup +# if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); -# endif -# elif @GNULIB_MDA_STRDUP@ -/* On native Windows, map 'creat' to '_creat', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::strdup always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup _strdup -# endif -_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); -# else -# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup -# undef strdup -# endif -_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); -# endif -_GL_CXXALIASWARN (strdup); # endif #endif @@ -582,18 +378,13 @@ _GL_CXXALIASWARN (strdup); # undef strncat # define strncat rpl_strncat # endif -_GL_FUNCDECL_RPL (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n)); +_GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n)); # else -_GL_CXXALIAS_SYS (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n)); +_GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (strncat); -# endif #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT @@ -609,35 +400,22 @@ _GL_WARN_ON_USE (strncat, "strncat is unportable - " # undef strndup # define strndup rpl_strndup # endif -_GL_FUNCDECL_RPL (strndup, char *, - (char const *__s, size_t __n) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); +_GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); # else -# if !@HAVE_DECL_STRNDUP@ || (__GNUC__ >= 11 && !defined strndup) -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# if ! @HAVE_DECL_STRNDUP@ +_GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) + _GL_ARG_NONNULL ((1))); # endif -_GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); +_GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n)); # endif _GL_CXXALIASWARN (strndup); -#else -# if __GNUC__ >= 11 && !defined strndup -/* For -Wmismatched-dealloc: Associate strndup with free or rpl_free. */ -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef strndup -# if HAVE_RAW_DECL_STRNDUP +#elif defined GNULIB_POSIXCHECK +# undef strndup +# if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); -# endif # endif #endif @@ -650,17 +428,17 @@ _GL_WARN_ON_USE (strndup, "strndup is unportable - " # undef strnlen # define strnlen rpl_strnlen # endif -_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) +_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); +_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ -_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) +_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif -_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); +_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK @@ -697,12 +475,11 @@ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept) throw ()); + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, - (char const *__s, char const *__accept) throw ()); -# elif __GLIBC__ >= 2 + (char const *__s, char const *__accept)); +# else _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK @@ -711,19 +488,15 @@ _GL_CXXALIASWARN (strpbrk); locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk -_GL_WARN_ON_USE_CXX (strpbrk, - const char *, char *, (const char *, const char *), - "strpbrk cannot work correctly on character strings " - "in multibyte locales - " - "use mbspbrk if you care about internationalization"); +_GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " + "in multibyte locales - " + "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK -_GL_WARN_ON_USE_CXX (strpbrk, - const char *, char *, (const char *, const char *), - "strpbrk is unportable - " - "use gnulib module strpbrk for portability"); +_GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " + "use gnulib module strpbrk for portability"); # endif #endif @@ -742,11 +515,9 @@ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ -_GL_WARN_ON_USE_CXX (strrchr, - const char *, char *, (const char *, int), - "strrchr cannot work correctly on character strings " - "in some multibyte locales - " - "use mbsrchr if you care about internationalization"); +_GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. @@ -806,13 +577,11 @@ _GL_CXXALIAS_SYS_CAST2 (strstr, const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strstr, char *, - (char *haystack, const char *needle) throw ()); + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, - (const char *haystack, const char *needle) throw ()); -# elif __GLIBC__ >= 2 + (const char *haystack, const char *needle)); +# else _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK @@ -857,12 +626,10 @@ _GL_CXXALIAS_SYS_CAST2 (strcasestr, const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strcasestr, char *, - (char *haystack, const char *needle) throw ()); + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, - (const char *haystack, const char *needle) throw ()); + (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif @@ -893,7 +660,7 @@ _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: - https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html + http://www.opengroup.org/susv3xsh/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. @@ -967,9 +734,7 @@ _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbslen); -# endif #endif #if @GNULIB_MBSNLEN@ @@ -1166,8 +931,7 @@ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) Caveat: The identity of the delimiting character is lost. See also mbssep(). */ -_GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim, - char **save_ptr) +_GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif @@ -1183,9 +947,7 @@ _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (strerror); -# endif #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ @@ -1222,60 +984,6 @@ _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@ -_GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig)); -# endif -_GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig)); -_GL_CXXALIASWARN (sigabbrev_np); -#elif defined GNULIB_POSIXCHECK -# undef sigabbrev_np -# if HAVE_RAW_DECL_SIGABBREV_NP -_GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - " - "use gnulib module sigabbrev_np for portability"); -# endif -#endif - -/* Return an English description string for the signal number SIG. */ -#if @GNULIB_SIGDESCR_NP@ -# if ! @HAVE_SIGDESCR_NP@ -_GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig)); -# endif -_GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig)); -_GL_CXXALIASWARN (sigdescr_np); -#elif defined GNULIB_POSIXCHECK -# undef sigdescr_np -# if HAVE_RAW_DECL_SIGDESCR_NP -_GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - " - "use gnulib module sigdescr_np for portability"); -# endif -#endif - #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -1319,4 +1027,3 @@ _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ -#endif diff --git a/gl/strings.in.h b/gl/strings.in.h index 2cfe8b1..4469f86 100644 --- a/gl/strings.in.h +++ b/gl/strings.in.h @@ -1,19 +1,19 @@ /* A substitute . - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_STRINGS_H diff --git a/gl/stripslash.c b/gl/stripslash.c index fe46a9c..0e452a9 100644 --- a/gl/stripslash.c +++ b/gl/stripslash.c @@ -1,20 +1,20 @@ /* stripslash.c -- remove redundant trailing slashes from a file name - Copyright (C) 1990, 2001, 2003-2006, 2009-2023 Free Software Foundation, + Copyright (C) 1990, 2001, 2003-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include diff --git a/gl/strncasecmp.c b/gl/strncasecmp.c index c5c2cd3..35840bc 100644 --- a/gl/strncasecmp.c +++ b/gl/strncasecmp.c @@ -1,18 +1,18 @@ /* strncasecmp.c -- case insensitive string comparator - Copyright (C) 1998-1999, 2005-2007, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #include @@ -58,5 +58,5 @@ strncasecmp (const char *s1, const char *s2, size_t n) /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ - return _GL_CMP (c1, c2); + return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } diff --git a/gl/strndup.c b/gl/strndup.c new file mode 100644 index 0000000..e60268b --- /dev/null +++ b/gl/strndup.c @@ -0,0 +1,36 @@ +/* A replacement function, for systems that lack strndup. + + Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2013 Free Software + Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +#include + +#include + +#include + +char * +strndup (char const *s, size_t n) +{ + size_t len = strnlen (s, n); + char *new = malloc (len + 1); + + if (new == NULL) + return NULL; + + new[len] = '\0'; + return memcpy (new, s, len); +} diff --git a/gl/strnlen.c b/gl/strnlen.c new file mode 100644 index 0000000..57fdfe7 --- /dev/null +++ b/gl/strnlen.c @@ -0,0 +1,30 @@ +/* Find the length of STRING, but scan at most MAXLEN characters. + Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc. + Written by Simon Josefsson. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +#include + +#include + +/* Find the length of STRING, but scan at most MAXLEN characters. + If no '\0' terminator is found in that many characters, return MAXLEN. */ + +size_t +strnlen (const char *string, size_t maxlen) +{ + const char *end = memchr (string, '\0', maxlen); + return end ? (size_t) (end - string) : maxlen; +} diff --git a/gl/strsep.c b/gl/strsep.c index 8e9708a..c51ac0d 100644 --- a/gl/strsep.c +++ b/gl/strsep.c @@ -1,19 +1,19 @@ -/* Copyright (C) 2004, 2007, 2009-2023 Free Software Foundation, Inc. +/* Copyright (C) 2004, 2007, 2009-2013 Free Software Foundation, Inc. Written by Yoann Vandoorselaere . - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifdef HAVE_CONFIG_H # include diff --git a/gl/strstr.c b/gl/strstr.c index 574f4d5..b91acec 100644 --- a/gl/strstr.c +++ b/gl/strstr.c @@ -1,19 +1,19 @@ -/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2023 Free Software +/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ /* This particular implementation was written by Eric Blake, 2008. */ @@ -24,6 +24,12 @@ /* Specification of strstr. */ #include +#include + +#ifndef _LIBC +# define __builtin_expect(expr, val) (expr) +#endif + #define RETURN_TYPE char * #define AVAILABLE(h, h_l, j, n_l) \ (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \ diff --git a/gl/sys-limits.h b/gl/sys-limits.h deleted file mode 100644 index 0e9556d..0000000 --- a/gl/sys-limits.h +++ /dev/null @@ -1,42 +0,0 @@ -/* System call limits - - Copyright 2018-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_SYS_LIMITS_H -#define _GL_SYS_LIMITS_H - -#include - -/* Maximum number of bytes to read or write in a single system call. - This can be useful for system calls like sendfile on GNU/Linux, - which do not handle more than MAX_RW_COUNT bytes correctly. - The Linux kernel MAX_RW_COUNT is at least INT_MAX >> 20 << 20, - where the 20 comes from the Hexagon port with 1 MiB pages; use that - as an approximation, as the exact value may not be available to us. - - Using this also works around a serious Linux bug before 2.6.16; see - . - - Using this also works around a Tru64 5.1 bug, where attempting - to read INT_MAX bytes fails with errno == EINVAL. See - . - - Using this is likely to work around similar bugs in other operating - systems. */ - -enum { SYS_BUFSIZE_MAX = INT_MAX >> 20 << 20 }; - -#endif diff --git a/gl/sys_socket.c b/gl/sys_socket.c index b7388ce..3f017f8 100644 --- a/gl/sys_socket.c +++ b/gl/sys_socket.c @@ -1,22 +1,3 @@ -/* Inline functions for . - - Copyright (C) 2012-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - #include - #define _GL_SYS_SOCKET_INLINE _GL_EXTERN_INLINE #include "sys/socket.h" -typedef int dummy; diff --git a/gl/sys_socket.in.h b/gl/sys_socket.in.h index 6705593..b4cf0c3 100644 --- a/gl/sys_socket.in.h +++ b/gl/sys_socket.in.h @@ -1,20 +1,20 @@ /* Provide a sys/socket header file for systems lacking it (read: MinGW) and for systems where it is incomplete. - Copyright (C) 2005-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2013 Free Software Foundation, Inc. Written by Simon Josefsson. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* This file is supposed to be used on platforms that lack , on platforms where cannot be included standalone, and on @@ -63,9 +63,6 @@ #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #define _@GUARD_PREFIX@_SYS_SOCKET_H -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_SYS_SOCKET_INLINE # define _GL_SYS_SOCKET_INLINE _GL_INLINE @@ -79,12 +76,7 @@ _GL_INLINE_HEADER_BEGIN #if !@HAVE_SA_FAMILY_T@ # if !GNULIB_defined_sa_family_t -/* On OS/2 kLIBC, sa_family_t is unsigned char unless TCPV40HDRS is defined. */ -# if !defined __KLIBC__ || defined TCPV40HDRS typedef unsigned short sa_family_t; -# else -typedef unsigned char sa_family_t; -# endif # define GNULIB_defined_sa_family_t 1 # endif #endif @@ -97,6 +89,7 @@ typedef unsigned char sa_family_t; # endif # endif #else +# include /* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on 2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */ # define __ss_aligntype unsigned long int @@ -140,15 +133,6 @@ struct sockaddr_storage # define SHUT_RDWR 2 # endif -# ifdef __VMS /* OpenVMS */ -# ifndef CMSG_SPACE -# define CMSG_SPACE(length) _CMSG_SPACE(length) -# endif -# ifndef CMSG_LEN -# define CMSG_LEN(length) _CMSG_LEN(length) -# endif -# endif - #else # ifdef __CYGWIN__ @@ -168,7 +152,7 @@ struct sockaddr_storage code may not run on older Windows releases then. My Windows 2000 box was not able to run the code, for example. The situation is slightly confusing because - + suggests that getaddrinfo should be available on all Windows releases. */ @@ -194,7 +178,12 @@ struct sockaddr_storage /* Include headers needed by the emulation code. */ # include # include -/* If these headers don't define socklen_t, does. */ + +# if !GNULIB_defined_socklen_t +typedef int socklen_t; +# define GNULIB_defined_socklen_t 1 +# endif + # endif /* Rudimentary 'struct msghdr'; this works as long as you don't try to @@ -209,15 +198,6 @@ struct msghdr { #endif -/* Ensure SO_REUSEPORT is defined. */ -/* For the subtle differences between SO_REUSEPORT and SO_REUSEADDR, see - https://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t - and https://lwn.net/Articles/542629/ - */ -#ifndef SO_REUSEPORT -# define SO_REUSEPORT SO_REUSEADDR -#endif - /* Fix some definitions from . */ #if @HAVE_WINSOCK2_H@ @@ -255,7 +235,7 @@ rpl_fd_isset (SOCKET fd, fd_set * set) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h -# elif !defined __clang__ +# else _GL_WARN_ON_USE (close, "close() used without including "); # endif @@ -340,20 +320,14 @@ _GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - " # define accept rpl_accept # endif _GL_FUNCDECL_RPL (accept, int, - (int fd, - struct sockaddr *restrict addr, - socklen_t *restrict addrlen)); + (int fd, struct sockaddr *addr, socklen_t *addrlen)); _GL_CXXALIAS_RPL (accept, int, - (int fd, - struct sockaddr *restrict addr, - socklen_t *restrict addrlen)); + (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is - void *addrlen. */ + void *addrlen. */ _GL_CXXALIAS_SYS_CAST (accept, int, - (int fd, - struct sockaddr *restrict addr, - socklen_t *restrict addrlen)); + (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (accept); #elif @HAVE_WINSOCK2_H@ @@ -404,18 +378,15 @@ _GL_WARN_ON_USE (bind, "bind is not always POSIX compliant - " # define getpeername rpl_getpeername # endif _GL_FUNCDECL_RPL (getpeername, int, - (int fd, struct sockaddr *restrict addr, - socklen_t *restrict addrlen) + (int fd, struct sockaddr *addr, socklen_t *addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getpeername, int, - (int fd, struct sockaddr *restrict addr, - socklen_t *restrict addrlen)); + (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is - void *addrlen. */ + void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getpeername, int, - (int fd, struct sockaddr *restrict addr, - socklen_t *restrict addrlen)); + (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (getpeername); #elif @HAVE_WINSOCK2_H@ @@ -436,18 +407,15 @@ _GL_WARN_ON_USE (getpeername, "getpeername is not always POSIX compliant - " # define getsockname rpl_getsockname # endif _GL_FUNCDECL_RPL (getsockname, int, - (int fd, struct sockaddr *restrict addr, - socklen_t *restrict addrlen) + (int fd, struct sockaddr *addr, socklen_t *addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getsockname, int, - (int fd, struct sockaddr *restrict addr, - socklen_t *restrict addrlen)); + (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is - void *addrlen. */ + void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getsockname, int, - (int fd, struct sockaddr *restrict addr, - socklen_t *restrict addrlen)); + (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (getsockname); #elif @HAVE_WINSOCK2_H@ @@ -467,19 +435,16 @@ _GL_WARN_ON_USE (getsockname, "getsockname is not always POSIX compliant - " # undef getsockopt # define getsockopt rpl_getsockopt # endif -_GL_FUNCDECL_RPL (getsockopt, int, - (int fd, int level, int optname, - void *restrict optval, socklen_t *restrict optlen) - _GL_ARG_NONNULL ((4, 5))); -_GL_CXXALIAS_RPL (getsockopt, int, - (int fd, int level, int optname, - void *restrict optval, socklen_t *restrict optlen)); +_GL_FUNCDECL_RPL (getsockopt, int, (int fd, int level, int optname, + void *optval, socklen_t *optlen) + _GL_ARG_NONNULL ((4, 5))); +_GL_CXXALIAS_RPL (getsockopt, int, (int fd, int level, int optname, + void *optval, socklen_t *optlen)); # else /* Need to cast, because on Solaris 10 systems, the fifth parameter is void *optlen. */ -_GL_CXXALIAS_SYS_CAST (getsockopt, int, - (int fd, int level, int optname, - void *restrict optval, socklen_t *restrict optlen)); +_GL_CXXALIAS_SYS_CAST (getsockopt, int, (int fd, int level, int optname, + void *optval, socklen_t *optlen)); # endif _GL_CXXALIASWARN (getsockopt); #elif @HAVE_WINSOCK2_H@ @@ -526,10 +491,7 @@ _GL_FUNCDECL_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # else -/* Need to cast, because on HP-UX 11.31 the return type may be - int, - depending on compiler options. */ -_GL_CXXALIAS_SYS_CAST (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); +_GL_CXXALIAS_SYS (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (recv); #elif @HAVE_WINSOCK2_H@ @@ -555,11 +517,8 @@ _GL_FUNCDECL_RPL (send, ssize_t, _GL_CXXALIAS_RPL (send, ssize_t, (int fd, const void *buf, size_t len, int flags)); # else -/* Need to cast, because on HP-UX 11.31 the return type may be - int, - depending on compiler options. */ -_GL_CXXALIAS_SYS_CAST (send, ssize_t, - (int fd, const void *buf, size_t len, int flags)); +_GL_CXXALIAS_SYS (send, ssize_t, + (int fd, const void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (send); #elif @HAVE_WINSOCK2_H@ @@ -580,21 +539,18 @@ _GL_WARN_ON_USE (send, "send is not always POSIX compliant - " # define recvfrom rpl_recvfrom # endif _GL_FUNCDECL_RPL (recvfrom, ssize_t, - (int fd, void *restrict buf, size_t len, int flags, - struct sockaddr *restrict from, - socklen_t *restrict fromlen) + (int fd, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recvfrom, ssize_t, - (int fd, void *restrict buf, size_t len, int flags, - struct sockaddr *restrict from, - socklen_t *restrict fromlen)); + (int fd, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen)); # else /* Need to cast, because on Solaris 10 systems, the sixth parameter is void *fromlen. */ _GL_CXXALIAS_SYS_CAST (recvfrom, ssize_t, - (int fd, void *restrict buf, size_t len, int flags, - struct sockaddr *restrict from, - socklen_t *restrict fromlen)); + (int fd, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen)); # endif _GL_CXXALIASWARN (recvfrom); #elif @HAVE_WINSOCK2_H@ @@ -698,7 +654,7 @@ _GL_WARN_ON_USE (shutdown, "shutdown is not always POSIX compliant - " The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). See also the Linux man page at - . */ + . */ # if @HAVE_ACCEPT4@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define accept4 rpl_accept4 diff --git a/gl/sys_stat.in.h b/gl/sys_stat.in.h deleted file mode 100644 index 096887c..0000000 --- a/gl/sys_stat.in.h +++ /dev/null @@ -1,954 +0,0 @@ -/* Provide a more complete sys/stat.h header file. - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ - -/* This file is supposed to be used on platforms where is - incomplete. It is intended to provide definitions and prototypes - needed by an application. Start with what the system provides. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif -@PRAGMA_COLUMNS@ - -#if defined __need_system_sys_stat_h -/* Special invocation convention. */ - -#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _@GUARD_PREFIX@_SYS_STAT_H - -/* Get nlink_t. - May also define off_t to a 64-bit type on native Windows. */ -#include - -/* Get struct timespec. */ -#include - -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ - -#ifndef _@GUARD_PREFIX@_SYS_STAT_H -#define _@GUARD_PREFIX@_SYS_STAT_H - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ - -/* The definition of _GL_WARN_ON_USE is copied here. */ - -/* Before doing "#define mknod rpl_mknod" below, we need to include all - headers that may declare mknod(). OS/2 kLIBC declares mknod() in - , not in . */ -#ifdef __KLIBC__ -# include -#endif - -/* Before doing "#define mkdir rpl_mkdir" below, we need to include all - headers that may declare mkdir(). Native Windows platforms declare mkdir - in and/or , not in . */ -#if defined _WIN32 && ! defined __CYGWIN__ -# include /* mingw32, mingw64 */ -# include /* mingw64, MSVC 9 */ -#endif - -/* Native Windows platforms declare umask() in . */ -#if 0 && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -/* Large File Support on native Windows. */ -#if @WINDOWS_64_BIT_ST_SIZE@ -# define stat _stati64 -#endif - -/* Optionally, override 'struct stat' on native Windows. */ -#if @GNULIB_OVERRIDES_STRUCT_STAT@ - -# undef stat -# if @GNULIB_STAT@ -# define stat rpl_stat -# else - /* Provoke a clear link error if stat() is used as a function and - module 'stat' is not in use. */ -# define stat stat_used_without_requesting_gnulib_module_stat -# endif - -# if !GNULIB_defined_struct_stat -struct stat -{ - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - nlink_t st_nlink; -# if 0 - uid_t st_uid; -# else /* uid_t is not defined by default on native Windows. */ - short st_uid; -# endif -# if 0 - gid_t st_gid; -# else /* gid_t is not defined by default on native Windows. */ - short st_gid; -# endif - dev_t st_rdev; - off_t st_size; -# if 0 - blksize_t st_blksize; - blkcnt_t st_blocks; -# endif - -# if @WINDOWS_STAT_TIMESPEC@ - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; -# else - time_t st_atime; - time_t st_mtime; - time_t st_ctime; -# endif -}; -# if @WINDOWS_STAT_TIMESPEC@ -# define st_atime st_atim.tv_sec -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec - /* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_STAT_TIMESPEC 1 -# endif -# define GNULIB_defined_struct_stat 1 -# endif - -/* Other possible values of st_mode. */ -# if 0 -# define _S_IFBLK 0x6000 -# endif -# if 0 -# define _S_IFLNK 0xA000 -# endif -# if 0 -# define _S_IFSOCK 0xC000 -# endif - -#endif - -#ifndef S_IFIFO -# ifdef _S_IFIFO -# define S_IFIFO _S_IFIFO -# endif -#endif - -#ifndef S_IFMT -# define S_IFMT 0170000 -#endif - -#if STAT_MACROS_BROKEN -# undef S_ISBLK -# undef S_ISCHR -# undef S_ISDIR -# undef S_ISFIFO -# undef S_ISLNK -# undef S_ISNAM -# undef S_ISMPB -# undef S_ISMPC -# undef S_ISNWK -# undef S_ISREG -# undef S_ISSOCK -#endif - -#ifndef S_ISBLK -# ifdef S_IFBLK -# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) -# else -# define S_ISBLK(m) 0 -# endif -#endif - -#ifndef S_ISCHR -# ifdef S_IFCHR -# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -# else -# define S_ISCHR(m) 0 -# endif -#endif - -#ifndef S_ISDIR -# ifdef S_IFDIR -# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -# else -# define S_ISDIR(m) 0 -# endif -#endif - -#ifndef S_ISDOOR /* Solaris 2.5 and up */ -# define S_ISDOOR(m) 0 -#endif - -#ifndef S_ISFIFO -# ifdef S_IFIFO -# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) -# else -# define S_ISFIFO(m) 0 -# endif -#endif - -#ifndef S_ISLNK -# ifdef S_IFLNK -# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) -# else -# define S_ISLNK(m) 0 -# endif -#endif - -#ifndef S_ISMPB /* V7 */ -# ifdef S_IFMPB -# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) -# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) -# else -# define S_ISMPB(m) 0 -# define S_ISMPC(m) 0 -# endif -#endif - -#ifndef S_ISMPX /* AIX */ -# define S_ISMPX(m) 0 -#endif - -#ifndef S_ISNAM /* Xenix */ -# ifdef S_IFNAM -# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) -# else -# define S_ISNAM(m) 0 -# endif -#endif - -#ifndef S_ISNWK /* HP/UX */ -# ifdef S_IFNWK -# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) -# else -# define S_ISNWK(m) 0 -# endif -#endif - -#ifndef S_ISPORT /* Solaris 10 and up */ -# define S_ISPORT(m) 0 -#endif - -#ifndef S_ISREG -# ifdef S_IFREG -# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -# else -# define S_ISREG(m) 0 -# endif -#endif - -#ifndef S_ISSOCK -# ifdef S_IFSOCK -# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) -# else -# define S_ISSOCK(m) 0 -# endif -#endif - - -#ifndef S_TYPEISMQ -# define S_TYPEISMQ(p) 0 -#endif - -#ifndef S_TYPEISTMO -# define S_TYPEISTMO(p) 0 -#endif - - -#ifndef S_TYPEISSEM -# ifdef S_INSEM -# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) -# else -# define S_TYPEISSEM(p) 0 -# endif -#endif - -#ifndef S_TYPEISSHM -# ifdef S_INSHD -# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) -# else -# define S_TYPEISSHM(p) 0 -# endif -#endif - -/* high performance ("contiguous data") */ -#ifndef S_ISCTG -# define S_ISCTG(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with data */ -#ifndef S_ISOFD -# define S_ISOFD(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with no data */ -#ifndef S_ISOFL -# define S_ISOFL(p) 0 -#endif - -/* 4.4BSD whiteout */ -#ifndef S_ISWHT -# define S_ISWHT(m) 0 -#endif - -/* If any of the following are undefined, - define them to their de facto standard values. */ -#if !S_ISUID -# define S_ISUID 04000 -#endif -#if !S_ISGID -# define S_ISGID 02000 -#endif - -/* S_ISVTX is a common extension to POSIX. */ -#ifndef S_ISVTX -# define S_ISVTX 01000 -#endif - -#if !S_IRUSR && S_IREAD -# define S_IRUSR S_IREAD -#endif -#if !S_IRUSR -# define S_IRUSR 00400 -#endif -#if !S_IRGRP -# define S_IRGRP (S_IRUSR >> 3) -#endif -#if !S_IROTH -# define S_IROTH (S_IRUSR >> 6) -#endif - -#if !S_IWUSR && S_IWRITE -# define S_IWUSR S_IWRITE -#endif -#if !S_IWUSR -# define S_IWUSR 00200 -#endif -#if !S_IWGRP -# define S_IWGRP (S_IWUSR >> 3) -#endif -#if !S_IWOTH -# define S_IWOTH (S_IWUSR >> 6) -#endif - -#if !S_IXUSR && S_IEXEC -# define S_IXUSR S_IEXEC -#endif -#if !S_IXUSR -# define S_IXUSR 00100 -#endif -#if !S_IXGRP -# define S_IXGRP (S_IXUSR >> 3) -#endif -#if !S_IXOTH -# define S_IXOTH (S_IXUSR >> 6) -#endif - -#if !S_IRWXU -# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -#endif -#if !S_IRWXG -# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -#endif -#if !S_IRWXO -# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#endif - -/* Although S_IXUGO and S_IRWXUGO are not specified by POSIX and are - not implemented in GNU/Linux, some Gnulib-using apps use the macros. */ -#if !S_IXUGO -# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) -#endif -#ifndef S_IRWXUGO -# define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) -#endif - -/* Macros for futimens and utimensat. */ -#ifndef UTIME_NOW -# define UTIME_NOW (-1) -# define UTIME_OMIT (-2) -#endif - - -#if @GNULIB_CHMOD@ -# if @REPLACE_CHMOD@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chmod -# define chmod rpl_chmod -# endif -_GL_FUNCDECL_RPL (chmod, int, (const char *filename, mode_t mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (chmod, int, (const char *filename, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chmod -# define chmod _chmod -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (chmod); -#elif defined GNULIB_POSIXCHECK -# undef chmod -# if HAVE_RAW_DECL_CHMOD -_GL_WARN_ON_USE (chmod, "chmod has portability problems - " - "use gnulib module chmod for portability"); -# endif -#elif @GNULIB_MDA_CHMOD@ -/* On native Windows, map 'chmod' to '_chmod', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::chmod always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chmod -# define chmod _chmod -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (chmod); -#endif - - -#if @GNULIB_FCHMODAT@ -# if @REPLACE_FCHMODAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fchmodat -# define fchmodat rpl_fchmodat -# endif -_GL_FUNCDECL_RPL (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag)); -# else -# if !@HAVE_FCHMODAT@ -_GL_FUNCDECL_SYS (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag)); -# endif -_GL_CXXALIASWARN (fchmodat); -#elif defined GNULIB_POSIXCHECK -# undef fchmodat -# if HAVE_RAW_DECL_FCHMODAT -_GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if @GNULIB_FSTAT@ -# if @REPLACE_FSTAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fstat -# define fstat rpl_fstat -# endif -_GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); -# else -_GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fstat); -# endif -#elif @GNULIB_OVERRIDES_STRUCT_STAT@ -# undef fstat -# define fstat fstat_used_without_requesting_gnulib_module_fstat -#elif @WINDOWS_64_BIT_ST_SIZE@ -/* Above, we define stat to _stati64. */ -# define fstat _fstati64 -#elif defined GNULIB_POSIXCHECK -# undef fstat -# if HAVE_RAW_DECL_FSTAT -_GL_WARN_ON_USE (fstat, "fstat has portability problems - " - "use gnulib module fstat for portability"); -# endif -#endif - - -#if @GNULIB_FSTATAT@ -# if @REPLACE_FSTATAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fstatat -# define fstatat rpl_fstatat -# endif -_GL_FUNCDECL_RPL (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags) - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags)); -# else -# if !@HAVE_FSTATAT@ -_GL_FUNCDECL_SYS (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags) - _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags)); -# endif -_GL_CXXALIASWARN (fstatat); -#elif @GNULIB_OVERRIDES_STRUCT_STAT@ -# undef fstatat -# define fstatat fstatat_used_without_requesting_gnulib_module_fstatat -#elif defined GNULIB_POSIXCHECK -# undef fstatat -# if HAVE_RAW_DECL_FSTATAT -_GL_WARN_ON_USE (fstatat, "fstatat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if @GNULIB_FUTIMENS@ -/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens - implementation relies on futimesat, which on Solaris 10 makes an invocation - to futimens that is meant to invoke the libc's futimens(), not gnulib's - futimens(). */ -# if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef futimens -# define futimens rpl_futimens -# endif -_GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); -_GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); -# else -# if !@HAVE_FUTIMENS@ -_GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); -# endif -_GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); -# endif -# if @HAVE_FUTIMENS@ -_GL_CXXALIASWARN (futimens); -# endif -#elif defined GNULIB_POSIXCHECK -# undef futimens -# if HAVE_RAW_DECL_FUTIMENS -_GL_WARN_ON_USE (futimens, "futimens is not portable - " - "use gnulib module futimens for portability"); -# endif -#endif - - -#if @GNULIB_GETUMASK@ -# if !@HAVE_GETUMASK@ -_GL_FUNCDECL_SYS (getumask, mode_t, (void)); -# endif -_GL_CXXALIAS_SYS (getumask, mode_t, (void)); -# if @HAVE_GETUMASK@ -_GL_CXXALIASWARN (getumask); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getumask -# if HAVE_RAW_DECL_GETUMASK -_GL_WARN_ON_USE (getumask, "getumask is not portable - " - "use gnulib module getumask for portability"); -# endif -#endif - - -#if @GNULIB_LCHMOD@ -/* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME - denotes a symbolic link. */ -# if !@HAVE_LCHMOD@ || defined __hpux -_GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); -_GL_CXXALIASWARN (lchmod); -#elif defined GNULIB_POSIXCHECK -# undef lchmod -# if HAVE_RAW_DECL_LCHMOD -_GL_WARN_ON_USE (lchmod, "lchmod is unportable - " - "use gnulib module lchmod for portability"); -# endif -#endif - - -#if @GNULIB_MKDIR@ -# if @REPLACE_MKDIR@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. - Additionally, it declares _mkdir (and depending on compile flags, an - alias mkdir), only in the nonstandard includes and , - which are included above. */ -# if !GNULIB_defined_rpl_mkdir -static int -rpl_mkdir (char const *name, mode_t mode) -{ - return _mkdir (name); -} -# define GNULIB_defined_rpl_mkdir 1 -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# else -_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkdir); -#elif defined GNULIB_POSIXCHECK -# undef mkdir -# if HAVE_RAW_DECL_MKDIR -_GL_WARN_ON_USE (mkdir, "mkdir does not always support two parameters - " - "use gnulib module mkdir for portability"); -# endif -#elif @GNULIB_MDA_MKDIR@ -/* On native Windows, map 'mkdir' to '_mkdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::mkdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !GNULIB_defined_rpl_mkdir -static int -rpl_mkdir (char const *name, mode_t mode) -{ - return _mkdir (name); -} -# define GNULIB_defined_rpl_mkdir 1 -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# else -_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkdir); -#endif - - -#if @GNULIB_MKDIRAT@ -# if !@HAVE_MKDIRAT@ -_GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); -_GL_CXXALIASWARN (mkdirat); -#elif defined GNULIB_POSIXCHECK -# undef mkdirat -# if HAVE_RAW_DECL_MKDIRAT -_GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if @GNULIB_MKFIFO@ -# if @REPLACE_MKFIFO@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkfifo -# define mkfifo rpl_mkfifo -# endif -_GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); -# else -# if !@HAVE_MKFIFO@ -_GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkfifo); -#elif defined GNULIB_POSIXCHECK -# undef mkfifo -# if HAVE_RAW_DECL_MKFIFO -_GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " - "use gnulib module mkfifo for portability"); -# endif -#endif - - -#if @GNULIB_MKFIFOAT@ -# if @REPLACE_MKFIFOAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkfifoat -# define mkfifoat rpl_mkfifoat -# endif -_GL_FUNCDECL_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode)); -# else -# if !@HAVE_MKFIFOAT@ -_GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkfifoat); -#elif defined GNULIB_POSIXCHECK -# undef mkfifoat -# if HAVE_RAW_DECL_MKFIFOAT -_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " - "use gnulib module mkfifoat for portability"); -# endif -#endif - - -#if @GNULIB_MKNOD@ -# if @REPLACE_MKNOD@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mknod -# define mknod rpl_mknod -# endif -_GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); -# else -# if !@HAVE_MKNOD@ -_GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ -_GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); -# endif -_GL_CXXALIASWARN (mknod); -#elif defined GNULIB_POSIXCHECK -# undef mknod -# if HAVE_RAW_DECL_MKNOD -_GL_WARN_ON_USE (mknod, "mknod is not portable - " - "use gnulib module mknod for portability"); -# endif -#endif - - -#if @GNULIB_MKNODAT@ -# if @REPLACE_MKNODAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mknodat -# define mknodat rpl_mknodat -# endif -_GL_FUNCDECL_RPL (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev)); -# else -# if !@HAVE_MKNODAT@ -_GL_FUNCDECL_SYS (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev)); -# endif -_GL_CXXALIASWARN (mknodat); -#elif defined GNULIB_POSIXCHECK -# undef mknodat -# if HAVE_RAW_DECL_MKNODAT -_GL_WARN_ON_USE (mknodat, "mknodat is not portable - " - "use gnulib module mkfifoat for portability"); -# endif -#endif - - -#if @GNULIB_STAT@ -# if @REPLACE_STAT@ -# if !@GNULIB_OVERRIDES_STRUCT_STAT@ - /* We can't use the object-like #define stat rpl_stat, because of - struct stat. This means that rpl_stat will not be used if the user - does (stat)(a,b). Oh well. */ -# if defined _AIX && defined stat && defined _LARGE_FILES - /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, - so we have to replace stat64() instead of stat(). */ -# undef stat64 -# define stat64(name, st) rpl_stat (name, st) -# elif @WINDOWS_64_BIT_ST_SIZE@ - /* Above, we define stat to _stati64. */ -# if defined __MINGW32__ && defined _stati64 -# ifndef _USE_32BIT_TIME_T - /* The system headers define _stati64 to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# elif defined _MSC_VER && defined _stati64 -# ifdef _USE_32BIT_TIME_T - /* The system headers define _stati64 to _stat32i64. */ -# undef _stat32i64 -# define _stat32i64(name, st) rpl_stat (name, st) -# else - /* The system headers define _stati64 to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# else -# undef _stati64 -# define _stati64(name, st) rpl_stat (name, st) -# endif -# elif defined __MINGW32__ && defined stat -# ifdef _USE_32BIT_TIME_T - /* The system headers define stat to _stat32i64. */ -# undef _stat32i64 -# define _stat32i64(name, st) rpl_stat (name, st) -# else - /* The system headers define stat to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# elif defined _MSC_VER && defined stat -# ifdef _USE_32BIT_TIME_T - /* The system headers define stat to _stat32. */ -# undef _stat32 -# define _stat32(name, st) rpl_stat (name, st) -# else - /* The system headers define stat to _stat64i32. */ -# undef _stat64i32 -# define _stat64i32(name, st) rpl_stat (name, st) -# endif -# else /* !(_AIX || __MINGW32__ || _MSC_VER) */ -# undef stat -# define stat(name, st) rpl_stat (name, st) -# endif /* !_LARGE_FILES */ -# endif /* !@GNULIB_OVERRIDES_STRUCT_STAT@ */ -_GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf) - _GL_ARG_NONNULL ((1, 2)); -# endif -#elif @GNULIB_OVERRIDES_STRUCT_STAT@ -/* see above: - #define stat stat_used_without_requesting_gnulib_module_stat - */ -#elif defined GNULIB_POSIXCHECK -# undef stat -# if HAVE_RAW_DECL_STAT -_GL_WARN_ON_USE (stat, "stat is unportable - " - "use gnulib module stat for portability"); -# endif -#endif - - -#if @GNULIB_LSTAT@ -# if ! @HAVE_LSTAT@ -/* mingw does not support symlinks, therefore it does not have lstat. But - without links, stat does just fine. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define lstat stat -# endif -_GL_CXXALIAS_RPL_1 (lstat, stat, int, - (const char *restrict name, struct stat *restrict buf)); -# elif @REPLACE_LSTAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lstat -# define lstat rpl_lstat -# endif -_GL_FUNCDECL_RPL (lstat, int, - (const char *restrict name, struct stat *restrict buf) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (lstat, int, - (const char *restrict name, struct stat *restrict buf)); -# else -_GL_CXXALIAS_SYS (lstat, int, - (const char *restrict name, struct stat *restrict buf)); -# endif -# if @HAVE_LSTAT@ -_GL_CXXALIASWARN (lstat); -# endif -#elif @GNULIB_OVERRIDES_STRUCT_STAT@ -# undef lstat -# define lstat lstat_used_without_requesting_gnulib_module_lstat -#elif defined GNULIB_POSIXCHECK -# undef lstat -# if HAVE_RAW_DECL_LSTAT -_GL_WARN_ON_USE (lstat, "lstat is unportable - " - "use gnulib module lstat for portability"); -# endif -#endif - - -#if @GNULIB_MDA_UMASK@ -/* On native Windows, map 'umask' to '_umask', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::umask always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef umask -# define umask _umask -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (umask, mode_t, (mode_t mask)); -# else -_GL_CXXALIAS_SYS (umask, mode_t, (mode_t mask)); -# endif -_GL_CXXALIASWARN (umask); -#endif - - -#if @GNULIB_UTIMENSAT@ -/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat - implementation relies on futimesat, which on Solaris 10 makes an invocation - to utimensat that is meant to invoke the libc's utimensat(), not gnulib's - utimensat(). */ -# if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef utimensat -# define utimensat rpl_utimensat -# endif -_GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag)); -# else -# if !@HAVE_UTIMENSAT@ -_GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag)); -# endif -# if @HAVE_UTIMENSAT@ -_GL_CXXALIASWARN (utimensat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef utimensat -# if HAVE_RAW_DECL_UTIMENSAT -_GL_WARN_ON_USE (utimensat, "utimensat is not portable - " - "use gnulib module utimensat for portability"); -# endif -#endif - - -#endif /* _@GUARD_PREFIX@_SYS_STAT_H */ -#endif /* _@GUARD_PREFIX@_SYS_STAT_H */ -#endif diff --git a/gl/sys_types.in.h b/gl/sys_types.in.h index 082a6c6..d7da356 100644 --- a/gl/sys_types.in.h +++ b/gl/sys_types.in.h @@ -1,42 +1,29 @@ /* Provide a more complete sys/types.h. - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ -#if defined _WIN32 && !defined __CYGWIN__ \ - && (defined __need_off_t || defined __need___off64_t \ - || defined __need_ssize_t || defined __need_time_t) - -/* Special invocation convention inside mingw header files. */ - -#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ - -#else -/* Normal invocation convention. */ - #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ -# define _GL_INCLUDING_SYS_TYPES_H #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ -# undef _GL_INCLUDING_SYS_TYPES_H #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H @@ -53,54 +40,12 @@ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif -/* Override dev_t and ino_t if distinguishable inodes support is requested - on native Windows. */ -#if @WINDOWS_STAT_INODES@ - -# if @WINDOWS_STAT_INODES@ == 2 -/* Experimental, not useful in Windows 10. */ - -/* Define dev_t to a 64-bit type. */ -# if !defined GNULIB_defined_dev_t -typedef unsigned long long int rpl_dev_t; -# undef dev_t -# define dev_t rpl_dev_t -# define GNULIB_defined_dev_t 1 -# endif - -/* Define ino_t to a 128-bit type. */ -# if !defined GNULIB_defined_ino_t -/* MSVC does not have a 128-bit integer type. - GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ -typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; -# undef ino_t -# define ino_t rpl_ino_t -# define GNULIB_defined_ino_t 1 -# endif - -# else /* @WINDOWS_STAT_INODES@ == 1 */ - -/* Define ino_t to a 64-bit type. */ -# if !defined GNULIB_defined_ino_t -typedef unsigned long long int rpl_ino_t; -# undef ino_t -# define ino_t rpl_ino_t -# define GNULIB_defined_ino_t 1 -# endif - -# endif - -/* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@ - -#endif - /* MSVC 9 defines size_t in , not in . */ /* But avoid namespace pollution on glibc systems. */ -#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ +#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ + && ! defined __GLIBC__ # include #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ -#endif /* __need_XXX */ diff --git a/gl/sys_uio.in.h b/gl/sys_uio.in.h index 64c4fb6..fef19dc 100644 --- a/gl/sys_uio.in.h +++ b/gl/sys_uio.in.h @@ -1,18 +1,18 @@ /* Substitute for . - Copyright (C) 2011-2023 Free Software Foundation, Inc. + Copyright (C) 2011-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ # if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ diff --git a/gl/time.in.h b/gl/time.in.h index 50c9b30..8ced794 100644 --- a/gl/time.in.h +++ b/gl/time.in.h @@ -1,19 +1,19 @@ /* A more-standard . - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ @@ -22,13 +22,11 @@ /* Don't get in the way of glibc when it includes time.h merely to declare a few standard symbols, rather than to declare all the - symbols. (However, skip this for MinGW as it treats __need_time_t - incompatibly.) Also, Solaris 8 eventually includes itself + symbols. Also, Solaris 8 eventually includes itself recursively; if that is happening, just include the system without adding our own declarations. */ -#if (((defined __need_time_t || defined __need_clock_t \ - || defined __need_timespec) \ - && !defined __MINGW32__) \ +#if (defined __need_time_t || defined __need_clock_t \ + || defined __need_timespec \ || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ @@ -37,12 +35,6 @@ # define _@GUARD_PREFIX@_TIME_H -/* mingw's provides the functions asctime_r, ctime_r, gmtime_r, - localtime_r only if or has been included before. */ -# if defined __MINGW32__ -# include -# endif - # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ @@ -54,17 +46,22 @@ /* The definition of _GL_WARN_ON_USE is copied here. */ -/* Some systems don't define struct timespec (e.g., AIX 4.1). +/* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). Or they define it with the wrong member names or define it in - (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, - but the pthreads-win32 library defines it in . */ + (e.g., FreeBSD circa 1997). Stock Mingw does not define it, but the + pthreads-win32 library defines it in . */ # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ # include # elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ # include -# elif @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -# include +/* The pthreads-win32 also defines a couple of broken macros. */ +# undef asctime_r +# undef ctime_r +# undef gmtime_r +# undef localtime_r +# undef rand_r +# undef strtok_r # else # ifdef __cplusplus @@ -90,8 +87,8 @@ struct timespec # endif # if !GNULIB_defined_struct_time_t_must_be_integral -/* https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html - requires time_t to be an integer type, even though C99 permits floating +/* Per http://austingroupbugs.net/view.php?id=327, POSIX requires + time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ @@ -101,39 +98,9 @@ struct __time_t_must_be_integral { # define GNULIB_defined_struct_time_t_must_be_integral 1 # endif -/* Define TIME_UTC, a positive integer constant used for timespec_get(). */ -# if ! @TIME_H_DEFINES_TIME_UTC@ -# if !GNULIB_defined_TIME_UTC -# define TIME_UTC 1 -# define GNULIB_defined_TIME_UTC 1 -# endif -# endif - -/* Set *TS to the current time, and return BASE. - Upon failure, return 0. */ -# if @GNULIB_TIMESPEC_GET@ -# if ! @HAVE_TIMESPEC_GET@ -_GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base)); -_GL_CXXALIASWARN (timespec_get); -# endif - -/* Set *TS to the current time resolution, and return BASE. - Upon failure, return 0. */ -# if @GNULIB_TIMESPEC_GETRES@ -# if ! @HAVE_TIMESPEC_GETRES@ -_GL_FUNCDECL_SYS (timespec_getres, int, (struct timespec *ts, int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base)); -_GL_CXXALIASWARN (timespec_getres); -# endif - /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See - . */ + . */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -156,41 +123,6 @@ _GL_CXXALIAS_SYS (nanosleep, int, _GL_CXXALIASWARN (nanosleep); # endif -/* Initialize time conversion information. */ -# if @GNULIB_TZSET@ -# if @REPLACE_TZSET@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset rpl_tzset -# endif -_GL_FUNCDECL_RPL (tzset, void, (void)); -_GL_CXXALIAS_RPL (tzset, void, (void)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset _tzset -# endif -_GL_CXXALIAS_MDA (tzset, void, (void)); -# else -_GL_CXXALIAS_SYS (tzset, void, (void)); -# endif -_GL_CXXALIASWARN (tzset); -# elif @GNULIB_MDA_TZSET@ -/* On native Windows, map 'tzset' to '_tzset', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::tzset always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset _tzset -# endif -_GL_CXXALIAS_MDA (tzset, void, (void)); -# else -_GL_CXXALIAS_SYS (tzset, void, (void)); -# endif -_GL_CXXALIASWARN (tzset); -# endif - /* Return the 'time_t' representation of TP and normalize TP. */ # if @GNULIB_MKTIME@ # if @REPLACE_MKTIME@ @@ -202,14 +134,12 @@ _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); # else _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (mktime); -# endif # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ + and + . */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -257,44 +187,9 @@ _GL_CXXALIASWARN (gmtime_r); # endif # endif -/* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ -# if @GNULIB_LOCALTIME@ || @REPLACE_LOCALTIME@ -# if @REPLACE_LOCALTIME@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef localtime -# define localtime rpl_localtime -# endif -_GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); -# else -_GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (localtime); -# endif -# endif - -# if 0 || @REPLACE_GMTIME@ -# if @REPLACE_GMTIME@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gmtime -# define gmtime rpl_gmtime -# endif -_GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); -# else -_GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); -# endif -_GL_CXXALIASWARN (gmtime); -# endif - -/* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store +/* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See - . */ + . */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, @@ -308,106 +203,6 @@ _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, _GL_CXXALIASWARN (strptime); # endif -/* Convert *TP to a date and time string. See - . */ -# if @GNULIB_CTIME@ -# if @REPLACE_CTIME@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define ctime rpl_ctime -# endif -_GL_ATTRIBUTE_DEPRECATED -_GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); -# else -_GL_CXXALIAS_SYS (ctime, char *, (time_t const *__tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (ctime); -# endif -# endif - -/* Convert *TP to a date and time string. See - . */ -# if @GNULIB_STRFTIME@ -# if @REPLACE_STRFTIME@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strftime rpl_strftime -# endif -_GL_FUNCDECL_RPL (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp) - _GL_ARG_NONNULL ((1, 3, 4))); -_GL_CXXALIAS_RPL (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp)); -# else -_GL_CXXALIAS_SYS (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strftime); -# endif -# endif - -# if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@ -/* Functions that use a first-class time zone data type, instead of - relying on an implicit global time zone. - Inspired by NetBSD. */ - -/* Represents a time zone. - (timezone_t) NULL stands for UTC. */ -typedef struct tm_zone *timezone_t; - -/* tzalloc (name) - Returns a time zone object for the given time zone NAME. This object - represents the time zone that other functions would use it the TZ - environment variable was set to NAME. - If NAME is NULL, the result represents the time zone that other functions - would use it the TZ environment variable was unset. - May return NULL if NAME is invalid (this is platform dependent) or - upon memory allocation failure. */ -_GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); -_GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); - -/* tzfree (tz) - Frees a time zone object. - The argument must have been returned by tzalloc(). */ -_GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); -_GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); - -/* localtime_rz (tz, &t, &result) - Converts an absolute time T to a broken-down time RESULT, assuming the - time zone TZ. - This function is like 'localtime_r', but relies on the argument TZ instead - of an implicit global time zone. */ -_GL_FUNCDECL_SYS (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_SYS (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result)); - -/* mktime_z (tz, &tm) - Normalizes the broken-down time TM and converts it to an absolute time, - assuming the time zone TZ. Returns the absolute time. - This function is like 'mktime', but relies on the argument TZ instead - of an implicit global time zone. */ -_GL_FUNCDECL_SYS (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_SYS (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm)); - -/* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z' - in the 'tm_zone' member of 'struct tm') are valid as long as - - the 'struct tm' argument is not destroyed or overwritten, - and - - the 'timezone_t' argument is not freed through tzfree(). */ - -# endif - /* Convert TM to a time_t value, assuming UTC. */ # if @GNULIB_TIMEGM@ # if @REPLACE_TIMEGM@ @@ -436,22 +231,18 @@ _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " # endif # if defined GNULIB_POSIXCHECK # undef asctime_r -# if HAVE_RAW_DECL_ASCTIME_R -_GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - " +_GL_WARN_ON_USE (asctime, "asctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); -# endif # endif # if defined GNULIB_POSIXCHECK # undef ctime -_GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - " +_GL_WARN_ON_USE (asctime, "ctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime_r -# if HAVE_RAW_DECL_CTIME_R -_GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - " +_GL_WARN_ON_USE (asctime, "ctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); -# endif # endif #endif diff --git a/gl/time_r.c b/gl/time_r.c index 97be4fd..9866299 100644 --- a/gl/time_r.c +++ b/gl/time_r.c @@ -1,19 +1,19 @@ /* Reentrant time functions like localtime_r. - Copyright (C) 2003, 2006-2007, 2010-2023 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2007, 2010-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ /* Written by Paul Eggert. */ diff --git a/gl/timegm.c b/gl/timegm.c index b47025a..6338baa 100644 --- a/gl/timegm.c +++ b/gl/timegm.c @@ -1,58 +1,38 @@ /* Convert UTC calendar time to simple time. Like mktime but assumes UTC. - Copyright (C) 1994-2023 Free Software Foundation, Inc. - This file is part of the GNU C Library. + Copyright (C) 1994, 1997, 2003-2004, 2006-2007, 2009-2013 Free Software + Foundation, Inc. This file is part of the GNU C Library. - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - The GNU C Library is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _LIBC -# include +# include #endif #include -#include -#include "mktime-internal.h" - -__time64_t -__timegm64 (struct tm *tmp) -{ - static mktime_offset_t gmtime_offset; - tmp->tm_isdst = 0; - return __mktime_internal (tmp, __gmtime64_r, &gmtime_offset); -} - -#if defined _LIBC && __TIMESIZE != 64 - -libc_hidden_def (__timegm64) +#ifndef _LIBC +# undef __gmtime_r +# define __gmtime_r gmtime_r +# define __mktime_internal mktime_internal +# include "mktime-internal.h" +#endif time_t timegm (struct tm *tmp) { - struct tm tm = *tmp; - __time64_t t = __timegm64 (&tm); - if (in_time_t_range (t)) - { - *tmp = tm; - return t; - } - else - { - __set_errno (EOVERFLOW); - return -1; - } + static time_t gmtime_offset; + tmp->tm_isdst = 0; + return __mktime_internal (tmp, __gmtime_r, &gmtime_offset); } - -#endif diff --git a/gl/unistd.c b/gl/unistd.c index be7a825..6c6a8e2 100644 --- a/gl/unistd.c +++ b/gl/unistd.c @@ -1,22 +1,3 @@ -/* Inline functions for . - - Copyright (C) 2012-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - #include - #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" -typedef int dummy; diff --git a/gl/unistd.in.h b/gl/unistd.in.h index 4812fdb..2ea9af4 100644 --- a/gl/unistd.in.h +++ b/gl/unistd.in.h @@ -1,18 +1,18 @@ /* Substitute for and wrapper around . - Copyright (C) 2003-2023 Free Software Foundation, Inc. + Copyright (C) 2003-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H @@ -21,23 +21,9 @@ #endif @PRAGMA_COLUMNS@ -#if @HAVE_UNISTD_H@ && defined _GL_INCLUDING_UNISTD_H -/* Special invocation convention: - - On Mac OS X 10.3.9 we have a sequence of nested includes - -> -> -> - In this situation, the functions are not yet declared, therefore we cannot - provide the C++ aliases. */ - -#@INCLUDE_NEXT@ @NEXT_UNISTD_H@ - -#else -/* Normal invocation convention. */ - /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ -# define _GL_INCLUDING_UNISTD_H # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ -# undef _GL_INCLUDING_UNISTD_H #endif /* Get all possible declarations of gethostname(). */ @@ -52,30 +38,21 @@ #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ -/* But avoid namespace pollution on glibc systems. */ -#ifndef __GLIBC__ -# include -#endif +#include /* mingw doesn't define the SEEK_* or *_FILENO macros in . */ -/* MSVC declares 'unlink' in , not in . We must include - it before we #define unlink rpl_unlink. */ /* Cygwin 1.7.1 declares symlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ - || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include #endif -/* Cygwin 1.7.1 and Android 4.3 declare unlinkat in , not in - . */ +/* Cygwin 1.7.1 declares unlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ -#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \ - && (defined __CYGWIN__ || defined __ANDROID__) \ +#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \ && ! defined __GLIBC__ # include #endif @@ -93,18 +70,20 @@ # undef __need_system_stdlib_h #endif -/* Native Windows platforms declare _chdir, _getcwd, _rmdir in +/* Native Windows platforms declare chdir, getcwd, rmdir in and/or , not in . - They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(), - _lseek(), _read(), _unlink(), _write() in . */ -#if defined _WIN32 && !defined __CYGWIN__ + They also declare access(), chmod(), close(), dup(), dup2(), isatty(), + lseek(), read(), unlink(), write() in . */ +#if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ + || defined GNULIB_POSIXCHECK) \ + && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) +# include /* mingw32, mingw64 */ +# include /* mingw64, MSVC 9 */ +#elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ + || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ + || defined GNULIB_POSIXCHECK) \ + && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include -# include -#endif - -/* Native Windows platforms declare _execl*, _execv* in . */ -#if defined _WIN32 && !defined __CYGWIN__ -# include #endif /* AIX and OSF/1 5.1 declare getdomainname in , not in . @@ -116,28 +95,31 @@ # include #endif -/* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in - , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (@GNULIB_GETENTROPY@ || defined GNULIB_POSIXCHECK) \ - && ((defined __APPLE__ && defined __MACH__) || defined __sun \ - || defined __ANDROID__) \ - && @UNISTD_H_HAVE_SYS_RANDOM_H@ \ - && !defined __GLIBC__ -# include -#endif - -/* Android 4.3 declares fchownat in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ - && !defined __GLIBC__ -# include -#endif - /* MSVC defines off_t in . May also define off_t to a 64-bit type on native Windows. */ -/* Get off_t, ssize_t, mode_t. */ -#include +#if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ +/* Get off_t. */ +# include +#endif + +#if (@GNULIB_READ@ || @GNULIB_WRITE@ \ + || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ + || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) +/* Get ssize_t. */ +# include +#endif + +/* Get getopt(), optarg, optind, opterr, optopt. + But avoid namespace pollution on glibc systems. */ +#if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT +# define __need_getopt +# include +#endif + +_GL_INLINE_HEADER_BEGIN +#ifndef _GL_UNISTD_INLINE +# define _GL_UNISTD_INLINE _GL_INLINE +#endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ @@ -146,20 +128,6 @@ /* The definition of _GL_WARN_ON_USE is copied here. */ -/* Get getopt(), optarg, optind, opterr, optopt. */ -#if @GNULIB_GETOPT_POSIX@ && @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT -# include -# include -#endif - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_UNISTD_INLINE -# define _GL_UNISTD_INLINE _GL_INLINE -#endif - /* Hide some function declarations from . */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ @@ -259,61 +227,15 @@ _GL_INLINE_HEADER_BEGIN /* Declare overridden functions. */ -#if @GNULIB_ACCESS@ -# if @REPLACE_ACCESS@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access rpl_access -# endif -_GL_FUNCDECL_RPL (access, int, (const char *file, int mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access _access -# endif -_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); -# else -_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); -# endif -_GL_CXXALIASWARN (access); -#elif defined GNULIB_POSIXCHECK -# undef access -# if HAVE_RAW_DECL_ACCESS +#if defined GNULIB_POSIXCHECK /* The access() function is a security risk. */ -_GL_WARN_ON_USE (access, "access does not always support X_OK - " - "use gnulib module access for portability; " - "also, this function is a security risk - " +_GL_WARN_ON_USE (access, "the access function is a security risk - " "use the gnulib module faccessat instead"); -# endif -#elif @GNULIB_MDA_ACCESS@ -/* On native Windows, map 'access' to '_access', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::access always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access _access -# endif -_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); -# else -_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); -# endif -_GL_CXXALIASWARN (access); #endif #if @GNULIB_CHDIR@ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chdir -# define chdir _chdir -# endif -_GL_CXXALIAS_MDA (chdir, int, (const char *file)); -# else _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); -# endif _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir @@ -321,20 +243,6 @@ _GL_CXXALIASWARN (chdir); _GL_WARN_ON_USE (chown, "chdir is not always in - " "use gnulib module chdir for portability"); # endif -#elif @GNULIB_MDA_CHDIR@ -/* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::chdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chdir -# define chdir _chdir -# endif -_GL_CXXALIAS_MDA (chdir, int, (const char *file)); -# else -_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIASWARN (chdir); #endif @@ -343,7 +251,7 @@ _GL_CXXALIASWARN (chdir); to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef dup2 -# define dup2 _dup2 -# endif -_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); # else +# if !@HAVE_DUP2@ +_GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd)); +# endif _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); @@ -515,20 +347,6 @@ _GL_CXXALIASWARN (dup2); _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif -#elif @GNULIB_MDA_DUP2@ -/* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::dup2 always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef dup2 -# define dup2 _dup2 -# endif -_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); -# else -_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); -# endif -_GL_CXXALIASWARN (dup2); #endif @@ -540,7 +358,7 @@ _GL_CXXALIASWARN (dup2); Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at - . */ + . */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 @@ -562,23 +380,10 @@ _GL_WARN_ON_USE (dup3, "dup3 is unportable - " #if @GNULIB_ENVIRON@ -# if defined __CYGWIN__ && !defined __i386__ -/* The 'environ' variable is defined in a DLL. Therefore its declaration needs - the '__declspec(dllimport)' attribute, but the system's lacks it. - This leads to a link error on 64-bit Cygwin when the option - -Wl,--disable-auto-import is in use. */ -_GL_EXTERN_C __declspec(dllimport) char **environ; -# endif # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ -# include -# if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR -# define _GL_USE_CRT_EXTERNS -# endif -# endif -# ifdef _GL_USE_CRT_EXTERNS # include # define environ (*_NSGetEnviron ()) # else @@ -594,12 +399,12 @@ extern char **environ; #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** -_GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " - "use gnulib module environ for portability") rpl_environ (void) { return &environ; } +_GL_WARN_ON_USE (rpl_environ, "environ is unportable - " + "use gnulib module environ for portability"); # undef environ # define environ (*rpl_environ ()) # endif @@ -629,302 +434,14 @@ _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " #endif -#if @GNULIB_EXECL@ -# if @REPLACE_EXECL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execl -# define execl rpl_execl -# endif -_GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execl); -#elif defined GNULIB_POSIXCHECK -# undef execl -# if HAVE_RAW_DECL_EXECL -_GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - " - "use gnulib module execl for portability"); -# endif -#elif @GNULIB_MDA_EXECL@ -/* On native Windows, map 'execl' to '_execl', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execl always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execl -# define execl _execl -# endif -_GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execl); -#endif - -#if @GNULIB_EXECLE@ -# if @REPLACE_EXECLE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execle -# define execle rpl_execle -# endif -_GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execle); -#elif defined GNULIB_POSIXCHECK -# undef execle -# if HAVE_RAW_DECL_EXECLE -_GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - " - "use gnulib module execle for portability"); -# endif -#elif @GNULIB_MDA_EXECLE@ -/* On native Windows, map 'execle' to '_execle', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execle always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execle -# define execle _execle -# endif -_GL_CXXALIAS_MDA (execle, intptr_t, - (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execle); -#endif - -#if @GNULIB_EXECLP@ -# if @REPLACE_EXECLP@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execlp -# define execlp rpl_execlp -# endif -_GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execlp); -#elif defined GNULIB_POSIXCHECK -# undef execlp -# if HAVE_RAW_DECL_EXECLP -_GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - " - "use gnulib module execlp for portability"); -# endif -#elif @GNULIB_MDA_EXECLP@ -/* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execlp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execlp -# define execlp _execlp -# endif -_GL_CXXALIAS_MDA (execlp, intptr_t, - (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execlp); -#endif - - -#if @GNULIB_EXECV@ -# if @REPLACE_EXECV@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execv -# define execv rpl_execv -# endif -_GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execv); -#elif defined GNULIB_POSIXCHECK -# undef execv -# if HAVE_RAW_DECL_EXECV -_GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - " - "use gnulib module execv for portability"); -# endif -#elif @GNULIB_MDA_EXECV@ -/* On native Windows, map 'execv' to '_execv', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execv always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execv -# define execv _execv -# endif -_GL_CXXALIAS_MDA_CAST (execv, intptr_t, - (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execv); -#endif - -#if @GNULIB_EXECVE@ -# if @REPLACE_EXECVE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execve -# define execve rpl_execve -# endif -_GL_FUNCDECL_RPL (execve, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execve, int, - (const char *program, char * const *argv, char * const *env)); -# else -_GL_CXXALIAS_SYS (execve, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execve); -#elif defined GNULIB_POSIXCHECK -# undef execve -# if HAVE_RAW_DECL_EXECVE -_GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - " - "use gnulib module execve for portability"); -# endif -#elif @GNULIB_MDA_EXECVE@ -/* On native Windows, map 'execve' to '_execve', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execve always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execve -# define execve _execve -# endif -_GL_CXXALIAS_MDA_CAST (execve, intptr_t, - (const char *program, char * const *argv, - char * const *env)); -# else -_GL_CXXALIAS_SYS (execve, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execve); -#endif - -#if @GNULIB_EXECVP@ -# if @REPLACE_EXECVP@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvp -# define execvp rpl_execvp -# endif -_GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execvp); -#elif defined GNULIB_POSIXCHECK -# undef execvp -# if HAVE_RAW_DECL_EXECVP -_GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - " - "use gnulib module execvp for portability"); -# endif -#elif @GNULIB_MDA_EXECVP@ -/* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execvp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvp -# define execvp _execvp -# endif -_GL_CXXALIAS_MDA_CAST (execvp, intptr_t, - (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execvp); -#endif - -#if @GNULIB_EXECVPE@ -# if @REPLACE_EXECVPE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvpe -# define execvpe rpl_execvpe -# endif -_GL_FUNCDECL_RPL (execvpe, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# else -# if !@HAVE_DECL_EXECVPE@ -_GL_FUNCDECL_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execvpe); -#elif defined GNULIB_POSIXCHECK -# undef execvpe -# if HAVE_RAW_DECL_EXECVPE -_GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - " - "use gnulib module execvpe for portability"); -# endif -#elif @GNULIB_MDA_EXECVPE@ -/* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvpe -# define execvpe _execvpe -# endif -_GL_CXXALIAS_MDA_CAST (execvpe, intptr_t, - (const char *program, char * const *argv, - char * const *env)); -# elif @HAVE_EXECVPE@ -# if !@HAVE_DECL_EXECVPE@ -_GL_FUNCDECL_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_EXECVPE@ -_GL_CXXALIASWARN (execvpe); -# endif -#endif - - #if @GNULIB_FACCESSAT@ -# if @REPLACE_FACCESSAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef faccessat -# define faccessat rpl_faccessat -# endif -_GL_FUNCDECL_RPL (faccessat, int, - (int fd, char const *name, int mode, int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (faccessat, int, - (int fd, char const *name, int mode, int flag)); -# else -# if !@HAVE_FACCESSAT@ +# if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); -# endif +# endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); -# endif _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat @@ -940,7 +457,7 @@ _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); @@ -992,7 +509,7 @@ _GL_CXXALIASWARN (fchownat); # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " - "use gnulib module fchownat for portability"); + "use gnulib module openat for portability"); # endif #endif @@ -1001,7 +518,7 @@ _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification - . */ + . */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif @@ -1020,7 +537,7 @@ _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification - . */ + . */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif @@ -1039,7 +556,7 @@ _GL_WARN_ON_USE (fsync, "fsync is unportable - " /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate @@ -1069,7 +586,7 @@ _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification - . + . Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as @@ -1080,12 +597,6 @@ _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getcwd -# define getcwd _getcwd -# endif -_GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ @@ -1098,22 +609,6 @@ _GL_CXXALIASWARN (getcwd); _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif -#elif @GNULIB_MDA_GETCWD@ -/* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getcwd always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getcwd -# define getcwd _getcwd -# endif -/* Need to cast, because on mingw, the second parameter is either - 'int size' or 'size_t size'. */ -_GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size)); -# else -_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); -# endif -_GL_CXXALIASWARN (getcwd); #endif @@ -1143,9 +638,7 @@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (getdomainname); -# endif #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME @@ -1158,21 +651,10 @@ _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ -# if @REPLACE_GETDTABLESIZE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getdtablesize -# define getdtablesize rpl_getdtablesize -# endif -_GL_FUNCDECL_RPL (getdtablesize, int, (void)); -_GL_CXXALIAS_RPL (getdtablesize, int, (void)); -# else -# if !@HAVE_GETDTABLESIZE@ +# if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); -# endif -/* Need to cast, because on AIX, the parameter list is - (...). */ -_GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void)); # endif +_GL_CXXALIAS_SYS (getdtablesize, int, (void)); _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize @@ -1183,22 +665,6 @@ _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " #endif -#if @GNULIB_GETENTROPY@ -/* Fill a buffer with random bytes. */ -# if !@HAVE_GETENTROPY@ -_GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); -# endif -_GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); -_GL_CXXALIASWARN (getentropy); -#elif defined GNULIB_POSIXCHECK -# undef getentropy -# if HAVE_RAW_DECL_GETENTROPY -_GL_WARN_ON_USE (getentropy, "getentropy is unportable - " - "use gnulib module getentropy for portability"); -# endif -#endif - - #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. @@ -1271,14 +737,14 @@ _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. - See . + See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ -# if !@HAVE_DECL_GETLOGIN@ +# if !@HAVE_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); @@ -1300,7 +766,7 @@ _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). - See . + See . Most programs don't need to use this function, because the information is available through environment variables: @@ -1341,11 +807,6 @@ _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else -/* On HP-UX, getpagesize exists, but it is not declared in even if - the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used. */ -# if defined __hpux -_GL_FUNCDECL_SYS (getpagesize, int, (void)); -# endif # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ @@ -1420,54 +881,6 @@ _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " #endif -#if @GNULIB_GETPASS@ -/* Function getpass() from module 'getpass': - Read a password from /dev/tty or stdin. - Function getpass() from module 'getpass-gnu': - Read a password of arbitrary length from /dev/tty or stdin. */ -# if (@GNULIB_GETPASS@ && @REPLACE_GETPASS@) \ - || (@GNULIB_GETPASS_GNU@ && @REPLACE_GETPASS_FOR_GETPASS_GNU@) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getpass -# define getpass rpl_getpass -# endif -_GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); -# else -# if !@HAVE_GETPASS@ -_GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); -# endif -_GL_CXXALIASWARN (getpass); -#elif defined GNULIB_POSIXCHECK -# undef getpass -# if HAVE_RAW_DECL_GETPASS -_GL_WARN_ON_USE (getpass, "getpass is unportable - " - "use gnulib module getpass or getpass-gnu for portability"); -# endif -#endif - - -#if @GNULIB_MDA_GETPID@ -/* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getpid always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getpid -# define getpid _getpid -# endif -_GL_CXXALIAS_MDA (getpid, int, (void)); -# else -_GL_CXXALIAS_SYS (getpid, pid_t, (void)); -# endif -_GL_CXXALIASWARN (getpid); -#endif - - #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ @@ -1538,15 +951,8 @@ _GL_WARN_ON_USE (group_member, "group_member is unportable - " # undef isatty # define isatty rpl_isatty # endif -# define GNULIB_defined_isatty 1 _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty _isatty -# endif -_GL_CXXALIAS_MDA (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif @@ -1557,20 +963,6 @@ _GL_CXXALIASWARN (isatty); _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif -#elif @GNULIB_MDA_ISATTY@ -/* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::isatty always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty _isatty -# endif -_GL_CXXALIAS_MDA (isatty, int, (int fd)); -# else -_GL_CXXALIAS_SYS (isatty, int, (int fd)); -# endif -_GL_CXXALIASWARN (isatty); #endif @@ -1579,7 +971,7 @@ _GL_CXXALIASWARN (isatty); to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown @@ -1609,7 +1001,7 @@ _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification - . */ + . */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link @@ -1675,19 +1067,13 @@ _GL_WARN_ON_USE (linkat, "linkat is unportable - " /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lseek -# define lseek _lseek -# endif -_GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif @@ -1698,20 +1084,6 @@ _GL_CXXALIASWARN (lseek); _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif -#elif @GNULIB_MDA_LSEEK@ -/* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::lseek always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lseek -# define lseek _lseek -# endif -_GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence)); -# else -_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); -# endif -_GL_CXXALIASWARN (lseek); #endif @@ -1741,7 +1113,7 @@ _GL_WARN_ON_USE (pipe, "pipe is unportable - " Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at - . */ + . */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 @@ -1767,7 +1139,7 @@ _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread @@ -1802,7 +1174,7 @@ _GL_WARN_ON_USE (pread, "pread is unportable - " Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite @@ -1835,7 +1207,7 @@ _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read @@ -1844,32 +1216,11 @@ _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read _read -# endif -_GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count)); # else -_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (read); -#elif @GNULIB_MDA_READ@ -/* On native Windows, map 'read' to '_read', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::read always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read _read -# endif -# ifdef __MINGW32__ -_GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count)); -# else -_GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count)); -# endif -# else -_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); +/* Need to cast, because on mingw, the third parameter is + unsigned int count + and the return type is 'int'. */ +_GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif @@ -1880,28 +1231,24 @@ _GL_CXXALIASWARN (read); bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize) + (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize)); + (const char *file, char *buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize) + (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize)); + (const char *file, char *buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK @@ -1914,28 +1261,13 @@ _GL_WARN_ON_USE (readlink, "readlink is unportable - " #if @GNULIB_READLINKAT@ -# if @REPLACE_READLINKAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define readlinkat rpl_readlinkat -# endif -_GL_FUNCDECL_RPL (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len) - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len)); -# else -# if !@HAVE_READLINKAT@ +# if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len) + (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len)); # endif +_GL_CXXALIAS_SYS (readlinkat, ssize_t, + (int fd, char const *file, char *buf, size_t len)); _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat @@ -1954,12 +1286,6 @@ _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rmdir -# define rmdir _rmdir -# endif -_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif @@ -1970,20 +1296,6 @@ _GL_CXXALIASWARN (rmdir); _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif -#elif @GNULIB_MDA_RMDIR@ -/* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::rmdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rmdir -# define rmdir _rmdir -# endif -_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); -# else -_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); -# endif -_GL_CXXALIASWARN (rmdir); #endif @@ -2018,7 +1330,7 @@ _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep @@ -2042,31 +1354,6 @@ _GL_WARN_ON_USE (sleep, "sleep is unportable - " #endif -#if @GNULIB_MDA_SWAB@ -/* On native Windows, map 'swab' to '_swab', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::swab always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef swab -# define swab _swab -# endif -/* Need to cast, because in old mingw the arguments are - (const char *from, char *to, size_t n). */ -_GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); -# else -# if defined __hpux /* HP-UX */ -_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); -# elif defined __sun && (defined __SunOS_5_10 || defined __XOPEN_OR_POSIX) && !defined _XPG4 /* Solaris */ -_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); -# else -_GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); -# endif -# endif -_GL_CXXALIASWARN (swab); -#endif - - #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -2094,25 +1381,13 @@ _GL_WARN_ON_USE (symlink, "symlink is not portable - " #if @GNULIB_SYMLINKAT@ -# if @REPLACE_SYMLINKAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef symlinkat -# define symlinkat rpl_symlinkat -# endif -_GL_FUNCDECL_RPL (symlinkat, int, - (char const *contents, int fd, char const *file) - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (symlinkat, int, - (char const *contents, int fd, char const *file)); -# else -# if !@HAVE_SYMLINKAT@ +# if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); -# endif +# endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); -# endif _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat @@ -2123,36 +1398,6 @@ _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " #endif -#if @GNULIB_TRUNCATE@ -/* Change the size of the file designated by FILENAME to become equal to LENGTH. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if @REPLACE_TRUNCATE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef truncate -# define truncate rpl_truncate -# endif -_GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); -# else -# if !@HAVE_DECL_TRUNCATE@ -_GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); -# endif -_GL_CXXALIASWARN (truncate); -#elif defined GNULIB_POSIXCHECK -# undef truncate -# if HAVE_RAW_DECL_TRUNCATE -_GL_WARN_ON_USE (truncate, "truncate is unportable - " - "use gnulib module truncate for portability"); -# endif -#endif - - #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ @@ -2191,12 +1436,6 @@ _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink _unlink -# endif -_GL_CXXALIAS_MDA (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif @@ -2207,20 +1446,6 @@ _GL_CXXALIASWARN (unlink); _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif -#elif @GNULIB_MDA_UNLINK@ -/* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::unlink always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink _unlink -# endif -_GL_CXXALIAS_MDA (unlink, int, (char const *file)); -# else -_GL_CXXALIAS_SYS (unlink, int, (char const *file)); -# endif -_GL_CXXALIASWARN (unlink); #endif @@ -2245,7 +1470,7 @@ _GL_CXXALIASWARN (unlinkat); # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " - "use gnulib module unlinkat for portability"); + "use gnulib module openat for portability"); # endif #endif @@ -2254,7 +1479,7 @@ _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification - . */ + . */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep @@ -2266,9 +1491,7 @@ _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif -/* Need to cast, because on Haiku, the first parameter is - unsigned int n. */ -_GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n)); +_GL_CXXALIAS_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK @@ -2283,7 +1506,7 @@ _GL_WARN_ON_USE (usleep, "usleep is unportable - " #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification - . */ + . */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write @@ -2292,32 +1515,11 @@ _GL_WARN_ON_USE (usleep, "usleep is unportable - " _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write _write -# endif -_GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count)); # else -_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (write); -#elif @GNULIB_MDA_WRITE@ -/* On native Windows, map 'write' to '_write', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::write always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write _write -# endif -# ifdef __MINGW32__ -_GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count)); -# else -_GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count)); -# endif -# else -_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); +/* Need to cast, because on mingw, the third parameter is + unsigned int count + and the return type is 'int'. */ +_GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif @@ -2325,5 +1527,4 @@ _GL_CXXALIASWARN (write); _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ -#endif /* _GL_INCLUDING_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ diff --git a/gl/unlocked-io.h b/gl/unlocked-io.h deleted file mode 100644 index fdef624..0000000 --- a/gl/unlocked-io.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Prefer faster, non-thread-safe stdio functions if available. - - Copyright (C) 2001-2004, 2009-2023 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* Written by Jim Meyering. */ - -#ifndef UNLOCKED_IO_H -# define UNLOCKED_IO_H 1 - -/* These are wrappers for functions/macros from the GNU C library, and - from other C libraries supporting POSIX's optional thread-safe functions. - - The standard I/O functions are thread-safe. These *_unlocked ones are - more efficient but not thread-safe. That they're not thread-safe is - fine since all of the applications in this package are single threaded. - - Also, some code that is shared with the GNU C library may invoke - the *_unlocked functions directly. On hosts that lack those - functions, invoke the non-thread-safe versions instead. */ - -# include - -# if HAVE_DECL_CLEARERR_UNLOCKED || defined clearerr_unlocked -# undef clearerr -# define clearerr(x) clearerr_unlocked (x) -# else -# define clearerr_unlocked(x) clearerr (x) -# endif - -# if HAVE_DECL_FEOF_UNLOCKED || defined feof_unlocked -# undef feof -# define feof(x) feof_unlocked (x) -# else -# define feof_unlocked(x) feof (x) -# endif - -# if HAVE_DECL_FERROR_UNLOCKED || defined ferror_unlocked -# undef ferror -# define ferror(x) ferror_unlocked (x) -# else -# define ferror_unlocked(x) ferror (x) -# endif - -# if HAVE_DECL_FFLUSH_UNLOCKED || defined fflush_unlocked -# undef fflush -# define fflush(x) fflush_unlocked (x) -# else -# define fflush_unlocked(x) fflush (x) -# endif - -# if HAVE_DECL_FGETS_UNLOCKED || defined fgets_unlocked -# undef fgets -# define fgets(x,y,z) fgets_unlocked (x,y,z) -# else -# define fgets_unlocked(x,y,z) fgets (x,y,z) -# endif - -# if HAVE_DECL_FPUTC_UNLOCKED || defined fputc_unlocked -# undef fputc -# define fputc(x,y) fputc_unlocked (x,y) -# else -# define fputc_unlocked(x,y) fputc (x,y) -# endif - -# if HAVE_DECL_FPUTS_UNLOCKED || defined fputs_unlocked -# undef fputs -# define fputs(x,y) fputs_unlocked (x,y) -# else -# define fputs_unlocked(x,y) fputs (x,y) -# endif - -# if HAVE_DECL_FREAD_UNLOCKED || defined fread_unlocked -# undef fread -# define fread(w,x,y,z) fread_unlocked (w,x,y,z) -# else -# define fread_unlocked(w,x,y,z) fread (w,x,y,z) -# endif - -# if HAVE_DECL_FWRITE_UNLOCKED || defined fwrite_unlocked -# undef fwrite -# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z) -# else -# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) -# endif - -# if HAVE_DECL_GETC_UNLOCKED || defined get_unlocked -# undef getc -# define getc(x) getc_unlocked (x) -# else -# define getc_unlocked(x) getc (x) -# endif - -# if HAVE_DECL_GETCHAR_UNLOCKED || defined getchar_unlocked -# undef getchar -# define getchar() getchar_unlocked () -# else -# define getchar_unlocked() getchar () -# endif - -# if HAVE_DECL_PUTC_UNLOCKED || defined putc_unlocked -# undef putc -# define putc(x,y) putc_unlocked (x,y) -# else -# define putc_unlocked(x,y) putc (x,y) -# endif - -# if HAVE_DECL_PUTCHAR_UNLOCKED || defined putchar_unlocked -# undef putchar -# define putchar(x) putchar_unlocked (x) -# else -# define putchar_unlocked(x) putchar (x) -# endif - -# undef flockfile -# define flockfile(x) ((void) 0) - -# undef ftrylockfile -# define ftrylockfile(x) 0 - -# undef funlockfile -# define funlockfile(x) ((void) 0) - -#endif /* UNLOCKED_IO_H */ diff --git a/gl/unsetenv.c b/gl/unsetenv.c index e548949..c58c82f 100644 --- a/gl/unsetenv.c +++ b/gl/unsetenv.c @@ -1,18 +1,18 @@ -/* Copyright (C) 1992, 1995-2002, 2005-2023 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995-2002, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ diff --git a/gl/vasnprintf.c b/gl/vasnprintf.c index 277c39e..5267b1b 100644 --- a/gl/vasnprintf.c +++ b/gl/vasnprintf.c @@ -1,18 +1,18 @@ /* vsprintf with automatic memory allocation. - Copyright (C) 1999, 2002-2023 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ /* This file can be parametrized with the following macros: VASNPRINTF The name of the function being defined. @@ -41,14 +41,7 @@ DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. - DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. - ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. - ENABLE_WCHAR_FALLBACK Set to 1 to avoid EILSEQ during conversion of wide - characters (wchar_t) and wide character strings - (wchar_t[]) to multibyte sequences. The fallback is the - hexadecimal escape syntax (\unnnn or \Unnnnnnnn) or, - if wchar_t is not Unicode encoded, \wnnnn or \Wnnnnnnnn. - */ + DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ /* Tell glibc's to provide a prototype for snprintf(). This must come before because may include @@ -60,16 +53,10 @@ #ifndef VASNPRINTF # include #endif - -/* As of GCC 11.2.1, gcc -Wanalyzer-too-complex reports that main's - use of CHECK macros expands to code that is too complicated for gcc - -fanalyzer. Suppress the resulting bogus warnings. */ -#if 10 <= __GNUC__ -# pragma GCC diagnostic ignored "-Wanalyzer-null-argument" +#ifndef IN_LIBINTL +# include #endif -#include - /* Specification. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION @@ -83,7 +70,6 @@ #include /* snprintf(), sprintf() */ #include /* abort(), malloc(), realloc(), free() */ #include /* memcpy(), strlen() */ -#include /* mbstate_t, mbrtowc(), mbrlen(), wcrtomb() */ #include /* errno */ #include /* CHAR_BIT */ #include /* DBL_MAX_EXP, LDBL_MAX_EXP */ @@ -101,7 +87,7 @@ /* Checked size_t computations. */ #include "xsize.h" -#include "attribute.h" +#include "verify.h" #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include @@ -170,7 +156,6 @@ # define SNPRINTF snwprintf # else # define SNPRINTF _snwprintf -# define USE_MSVC__SNPRINTF 1 # endif # else /* Unix. */ @@ -196,9 +181,7 @@ /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # else - /* MSVC versions < 14 did not have snprintf, only _snprintf. */ # define SNPRINTF _snprintf -# define USE_MSVC__SNPRINTF 1 # endif # else /* Unix. */ @@ -212,7 +195,7 @@ /* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized" warnings in this file. Use -Dlint to suppress them. */ -#if defined GCC_LINT || defined lint +#ifdef lint # define IF_LINT(Code) Code #else # define IF_LINT(Code) /* empty */ @@ -225,7 +208,7 @@ #undef remainder #define remainder rem -#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && !WIDE_CHAR_VERSION +#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && !WIDE_CHAR_VERSION # if (HAVE_STRNLEN && !defined _AIX) # define local_strnlen strnlen # else @@ -241,7 +224,7 @@ local_strnlen (const char *string, size_t maxlen) # endif #endif -#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T +#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T # if HAVE_WCSLEN # define local_wcslen wcslen # else @@ -264,7 +247,7 @@ local_wcslen (const wchar_t *s) # endif #endif -#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && HAVE_WCHAR_T && WIDE_CHAR_VERSION +#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && HAVE_WCHAR_T && WIDE_CHAR_VERSION # if HAVE_WCSNLEN # define local_wcsnlen wcsnlen # else @@ -283,74 +266,6 @@ local_wcsnlen (const wchar_t *s, size_t maxlen) # endif #endif -#if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL) || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T) || (ENABLE_WCHAR_FALLBACK && HAVE_WINT_T)) && !WIDE_CHAR_VERSION -# if ENABLE_WCHAR_FALLBACK -static size_t -wctomb_fallback (char *s, wchar_t wc) -{ - static char hex[16] = "0123456789ABCDEF"; - - s[0] = '\\'; - if (sizeof (wchar_t) > 2 && wc > 0xffff) - { -# if __STDC_ISO_10646__ || (__GLIBC__ >= 2) || (defined _WIN32 || defined __CYGWIN__) - s[1] = 'U'; -# else - s[1] = 'W'; -# endif - s[2] = hex[(wc & 0xf0000000U) >> 28]; - s[3] = hex[(wc & 0xf000000U) >> 24]; - s[4] = hex[(wc & 0xf00000U) >> 20]; - s[5] = hex[(wc & 0xf0000U) >> 16]; - s[6] = hex[(wc & 0xf000U) >> 12]; - s[7] = hex[(wc & 0xf00U) >> 8]; - s[8] = hex[(wc & 0xf0U) >> 4]; - s[9] = hex[wc & 0xfU]; - return 10; - } - else - { -# if __STDC_ISO_10646__ || (__GLIBC__ >= 2) || (defined _WIN32 || defined __CYGWIN__) - s[1] = 'u'; -# else - s[1] = 'w'; -# endif - s[2] = hex[(wc & 0xf000U) >> 12]; - s[3] = hex[(wc & 0xf00U) >> 8]; - s[4] = hex[(wc & 0xf0U) >> 4]; - s[5] = hex[wc & 0xfU]; - return 6; - } -} -# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t -static size_t -local_wcrtomb (char *s, wchar_t wc, mbstate_t *ps) -{ - size_t count = wcrtomb (s, wc, ps); - if (count == (size_t)(-1)) - count = wctomb_fallback (s, wc); - return count; -} -# else -static int -local_wctomb (char *s, wchar_t wc) -{ - int count = wctomb (s, wc); - if (count < 0) - count = wctomb_fallback (s, wc); - return count; -} -# define local_wcrtomb(S, WC, PS) local_wctomb ((S), (WC)) -# endif -# else -# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t -# define local_wcrtomb(S, WC, PS) wcrtomb ((S), (WC), (PS)) -# else -# define local_wcrtomb(S, WC, PS) wctomb ((S), (WC)) -# endif -# endif -#endif - #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL /* Determine the decimal-point character according to the current locale. */ # ifndef decimal_point_char_defined @@ -408,11 +323,11 @@ is_infinite_or_zerol (long double x) typedef unsigned int mp_limb_t; # define GMP_LIMB_BITS 32 -static_assert (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); +verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); typedef unsigned long long mp_twolimb_t; # define GMP_TWOLIMB_BITS 64 -static_assert (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); +verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); /* Representation of a bignum >= 0. */ typedef struct @@ -639,8 +554,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q) mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ /* Determine s = GMP_LIMB_BITS - integer_length (msd). Code copied from gnulib's integer_length.c. */ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) \ - || (__clang_major__ >= 4) +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) s = __builtin_clz (msd); # else # if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT @@ -915,7 +829,8 @@ divide (mpn_t a, mpn_t b, mpn_t *q) q_ptr[q_len++] = 1; } keep_q: - free (tmp_roomptr); + if (tmp_roomptr != NULL) + free (tmp_roomptr); q->limbs = q_ptr; q->nlimbs = q_len; return roomptr; @@ -934,9 +849,7 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes) size_t a_len = a.nlimbs; /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); - /* We need extra_zeroes bytes for zeroes, followed by c_len bytes for the - digits of a, followed by 1 byte for the terminating NUL. */ - char *c_ptr = (char *) malloc (xsum (xsum (extra_zeroes, c_len), 1)); + char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); if (c_ptr != NULL) { char *d_ptr = c_ptr; @@ -1604,7 +1517,7 @@ is_borderline (const char *digits, size_t precision) #endif -#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF +#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 /* Use a different function name, to make it possible that the 'wchar_t' parametrization and the 'char' parametrization get compiled in the same @@ -1627,13 +1540,16 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion, switch (conversion) { case 'd': case 'i': case 'u': +# if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ - else if (type == TYPE_LONGINT || type == TYPE_ULONGINT) + else +# endif + if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.30103 /* binary -> decimal */ @@ -1654,13 +1570,16 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion, break; case 'o': +# if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ - else if (type == TYPE_LONGINT || type == TYPE_ULONGINT) + else +# endif + if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.333334 /* binary -> octal */ @@ -1679,13 +1598,16 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion, break; case 'x': case 'X': +# if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ - else if (type == TYPE_LONGINT || type == TYPE_ULONGINT) + else +# endif + if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ @@ -1751,13 +1673,7 @@ MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion, case 'c': # if HAVE_WINT_T && !WIDE_CHAR_VERSION if (type == TYPE_WIDE_CHAR) - { - tmp_length = MB_CUR_MAX; -# if ENABLE_WCHAR_FALLBACK - if (tmp_length < (sizeof (wchar_t) > 2 ? 10 : 6)) - tmp_length = (sizeof (wchar_t) > 2 ? 10 : 6); -# endif - } + tmp_length = MB_CUR_MAX; else # endif tmp_length = 1; @@ -1864,7 +1780,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, /* errno is already set. */ return NULL; - /* Frees the memory allocated by this function. Preserves errno. */ #define CLEANUP() \ if (d.dir != d.direct_alloc_dir) \ free (d.dir); \ @@ -1872,7 +1787,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, free (a.arg); if (PRINTF_FETCHARGS (args, &a) < 0) - goto fail_1_with_EINVAL; + { + CLEANUP (); + errno = EINVAL; + return NULL; + } { size_t buf_neededlength; @@ -1908,17 +1827,24 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, buf_malloced = buf; } - result = resultbuf; - allocated = (resultbuf != NULL ? *lengthp : 0); + if (resultbuf != NULL) + { + result = resultbuf; + allocated = *lengthp; + } + else + { + result = NULL; + allocated = 0; + } length = 0; /* Invariants: - result is either == resultbuf or malloc-allocated. - If result == NULL, resultbuf is == NULL as well. + result is either == resultbuf or == NULL or malloc-allocated. If length > 0, then result != NULL. */ /* Ensures that allocated >= needed. Aborts through a jump to out_of_memory if needed is SIZE_MAX or otherwise too big. */ -#define ENSURE_ALLOCATION_ELSE(needed, oom_statement) \ +#define ENSURE_ALLOCATION(needed) \ if ((needed) > allocated) \ { \ size_t memory_size; \ @@ -1929,19 +1855,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, allocated = (needed); \ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ if (size_overflow_p (memory_size)) \ - oom_statement \ - if (result == resultbuf) \ + goto out_of_memory; \ + if (result == resultbuf || result == NULL) \ memory = (DCHAR_T *) malloc (memory_size); \ else \ memory = (DCHAR_T *) realloc (result, memory_size); \ if (memory == NULL) \ - oom_statement \ + goto out_of_memory; \ if (result == resultbuf && length > 0) \ DCHAR_CPY (memory, result, length); \ result = memory; \ } -#define ENSURE_ALLOCATION(needed) \ - ENSURE_ALLOCATION_ELSE((needed), goto out_of_memory; ) for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) { @@ -1962,7 +1886,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, else { do - result[length++] = *cp++; + result[length++] = (unsigned char) *cp++; while (--n > 0); } } @@ -2002,9 +1926,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, case TYPE_COUNT_LONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longint_pointer = length; break; +#if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; break; +#endif default: abort (); } @@ -2031,14 +1957,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; - width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; - width = -width; + width = (unsigned int) (-arg); } + else + width = arg; } else { @@ -2100,7 +2027,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (count == 0) break; if (count < 0) - goto fail_with_EILSEQ; + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2117,7 +2052,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (count == 0) break; if (count < 0) - goto fail_with_EILSEQ; + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2130,7 +2073,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, characters = 0; } - if (characters < width && !(dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2163,11 +2107,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, converted, &converted_len); # endif if (converted == NULL) - goto fail_with_errno; + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } if (converted != result + length) { - ENSURE_ALLOCATION_ELSE (xsum (length, converted_len), - { free (converted); goto out_of_memory; }); + ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } @@ -2175,7 +2127,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } # endif - if (characters < width && (dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2202,7 +2155,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (count == 0) break; if (count < 0) - goto fail_with_EILSEQ; + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2219,7 +2180,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (count == 0) break; if (count < 0) - goto fail_with_EILSEQ; + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2232,7 +2201,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, characters = 0; } - if (characters < width && !(dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2265,11 +2235,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, converted, &converted_len); # endif if (converted == NULL) - goto fail_with_errno; + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } if (converted != result + length) { - ENSURE_ALLOCATION_ELSE (xsum (length, converted_len), - { free (converted); goto out_of_memory; }); + ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } @@ -2277,7 +2255,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } # endif - if (characters < width && (dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2304,7 +2283,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (count == 0) break; if (count < 0) - goto fail_with_EILSEQ; + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2321,7 +2308,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (count == 0) break; if (count < 0) - goto fail_with_EILSEQ; + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2334,7 +2329,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, characters = 0; } - if (characters < width && !(dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2367,11 +2363,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, converted, &converted_len); # endif if (converted == NULL) - goto fail_with_errno; + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } if (converted != result + length) { - ENSURE_ALLOCATION_ELSE (xsum (length, converted_len), - { free (converted); goto out_of_memory; }); + ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } @@ -2379,7 +2383,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } # endif - if (characters < width && (dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2394,7 +2399,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } } #endif -#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL) || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T +#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T else if (dp->conversion == 's' # if WIDE_CHAR_VERSION && a.arg[dp->arg_index].type != TYPE_WIDE_STRING @@ -2430,14 +2435,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; - width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; - width = -width; + width = (unsigned int) (-arg); } + else + width = arg; } else { @@ -2509,8 +2515,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, /* Found the terminating NUL. */ break; if (count < 0) - /* Invalid or incomplete multibyte character. */ - goto fail_with_EILSEQ; + { + /* Invalid or incomplete multibyte character. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2537,8 +2551,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, /* Found the terminating NUL. */ break; if (count < 0) - /* Invalid or incomplete multibyte character. */ - goto fail_with_EILSEQ; + { + /* Invalid or incomplete multibyte character. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end += count; characters++; } @@ -2551,7 +2573,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, characters = 0; } - if (characters < width && !(dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2612,7 +2635,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } } - if (characters < width && (dp->flags & FLAG_LEFT)) + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); @@ -2628,7 +2652,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, size_t characters; # if !DCHAR_IS_TCHAR /* This code assumes that TCHAR_T is 'char'. */ - static_assert (sizeof (TCHAR_T) == 1); + verify (sizeof (TCHAR_T) == 1); TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; @@ -2653,11 +2677,23 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (*arg_end == 0) /* Found the terminating null wide character. */ break; - count = local_wcrtomb (cbuf, *arg_end, &state); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg_end, &state); +# else + count = wctomb (cbuf, *arg_end); +# endif if (count < 0) - /* Cannot convert. */ - goto fail_with_EILSEQ; - if (precision < (unsigned int) count) + { + /* Cannot convert. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + if (precision < count) break; arg_end++; characters += count; @@ -2686,10 +2722,22 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (*arg_end == 0) /* Found the terminating null wide character. */ break; - count = local_wcrtomb (cbuf, *arg_end, &state); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg_end, &state); +# else + count = wctomb (cbuf, *arg_end); +# endif if (count < 0) - /* Cannot convert. */ - goto fail_with_EILSEQ; + { + /* Cannot convert. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } arg_end++; characters += count; } @@ -2723,7 +2771,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (*arg == 0) abort (); - count = local_wcrtomb (cbuf, *arg, &state); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg, &state); +# else + count = wctomb (cbuf, *arg); +# endif if (count <= 0) /* Inconsistency. */ abort (); @@ -2745,8 +2797,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, NULL, &tmpdst_len); if (tmpdst == NULL) { + int saved_errno = errno; free (tmpsrc); - goto fail_with_errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; } free (tmpsrc); # endif @@ -2768,7 +2827,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, /* w doesn't matter. */ w = 0; - if (w < width && !(dp->flags & FLAG_LEFT)) + if (has_width && width > w + && !(dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); @@ -2793,7 +2853,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (*arg == 0) abort (); - count = local_wcrtomb (cbuf, *arg, &state); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg, &state); +# else + count = wctomb (cbuf, *arg); +# endif if (count <= 0) /* Inconsistency. */ abort (); @@ -2818,10 +2882,22 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (*arg == 0) abort (); - count = local_wcrtomb (cbuf, *arg, &state); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg, &state); +# else + count = wctomb (cbuf, *arg); +# endif if (count <= 0) - /* Cannot convert. */ - goto fail_with_EILSEQ; + { + /* Cannot convert. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } ENSURE_ALLOCATION (xsum (length, count)); memcpy (result + length, cbuf, count); length += count; @@ -2829,14 +2905,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } } # else - ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len), - { free (tmpdst); goto out_of_memory; }); + ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); length += tmpdst_len; # endif - if (w < width && (dp->flags & FLAG_LEFT)) + if (has_width && width > w + && (dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); @@ -2847,202 +2923,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, # endif } #endif -#if ENABLE_WCHAR_FALLBACK && HAVE_WINT_T && !WIDE_CHAR_VERSION - else if (dp->conversion == 'c' - && a.arg[dp->arg_index].type == TYPE_WIDE_CHAR) - { - /* Implement the 'lc' directive ourselves, in order to provide - the fallback that avoids EILSEQ. */ - int flags = dp->flags; - int has_width; - size_t width; - - has_width = 0; - width = 0; - if (dp->width_start != dp->width_end) - { - if (dp->width_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->width_arg_index].a.a_int; - width = arg; - if (arg < 0) - { - /* "A negative field width is taken as a '-' flag - followed by a positive field width." */ - flags |= FLAG_LEFT; - width = -width; - } - } - else - { - const FCHAR_T *digitp = dp->width_start; - - do - width = xsum (xtimes (width, 10), *digitp++ - '0'); - while (digitp != dp->width_end); - } - has_width = 1; - } - - /* %lc in vasnprintf. See the specification of fprintf. */ - { - wchar_t arg = (wchar_t) a.arg[dp->arg_index].a.a_wide_char; - size_t characters; -# if !DCHAR_IS_TCHAR - /* This code assumes that TCHAR_T is 'char'. */ - static_assert (sizeof (TCHAR_T) == 1); - TCHAR_T tmpsrc[64]; /* Assume MB_CUR_MAX <= 64. */ - DCHAR_T *tmpdst; - size_t tmpdst_len; -# endif - size_t w; - -# if DCHAR_IS_TCHAR - if (has_width) -# endif - { - /* Count the number of bytes. */ - characters = 0; - if (arg != 0) - { - char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ - int count; -# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t - mbstate_t state; - memset (&state, '\0', sizeof (mbstate_t)); -# endif - - count = local_wcrtomb (cbuf, arg, &state); - if (count < 0) - /* Inconsistency. */ - abort (); - characters = count; - } - } -# if DCHAR_IS_TCHAR - else - { - /* The number of bytes doesn't matter. */ - characters = 0; - } -# endif - -# if !DCHAR_IS_TCHAR - /* Convert the string into a piece of temporary memory. */ - if (characters > 0) /* implies arg != 0 */ - { - char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ - int count; -# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t - mbstate_t state; - memset (&state, '\0', sizeof (mbstate_t)); -# endif - - count = local_wcrtomb (cbuf, arg, &state); - if (count <= 0) - /* Inconsistency. */ - abort (); - memcpy (tmpsrc, cbuf, count); - } - - /* Convert from TCHAR_T[] to DCHAR_T[]. */ - tmpdst = - DCHAR_CONV_FROM_ENCODING (locale_charset (), - iconveh_question_mark, - tmpsrc, characters, - NULL, - NULL, &tmpdst_len); - if (tmpdst == NULL) - goto fail_with_errno; -# endif - - if (has_width) - { -# if ENABLE_UNISTDIO - /* Outside POSIX, it's preferable to compare the width - against the number of _characters_ of the converted - value. */ - w = DCHAR_MBSNLEN (result + length, characters); -# else - /* The width is compared against the number of _bytes_ - of the converted value, says POSIX. */ - w = characters; -# endif - } - else - /* w doesn't matter. */ - w = 0; - - if (w < width && !(dp->flags & FLAG_LEFT)) - { - size_t n = width - w; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - -# if DCHAR_IS_TCHAR - if (has_width) - { - /* We know the number of bytes in advance. */ - ENSURE_ALLOCATION (xsum (length, characters)); - if (characters > 0) /* implies arg != 0 */ - { - int count; -# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t - mbstate_t state; - memset (&state, '\0', sizeof (mbstate_t)); -# endif - - count = local_wcrtomb (result + length, arg, &state); - if (count <= 0) - /* Inconsistency. */ - abort (); - length += count; - } - } - else - { - if (arg != 0) - { - char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ - int count; -# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t - mbstate_t state; - memset (&state, '\0', sizeof (mbstate_t)); -# endif - - count = local_wcrtomb (cbuf, arg, &state); - if (count <= 0) - /* Inconsistency. */ - abort (); - ENSURE_ALLOCATION (xsum (length, count)); - memcpy (result + length, cbuf, count); - length += count; - } - } -# else - ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len), - { free (tmpdst); goto out_of_memory; }); - DCHAR_CPY (result + length, tmpdst, tmpdst_len); - free (tmpdst); - length += tmpdst_len; -# endif - - if (w < width && (dp->flags & FLAG_LEFT)) - { - size_t n = width - w; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - } - } -#endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'a' || dp->conversion == 'A') # if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) @@ -3059,16 +2939,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; + int has_width; size_t width; int has_precision; size_t precision; size_t tmp_length; - size_t count; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; + has_width = 0; width = 0; if (dp->width_start != dp->width_end) { @@ -3079,14 +2960,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; - width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; - width = -width; + width = (unsigned int) (-arg); } + else + width = arg; } else { @@ -3096,6 +2978,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } + has_width = 1; } has_precision = 0; @@ -3471,14 +3354,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, abort (); # endif } - /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ - count = p - tmp; - - if (count < width) + if (has_width && p - tmp < width) { - size_t pad = width - count; + size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) @@ -3511,26 +3391,28 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, p = end; } - count = p - tmp; + { + size_t count = p - tmp; - if (count >= tmp_length) - /* tmp_length was incorrectly calculated - fix the - code above! */ - abort (); + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); - /* Make room for the result. */ - if (count >= allocated - length) - { - size_t n = xsum (length, count); + /* Make room for the result. */ + if (count >= allocated - length) + { + size_t n = xsum (length, count); - ENSURE_ALLOCATION (n); - } + ENSURE_ALLOCATION (n); + } - /* Append the result. */ - memcpy (result + length, tmp, count * sizeof (DCHAR_T)); - if (tmp != tmpbuf) - free (tmp); - length += count; + /* Append the result. */ + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); + if (tmp != tmpbuf) + free (tmp); + length += count; + } } #endif #if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL @@ -3564,8 +3446,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, arg_type type = a.arg[dp->arg_index].type; # endif int flags = dp->flags; + int has_width; size_t width; - size_t count; int has_precision; size_t precision; size_t tmp_length; @@ -3574,6 +3456,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, DCHAR_T *pad_ptr; DCHAR_T *p; + has_width = 0; width = 0; if (dp->width_start != dp->width_end) { @@ -3584,14 +3467,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; - width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; - width = -width; + width = (unsigned int) (-arg); } + else + width = arg; } else { @@ -3601,6 +3485,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } + has_width = 1; } has_precision = 0; @@ -4040,9 +3925,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, digits without trailing zeroes. */ if (exponent >= 0) { - size_t ecount = exponent + 1; + size_t count = exponent + 1; /* Note: count <= precision = ndigits. */ - for (; ecount > 0; ecount--) + for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { @@ -4056,10 +3941,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } else { - size_t ecount = -exponent - 1; + size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); - for (; ecount > 0; ecount--) + for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { @@ -4364,7 +4249,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; @@ -4378,7 +4263,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; @@ -4510,9 +4395,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, digits without trailing zeroes. */ if (exponent >= 0) { - size_t ecount = exponent + 1; - /* Note: ecount <= precision = ndigits. */ - for (; ecount > 0; ecount--) + size_t count = exponent + 1; + /* Note: count <= precision = ndigits. */ + for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { @@ -4526,10 +4411,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, } else { - size_t ecount = -exponent - 1; + size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); - for (; ecount > 0; ecount--) + for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { @@ -4557,7 +4442,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; @@ -4571,7 +4456,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; @@ -4629,7 +4514,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, *p++ = '+'; /* Produce the same number of exponent digits as the native printf implementation. */ -# if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *p++ = '0'; # endif *p++ = '0'; @@ -4657,11 +4542,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ - count = p - tmp; - - if (count < width) + if (has_width && p - tmp < width) { - size_t pad = width - count; + size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) @@ -4694,39 +4577,39 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, p = end; } - count = p - tmp; + { + size_t count = p - tmp; - if (count >= tmp_length) - /* tmp_length was incorrectly calculated - fix the - code above! */ - abort (); + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); - /* Make room for the result. */ - if (count >= allocated - length) - { - size_t n = xsum (length, count); + /* Make room for the result. */ + if (count >= allocated - length) + { + size_t n = xsum (length, count); - ENSURE_ALLOCATION (n); - } + ENSURE_ALLOCATION (n); + } - /* Append the result. */ - memcpy (result + length, tmp, count * sizeof (DCHAR_T)); - if (tmp != tmpbuf) - free (tmp); - length += count; + /* Append the result. */ + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); + if (tmp != tmpbuf) + free (tmp); + length += count; + } } #endif else { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; -#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION +#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int has_width; -#endif -#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION size_t width; #endif -#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION +#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION int has_precision; size_t precision; #endif @@ -4752,10 +4635,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, TCHAR_T *tmp; #endif -#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION +#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION has_width = 0; -#endif -#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION width = 0; if (dp->width_start != dp->width_end) { @@ -4766,14 +4647,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; - width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; - width = -width; + width = (unsigned int) (-arg); } + else + width = arg; } else { @@ -4783,13 +4665,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } -#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION has_width = 1; -#endif } #endif -#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION +#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || NEED_PRINTF_UNBOUNDED_PRECISION has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) @@ -4925,7 +4805,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, { const FCHAR_T *mp = dp->width_start; do - *fbp++ = *mp++; + *fbp++ = (unsigned char) *mp++; while (--n > 0); } } @@ -4946,7 +4826,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, { const FCHAR_T *mp = dp->precision_start; do - *fbp++ = *mp++; + *fbp++ = (unsigned char) *mp++; while (--n > 0); } } @@ -4954,17 +4834,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, switch (type) { +#if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: case TYPE_ULONGLONGINT: -#if defined _WIN32 && ! defined __CYGWIN__ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *fbp++ = 'I'; *fbp++ = '6'; *fbp++ = '4'; break; -#else +# else *fbp++ = 'l'; + /*FALLTHROUGH*/ +# endif #endif - FALLTHROUGH; case TYPE_LONGINT: case TYPE_ULONGINT: #if HAVE_WINT_T @@ -4988,32 +4870,20 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, #endif *fbp = dp->conversion; #if USE_SNPRINTF -# if ((HAVE_SNPRINTF_RETVAL_C99 && HAVE_SNPRINTF_TRUNCATION_C99) \ - || ((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \ - && !defined __UCLIBC__) \ - || (defined __APPLE__ && defined __MACH__) \ - || defined __ANDROID__ \ - || (defined _WIN32 && ! defined __CYGWIN__)) - /* On systems where we know that snprintf's return value - conforms to ISO C 99 (HAVE_SNPRINTF_RETVAL_C99) and that - snprintf always produces NUL-terminated strings - (HAVE_SNPRINTF_TRUNCATION_C99), it is possible to avoid - using %n. And it is desirable to do so, because more and - more platforms no longer support %n, for "security reasons". - In particular, the following platforms: - - On glibc2 systems from 2004-10-18 or newer, the use of - %n in format strings in writable memory may crash the - program (if compiled with _FORTIFY_SOURCE=2). - - On Mac OS X 10.13 or newer, the use of %n in format - strings in writable memory by default crashes the - program. - - On Android, starting on 2018-03-07, the use of %n in - format strings produces a fatal error (see - ). - On these platforms, HAVE_SNPRINTF_RETVAL_C99 and - HAVE_SNPRINTF_TRUNCATION_C99 are 1. We have listed them - explicitly in the condition above, in case of cross- - compilation (just to be sure). */ +# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + fbp[1] = '%'; + fbp[2] = 'n'; + fbp[3] = '\0'; +# else + /* On glibc2 systems from glibc >= 2.3 - probably also older + ones - we know that snprintf's return value conforms to + ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and + gl_SNPRINTF_TRUNCATION_C99 pass. + Therefore we can avoid using %n in this situation. + On glibc2 systems from 2004-10-18 or newer, the use of %n + in format strings in writable memory may crash the program + (if compiled with _FORTIFY_SOURCE=2), so we should avoid it + in this situation. */ /* On native Windows systems (such as mingw), we can avoid using %n because: - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, @@ -5026,14 +4896,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, On native Windows systems (such as mingw) where the OS is Windows Vista, the use of %n in format strings by default crashes the program. See - and - + and + So we should avoid %n in this situation. */ fbp[1] = '\0'; -# else /* AIX <= 5.1, HP-UX, IRIX, OSF/1, Solaris <= 9, BeOS */ - fbp[1] = '%'; - fbp[2] = 'n'; - fbp[3] = '\0'; # endif #else fbp[1] = '\0'; @@ -5177,6 +5043,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, SNPRINTF_BUF (arg); } break; +#if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: { long long int arg = a.arg[dp->arg_index].a.a_longlongint; @@ -5189,6 +5056,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, SNPRINTF_BUF (arg); } break; +#endif case TYPE_DOUBLE: { double arg = a.arg[dp->arg_index].a.a_double; @@ -5248,7 +5116,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, { /* Verify that snprintf() has NUL-terminated its result. */ - if ((unsigned int) count < maxlen + if (count < maxlen && ((TCHAR_T *) (result + length)) [count] != '\0') abort (); /* Portability hack. */ @@ -5271,7 +5139,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, /* Look at the snprintf() return value. */ if (retcount < 0) { -# if !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF +# if !HAVE_SNPRINTF_RETVAL_C99 /* HP-UX 10.20 snprintf() is doubly deficient: It doesn't understand the '%n' directive, *and* it returns -1 (rather than the length @@ -5285,7 +5153,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, size_t tmp_length = MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type, flags, - width, + has_width ? width : 0, has_precision, precision, pad_ourselves); @@ -5320,17 +5188,22 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, /* Attempt to handle failure. */ if (count < 0) { - /* SNPRINTF or sprintf failed. Use the errno that it - has set, if any. */ - if (errno == 0) - { - if (dp->conversion == 'c' || dp->conversion == 's') - errno = EILSEQ; - else - errno = EINVAL; - } + /* SNPRINTF or sprintf failed. Save and use the errno + that it has set, if any. */ + int saved_errno = errno; - goto fail_with_errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = + (saved_errno != 0 + ? saved_errno + : (dp->conversion == 'c' || dp->conversion == 's' + ? EILSEQ + : EINVAL)); + return NULL; } #if USE_SNPRINTF @@ -5451,7 +5324,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, DCHAR_T *tmpdst; size_t tmpdst_len; /* This code assumes that TCHAR_T is 'char'. */ - static_assert (sizeof (TCHAR_T) == 1); + verify (sizeof (TCHAR_T) == 1); # if USE_SNPRINTF tmpsrc = (TCHAR_T *) (result + length); # else @@ -5464,9 +5337,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, NULL, NULL, &tmpdst_len); if (tmpdst == NULL) - goto fail_with_errno; - ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len), - { free (tmpdst); goto out_of_memory; }); + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); count = tmpdst_len; @@ -5510,7 +5391,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, tmpsrc += count; tmpdst += count; for (n = count; n > 0; n--) - *--tmpdst = *--tmpsrc; + *--tmpdst = (unsigned char) *--tmpsrc; } } #endif @@ -5689,40 +5570,25 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, #if USE_SNPRINTF overflow: - errno = EOVERFLOW; - goto fail_with_errno; -#endif - - out_of_memory: - errno = ENOMEM; - goto fail_with_errno; - -#if ENABLE_UNISTDIO || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL) || ENABLE_WCHAR_FALLBACK) && HAVE_WCHAR_T) - fail_with_EILSEQ: - errno = EILSEQ; - goto fail_with_errno; -#endif - - fail_with_errno: - if (result != resultbuf) + if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); + errno = EOVERFLOW; + return NULL; +#endif + + out_of_memory: + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + out_of_memory_1: + CLEANUP (); + errno = ENOMEM; return NULL; } - - out_of_memory_1: - errno = ENOMEM; - goto fail_1_with_errno; - - fail_1_with_EINVAL: - errno = EINVAL; - goto fail_1_with_errno; - - fail_1_with_errno: - CLEANUP (); - return NULL; } #undef MAX_ROOM_NEEDED diff --git a/gl/vasnprintf.h b/gl/vasnprintf.h index f69649f..7658f50 100644 --- a/gl/vasnprintf.h +++ b/gl/vasnprintf.h @@ -1,18 +1,18 @@ /* vsprintf with automatic memory allocation. - Copyright (C) 2002-2004, 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifndef _VASNPRINTF_H #define _VASNPRINTF_H @@ -23,8 +23,17 @@ /* Get size_t. */ #include -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +#else +# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ +#endif #ifdef __cplusplus extern "C" { @@ -58,12 +67,10 @@ extern "C" { # define asnprintf rpl_asnprintf # define vasnprintf rpl_vasnprintf #endif -extern char * asnprintf (char *restrict resultbuf, size_t *lengthp, - const char *format, ...) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)); -extern char * vasnprintf (char *restrict resultbuf, size_t *lengthp, - const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0)); +extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) + _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); +extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 0)); #ifdef __cplusplus } diff --git a/gl/vasprintf.c b/gl/vasprintf.c index d2878cd..d0d4a11 100644 --- a/gl/vasprintf.c +++ b/gl/vasprintf.c @@ -1,18 +1,18 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006-2023 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #include diff --git a/gl/verify.h b/gl/verify.h index b63cb26..d42d075 100644 --- a/gl/verify.h +++ b/gl/verify.h @@ -1,19 +1,19 @@ /* Compile-time assert-like macros. - Copyright (C) 2005-2006, 2009-2023 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ @@ -21,32 +21,31 @@ #define _GL_VERIFY_H -/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) - works as per C11. This is supported by GCC 4.6.0+ and by clang 4+. +/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. + This is supported by GCC 4.6.0 and later, in C mode, and its use + here generates easier-to-read diagnostics when verify (R) fails. - Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as - per C23. This is supported by GCC 9.1+. + Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. + This will likely be supported by future GCC versions, in C++ mode. - Support compilers claiming conformance to the relevant standard, - and also support GCC when not pedantic. If we were willing to slow - 'configure' down we could also use it with other compilers, but - since this affects only the quality of diagnostics, why bother? */ -#ifndef __cplusplus -# if (201112 <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 5 <= __clang_major__))) -# define _GL_HAVE__STATIC_ASSERT 1 -# endif -# if (202311 <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ && 9 <= __GNUC__)) -# define _GL_HAVE__STATIC_ASSERT1 1 -# endif + Use this only with GCC. If we were willing to slow 'configure' + down we could also use it with other compilers, but since this + affects only the quality of diagnostics, why bother? */ +#if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \ + && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \ + && !defined __cplusplus) +# define _GL_HAVE__STATIC_ASSERT 1 +#endif +/* The condition (99 < __GNUC__) is temporary, until we know about the + first G++ release that supports static_assert. */ +#if (99 < __GNUC__) && defined __cplusplus +# define _GL_HAVE_STATIC_ASSERT 1 #endif /* FreeBSD 9.1 , included by and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ -#ifndef _GL_HAVE__STATIC_ASSERT +#ifndef _GL_HAVE_STATIC_ASSERT # include # undef _Static_assert #endif @@ -144,9 +143,9 @@ which do not support _Static_assert, also do not warn about the last declaration mentioned above. - * GCC warns if -Wnested-externs is enabled and 'verify' is used + * GCC warns if -Wnested-externs is enabled and verify() is used within a function body; but inside a function, you can always - arrange to use verify_expr instead. + arrange to use verify_expr() instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ @@ -198,95 +197,48 @@ template #endif /* Verify requirement R at compile-time, as a declaration without a - trailing ';'. If R is false, fail at compile-time. - - This macro requires three or more arguments but uses at most the first - two, so that the _Static_assert macro optionally defined below supports - both the C11 two-argument syntax and the C23 one-argument syntax. + trailing ';'. If R is false, fail at compile-time, preferably + with a diagnostic that includes the string-literal DIAGNOSTIC. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ -#if 202311 <= __STDC_VERSION__ || 200410 <= __cpp_static_assert -# define _GL_VERIFY(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC) -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) +#ifdef _GL_HAVE__STATIC_ASSERT +# define _GL_VERIFY _Static_assert #else -# define _GL_VERIFY(R, DIAGNOSTIC, ...) \ +# define _GL_VERIFY(R, DIAGNOSTIC) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] -# if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) -# pragma GCC diagnostic ignored "-Wnested-externs" -# endif #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H -# if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert -# if !defined _MSC_VER || defined __clang__ -# define _Static_assert(...) \ - _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) -# else - /* Work around MSVC preprocessor incompatibility with ISO C; see - . */ -# define _Static_assert(R, ...) \ - _GL_VERIFY ((R), "static assertion failed", -) -# endif +# if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert +# define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) # endif -# if (!defined static_assert \ - && __STDC_VERSION__ < 202311 \ - && (!defined __cplusplus \ - || (__cpp_static_assert < 201411 \ - && __GNUG__ < 6 && __clang_major__ < 6))) -# if defined __cplusplus && _MSC_VER >= 1900 && !defined __clang__ -/* MSVC 14 in C++ mode supports the two-arguments static_assert but not - the one-argument static_assert, and it does not support _Static_assert. - We have to play preprocessor tricks to distinguish the two cases. - Since the MSVC preprocessor is not ISO C compliant (see above),. - the solution is specific to MSVC. */ -# define _GL_EXPAND(x) x -# define _GL_SA1(a1) static_assert ((a1), "static assertion failed") -# define _GL_SA2 static_assert -# define _GL_SA3 static_assert -# define _GL_SA_PICK(x1,x2,x3,x4,...) x4 -# define static_assert(...) _GL_EXPAND(_GL_SA_PICK(__VA_ARGS__,_GL_SA3,_GL_SA2,_GL_SA1)) (__VA_ARGS__) -# else -# define static_assert _Static_assert /* C11 requires this #define. */ -# endif +# if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert +# define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif /* @assert.h omit start@ */ -#if defined __clang_major__ && __clang_major__ < 5 -# define _GL_HAS_BUILTIN_TRAP 0 -#elif 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)) -# define _GL_HAS_BUILTIN_TRAP 1 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap) -#else -# define _GL_HAS_BUILTIN_TRAP 0 -#endif - -#if defined __clang_major__ && __clang_major__ < 5 -# define _GL_HAS_BUILTIN_UNREACHABLE 0 -#elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__) -# define _GL_HAS_BUILTIN_UNREACHABLE 1 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) -#else -# define _GL_HAS_BUILTIN_UNREACHABLE 0 -#endif - /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all - contexts in C. verify_expr (R, E) is for scalar contexts, including + contexts in C. verify_true (R) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ +/* Verify requirement R at compile-time, as an integer constant expression. + Return 1. This is equivalent to verify_expr (R, 1). + + verify_true is obsolescent; please use verify_expr instead. */ + +#define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") + /* Verify requirement R at compile-time. Return the value of the expression E. */ @@ -294,56 +246,9 @@ template (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a - trailing ';'. verify (R) acts like static_assert (R) except that - it is portable to C11/C++14 and earlier, it can issue better - diagnostics, and its name is shorter and may be more convenient. */ + trailing ';'. */ -#ifdef __PGI -/* PGI barfs if R is long. */ -# define verify(R) _GL_VERIFY (R, "verify (...)", -) -#else -# define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) -#endif - -/* Assume that R always holds. Behavior is undefined if R is false, - fails to evaluate, or has side effects. - - 'assume (R)' is a directive from the programmer telling the - compiler that R is true so the compiler needn't generate code to - test R. This is why 'assume' is in verify.h: it's related to - static checking (in this case, static checking done by the - programmer), not dynamic checking. - - 'assume (R)' can affect compilation of all the code, not just code - that happens to be executed after the assume (R) is "executed". - For example, if the code mistakenly does 'assert (R); assume (R);' - the compiler is entitled to optimize away the 'assert (R)'. - - 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. - - Avoid Clang's __builtin_assume, as it breaks GNU Emacs master - as of 2020-08-23T21:09:49Z!eggert@cs.ucla.edu; see - . 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) -#elif 202311 <= __STDC_VERSION__ -# include -# define assume(R) ((R) ? (void) 0 : unreachable ()) -#elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP - /* Doing it this way helps various packages when configured with - --enable-gcc-warnings, which compiles with -Dlint. It's nicer - if 'assume' silences warnings with GCC 3.4 through GCC 4.4.7 (2012). */ -# define assume(R) ((R) ? (void) 0 : __builtin_trap ()) -#else - /* Some older tools grok NOTREACHED, e.g., Oracle Studio 12.6 (2017). */ -# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) -#endif +#define verify(R) _GL_VERIFY (R, "verify (" #R ")") /* @assert.h omit end@ */ diff --git a/gl/vsnprintf.c b/gl/vsnprintf.c index acd4e2d..7d4dfbe 100644 --- a/gl/vsnprintf.c +++ b/gl/vsnprintf.c @@ -1,19 +1,19 @@ /* Formatted output to strings. - Copyright (C) 2004, 2006-2023 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc. Written by Simon Josefsson and Yoann Vandoorselaere . - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License along + with this program; if not, see . */ #ifdef HAVE_CONFIG_H # include diff --git a/gl/w32sock.h b/gl/w32sock.h index 84e46e3..44f3a1a 100644 --- a/gl/w32sock.h +++ b/gl/w32sock.h @@ -1,19 +1,19 @@ /* w32sock.h --- internal auxiliary functions for Windows socket functions - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Paolo Bonzini */ @@ -26,11 +26,7 @@ #include /* Get _get_osfhandle(). */ -#if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -#else -# include -#endif +#include "msvc-nothrow.h" #define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd))) #define SOCKET_TO_FD(fh) (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY)) diff --git a/gl/warn-on-use.h b/gl/warn-on-use.h deleted file mode 100644 index 3075603..0000000 --- a/gl/warn-on-use.h +++ /dev/null @@ -1,149 +0,0 @@ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2023 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif diff --git a/gl/wchar.in.h b/gl/wchar.in.h index 09c9185..b6e4362 100644 --- a/gl/wchar.in.h +++ b/gl/wchar.in.h @@ -1,25 +1,25 @@ /* A substitute for ISO C99 , for platforms that have issues. - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Eric Blake. */ /* * ISO C 99 for platforms that have issues. - * + * * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). @@ -30,24 +30,15 @@ #endif @PRAGMA_COLUMNS@ -#if (((defined __need_mbstate_t || defined __need_wint_t) \ - && !defined __MINGW32__) \ - || (defined __hpux \ - && ((defined _INTTYPES_INCLUDED \ - && !defined _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H) \ - || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ - || (defined __MINGW32__ && defined __STRING_H_SOURCED__) \ - || defined _GL_ALREADY_INCLUDING_WCHAR_H) +#if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H /* Special invocation convention: - - Inside glibc and uClibc header files, but not MinGW. + - Inside glibc and uClibc header files. - On HP-UX 11.00 we have a sequence of nested includes -> -> , and the latter includes , once indirectly -> -> -> and once directly. In both situations 'wint_t' is not yet defined, therefore we cannot provide the function overrides; instead include only the system's . - - With MinGW 3.22, when includes , only some part of - is actually processed, and that doesn't include 'mbstate_t'. - On IRIX 6.5, similarly, we have an include -> , and the latter includes . But here, we have no way to detect whether is completely included or is still being included. */ @@ -65,12 +56,20 @@ # include /* for __GLIBC__ */ #endif -/* In some builds of uClibc, is nonexistent and wchar_t is defined +/* Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . + In some builds of uClibc, is nonexistent and wchar_t is defined by . But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif +#ifndef __GLIBC__ +# include +# include +#endif /* Include the original if it exists. Some builds of uClibc lack it. */ @@ -84,50 +83,12 @@ #ifndef _@GUARD_PREFIX@_WCHAR_H #define _@GUARD_PREFIX@_WCHAR_H -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug */ -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) -# else -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC (free, 1) -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ @@ -144,16 +105,12 @@ # define WEOF -1 # endif #else -/* mingw and MSVC define wint_t as 'unsigned short' in or - . This is too small: ISO C 99 section 7.24.1.(2) says that - wint_t must be "unchanged by default argument promotions". Override it. */ -# if @GNULIBHEADERS_OVERRIDE_WINT_T@ +/* MSVC defines wint_t as 'unsigned short' in . + This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be + "unchanged by default argument promotions". Override it. */ +# if defined _MSC_VER # if !GNULIB_defined_wint_t -# if @HAVE_CRTDEFS_H@ -# include -# else -# include -# endif +# include typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t @@ -168,59 +125,16 @@ typedef unsigned int rpl_wint_t; /* Override mbstate_t if it is too small. On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for - implementing mbrtowc for encodings like UTF-8. - On AIX and MSVC, mbrtowc needs to be overridden, but mbstate_t exists and is - large enough and overriding it would cause problems in C++ mode. */ -#if !(((defined _WIN32 && !defined __CYGWIN__) || @HAVE_MBSINIT@) && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ + implementing mbrtowc for encodings like UTF-8. */ +#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t -# if !(defined _AIX || defined _MSC_VER) typedef int rpl_mbstate_t; -# undef mbstate_t -# define mbstate_t rpl_mbstate_t -# endif +# undef mbstate_t +# define mbstate_t rpl_mbstate_t # define GNULIB_defined_mbstate_t 1 # endif #endif -/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have - been included yet. */ -#if @GNULIB_FREE_POSIX@ -# if (@REPLACE_FREE@ && !defined free \ - && !(defined __cplusplus && defined GNULIB_NAMESPACE)) -/* We can't do '#define free rpl_free' here. */ -_GL_EXTERN_C void rpl_free (void *); -# undef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) -# else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -# endif -#else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -#endif /* Convert a single-byte character to a wide character. */ #if @GNULIB_BTOWC@ @@ -235,12 +149,9 @@ _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); # if !@HAVE_BTOWC@ _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); # endif -/* Need to cast, because on mingw, the return type is 'unsigned short'. */ -_GL_CXXALIAS_SYS_CAST (btowc, wint_t, (int c)); +_GL_CXXALIAS_SYS (btowc, wint_t, (int c)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (btowc); -# endif #elif defined GNULIB_POSIXCHECK # undef btowc # if HAVE_RAW_DECL_BTOWC @@ -266,9 +177,7 @@ _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctob); -# endif #elif defined GNULIB_POSIXCHECK # undef wctob # if HAVE_RAW_DECL_WCTOB @@ -293,9 +202,7 @@ _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbsinit); -# endif #elif defined GNULIB_POSIXCHECK # undef mbsinit # if HAVE_RAW_DECL_MBSINIT @@ -313,24 +220,18 @@ _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " # define mbrtowc rpl_mbrtowc # endif _GL_FUNCDECL_RPL (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRTOWC@ _GL_FUNCDECL_SYS (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbrtowc); -# endif #elif defined GNULIB_POSIXCHECK # undef mbrtowc # if HAVE_RAW_DECL_MBRTOWC @@ -347,21 +248,15 @@ _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " # undef mbrlen # define mbrlen rpl_mbrlen # endif -_GL_FUNCDECL_RPL (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); -_GL_CXXALIAS_RPL (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); +_GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); +_GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRLEN@ -_GL_FUNCDECL_SYS (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); +_GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif -_GL_CXXALIAS_SYS (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); +_GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbrlen); -# endif #elif defined GNULIB_POSIXCHECK # undef mbrlen # if HAVE_RAW_DECL_MBRLEN @@ -379,30 +274,22 @@ _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " # define mbsrtowcs rpl_mbsrtowcs # endif _GL_FUNCDECL_RPL (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps) + (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps)); + (wchar_t *dest, const char **srcp, size_t len, + mbstate_t *ps)); # else # if !@HAVE_MBSRTOWCS@ _GL_FUNCDECL_SYS (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps) + (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps)); + (wchar_t *dest, const char **srcp, size_t len, + mbstate_t *ps)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbsrtowcs); -# endif #elif defined GNULIB_POSIXCHECK # undef mbsrtowcs # if HAVE_RAW_DECL_MBSRTOWCS @@ -420,26 +307,22 @@ _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " # define mbsnrtowcs rpl_mbsnrtowcs # endif _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps) + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps)); + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps)); # else # if !@HAVE_MBSNRTOWCS@ _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps) + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps)); + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsnrtowcs); #elif defined GNULIB_POSIXCHECK @@ -458,21 +341,15 @@ _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " # undef wcrtomb # define wcrtomb rpl_wcrtomb # endif -_GL_FUNCDECL_RPL (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); -_GL_CXXALIAS_RPL (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); +_GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); +_GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # else # if !@HAVE_WCRTOMB@ -_GL_FUNCDECL_SYS (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); +_GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif -_GL_CXXALIAS_SYS (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); +_GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcrtomb); -# endif #elif defined GNULIB_POSIXCHECK # undef wcrtomb # if HAVE_RAW_DECL_WCRTOMB @@ -490,30 +367,22 @@ _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " # define wcsrtombs rpl_wcsrtombs # endif _GL_FUNCDECL_RPL (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps) + (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps)); + (char *dest, const wchar_t **srcp, size_t len, + mbstate_t *ps)); # else # if !@HAVE_WCSRTOMBS@ _GL_FUNCDECL_SYS (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps) + (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps)); + (char *dest, const wchar_t **srcp, size_t len, + mbstate_t *ps)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsrtombs); -# endif #elif defined GNULIB_POSIXCHECK # undef wcsrtombs # if HAVE_RAW_DECL_WCSRTOMBS @@ -531,34 +400,24 @@ _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " # define wcsnrtombs rpl_wcsnrtombs # endif _GL_FUNCDECL_RPL (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps) + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps)); + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps)); # else -# if !@HAVE_WCSNRTOMBS@ || (defined __cplusplus && defined __sun) +# if !@HAVE_WCSNRTOMBS@ _GL_FUNCDECL_SYS (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps) + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps)); + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsnrtombs); -# endif #elif defined GNULIB_POSIXCHECK # undef wcsnrtombs # if HAVE_RAW_DECL_WCSNRTOMBS @@ -584,9 +443,7 @@ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcwidth); -# endif #elif defined GNULIB_POSIXCHECK # undef wcwidth # if HAVE_RAW_DECL_WCWIDTH @@ -615,7 +472,7 @@ _GL_CXXALIAS_SYS_CAST2 (wmemchr, _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); -# elif __GLIBC__ >= 2 +# else _GL_CXXALIASWARN (wmemchr); # endif #elif defined GNULIB_POSIXCHECK @@ -636,9 +493,7 @@ _GL_FUNCDECL_SYS (wmemcmp, int, # endif _GL_CXXALIAS_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemcmp); -# endif #elif defined GNULIB_POSIXCHECK # undef wmemcmp # if HAVE_RAW_DECL_WMEMCMP @@ -652,15 +507,11 @@ _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " #if @GNULIB_WMEMCPY@ # if !@HAVE_WMEMCPY@ _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); + (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 + (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemcpy); -# endif #elif defined GNULIB_POSIXCHECK # undef wmemcpy # if HAVE_RAW_DECL_WMEMCPY @@ -679,9 +530,7 @@ _GL_FUNCDECL_SYS (wmemmove, wchar_t *, # endif _GL_CXXALIAS_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemmove); -# endif #elif defined GNULIB_POSIXCHECK # undef wmemmove # if HAVE_RAW_DECL_WMEMMOVE @@ -691,38 +540,13 @@ _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " #endif -/* Copy N wide characters of SRC to DEST. - Return pointer to wide characters after the last written wide character. */ -#if @GNULIB_WMEMPCPY@ -# if !@HAVE_WMEMPCPY@ -_GL_FUNCDECL_SYS (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# endif -_GL_CXXALIAS_SYS (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmempcpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmempcpy -# if HAVE_RAW_DECL_WMEMPCPY -_GL_WARN_ON_USE (wmempcpy, "wmempcpy is unportable - " - "use gnulib module wmempcpy for portability"); -# endif -#endif - - /* Set N wide characters of S to C. */ #if @GNULIB_WMEMSET@ # if !@HAVE_WMEMSET@ _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # endif _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wmemset); -# endif #elif defined GNULIB_POSIXCHECK # undef wmemset # if HAVE_RAW_DECL_WMEMSET @@ -738,9 +562,7 @@ _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcslen); -# endif #elif defined GNULIB_POSIXCHECK # undef wcslen # if HAVE_RAW_DECL_WCSLEN @@ -752,10 +574,7 @@ _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " /* Return the number of wide characters in S, but at most MAXLEN. */ #if @GNULIB_WCSNLEN@ -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !@HAVE_WCSNLEN@ || (defined __sun && defined __cplusplus) +# if !@HAVE_WCSNLEN@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) _GL_ATTRIBUTE_PURE); # endif @@ -773,14 +592,10 @@ _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " /* Copy SRC to DEST. */ #if @GNULIB_WCSCPY@ # if !@HAVE_WCSCPY@ -_GL_FUNCDECL_SYS (wcscpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); +_GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif -_GL_CXXALIAS_SYS (wcscpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# if __GLIBC__ >= 2 +_GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscpy); -# endif #elif defined GNULIB_POSIXCHECK # undef wcscpy # if HAVE_RAW_DECL_WCSCPY @@ -792,15 +607,10 @@ _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ #if @GNULIB_WCPCPY@ -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !@HAVE_WCPCPY@ || (defined __sun && defined __cplusplus) -_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); +# if !@HAVE_WCPCPY@ +_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif -_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); +_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcpcpy); #elif defined GNULIB_POSIXCHECK # undef wcpcpy @@ -815,15 +625,11 @@ _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " #if @GNULIB_WCSNCPY@ # if !@HAVE_WCSNCPY@ _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); + (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 + (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncpy); -# endif #elif defined GNULIB_POSIXCHECK # undef wcsncpy # if HAVE_RAW_DECL_WCSNCPY @@ -836,17 +642,12 @@ _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ #if @GNULIB_WCPNCPY@ -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !@HAVE_WCPNCPY@ || (defined __sun && defined __cplusplus) +# if !@HAVE_WCPNCPY@ _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); + (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); + (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcpncpy); #elif defined GNULIB_POSIXCHECK # undef wcpncpy @@ -860,14 +661,10 @@ _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " /* Append SRC onto DEST. */ #if @GNULIB_WCSCAT@ # if !@HAVE_WCSCAT@ -_GL_FUNCDECL_SYS (wcscat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); +_GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif -_GL_CXXALIAS_SYS (wcscat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# if __GLIBC__ >= 2 +_GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscat); -# endif #elif defined GNULIB_POSIXCHECK # undef wcscat # if HAVE_RAW_DECL_WCSCAT @@ -881,15 +678,11 @@ _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " #if @GNULIB_WCSNCAT@ # if !@HAVE_WCSNCAT@ _GL_FUNCDECL_SYS (wcsncat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src, - size_t n)); + (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src, - size_t n)); -# if __GLIBC__ >= 2 + (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncat); -# endif #elif defined GNULIB_POSIXCHECK # undef wcsncat # if HAVE_RAW_DECL_WCSNCAT @@ -906,9 +699,7 @@ _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscmp); -# endif #elif defined GNULIB_POSIXCHECK # undef wcscmp # if HAVE_RAW_DECL_WCSCMP @@ -927,9 +718,7 @@ _GL_FUNCDECL_SYS (wcsncmp, int, # endif _GL_CXXALIAS_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsncmp); -# endif #elif defined GNULIB_POSIXCHECK # undef wcsncmp # if HAVE_RAW_DECL_WCSNCMP @@ -941,10 +730,7 @@ _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " /* Compare S1 and S2, ignoring case. */ #if @GNULIB_WCSCASECMP@ -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !@HAVE_WCSCASECMP@ || (defined __sun && defined __cplusplus) +# if !@HAVE_WCSCASECMP@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif @@ -961,10 +747,7 @@ _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " /* Compare no more than N chars of S1 and S2, ignoring case. */ #if @GNULIB_WCSNCASECMP@ -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !@HAVE_WCSNCASECMP@ || (defined __sun && defined __cplusplus) +# if !@HAVE_WCSNCASECMP@ _GL_FUNCDECL_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); @@ -988,9 +771,7 @@ _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # endif _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscoll); -# endif #elif defined GNULIB_POSIXCHECK # undef wcscoll # if HAVE_RAW_DECL_WCSCOLL @@ -1005,14 +786,10 @@ _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " original strings. */ #if @GNULIB_WCSXFRM@ # if !@HAVE_WCSXFRM@ -_GL_FUNCDECL_SYS (wcsxfrm, size_t, - (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); +_GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); # endif -_GL_CXXALIAS_SYS (wcsxfrm, size_t, - (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); -# if __GLIBC__ >= 2 +_GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsxfrm); -# endif #elif defined GNULIB_POSIXCHECK # undef wcsxfrm # if HAVE_RAW_DECL_WCSXFRM @@ -1024,58 +801,16 @@ _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_WCSDUP@ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsdup -# define wcsdup _wcsdup -# endif -_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); -# else -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !@HAVE_WCSDUP@ || (defined __sun && defined __cplusplus) || __GNUC__ >= 11 -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif +# if !@HAVE_WCSDUP@ +_GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s)); +# endif _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); -# endif _GL_CXXALIASWARN (wcsdup); -#else -# if __GNUC__ >= 11 && !defined wcsdup -/* For -Wmismatched-dealloc: Associate wcsdup with free or rpl_free. */ -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef wcsdup -# if HAVE_RAW_DECL_WCSDUP +#elif defined GNULIB_POSIXCHECK +# undef wcsdup +# if HAVE_RAW_DECL_WCSDUP _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " "use gnulib module wcsdup for portability"); -# endif -# elif @GNULIB_MDA_WCSDUP@ -/* On native Windows, map 'wcsdup' to '_wcsdup', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::wcsdup always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsdup -# define wcsdup _wcsdup -# endif -_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); -# else -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# if @HAVE_DECL_WCSDUP@ -_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_WCSDUP@ -_GL_CXXALIASWARN (wcsdup); -# endif # endif #endif @@ -1098,7 +833,7 @@ _GL_CXXALIAS_SYS_CAST2 (wcschr, && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); -# elif __GLIBC__ >= 2 +# else _GL_CXXALIASWARN (wcschr); # endif #elif defined GNULIB_POSIXCHECK @@ -1128,7 +863,7 @@ _GL_CXXALIAS_SYS_CAST2 (wcsrchr, && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); -# elif __GLIBC__ >= 2 +# else _GL_CXXALIASWARN (wcsrchr); # endif #elif defined GNULIB_POSIXCHECK @@ -1148,9 +883,7 @@ _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcscspn); -# endif #elif defined GNULIB_POSIXCHECK # undef wcscspn # if HAVE_RAW_DECL_WCSCSPN @@ -1168,9 +901,7 @@ _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcsspn); -# endif #elif defined GNULIB_POSIXCHECK # undef wcsspn # if HAVE_RAW_DECL_WCSSPN @@ -1201,7 +932,7 @@ _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, (wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); -# elif __GLIBC__ >= 2 +# else _GL_CXXALIASWARN (wcspbrk); # endif #elif defined GNULIB_POSIXCHECK @@ -1217,8 +948,7 @@ _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " #if @GNULIB_WCSSTR@ # if !@HAVE_WCSSTR@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle) + (const wchar_t *haystack, const wchar_t *needle) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: @@ -1227,19 +957,15 @@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, wchar_t * std::wcsstr (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcsstr, - wchar_t *, - (const wchar_t *restrict, const wchar_t *restrict), - const wchar_t *, - (const wchar_t *restrict, const wchar_t *restrict)); + wchar_t *, (const wchar_t *, const wchar_t *), + const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsstr, wchar_t *, - (wchar_t *restrict haystack, - const wchar_t *restrict needle)); + (wchar_t *haystack, const wchar_t *needle)); _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle)); -# elif __GLIBC__ >= 2 + (const wchar_t *haystack, const wchar_t *needle)); +# else _GL_CXXALIASWARN (wcsstr); # endif #elif defined GNULIB_POSIXCHECK @@ -1253,30 +979,13 @@ _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " /* Divide WCS into tokens separated by characters in DELIM. */ #if @GNULIB_WCSTOK@ -# if @REPLACE_WCSTOK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcstok -# define wcstok rpl_wcstok -# endif -_GL_FUNCDECL_RPL (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -_GL_CXXALIAS_RPL (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# else -# if !@HAVE_WCSTOK@ +# if !@HAVE_WCSTOK@ _GL_FUNCDECL_SYS (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# endif + (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); +# endif _GL_CXXALIAS_SYS (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# endif -# if __GLIBC__ >= 2 + (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); _GL_CXXALIASWARN (wcstok); -# endif #elif defined GNULIB_POSIXCHECK # undef wcstok # if HAVE_RAW_DECL_WCSTOK @@ -1304,9 +1013,7 @@ _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) # endif _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wcswidth); -# endif #elif defined GNULIB_POSIXCHECK # undef wcswidth # if HAVE_RAW_DECL_WCSWIDTH @@ -1316,48 +1023,6 @@ _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " #endif -/* Convert *TP to a date and time wide string. See - . */ -#if @GNULIB_WCSFTIME@ -# if @REPLACE_WCSFTIME@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsftime -# define wcsftime rpl_wcsftime -# endif -_GL_FUNCDECL_RPL (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp) - _GL_ARG_NONNULL ((1, 3, 4))); -_GL_CXXALIAS_RPL (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp)); -# else -# if !@HAVE_WCSFTIME@ -_GL_FUNCDECL_SYS (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp) - _GL_ARG_NONNULL ((1, 3, 4))); -# endif -_GL_CXXALIAS_SYS (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsftime); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsftime -# if HAVE_RAW_DECL_WCSFTIME -_GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - " - "use gnulib module wcsftime for portability"); -# endif -#endif - - #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif diff --git a/gl/wcrtomb.c b/gl/wcrtomb.c index 48a6c8e..da42809 100644 --- a/gl/wcrtomb.c +++ b/gl/wcrtomb.c @@ -1,19 +1,19 @@ /* Convert wide character to multibyte character. - Copyright (C) 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2008. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include @@ -26,46 +26,20 @@ size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps) -#undef wcrtomb { - /* This implementation of wcrtomb supports only stateless encodings. - ps must be in the initial state. */ + /* This implementation of wcrtomb on top of wctomb() supports only + stateless encodings. ps must be in the initial state. */ if (ps != NULL && !mbsinit (ps)) { errno = EINVAL; return (size_t)(-1); } -#if !HAVE_WCRTOMB /* IRIX 6.5 */ \ - || WCRTOMB_RETVAL_BUG /* Solaris 11.3, MSVC */ \ - || WCRTOMB_C_LOCALE_BUG /* Android */ if (s == NULL) /* We know the NUL wide character corresponds to the NUL character. */ return 1; else -#endif { -#if HAVE_WCRTOMB -# if WCRTOMB_C_LOCALE_BUG /* Android */ - /* Implement consistently with mbrtowc(): through a 1:1 correspondence, - as in ISO-8859-1. */ - if (wc >= 0 && wc <= 0xff) - { - *s = (unsigned char) wc; - return 1; - } - else - { - errno = EILSEQ; - return (size_t)(-1); - } -# else - return wcrtomb (s, wc, ps); -# endif -#else /* IRIX 6.5 */ - /* Fallback for platforms that don't have wcrtomb(). - Implement on top of wctomb(). - This code is not multithread-safe. */ int ret = wctomb (s, wc); if (ret >= 0) @@ -75,6 +49,5 @@ wcrtomb (char *s, wchar_t wc, mbstate_t *ps) errno = EILSEQ; return (size_t)(-1); } -#endif } } diff --git a/gl/wctype-h.c b/gl/wctype-h.c index 7d3e14a..bb5f847 100644 --- a/gl/wctype-h.c +++ b/gl/wctype-h.c @@ -1,23 +1,4 @@ -/* Inline functions for . - - Copyright (C) 2012-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - /* Normally this would be wctype.c, but that name's already taken. */ - #include - #define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE #include "wctype.h" diff --git a/gl/wctype.in.h b/gl/wctype.in.h index f6e474d..a7c07d1 100644 --- a/gl/wctype.in.h +++ b/gl/wctype.in.h @@ -1,61 +1,54 @@ /* A substitute for ISO C99 , for platforms that lack it. - Copyright (C) 2006-2023 Free Software Foundation, Inc. + Copyright (C) 2006-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ /* Written by Bruno Haible and Paul Eggert. */ /* * ISO C 99 for platforms that lack it. - * + * * * iswctype, towctrans, towlower, towupper, wctrans, wctype, * wctrans_t, and wctype_t are not yet implemented. */ +#ifndef _@GUARD_PREFIX@_WCTYPE_H + #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ -#if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__) - -/* Special invocation convention: - - With MinGW 3.22, when includes , only some part of - is being processed, which doesn't include the idempotency - guard. */ - -#@INCLUDE_NEXT@ @NEXT_WCTYPE_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _@GUARD_PREFIX@_WCTYPE_H - #if @HAVE_WINT_T@ -/* Solaris 2.5 has a bug: must be included before . */ +/* Solaris 2.5 has a bug: must be included before . + Tru64 with Desktop Toolkit C has a bug: must be included before + . + BSD/OS 4.0.1 has a bug: , and must be + included before . */ +# include +# include +# include # include #endif -/* Native Windows (mingw, MSVC) have declarations of towupper, towlower, and - isw* functions in , as well as in . Include - , in advance to avoid rpl_ prefix being added to the - declarations. */ -#if defined _WIN32 && ! defined __CYGWIN__ +/* mingw has declarations of towupper and towlower in as + well . Include in advance to avoid rpl_ prefix + being added to the declarations. */ +#ifdef __MINGW32__ # include -# include #endif /* Include the original if it exists. @@ -68,9 +61,6 @@ #ifndef _@GUARD_PREFIX@_WCTYPE_H #define _@GUARD_PREFIX@_WCTYPE_H -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_WCTYPE_INLINE # define _GL_WCTYPE_INLINE _GL_INLINE @@ -100,16 +90,12 @@ _GL_INLINE_HEADER_BEGIN # define WEOF -1 # endif #else -/* mingw and MSVC define wint_t as 'unsigned short' in or - . This is too small: ISO C 99 section 7.24.1.(2) says that - wint_t must be "unchanged by default argument promotions". Override it. */ -# if @GNULIBHEADERS_OVERRIDE_WINT_T@ +/* MSVC defines wint_t as 'unsigned short' in . + This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be + "unchanged by default argument promotions". Override it. */ +# if defined _MSC_VER # if !GNULIB_defined_wint_t -# if @HAVE_CRTDEFS_H@ -# include -# else -# include -# endif +# include typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t @@ -126,116 +112,33 @@ typedef unsigned int rpl_wint_t; /* FreeBSD 4.4 to 4.11 has but lacks the functions. Linux libc5 has and the functions but they are broken. - mingw and MSVC have and the functions but they take a wchar_t - as argument, not an rpl_wint_t. Assume all 11 functions (all isw* except iswblank) are implemented the same way, or not at all. */ # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ -# if @GNULIBHEADERS_OVERRIDE_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */ - -_GL_WCTYPE_INLINE int -rpl_iswalnum (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswalnum ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswalpha (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswalpha ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswblank (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswblank ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswcntrl (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswcntrl ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswdigit (wint_t wc) -{ - return ((wchar_t) wc == wc ? wc >= '0' && wc <= '9' : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswgraph (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswgraph ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswlower (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswlower ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswprint (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswprint ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswpunct (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswpunct ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswspace (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswspace ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswupper (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswupper ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswxdigit (wint_t wc) -{ - return ((wchar_t) wc == wc - ? (wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F') - : 0); -} - -_GL_WCTYPE_INLINE wint_t -rpl_towlower (wint_t wc) -{ - return ((wchar_t) wc == wc ? (wchar_t) towlower ((wchar_t) wc) : wc); -} - -_GL_WCTYPE_INLINE wint_t -rpl_towupper (wint_t wc) -{ - return ((wchar_t) wc == wc ? (wchar_t) towupper ((wchar_t) wc) : wc); -} +/* IRIX 5.3 has macros but no functions, its isw* macros refer to an + undefined variable _ctmp_ and to macros like _P, and they + refer to system functions like _iswctype that are not in the + standard C library. Rather than try to get ancient buggy + implementations like this to work, just disable them. */ +# undef iswalnum +# undef iswalpha +# undef iswblank +# undef iswcntrl +# undef iswdigit +# undef iswgraph +# undef iswlower +# undef iswprint +# undef iswpunct +# undef iswspace +# undef iswupper +# undef iswxdigit +# undef towlower +# undef towupper +/* Linux libc5 has and the functions but they are broken. */ +# if @REPLACE_ISWCNTRL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswalnum -# undef iswalpha -# undef iswblank -# undef iswcntrl -# undef iswdigit -# undef iswgraph -# undef iswlower -# undef iswprint -# undef iswpunct -# undef iswspace -# undef iswupper -# undef iswxdigit -# undef towlower -# undef towupper # define iswalnum rpl_iswalnum # define iswalpha rpl_iswalpha # define iswblank rpl_iswblank @@ -248,62 +151,21 @@ rpl_towupper (wint_t wc) # define iswspace rpl_iswspace # define iswupper rpl_iswupper # define iswxdigit rpl_iswxdigit +# endif +# endif +# if @REPLACE_TOWLOWER@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # define towupper rpl_towupper # endif - -# else - -/* IRIX 5.3 has macros but no functions, its isw* macros refer to an - undefined variable _ctmp_ and to macros like _P, and they - refer to system functions like _iswctype that are not in the - standard C library. Rather than try to get ancient buggy - implementations like this to work, just disable them. */ -# undef iswalnum -# undef iswalpha -# undef iswblank -# undef iswcntrl -# undef iswdigit -# undef iswgraph -# undef iswlower -# undef iswprint -# undef iswpunct -# undef iswspace -# undef iswupper -# undef iswxdigit -# undef towlower -# undef towupper - -/* Linux libc5 has and the functions but they are broken. */ -# if @REPLACE_ISWCNTRL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define iswalnum rpl_iswalnum -# define iswalpha rpl_iswalpha -# define iswblank rpl_iswblank -# define iswcntrl rpl_iswcntrl -# define iswdigit rpl_iswdigit -# define iswgraph rpl_iswgraph -# define iswlower rpl_iswlower -# define iswprint rpl_iswprint -# define iswpunct rpl_iswpunct -# define iswspace rpl_iswspace -# define iswupper rpl_iswupper -# define iswxdigit rpl_iswxdigit -# endif -# endif -# if @REPLACE_TOWLOWER@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define towlower rpl_towlower -# define towupper rpl_towupper -# endif -# endif +# endif _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswalnum -# else +# else iswalnum -# endif +# endif (wint_t wc) { return ((wc >= '0' && wc <= '9') @@ -311,88 +173,88 @@ iswalnum } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswalpha -# else +# else iswalpha -# endif +# endif (wint_t wc) { return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswblank -# else +# else iswblank -# endif +# endif (wint_t wc) { return wc == ' ' || wc == '\t'; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswcntrl -# else +# else iswcntrl -# endif +# endif (wint_t wc) { return (wc & ~0x1f) == 0 || wc == 0x7f; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWDIGIT@ +# if @REPLACE_ISWCNTRL@ rpl_iswdigit -# else +# else iswdigit -# endif +# endif (wint_t wc) { return wc >= '0' && wc <= '9'; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswgraph -# else +# else iswgraph -# endif +# endif (wint_t wc) { return wc >= '!' && wc <= '~'; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswlower -# else +# else iswlower -# endif +# endif (wint_t wc) { return wc >= 'a' && wc <= 'z'; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswprint -# else +# else iswprint -# endif +# endif (wint_t wc) { return wc >= ' ' && wc <= '~'; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswpunct -# else +# else iswpunct -# endif +# endif (wint_t wc) { return (wc >= '!' && wc <= '~' @@ -401,11 +263,11 @@ iswpunct } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswspace -# else +# else iswspace -# endif +# endif (wint_t wc) { return (wc == ' ' || wc == '\t' @@ -413,22 +275,22 @@ iswspace } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWCNTRL@ +# if @REPLACE_ISWCNTRL@ rpl_iswupper -# else +# else iswupper -# endif +# endif (wint_t wc) { return wc >= 'A' && wc <= 'Z'; } _GL_WCTYPE_INLINE int -# if @REPLACE_ISWXDIGIT@ +# if @REPLACE_ISWCNTRL@ rpl_iswxdigit -# else +# else iswxdigit -# endif +# endif (wint_t wc) { return ((wc >= '0' && wc <= '9') @@ -436,67 +298,42 @@ iswxdigit } _GL_WCTYPE_INLINE wint_t -# if @REPLACE_TOWLOWER@ +# if @REPLACE_TOWLOWER@ rpl_towlower -# else +# else towlower -# endif +# endif (wint_t wc) { return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc); } _GL_WCTYPE_INLINE wint_t -# if @REPLACE_TOWLOWER@ +# if @REPLACE_TOWLOWER@ rpl_towupper -# else +# else towupper -# endif +# endif (wint_t wc) { return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); } -# endif - -# else -/* Only some of the functions are missing or broken. */ - -# if @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@) +# elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@) /* Only the iswblank function is missing. */ -# if @REPLACE_ISWBLANK@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define iswblank rpl_iswblank -# endif + +# if @REPLACE_ISWBLANK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define iswblank rpl_iswblank +# endif _GL_FUNCDECL_RPL (iswblank, int, (wint_t wc)); -# else +# else _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc)); -# endif -# endif - -# if @GNULIB_ISWDIGIT@ -# if @REPLACE_ISWDIGIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswdigit -# define iswdigit rpl_iswdigit -# endif -_GL_FUNCDECL_RPL (iswdigit, int, (wint_t wc)); -# endif -# endif - -# if @GNULIB_ISWXDIGIT@ -# if @REPLACE_ISWXDIGIT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswxdigit -# define iswxdigit rpl_iswxdigit -# endif -_GL_FUNCDECL_RPL (iswxdigit, int, (wint_t wc)); -# endif # endif # endif -# if defined __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ +# if defined __MINGW32__ /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. The functions towlower and towupper are implemented in the MSVCRT library @@ -529,71 +366,36 @@ rpl_towupper (wint_t wc) # define towupper rpl_towupper # endif -# endif /* __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ */ +# endif /* __MINGW32__ */ # define GNULIB_defined_wctype_functions 1 #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); -#endif -#if @GNULIB_ISWDIGIT@ -# if @REPLACE_ISWDIGIT@ -_GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); -# else _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); -# endif -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswlower, int, (wint_t wc)); -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswprint, int, (wint_t wc)); -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc)); -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswspace, int, (wint_t wc)); -#endif -#if @REPLACE_ISWCNTRL@ -_GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); -#else _GL_CXXALIAS_SYS (iswupper, int, (wint_t wc)); -#endif -#if @GNULIB_ISWXDIGIT@ -# if @REPLACE_ISWXDIGIT@ -_GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); -# else _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc)); -# endif #endif -#if __GLIBC__ >= 2 _GL_CXXALIASWARN (iswalnum); _GL_CXXALIASWARN (iswalpha); _GL_CXXALIASWARN (iswcntrl); @@ -605,7 +407,6 @@ _GL_CXXALIASWARN (iswpunct); _GL_CXXALIASWARN (iswspace); _GL_CXXALIASWARN (iswupper); _GL_CXXALIASWARN (iswxdigit); -#endif #if @GNULIB_ISWBLANK@ # if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@ @@ -613,9 +414,7 @@ _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); # else _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); # endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (iswblank); -# endif #endif #if !@HAVE_WCTYPE_T@ @@ -631,9 +430,7 @@ typedef void * wctype_t; _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctype); -# endif #elif defined GNULIB_POSIXCHECK # undef wctype # if HAVE_RAW_DECL_WCTYPE @@ -646,22 +443,11 @@ _GL_WARN_ON_USE (wctype, "wctype is unportable - " The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctype() function. */ #if @GNULIB_ISWCTYPE@ -# if @GNULIBHEADERS_OVERRIDE_WINT_T@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswctype -# define iswctype rpl_iswctype -# endif -_GL_FUNCDECL_RPL (iswctype, int, (wint_t wc, wctype_t desc)); -_GL_CXXALIAS_RPL (iswctype, int, (wint_t wc, wctype_t desc)); -# else -# if !@HAVE_WCTYPE_T@ +# if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc)); -# endif +# endif _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc)); -# endif -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (iswctype); -# endif #elif defined GNULIB_POSIXCHECK # undef iswctype # if HAVE_RAW_DECL_ISWCTYPE @@ -677,10 +463,8 @@ _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); _GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc)); #endif -#if __GLIBC__ >= 2 _GL_CXXALIASWARN (towlower); _GL_CXXALIASWARN (towupper); -#endif #if !@HAVE_WCTRANS_T@ # if !GNULIB_defined_wctrans_t @@ -695,9 +479,7 @@ typedef void * wctrans_t; _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctrans); -# endif #elif defined GNULIB_POSIXCHECK # undef wctrans # if HAVE_RAW_DECL_WCTRANS @@ -714,9 +496,7 @@ _GL_WARN_ON_USE (wctrans, "wctrans is unportable - " _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); # endif _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); -# if __GLIBC__ >= 2 _GL_CXXALIASWARN (towctrans); -# endif #elif defined GNULIB_POSIXCHECK # undef towctrans # if HAVE_RAW_DECL_TOWCTRANS @@ -729,4 +509,3 @@ _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif /* _@GUARD_PREFIX@_WCTYPE_H */ -#endif diff --git a/gl/windows-initguard.h b/gl/windows-initguard.h deleted file mode 100644 index 9d36f53..0000000 --- a/gl/windows-initguard.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Init guards, somewhat like spinlocks (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_INITGUARD_H -#define _WINDOWS_INITGUARD_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -typedef struct - { - volatile int done; - volatile LONG started; - } - glwthread_initguard_t; - -#define GLWTHREAD_INITGUARD_INIT { 0, -1 } - -#endif /* _WINDOWS_INITGUARD_H */ diff --git a/gl/windows-mutex.c b/gl/windows-mutex.c deleted file mode 100644 index ab7258c..0000000 --- a/gl/windows-mutex.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Plain mutexes (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#include - -/* Specification. */ -#include "windows-mutex.h" - -#include - -void -glwthread_mutex_init (glwthread_mutex_t *mutex) -{ - InitializeCriticalSection (&mutex->lock); - mutex->guard.done = 1; -} - -int -glwthread_mutex_lock (glwthread_mutex_t *mutex) -{ - if (!mutex->guard.done) - { - if (InterlockedIncrement (&mutex->guard.started) == 0) - /* This thread is the first one to need this mutex. Initialize it. */ - glwthread_mutex_init (mutex); - else - { - /* Don't let mutex->guard.started grow and wrap around. */ - InterlockedDecrement (&mutex->guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this mutex. */ - while (!mutex->guard.done) - Sleep (0); - } - } - EnterCriticalSection (&mutex->lock); - return 0; -} - -int -glwthread_mutex_trylock (glwthread_mutex_t *mutex) -{ - if (!mutex->guard.done) - { - if (InterlockedIncrement (&mutex->guard.started) == 0) - /* This thread is the first one to need this mutex. Initialize it. */ - glwthread_mutex_init (mutex); - else - { - /* Don't let mutex->guard.started grow and wrap around. */ - InterlockedDecrement (&mutex->guard.started); - /* Let another thread finish initializing this mutex, and let it also - lock this mutex. */ - return EBUSY; - } - } - if (!TryEnterCriticalSection (&mutex->lock)) - return EBUSY; - return 0; -} - -int -glwthread_mutex_unlock (glwthread_mutex_t *mutex) -{ - if (!mutex->guard.done) - return EINVAL; - LeaveCriticalSection (&mutex->lock); - return 0; -} - -int -glwthread_mutex_destroy (glwthread_mutex_t *mutex) -{ - if (!mutex->guard.done) - return EINVAL; - DeleteCriticalSection (&mutex->lock); - mutex->guard.done = 0; - return 0; -} diff --git a/gl/windows-mutex.h b/gl/windows-mutex.h deleted file mode 100644 index 039eb70..0000000 --- a/gl/windows-mutex.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Plain mutexes (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_MUTEX_H -#define _WINDOWS_MUTEX_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include "windows-initguard.h" - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - CRITICAL_SECTION lock; - } - glwthread_mutex_t; - -#define GLWTHREAD_MUTEX_INIT { GLWTHREAD_INITGUARD_INIT } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_mutex_init (glwthread_mutex_t *mutex); -extern int glwthread_mutex_lock (glwthread_mutex_t *mutex); -extern int glwthread_mutex_trylock (glwthread_mutex_t *mutex); -extern int glwthread_mutex_unlock (glwthread_mutex_t *mutex); -extern int glwthread_mutex_destroy (glwthread_mutex_t *mutex); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_MUTEX_H */ diff --git a/gl/windows-once.c b/gl/windows-once.c deleted file mode 100644 index 0d28281..0000000 --- a/gl/windows-once.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Once-only control (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#include - -/* Specification. */ -#include "windows-once.h" - -#include - -void -glwthread_once (glwthread_once_t *once_control, void (*initfunction) (void)) -{ - if (once_control->inited <= 0) - { - if (InterlockedIncrement (&once_control->started) == 0) - { - /* This thread is the first one to come to this once_control. */ - InitializeCriticalSection (&once_control->lock); - EnterCriticalSection (&once_control->lock); - once_control->inited = 0; - initfunction (); - once_control->inited = 1; - LeaveCriticalSection (&once_control->lock); - } - else - { - /* Don't let once_control->started grow and wrap around. */ - InterlockedDecrement (&once_control->started); - /* Some other thread has already started the initialization. - Yield the CPU while waiting for the other thread to finish - initializing and taking the lock. */ - while (once_control->inited < 0) - Sleep (0); - if (once_control->inited <= 0) - { - /* Take the lock. This blocks until the other thread has - finished calling the initfunction. */ - EnterCriticalSection (&once_control->lock); - LeaveCriticalSection (&once_control->lock); - if (!(once_control->inited > 0)) - abort (); - } - } - } -} diff --git a/gl/windows-once.h b/gl/windows-once.h deleted file mode 100644 index 5488568..0000000 --- a/gl/windows-once.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Once-only control (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_ONCE_H -#define _WINDOWS_ONCE_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -typedef struct - { - volatile int inited; - volatile LONG started; - CRITICAL_SECTION lock; - } - glwthread_once_t; - -#define GLWTHREAD_ONCE_INIT { -1, -1 } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_once (glwthread_once_t *once_control, - void (*initfunction) (void)); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_ONCE_H */ diff --git a/gl/windows-recmutex.c b/gl/windows-recmutex.c deleted file mode 100644 index a8ce9a0..0000000 --- a/gl/windows-recmutex.c +++ /dev/null @@ -1,127 +0,0 @@ -/* Plain recursive mutexes (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#include - -/* Specification. */ -#include "windows-recmutex.h" - -#include - -void -glwthread_recmutex_init (glwthread_recmutex_t *mutex) -{ - mutex->owner = 0; - mutex->depth = 0; - InitializeCriticalSection (&mutex->lock); - mutex->guard.done = 1; -} - -int -glwthread_recmutex_lock (glwthread_recmutex_t *mutex) -{ - if (!mutex->guard.done) - { - if (InterlockedIncrement (&mutex->guard.started) == 0) - /* This thread is the first one to need this mutex. Initialize it. */ - glwthread_recmutex_init (mutex); - else - { - /* Don't let mutex->guard.started grow and wrap around. */ - InterlockedDecrement (&mutex->guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this mutex. */ - while (!mutex->guard.done) - Sleep (0); - } - } - { - DWORD self = GetCurrentThreadId (); - if (mutex->owner != self) - { - EnterCriticalSection (&mutex->lock); - mutex->owner = self; - } - if (++(mutex->depth) == 0) /* wraparound? */ - { - mutex->depth--; - return EAGAIN; - } - } - return 0; -} - -int -glwthread_recmutex_trylock (glwthread_recmutex_t *mutex) -{ - if (!mutex->guard.done) - { - if (InterlockedIncrement (&mutex->guard.started) == 0) - /* This thread is the first one to need this mutex. Initialize it. */ - glwthread_recmutex_init (mutex); - else - { - /* Don't let mutex->guard.started grow and wrap around. */ - InterlockedDecrement (&mutex->guard.started); - /* Let another thread finish initializing this mutex, and let it also - lock this mutex. */ - return EBUSY; - } - } - { - DWORD self = GetCurrentThreadId (); - if (mutex->owner != self) - { - if (!TryEnterCriticalSection (&mutex->lock)) - return EBUSY; - mutex->owner = self; - } - if (++(mutex->depth) == 0) /* wraparound? */ - { - mutex->depth--; - return EAGAIN; - } - } - return 0; -} - -int -glwthread_recmutex_unlock (glwthread_recmutex_t *mutex) -{ - if (mutex->owner != GetCurrentThreadId ()) - return EPERM; - if (mutex->depth == 0) - return EINVAL; - if (--(mutex->depth) == 0) - { - mutex->owner = 0; - LeaveCriticalSection (&mutex->lock); - } - return 0; -} - -int -glwthread_recmutex_destroy (glwthread_recmutex_t *mutex) -{ - if (mutex->owner != 0) - return EBUSY; - DeleteCriticalSection (&mutex->lock); - mutex->guard.done = 0; - return 0; -} diff --git a/gl/windows-recmutex.h b/gl/windows-recmutex.h deleted file mode 100644 index 08ff459..0000000 --- a/gl/windows-recmutex.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Plain recursive mutexes (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_RECMUTEX_H -#define _WINDOWS_RECMUTEX_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include "windows-initguard.h" - -/* The native Windows documentation says that CRITICAL_SECTION already - implements a recursive lock. But we need not rely on it: It's easy to - implement a recursive lock without this assumption. */ - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - DWORD owner; - unsigned long depth; - CRITICAL_SECTION lock; - } - glwthread_recmutex_t; - -#define GLWTHREAD_RECMUTEX_INIT { GLWTHREAD_INITGUARD_INIT, 0, 0 } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_recmutex_init (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_lock (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_trylock (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_unlock (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_destroy (glwthread_recmutex_t *mutex); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_RECMUTEX_H */ diff --git a/gl/windows-rwlock.c b/gl/windows-rwlock.c deleted file mode 100644 index 7cbd7bb..0000000 --- a/gl/windows-rwlock.c +++ /dev/null @@ -1,377 +0,0 @@ -/* Read-write locks (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#include - -/* Specification. */ -#include "windows-rwlock.h" - -#include -#include - -/* Don't assume that UNICODE is not defined. */ -#undef CreateEvent -#define CreateEvent CreateEventA - -/* In this file, the waitqueues are implemented as circular arrays. */ -#define glwthread_waitqueue_t glwthread_carray_waitqueue_t - -static void -glwthread_waitqueue_init (glwthread_waitqueue_t *wq) -{ - wq->array = NULL; - wq->count = 0; - wq->alloc = 0; - wq->offset = 0; -} - -/* Enqueues the current thread, represented by an event, in a wait queue. - Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */ -static HANDLE -glwthread_waitqueue_add (glwthread_waitqueue_t *wq) -{ - HANDLE event; - unsigned int index; - - if (wq->count == wq->alloc) - { - unsigned int new_alloc = 2 * wq->alloc + 1; - HANDLE *new_array = - (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE)); - if (new_array == NULL) - /* No more memory. */ - return INVALID_HANDLE_VALUE; - /* Now is a good opportunity to rotate the array so that its contents - starts at offset 0. */ - if (wq->offset > 0) - { - unsigned int old_count = wq->count; - unsigned int old_alloc = wq->alloc; - unsigned int old_offset = wq->offset; - unsigned int i; - if (old_offset + old_count > old_alloc) - { - unsigned int limit = old_offset + old_count - old_alloc; - for (i = 0; i < limit; i++) - new_array[old_alloc + i] = new_array[i]; - } - for (i = 0; i < old_count; i++) - new_array[i] = new_array[old_offset + i]; - wq->offset = 0; - } - wq->array = new_array; - wq->alloc = new_alloc; - } - /* Whether the created event is a manual-reset one or an auto-reset one, - does not matter, since we will wait on it only once. */ - event = CreateEvent (NULL, TRUE, FALSE, NULL); - if (event == INVALID_HANDLE_VALUE) - /* No way to allocate an event. */ - return INVALID_HANDLE_VALUE; - index = wq->offset + wq->count; - if (index >= wq->alloc) - index -= wq->alloc; - wq->array[index] = event; - wq->count++; - return event; -} - -/* Notifies the first thread from a wait queue and dequeues it. */ -static void -glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq) -{ - SetEvent (wq->array[wq->offset + 0]); - wq->offset++; - wq->count--; - if (wq->count == 0 || wq->offset == wq->alloc) - wq->offset = 0; -} - -/* Notifies all threads from a wait queue and dequeues them all. */ -static void -glwthread_waitqueue_notify_all (glwthread_waitqueue_t *wq) -{ - unsigned int i; - - for (i = 0; i < wq->count; i++) - { - unsigned int index = wq->offset + i; - if (index >= wq->alloc) - index -= wq->alloc; - SetEvent (wq->array[index]); - } - wq->count = 0; - wq->offset = 0; -} - -void -glwthread_rwlock_init (glwthread_rwlock_t *lock) -{ - InitializeCriticalSection (&lock->lock); - glwthread_waitqueue_init (&lock->waiting_readers); - glwthread_waitqueue_init (&lock->waiting_writers); - lock->runcount = 0; - lock->guard.done = 1; -} - -int -glwthread_rwlock_rdlock (glwthread_rwlock_t *lock) -{ - if (!lock->guard.done) - { - if (InterlockedIncrement (&lock->guard.started) == 0) - /* This thread is the first one to need this lock. Initialize it. */ - glwthread_rwlock_init (lock); - else - { - /* Don't let lock->guard.started grow and wrap around. */ - InterlockedDecrement (&lock->guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this lock. */ - while (!lock->guard.done) - Sleep (0); - } - } - EnterCriticalSection (&lock->lock); - /* Test whether only readers are currently running, and whether the runcount - field will not overflow, and whether no writer is waiting. The latter - condition is because POSIX recommends that "write locks shall take - precedence over read locks", to avoid "writer starvation". */ - if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0)) - { - /* This thread has to wait for a while. Enqueue it among the - waiting_readers. */ - HANDLE event = glwthread_waitqueue_add (&lock->waiting_readers); - if (event != INVALID_HANDLE_VALUE) - { - DWORD result; - LeaveCriticalSection (&lock->lock); - /* Wait until another thread signals this event. */ - result = WaitForSingleObject (event, INFINITE); - if (result == WAIT_FAILED || result == WAIT_TIMEOUT) - abort (); - CloseHandle (event); - /* The thread which signalled the event already did the bookkeeping: - removed us from the waiting_readers, incremented lock->runcount. */ - if (!(lock->runcount > 0)) - abort (); - return 0; - } - else - { - /* Allocation failure. Weird. */ - do - { - LeaveCriticalSection (&lock->lock); - Sleep (1); - EnterCriticalSection (&lock->lock); - } - while (!(lock->runcount + 1 > 0)); - } - } - lock->runcount++; - LeaveCriticalSection (&lock->lock); - return 0; -} - -int -glwthread_rwlock_wrlock (glwthread_rwlock_t *lock) -{ - if (!lock->guard.done) - { - if (InterlockedIncrement (&lock->guard.started) == 0) - /* This thread is the first one to need this lock. Initialize it. */ - glwthread_rwlock_init (lock); - else - { - /* Don't let lock->guard.started grow and wrap around. */ - InterlockedDecrement (&lock->guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this lock. */ - while (!lock->guard.done) - Sleep (0); - } - } - EnterCriticalSection (&lock->lock); - /* Test whether no readers or writers are currently running. */ - if (!(lock->runcount == 0)) - { - /* This thread has to wait for a while. Enqueue it among the - waiting_writers. */ - HANDLE event = glwthread_waitqueue_add (&lock->waiting_writers); - if (event != INVALID_HANDLE_VALUE) - { - DWORD result; - LeaveCriticalSection (&lock->lock); - /* Wait until another thread signals this event. */ - result = WaitForSingleObject (event, INFINITE); - if (result == WAIT_FAILED || result == WAIT_TIMEOUT) - abort (); - CloseHandle (event); - /* The thread which signalled the event already did the bookkeeping: - removed us from the waiting_writers, set lock->runcount = -1. */ - if (!(lock->runcount == -1)) - abort (); - return 0; - } - else - { - /* Allocation failure. Weird. */ - do - { - LeaveCriticalSection (&lock->lock); - Sleep (1); - EnterCriticalSection (&lock->lock); - } - while (!(lock->runcount == 0)); - } - } - lock->runcount--; /* runcount becomes -1 */ - LeaveCriticalSection (&lock->lock); - return 0; -} - -int -glwthread_rwlock_tryrdlock (glwthread_rwlock_t *lock) -{ - if (!lock->guard.done) - { - if (InterlockedIncrement (&lock->guard.started) == 0) - /* This thread is the first one to need this lock. Initialize it. */ - glwthread_rwlock_init (lock); - else - { - /* Don't let lock->guard.started grow and wrap around. */ - InterlockedDecrement (&lock->guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this lock. */ - while (!lock->guard.done) - Sleep (0); - } - } - /* It's OK to wait for this critical section, because it is never taken for a - long time. */ - EnterCriticalSection (&lock->lock); - /* Test whether only readers are currently running, and whether the runcount - field will not overflow, and whether no writer is waiting. The latter - condition is because POSIX recommends that "write locks shall take - precedence over read locks", to avoid "writer starvation". */ - if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0)) - { - /* This thread would have to wait for a while. Return instead. */ - LeaveCriticalSection (&lock->lock); - return EBUSY; - } - lock->runcount++; - LeaveCriticalSection (&lock->lock); - return 0; -} - -int -glwthread_rwlock_trywrlock (glwthread_rwlock_t *lock) -{ - if (!lock->guard.done) - { - if (InterlockedIncrement (&lock->guard.started) == 0) - /* This thread is the first one to need this lock. Initialize it. */ - glwthread_rwlock_init (lock); - else - { - /* Don't let lock->guard.started grow and wrap around. */ - InterlockedDecrement (&lock->guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this lock. */ - while (!lock->guard.done) - Sleep (0); - } - } - /* It's OK to wait for this critical section, because it is never taken for a - long time. */ - EnterCriticalSection (&lock->lock); - /* Test whether no readers or writers are currently running. */ - if (!(lock->runcount == 0)) - { - /* This thread would have to wait for a while. Return instead. */ - LeaveCriticalSection (&lock->lock); - return EBUSY; - } - lock->runcount--; /* runcount becomes -1 */ - LeaveCriticalSection (&lock->lock); - return 0; -} - -int -glwthread_rwlock_unlock (glwthread_rwlock_t *lock) -{ - if (!lock->guard.done) - return EINVAL; - EnterCriticalSection (&lock->lock); - if (lock->runcount < 0) - { - /* Drop a writer lock. */ - if (!(lock->runcount == -1)) - abort (); - lock->runcount = 0; - } - else - { - /* Drop a reader lock. */ - if (!(lock->runcount > 0)) - { - LeaveCriticalSection (&lock->lock); - return EPERM; - } - lock->runcount--; - } - if (lock->runcount == 0) - { - /* POSIX recommends that "write locks shall take precedence over read - locks", to avoid "writer starvation". */ - if (lock->waiting_writers.count > 0) - { - /* Wake up one of the waiting writers. */ - lock->runcount--; - glwthread_waitqueue_notify_first (&lock->waiting_writers); - } - else - { - /* Wake up all waiting readers. */ - lock->runcount += lock->waiting_readers.count; - glwthread_waitqueue_notify_all (&lock->waiting_readers); - } - } - LeaveCriticalSection (&lock->lock); - return 0; -} - -int -glwthread_rwlock_destroy (glwthread_rwlock_t *lock) -{ - if (!lock->guard.done) - return EINVAL; - if (lock->runcount != 0) - return EBUSY; - DeleteCriticalSection (&lock->lock); - if (lock->waiting_readers.array != NULL) - free (lock->waiting_readers.array); - if (lock->waiting_writers.array != NULL) - free (lock->waiting_writers.array); - lock->guard.done = 0; - return 0; -} diff --git a/gl/windows-rwlock.h b/gl/windows-rwlock.h deleted file mode 100644 index fe8381e..0000000 --- a/gl/windows-rwlock.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Read-write locks (native Windows implementation). - Copyright (C) 2005-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_RWLOCK_H -#define _WINDOWS_RWLOCK_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include "windows-initguard.h" - -/* It is impossible to implement read-write locks using plain locks, without - introducing an extra thread dedicated to managing read-write locks. - Therefore here we need to use the low-level Event type. */ - -typedef struct - { - HANDLE *array; /* array of waiting threads, each represented by an event */ - unsigned int count; /* number of waiting threads */ - unsigned int alloc; /* length of allocated array */ - unsigned int offset; /* index of first waiting thread in array */ - } - glwthread_carray_waitqueue_t; -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - CRITICAL_SECTION lock; /* protects the remaining fields */ - glwthread_carray_waitqueue_t waiting_readers; /* waiting readers */ - glwthread_carray_waitqueue_t waiting_writers; /* waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - glwthread_rwlock_t; - -#define GLWTHREAD_RWLOCK_INIT { GLWTHREAD_INITGUARD_INIT } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_rwlock_init (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_rdlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_wrlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_tryrdlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_trywrlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_unlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_destroy (glwthread_rwlock_t *lock); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_RWLOCK_H */ diff --git a/gl/xalloc-die.c b/gl/xalloc-die.c index 7605eee..daa403b 100644 --- a/gl/xalloc-die.c +++ b/gl/xalloc-die.c @@ -1,11 +1,11 @@ /* Report a memory allocation failure and exit. - Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2023 Free Software + Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -14,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include diff --git a/gl/xalloc-oversized.h b/gl/xalloc-oversized.h index 5dbdfb5..a971c78 100644 --- a/gl/xalloc-oversized.h +++ b/gl/xalloc-oversized.h @@ -1,65 +1,38 @@ /* xalloc-oversized.h -- memory allocation size checking - Copyright (C) 1990-2000, 2003-2004, 2006-2023 Free Software Foundation, Inc. + Copyright (C) 1990-2000, 2003-2004, 2006-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef XALLOC_OVERSIZED_H_ -#define XALLOC_OVERSIZED_H_ +# define XALLOC_OVERSIZED_H_ -#include -#include +# include -/* True if N * S does not fit into both ptrdiff_t and size_t. - N and S should be nonnegative and free of side effects. - This expands to a constant expression if N and S are both constants. - By gnulib convention, SIZE_MAX represents overflow in size_t - calculations, so the conservative size_t-based dividend to use here - is SIZE_MAX - 1. */ -#define __xalloc_oversized(n, s) \ - ((s) != 0 \ - && ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) \ - < (n))) +/* Return 1 if an array of N objects, each of size S, cannot exist due + to size arithmetic overflow. S must be positive and N must be + nonnegative. This is a macro, not a function, so that it + works correctly even when SIZE_MAX < N. -/* Return 1 if and only if an array of N objects, each of size S, - cannot exist reliably because its total size in bytes would exceed - MIN (PTRDIFF_MAX, SIZE_MAX - 1). - - N and S should be nonnegative and free of side effects. - - Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can - misbehave if N and S are both narrower than ptrdiff_t and size_t, - and can be rewritten as (xalloc_oversized (N, S) ? NULL - : malloc (N * (size_t) S)). - - This is a macro, not a function, so that it works even if an - argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */ -#if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX + By gnulib convention, SIZE_MAX represents overflow in size + calculations, so the conservative dividend to use here is + SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. + However, malloc (SIZE_MAX) fails on all known hosts where + sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for + exactly-SIZE_MAX allocations on such hosts; this avoids a test and + branch when S is known to be 1. */ # define xalloc_oversized(n, s) \ - __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1) -#elif (5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ \ - && PTRDIFF_MAX < SIZE_MAX) -# define xalloc_oversized(n, s) \ - (__builtin_constant_p (n) && __builtin_constant_p (s) \ - ? __xalloc_oversized (n, s) \ - : ({ ptrdiff_t __xalloc_count; \ - __builtin_mul_overflow (n, s, &__xalloc_count); })) - -/* Other compilers use integer division; this may be slower but is - more portable. */ -#else -# define xalloc_oversized(n, s) __xalloc_oversized (n, s) -#endif + ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) #endif /* !XALLOC_OVERSIZED_H_ */ diff --git a/gl/xalloc.h b/gl/xalloc.h index f373c2f..da7c4b6 100644 --- a/gl/xalloc.h +++ b/gl/xalloc.h @@ -1,10 +1,10 @@ /* xalloc.h -- malloc with out-of-memory checking - Copyright (C) 1990-2000, 2003-2004, 2006-2023 Free Software Foundation, Inc. + Copyright (C) 1990-2000, 2003-2004, 2006-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -13,92 +13,57 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #ifndef XALLOC_H_ #define XALLOC_H_ #include -#include -#if GNULIB_XALLOC -# include "idx.h" -#endif +#include "xalloc-oversized.h" -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif _GL_INLINE_HEADER_BEGIN #ifndef XALLOC_INLINE # define XALLOC_INLINE _GL_INLINE #endif - #ifdef __cplusplus extern "C" { #endif -#if GNULIB_XALLOC_DIE +#if __GNUC__ >= 3 +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC +#endif + +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) +#else +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) +#endif /* This function is always triggered when memory is exhausted. It must be defined by the application, either explicitly or by using gnulib's xalloc-die module. This is the function to call when one wants the program to die because of a memory allocation failure. */ -/*extern*/ _Noreturn void xalloc_die (void); - -#endif /* GNULIB_XALLOC_DIE */ - -#if GNULIB_XALLOC +extern _Noreturn void xalloc_die (void); void *xmalloc (size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *ximalloc (idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xinmalloc (idx_t n, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); void *xzalloc (size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xizalloc (idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); void *xcalloc (size_t n, size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xicalloc (idx_t n, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); void *xrealloc (void *p, size_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2)); -void *xirealloc (void *p, idx_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xreallocarray (void *p, size_t n, size_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); -void *xireallocarray (void *p, idx_t n, idx_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *x2realloc (void *p, size_t *ps) /* superseded by xpalloc */ - _GL_ATTRIBUTE_RETURNS_NONNULL; -void *x2nrealloc (void *p, size_t *pn, size_t s) /* superseded by xpalloc */ - _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) - _GL_ATTRIBUTE_RETURNS_NONNULL; + _GL_ATTRIBUTE_ALLOC_SIZE ((2)); +void *x2realloc (void *p, size_t *pn); void *xmemdup (void const *p, size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *ximemdup (void const *p, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -char *ximemdup0 (void const *p, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((2)); char *xstrdup (char const *str) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; + _GL_ATTRIBUTE_MALLOC; /* In the following macros, T must be an elementary or structure/union or typedef'ed type, or a pointer to such a type. To apply one of the @@ -107,60 +72,153 @@ char *xstrdup (char const *str) /* Allocate an object of type T dynamically, with error checking. */ /* extern t *XMALLOC (typename t); */ -# define XMALLOC(t) ((t *) xmalloc (sizeof (t))) +#define XMALLOC(t) ((t *) xmalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking. */ /* extern t *XNMALLOC (size_t n, typename t); */ -# define XNMALLOC(n, t) \ - ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t)))) +#define XNMALLOC(n, t) \ + ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t)))) /* Allocate an object of type T dynamically, with error checking, and zero it. */ /* extern t *XZALLOC (typename t); */ -# define XZALLOC(t) ((t *) xzalloc (sizeof (t))) +#define XZALLOC(t) ((t *) xzalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking, and zero it. */ /* extern t *XCALLOC (size_t n, typename t); */ -# define XCALLOC(n, t) \ - ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t)))) +#define XCALLOC(n, t) \ + ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t)))) /* Allocate an array of N objects, each with S bytes of memory, dynamically, with error checking. S must be nonzero. */ -void *xnmalloc (size_t n, size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; +XALLOC_INLINE void *xnmalloc (size_t n, size_t s) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); +XALLOC_INLINE void * +xnmalloc (size_t n, size_t s) +{ + if (xalloc_oversized (n, s)) + xalloc_die (); + return xmalloc (n * s); +} -/* FIXME: Deprecate this in favor of xreallocarray? */ /* Change the size of an allocated block of memory P to an array of N objects each of S bytes, with error checking. S must be nonzero. */ XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); + _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); XALLOC_INLINE void * xnrealloc (void *p, size_t n, size_t s) { - return xreallocarray (p, n, s); + if (xalloc_oversized (n, s)) + xalloc_die (); + return xrealloc (p, n * s); +} + +/* If P is null, allocate a block of at least *PN such objects; + otherwise, reallocate P so that it contains more than *PN objects + each of S bytes. *PN must be nonzero unless P is null, and S must + be nonzero. Set *PN to the new number of objects, and return the + pointer to the new block. *PN is never set to zero, and the + returned pointer is never null. + + Repeated reallocations are guaranteed to make progress, either by + allocating an initial block with a nonzero size, or by allocating a + larger block. + + In the following implementation, nonzero sizes are increased by a + factor of approximately 1.5 so that repeated reallocations have + O(N) overall cost rather than O(N**2) cost, but the + specification for this function does not guarantee that rate. + + Here is an example of use: + + int *p = NULL; + size_t used = 0; + size_t allocated = 0; + + void + append_int (int value) + { + if (used == allocated) + p = x2nrealloc (p, &allocated, sizeof *p); + p[used++] = value; + } + + This causes x2nrealloc to allocate a block of some nonzero size the + first time it is called. + + To have finer-grained control over the initial size, set *PN to a + nonzero value before calling this function with P == NULL. For + example: + + int *p = NULL; + size_t used = 0; + size_t allocated = 0; + size_t allocated1 = 1000; + + void + append_int (int value) + { + if (used == allocated) + { + p = x2nrealloc (p, &allocated1, sizeof *p); + allocated = allocated1; + } + p[used++] = value; + } + + */ + +XALLOC_INLINE void * +x2nrealloc (void *p, size_t *pn, size_t s) +{ + size_t n = *pn; + + if (! p) + { + if (! n) + { + /* The approximate size to use for initial small allocation + requests, when the invoking code specifies an old size of + zero. This is the largest "small" request for the GNU C + library malloc. */ + enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; + + n = DEFAULT_MXFAST / s; + n += !n; + } + } + else + { + /* Set N = ceil (1.5 * N) so that progress is made if N == 1. + Check for overflow, so that N * S stays in size_t range. + The check is slightly conservative, but an exact check isn't + worth the trouble. */ + if ((size_t) -1 / 3 * 2 / s <= n) + xalloc_die (); + n += (n + 1) / 2; + } + + *pn = n; + return xrealloc (p, n * s); } /* Return a pointer to a new buffer of N bytes. This is like xmalloc, except it returns char *. */ -char *xcharalloc (size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; - -#endif /* GNULIB_XALLOC */ - +XALLOC_INLINE char *xcharalloc (size_t n) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); +XALLOC_INLINE char * +xcharalloc (size_t n) +{ + return XNMALLOC (n, char); +} #ifdef __cplusplus } -#endif - - -#if GNULIB_XALLOC && defined __cplusplus /* C++ does not allow conversions from void * to other pointer types without a cast. Use templates to work around the problem when @@ -172,17 +230,10 @@ xrealloc (T *p, size_t s) return (T *) xrealloc ((void *) p, s); } -template inline T * -xreallocarray (T *p, size_t n, size_t s) -{ - return (T *) xreallocarray ((void *) p, n, s); -} - -/* FIXME: Deprecate this in favor of xreallocarray? */ template inline T * xnrealloc (T *p, size_t n, size_t s) { - return xreallocarray (p, n, s); + return (T *) xnrealloc ((void *) p, n, s); } template inline T * @@ -203,9 +254,7 @@ xmemdup (T const *p, size_t s) return (T *) xmemdup ((void const *) p, s); } -#endif /* GNULIB_XALLOC && C++ */ +#endif -_GL_INLINE_HEADER_END - #endif /* !XALLOC_H_ */ diff --git a/gl/xmalloc.c b/gl/xmalloc.c index 289cbd0..57e34b7 100644 --- a/gl/xmalloc.c +++ b/gl/xmalloc.c @@ -1,10 +1,10 @@ /* xmalloc.c -- malloc with out of memory checking - Copyright (C) 1990-2000, 2002-2006, 2008-2023 Free Software Foundation, Inc. + Copyright (C) 1990-2000, 2002-2006, 2008-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ #include @@ -21,256 +21,59 @@ #include "xalloc.h" -#include "ialloc.h" -#include "minmax.h" - -#include #include -#include #include -static void * _GL_ATTRIBUTE_PURE -nonnull (void *p) +/* 1 if calloc is known to be compatible with GNU calloc. This + matters if we are not also using the calloc module, which defines + HAVE_CALLOC_GNU and supports the GNU API even on non-GNU platforms. */ +#if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__) +enum { HAVE_GNU_CALLOC = 1 }; +#else +enum { HAVE_GNU_CALLOC = 0 }; +#endif + +/* Allocate N bytes of memory dynamically, with error checking. */ + +void * +xmalloc (size_t n) { - if (!p) + void *p = malloc (n); + if (!p && n != 0) xalloc_die (); return p; } -/* Allocate S bytes of memory dynamically, with error checking. */ - -void * -xmalloc (size_t s) -{ - return nonnull (malloc (s)); -} - -void * -ximalloc (idx_t s) -{ - return nonnull (imalloc (s)); -} - -char * -xcharalloc (size_t n) -{ - return XNMALLOC (n, char); -} - -/* Change the size of an allocated block of memory P to S bytes, +/* Change the size of an allocated block of memory P to N bytes, with error checking. */ void * -xrealloc (void *p, size_t s) +xrealloc (void *p, size_t n) { - void *r = realloc (p, s); - if (!r && (!p || s)) - xalloc_die (); - return r; -} - -void * -xirealloc (void *p, idx_t s) -{ - return nonnull (irealloc (p, s)); -} - -/* Change the size of an allocated block of memory P to an array of N - objects each of S bytes, with error checking. */ - -void * -xreallocarray (void *p, size_t n, size_t s) -{ - void *r = reallocarray (p, n, s); - if (!r && (!p || (n && s))) - xalloc_die (); - return r; -} - -void * -xireallocarray (void *p, idx_t n, idx_t s) -{ - return nonnull (ireallocarray (p, n, s)); -} - -/* Allocate an array of N objects, each with S bytes of memory, - dynamically, with error checking. S must be nonzero. */ - -void * -xnmalloc (size_t n, size_t s) -{ - return xreallocarray (NULL, n, s); -} - -void * -xinmalloc (idx_t n, idx_t s) -{ - return xireallocarray (NULL, n, s); -} - -/* If P is null, allocate a block of at least *PS bytes; otherwise, - reallocate P so that it contains more than *PS bytes. *PS must be - nonzero unless P is null. Set *PS to the new block's size, and - return the pointer to the new block. *PS is never set to zero, and - the returned pointer is never null. */ - -void * -x2realloc (void *p, size_t *ps) -{ - return x2nrealloc (p, ps, 1); -} - -/* If P is null, allocate a block of at least *PN such objects; - otherwise, reallocate P so that it contains more than *PN objects - each of S bytes. S must be nonzero. Set *PN to the new number of - objects, and return the pointer to the new block. *PN is never set - to zero, and the returned pointer is never null. - - Repeated reallocations are guaranteed to make progress, either by - allocating an initial block with a nonzero size, or by allocating a - larger block. - - In the following implementation, nonzero sizes are increased by a - factor of approximately 1.5 so that repeated reallocations have - O(N) overall cost rather than O(N**2) cost, but the - specification for this function does not guarantee that rate. - - Here is an example of use: - - int *p = NULL; - size_t used = 0; - size_t allocated = 0; - - void - append_int (int value) - { - if (used == allocated) - p = x2nrealloc (p, &allocated, sizeof *p); - p[used++] = value; - } - - This causes x2nrealloc to allocate a block of some nonzero size the - first time it is called. - - To have finer-grained control over the initial size, set *PN to a - nonzero value before calling this function with P == NULL. For - example: - - int *p = NULL; - size_t used = 0; - size_t allocated = 0; - size_t allocated1 = 1000; - - void - append_int (int value) - { - if (used == allocated) - { - p = x2nrealloc (p, &allocated1, sizeof *p); - allocated = allocated1; - } - p[used++] = value; - } - - */ - -void * -x2nrealloc (void *p, size_t *pn, size_t s) -{ - size_t n = *pn; - - if (! p) + if (!n && p) { - if (! n) - { - /* The approximate size to use for initial small allocation - requests, when the invoking code specifies an old size of - zero. This is the largest "small" request for the GNU C - library malloc. */ - enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; - - n = DEFAULT_MXFAST / s; - n += !n; - } - } - else - { - /* Set N = floor (1.5 * N) + 1 to make progress even if N == 0. */ - if (ckd_add (&n, n, (n >> 1) + 1)) - xalloc_die (); + /* The GNU and C99 realloc behaviors disagree here. Act like + GNU, even if the underlying realloc is C99. */ + free (p); + return NULL; } - p = xreallocarray (p, n, s); - *pn = n; + p = realloc (p, n); + if (!p && n) + xalloc_die (); return p; } -/* Grow PA, which points to an array of *PN items, and return the - location of the reallocated array, updating *PN to reflect its - new size. The new array will contain at least N_INCR_MIN more - items, but will not contain more than N_MAX items total. - S is the size of each item, in bytes. - - S and N_INCR_MIN must be positive. *PN must be - nonnegative. If N_MAX is -1, it is treated as if it were - infinity. - - If PA is null, then allocate a new array instead of reallocating - the old one. - - Thus, to grow an array A without saving its old contents, do - { free (A); A = xpalloc (NULL, &AITEMS, ...); }. */ +/* If P is null, allocate a block of at least *PN bytes; otherwise, + reallocate P so that it contains more than *PN bytes. *PN must be + nonzero unless P is null. Set *PN to the new block's size, and + return the pointer to the new block. *PN is never set to zero, and + the returned pointer is never null. */ void * -xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) +x2realloc (void *p, size_t *pn) { - idx_t n0 = *pn; - - /* The approximate size to use for initial small allocation - requests. This is the largest "small" request for the GNU C - library malloc. */ - enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; - - /* If the array is tiny, grow it to about (but no greater than) - DEFAULT_MXFAST bytes. Otherwise, grow it by about 50%. - Adjust the growth according to three constraints: N_INCR_MIN, - N_MAX, and what the C language can represent safely. */ - - idx_t n; - if (ckd_add (&n, n0, n0 >> 1)) - n = IDX_MAX; - if (0 <= n_max && n_max < n) - n = n_max; - - /* NBYTES is of a type suitable for holding the count of bytes in an object. - This is typically idx_t, but it should be size_t on (theoretical?) - platforms where SIZE_MAX < IDX_MAX so xpalloc does not pass - values greater than SIZE_MAX to xrealloc. */ -#if IDX_MAX <= SIZE_MAX - idx_t nbytes; -#else - size_t nbytes; -#endif - idx_t adjusted_nbytes - = (ckd_mul (&nbytes, n, s) - ? MIN (IDX_MAX, SIZE_MAX) - : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0); - if (adjusted_nbytes) - { - n = adjusted_nbytes / s; - nbytes = adjusted_nbytes - adjusted_nbytes % s; - } - - if (! pa) - *pn = 0; - if (n - n0 < n_incr_min - && (ckd_add (&n, n0, n_incr_min) - || (0 <= n_max && n_max < n) - || ckd_mul (&nbytes, n, s))) - xalloc_die (); - pa = xrealloc (pa, nbytes); - *pn = n; - return pa; + return x2nrealloc (p, pn, 1); } /* Allocate S bytes of zeroed memory dynamically, with error checking. @@ -280,13 +83,7 @@ xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) void * xzalloc (size_t s) { - return xcalloc (s, 1); -} - -void * -xizalloc (idx_t s) -{ - return xicalloc (s, 1); + return memset (xmalloc (s), 0, s); } /* Allocate zeroed memory for N elements of S bytes, with error @@ -295,13 +92,15 @@ xizalloc (idx_t s) void * xcalloc (size_t n, size_t s) { - return nonnull (calloc (n, s)); -} - -void * -xicalloc (idx_t n, idx_t s) -{ - return nonnull (icalloc (n, s)); + void *p; + /* Test for overflow, since some calloc implementations don't have + proper overflow checks. But omit overflow and size-zero tests if + HAVE_GNU_CALLOC, since GNU calloc catches overflow and never + returns NULL if successful. */ + if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s)) + || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0))) + xalloc_die (); + return p; } /* Clone an object P of size S, with error checking. There's no need @@ -314,23 +113,6 @@ xmemdup (void const *p, size_t s) return memcpy (xmalloc (s), p, s); } -void * -ximemdup (void const *p, idx_t s) -{ - return memcpy (ximalloc (s), p, s); -} - -/* Clone an object P of size S, with error checking. Append - a terminating NUL byte. */ - -char * -ximemdup0 (void const *p, idx_t s) -{ - char *result = ximalloc (s + 1); - result[s] = 0; - return memcpy (result, p, s); -} - /* Clone STRING. */ char * diff --git a/gl/xsize.c b/gl/xsize.c index 279ae82..4b4914c 100644 --- a/gl/xsize.c +++ b/gl/xsize.c @@ -1,21 +1,3 @@ -/* Checked size_t computations. - - Copyright (C) 2012-2023 Free Software Foundation, Inc. - - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - This file is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - #include - #define XSIZE_INLINE _GL_EXTERN_INLINE #include "xsize.h" diff --git a/gl/xsize.h b/gl/xsize.h index 1ec78e7..2922f35 100644 --- a/gl/xsize.h +++ b/gl/xsize.h @@ -1,19 +1,19 @@ /* xsize.h -- Checked size_t computations. - Copyright (C) 2003, 2008-2023 Free Software Foundation, Inc. + Copyright (C) 2003, 2008-2013 Free Software Foundation, Inc. - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. - This file is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ #ifndef _XSIZE_H #define _XSIZE_H @@ -27,12 +27,6 @@ # include #endif -/* Get ATTRIBUTE_PURE. */ -#include "attribute.h" - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif _GL_INLINE_HEADER_BEGIN #ifndef XSIZE_INLINE # define XSIZE_INLINE _GL_INLINE @@ -59,7 +53,10 @@ _GL_INLINE_HEADER_BEGIN ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX) /* Sum of two sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE +XSIZE_INLINE size_t +#if __GNUC__ >= 3 +__attribute__ ((__pure__)) +#endif xsum (size_t size1, size_t size2) { size_t sum = size1 + size2; @@ -67,21 +64,30 @@ xsum (size_t size1, size_t size2) } /* Sum of three sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE +XSIZE_INLINE size_t +#if __GNUC__ >= 3 +__attribute__ ((__pure__)) +#endif xsum3 (size_t size1, size_t size2, size_t size3) { return xsum (xsum (size1, size2), size3); } /* Sum of four sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE +XSIZE_INLINE size_t +#if __GNUC__ >= 3 +__attribute__ ((__pure__)) +#endif xsum4 (size_t size1, size_t size2, size_t size3, size_t size4) { return xsum (xsum (xsum (size1, size2), size3), size4); } /* Maximum of two sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE +XSIZE_INLINE size_t +#if __GNUC__ >= 3 +__attribute__ ((__pure__)) +#endif xmax (size_t size1, size_t size2) { /* No explicit check is needed here, because for any n: diff --git a/gl/xstrndup.c b/gl/xstrndup.c new file mode 100644 index 0000000..eae92d0 --- /dev/null +++ b/gl/xstrndup.c @@ -0,0 +1,36 @@ +/* Duplicate a bounded initial segment of a string, with out-of-memory + checking. + Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#include "xstrndup.h" + +#include +#include "xalloc.h" + +/* Return a newly allocated copy of at most N bytes of STRING. + In other words, return a copy of the initial segment of length N of + STRING. */ +char * +xstrndup (const char *string, size_t n) +{ + char *s = strndup (string, n); + if (! s) + xalloc_die (); + return s; +} diff --git a/gl/xstrndup.h b/gl/xstrndup.h new file mode 100644 index 0000000..59673b0 --- /dev/null +++ b/gl/xstrndup.h @@ -0,0 +1,23 @@ +/* Duplicate a bounded initial segment of a string, with out-of-memory + checking. + Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +/* Return a newly allocated copy of at most N bytes of STRING. + In other words, return a copy of the initial segment of length N of + STRING. */ +extern char *xstrndup (const char *string, size_t n); diff --git a/lib/Makefile.am b/lib/Makefile.am index dc3ee89..01d73a6 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -7,8 +7,8 @@ noinst_LIBRARIES = libmonitoringplug.a AM_CPPFLAGS = -DNP_STATE_DIR_PREFIX=\"$(localstatedir)\" \ -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins -libmonitoringplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c maxfd.c -EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h parse_ini.h extra_opts.h maxfd.h +libmonitoringplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c utils_cmd.c +EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h parse_ini.h extra_opts.h if USE_PARSE_INI libmonitoringplug_a_SOURCES += parse_ini.c extra_opts.c diff --git a/lib/Makefile.in b/lib/Makefile.in index 6b13d0c..5cdf10b 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -73,7 +73,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -94,58 +93,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -153,57 +144,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -220,12 +204,12 @@ am__v_AR_1 = libmonitoringplug_a_AR = $(AR) $(ARFLAGS) libmonitoringplug_a_LIBADD = am__libmonitoringplug_a_SOURCES_DIST = utils_base.c utils_disk.c \ - utils_tcp.c utils_cmd.c maxfd.c parse_ini.c extra_opts.c + utils_tcp.c utils_cmd.c parse_ini.c extra_opts.c @USE_PARSE_INI_TRUE@am__objects_1 = parse_ini.$(OBJEXT) \ @USE_PARSE_INI_TRUE@ extra_opts.$(OBJEXT) am_libmonitoringplug_a_OBJECTS = utils_base.$(OBJEXT) \ utils_disk.$(OBJEXT) utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT) \ - maxfd.$(OBJEXT) $(am__objects_1) + $(am__objects_1) libmonitoringplug_a_OBJECTS = $(am_libmonitoringplug_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -242,7 +226,7 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/extra_opts.Po ./$(DEPDIR)/maxfd.Po \ +am__depfiles_remade = ./$(DEPDIR)/extra_opts.Po \ ./$(DEPDIR)/parse_ini.Po ./$(DEPDIR)/utils_base.Po \ ./$(DEPDIR)/utils_cmd.Po ./$(DEPDIR)/utils_disk.Po \ ./$(DEPDIR)/utils_tcp.Po @@ -339,6 +323,7 @@ am__relativize = \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -347,7 +332,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -358,11 +342,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -398,476 +380,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -876,7 +735,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -884,11 +742,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -898,17 +754,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -918,22 +770,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -953,7 +800,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -963,37 +809,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -1004,24 +843,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1029,21 +862,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1057,23 +886,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1084,29 +906,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1118,9 +935,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1136,16 +950,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1155,7 +965,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1166,17 +975,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1190,7 +995,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1215,10 +1019,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1230,8 +1034,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1250,24 +1052,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1276,6 +1069,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1283,23 +1077,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1311,7 +1100,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1319,12 +1107,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1336,7 +1121,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1394,63 +1178,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1461,61 +1217,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1533,9 +1273,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1545,11 +1283,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1557,30 +1290,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1588,24 +1312,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1613,42 +1331,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -1656,10 +1359,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -1678,21 +1379,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -1705,9 +1399,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -1739,10 +1430,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -1757,9 +1446,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = @localedir@ -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -1785,8 +1473,8 @@ AM_CPPFLAGS = -DNP_STATE_DIR_PREFIX=\"$(localstatedir)\" \ -I$(srcdir) -I$(top_srcdir)/gl -I$(top_srcdir)/intl -I$(top_srcdir)/plugins libmonitoringplug_a_SOURCES = utils_base.c utils_disk.c utils_tcp.c \ - utils_cmd.c maxfd.c $(am__append_1) -EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h parse_ini.h extra_opts.h maxfd.h + utils_cmd.c $(am__append_1) +EXTRA_DIST = utils_base.h utils_disk.h utils_tcp.h utils_cmd.h parse_ini.h extra_opts.h all: all-recursive .SUFFIXES: @@ -1836,7 +1524,6 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extra_opts.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maxfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse_ini.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_base.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_cmd.Po@am__quote@ # am--include-marker @@ -2074,7 +1761,6 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ distclean: distclean-recursive -rm -f ./$(DEPDIR)/extra_opts.Po - -rm -f ./$(DEPDIR)/maxfd.Po -rm -f ./$(DEPDIR)/parse_ini.Po -rm -f ./$(DEPDIR)/utils_base.Po -rm -f ./$(DEPDIR)/utils_cmd.Po @@ -2126,7 +1812,6 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/extra_opts.Po - -rm -f ./$(DEPDIR)/maxfd.Po -rm -f ./$(DEPDIR)/parse_ini.Po -rm -f ./$(DEPDIR)/utils_base.Po -rm -f ./$(DEPDIR)/utils_cmd.Po diff --git a/lib/extra_opts.c b/lib/extra_opts.c index 771621d..f4d5e66 100644 --- a/lib/extra_opts.c +++ b/lib/extra_opts.c @@ -1,23 +1,23 @@ /***************************************************************************** -* +* * Monitoring Plugins extra_opts library -* +* * License: GPL * Copyright (c) 2007 Monitoring Plugins Development Team -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* +* *****************************************************************************/ #include "common.h" @@ -26,14 +26,15 @@ #include "extra_opts.h" /* FIXME: copied from utils.h; we should move a bunch of libs! */ -bool is_option2 (char *str) +int +is_option2 (char *str) { if (!str) - return false; + return FALSE; else if (strspn (str, "-") == 1 || strspn (str, "-") == 2) - return true; + return TRUE; else - return false; + return FALSE; } /* this is the externally visible function used by plugins */ @@ -92,14 +93,14 @@ char **np_extra_opts(int *argc, char **argv, const char *plugin_name){ /* append the list to extra_args */ if(extra_args==NULL){ extra_args=ea1; - while((ea1 = ea1->next)) ea_num++; + while(ea1=ea1->next) ea_num++; }else{ ea_tmp=extra_args; while(ea_tmp->next) { ea_tmp=ea_tmp->next; } ea_tmp->next=ea1; - while((ea1 = ea1->next)) ea_num++; + while(ea1=ea1->next) ea_num++; } ea1=ea_tmp=NULL; } diff --git a/lib/maxfd.c b/lib/maxfd.c deleted file mode 100644 index 529b356..0000000 --- a/lib/maxfd.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "./maxfd.h" -#include - -long mp_open_max (void) { - long maxfd = 0L; - /* Try sysconf(_SC_OPEN_MAX) first, as it can be higher than OPEN_MAX. - * If that fails and the macro isn't defined, we fall back to an educated - * guess. There's no guarantee that our guess is adequate and the program - * will die with SIGSEGV if it isn't and the upper boundary is breached. */ - -#ifdef _SC_OPEN_MAX - errno = 0; - if ((maxfd = sysconf (_SC_OPEN_MAX)) < 0) { - if (errno == 0) - maxfd = DEFAULT_MAXFD; /* it's indeterminate */ - else - die (STATE_UNKNOWN, _("sysconf error for _SC_OPEN_MAX\n")); - } -#elif defined(OPEN_MAX) - return OPEN_MAX -#else /* sysconf macro unavailable, so guess (may be wildly inaccurate) */ - return DEFAULT_MAXFD; -#endif - - return(maxfd); -} diff --git a/lib/maxfd.h b/lib/maxfd.h deleted file mode 100644 index 45218d0..0000000 --- a/lib/maxfd.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _MAXFD_ -#define _MAXFD_ - -#define DEFAULT_MAXFD 256 /* fallback value if no max open files value is set */ -#define MAXFD_LIMIT 8192 /* upper limit of open files */ - -long mp_open_max (void); - -#endif // _MAXFD_ diff --git a/lib/parse_ini.c b/lib/parse_ini.c index 09c0dc4..25abc89 100644 --- a/lib/parse_ini.c +++ b/lib/parse_ini.c @@ -1,24 +1,24 @@ /***************************************************************************** -* +* * Monitoring Plugins parse_ini library -* +* * License: GPL * Copyright (c) 2007 Monitoring Plugins Development Team -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" @@ -36,7 +36,6 @@ */ typedef struct { char *file; - bool file_string_on_heap; char *stanza; } np_ini_info; @@ -79,7 +78,7 @@ static char *default_file_in_path(void); /* * Parse_locator decomposes a string of the form * [stanza][@filename] - * into its separate parts. + * into its seperate parts. */ static void parse_locator(const char *locator, const char *def_stanza, np_ini_info *i) @@ -96,22 +95,16 @@ parse_locator(const char *locator, const char *def_stanza, np_ini_info *i) i->stanza = malloc(sizeof(char) * (stanza_len + 1)); strncpy(i->stanza, locator, stanza_len); i->stanza[stanza_len] = '\0'; - } else {/* otherwise we use the default stanza */ + } else /* otherwise we use the default stanza */ i->stanza = strdup(def_stanza); - } if (i->stanza == NULL) die(STATE_UNKNOWN, _("malloc() failed!\n")); /* check whether there's an @file part */ - if (stanza_len == locator_len) { - i->file = default_file(); - i->file_string_on_heap = false; - } else { - i->file = strdup(&(locator[stanza_len + 1])); - i->file_string_on_heap = true; - } - + i->file = stanza_len == locator_len + ? default_file() + : strdup(&(locator[stanza_len + 1])); if (i->file == NULL || i->file[0] == '\0') die(STATE_UNKNOWN, _("Cannot find config file in any standard location.\n")); @@ -138,15 +131,12 @@ np_get_defaults(const char *locator, const char *default_section) if (inifile == NULL) die(STATE_UNKNOWN, _("Can't read config file: %s\n"), strerror(errno)); - if (!read_defaults(inifile, i.stanza, &defaults)) + if (read_defaults(inifile, i.stanza, &defaults) == FALSE) die(STATE_UNKNOWN, _("Invalid section '%s' in config file '%s'\n"), i.stanza, i.file); - if (i.file_string_on_heap) { - free(i.file); - } - + free(i.file); if (inifile != stdin) fclose(inifile); free(i.stanza); @@ -167,8 +157,7 @@ np_get_defaults(const char *locator, const char *default_section) static int read_defaults(FILE *f, const char *stanza, np_arg_list **opts) { - int c = 0; - bool status = false; + int c, status = FALSE; size_t i, stanza_len; enum { NOSTANZA, WRONGSTANZA, RIGHTSTANZA } stanzastate = NOSTANZA; @@ -180,7 +169,7 @@ read_defaults(FILE *f, const char *stanza, np_arg_list **opts) if (isspace(c)) continue; switch (c) { - /* globble up comment lines */ + /* globble up coment lines */ case ';': case '#': GOBBLE_TO(f, c, '\n'); @@ -230,7 +219,7 @@ read_defaults(FILE *f, const char *stanza, np_arg_list **opts) die(STATE_UNKNOWN, "%s\n", _("Config file error")); } - status = true; + status = TRUE; break; } break; @@ -368,18 +357,14 @@ add_option(FILE *f, np_arg_list **optlst) static char * default_file(void) { - char *ini_file; + char **p, *ini_file; if ((ini_file = getenv("MP_CONFIG_FILE")) != NULL || - (ini_file = default_file_in_path()) != NULL) { + (ini_file = default_file_in_path()) != NULL) return ini_file; - } - - for (char **p = default_ini_path_names; *p != NULL; p++) { - if (access(*p, F_OK) == 0) { + for (p = default_ini_path_names; *p != NULL; p++) + if (access(*p, F_OK) == 0) return *p; - } - } return NULL; } diff --git a/lib/tests/Makefile.am b/lib/tests/Makefile.am index 31d79df..a8d7ade 100644 --- a/lib/tests/Makefile.am +++ b/lib/tests/Makefile.am @@ -27,7 +27,7 @@ endif AM_CFLAGS = -g -I$(top_srcdir)/lib -I$(top_srcdir)/gl $(tap_cflags) AM_LDFLAGS = $(tap_ldflags) -ltap -LDADD = $(top_srcdir)/lib/libmonitoringplug.a $(top_srcdir)/gl/libgnu.a $(LIB_CRYPTO) +LDADD = $(top_srcdir)/lib/libmonitoringplug.a $(top_srcdir)/gl/libgnu.a SOURCES = test_utils.c test_disk.c test_tcp.c test_cmd.c test_base64.c test_ini1.c test_ini3.c test_opts1.c test_opts2.c test_opts3.c diff --git a/lib/tests/Makefile.in b/lib/tests/Makefile.in index f9dddb2..dd3f1d3 100644 --- a/lib/tests/Makefile.in +++ b/lib/tests/Makefile.in @@ -73,7 +73,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -97,58 +96,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -156,57 +147,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -219,9 +203,8 @@ PROGRAMS = $(noinst_PROGRAMS) test_base64_SOURCES = test_base64.c test_base64_OBJECTS = test_base64.$(OBJEXT) test_base64_LDADD = $(LDADD) -am__DEPENDENCIES_1 = test_base64_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent @@ -230,47 +213,47 @@ test_cmd_SOURCES = test_cmd.c test_cmd_OBJECTS = test_cmd.$(OBJEXT) test_cmd_LDADD = $(LDADD) test_cmd_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_disk_SOURCES = test_disk.c test_disk_OBJECTS = test_disk.$(OBJEXT) test_disk_LDADD = $(LDADD) test_disk_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_ini1_SOURCES = test_ini1.c test_ini1_OBJECTS = test_ini1.$(OBJEXT) test_ini1_LDADD = $(LDADD) test_ini1_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_ini3_SOURCES = test_ini3.c test_ini3_OBJECTS = test_ini3.$(OBJEXT) test_ini3_LDADD = $(LDADD) test_ini3_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_opts1_SOURCES = test_opts1.c test_opts1_OBJECTS = test_opts1.$(OBJEXT) test_opts1_LDADD = $(LDADD) test_opts1_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_opts2_SOURCES = test_opts2.c test_opts2_OBJECTS = test_opts2.$(OBJEXT) test_opts2_LDADD = $(LDADD) test_opts2_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_opts3_SOURCES = test_opts3.c test_opts3_OBJECTS = test_opts3.$(OBJEXT) test_opts3_LDADD = $(LDADD) test_opts3_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_tcp_SOURCES = test_tcp.c test_tcp_OBJECTS = test_tcp.$(OBJEXT) test_tcp_LDADD = $(LDADD) test_tcp_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a test_utils_SOURCES = test_utils.c test_utils_OBJECTS = test_utils.$(OBJEXT) test_utils_LDADD = $(LDADD) test_utils_DEPENDENCIES = $(top_srcdir)/lib/libmonitoringplug.a \ - $(top_srcdir)/gl/libgnu.a $(am__DEPENDENCIES_1) + $(top_srcdir)/gl/libgnu.a AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -544,6 +527,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/mkinstalldirs \ $(top_srcdir)/build-aux/test-driver README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -552,7 +536,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -563,11 +546,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -603,476 +584,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -1081,7 +939,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -1089,11 +946,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -1103,17 +958,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -1123,22 +974,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -1158,7 +1004,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -1168,37 +1013,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -1209,24 +1047,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1234,21 +1066,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1262,23 +1090,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1289,29 +1110,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1323,9 +1139,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1341,16 +1154,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1360,7 +1169,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1371,17 +1179,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1395,7 +1199,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1420,10 +1223,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1435,8 +1238,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1455,24 +1256,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LTLIBINTL@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1481,6 +1273,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1488,23 +1281,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1516,7 +1304,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1524,12 +1311,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1541,7 +1325,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1599,63 +1382,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1666,61 +1421,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1738,9 +1477,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1750,11 +1487,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1762,30 +1494,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1793,24 +1516,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1818,42 +1535,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -1861,10 +1563,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -1883,21 +1583,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -1910,9 +1603,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -1944,10 +1634,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -1962,9 +1650,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = @localedir@ -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -2001,7 +1688,7 @@ EXTRA_DIST = $(np_test_scripts) $(np_test_files) var @USE_LIBTAP_LOCAL_TRUE@tap_ldadd = $(top_srcdir)/gl/libgnu.a AM_CFLAGS = -g -I$(top_srcdir)/lib -I$(top_srcdir)/gl $(tap_cflags) AM_LDFLAGS = $(tap_ldflags) -ltap -LDADD = $(top_srcdir)/lib/libmonitoringplug.a $(top_srcdir)/gl/libgnu.a $(LIB_CRYPTO) +LDADD = $(top_srcdir)/lib/libmonitoringplug.a $(top_srcdir)/gl/libgnu.a SOURCES = test_utils.c test_disk.c test_tcp.c test_cmd.c test_base64.c test_ini1.c test_ini3.c test_opts1.c test_opts2.c test_opts3.c all: all-am diff --git a/lib/tests/test_base64.c b/lib/tests/test_base64.c index 05dd794..5103d10 100644 --- a/lib/tests/test_base64.c +++ b/lib/tests/test_base64.c @@ -1,19 +1,19 @@ /***************************************************************************** -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" diff --git a/lib/tests/test_cmd.c b/lib/tests/test_cmd.c index 02ae11f..29ca42a 100644 --- a/lib/tests/test_cmd.c +++ b/lib/tests/test_cmd.c @@ -1,19 +1,19 @@ /***************************************************************************** -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" @@ -176,14 +176,14 @@ main (int argc, char **argv) ok (result == UNSET, "(initialised) Checking exit code is reset"); command = (char *)malloc(COMMAND_LINE); - strcpy(command, "/bin/echo3456 non-existent command"); + strcpy(command, "/bin/echo3456 non-existant command"); result = cmd_run (command, &chld_out, &chld_err, 0); ok (chld_out.lines == 0, - "Non existent command, so no output"); + "Non existant command, so no output"); ok (chld_err.lines == 0, "No stderr either"); - ok (result == 3, "Get return code 3 (?) for non-existent command"); + ok (result == 3, "Get return code 3 (?) for non-existant command"); /* ensure everything is empty again */ @@ -192,14 +192,14 @@ main (int argc, char **argv) result = UNSET; command = (char *)malloc(COMMAND_LINE); - strcpy(command, "/bin/sh non-existent-file"); + strcpy(command, "/bin/sh non-existant-file"); result = cmd_run (command, &chld_out, &chld_err, 0); ok (chld_out.lines == 0, "/bin/sh returns no stdout when file is missing..."); ok (chld_err.lines == 1, "...but does give an error line"); - ok (strstr(chld_err.line[0],"non-existent-file") != NULL, "And missing filename is in error message"); + ok (strstr(chld_err.line[0],"non-existant-file") != NULL, "And missing filename is in error message"); ok (result != 0, "Get non-zero return code from /bin/sh"); @@ -219,11 +219,11 @@ main (int argc, char **argv) result = UNSET; command = (char *)malloc(COMMAND_LINE); - strcpy(command, "/bin/non-existent-command"); + strcpy(command, "/bin/non-existant-command"); result = cmd_run (command, &chld_out, &chld_err, 0); ok (chld_out.lines == 0, - "/bin/non-existent-command returns no stdout..."); + "/bin/non-existant-command returns no stdout..."); ok (chld_err.lines == 0, "...and no stderr output either"); ok (result == 3, "Get return code 3 = UNKNOWN when command does not exist"); diff --git a/lib/tests/test_disk.c b/lib/tests/test_disk.c index e283fe2..f6477ac 100644 --- a/lib/tests/test_disk.c +++ b/lib/tests/test_disk.c @@ -1,19 +1,19 @@ /***************************************************************************** -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" @@ -44,19 +44,19 @@ main (int argc, char **argv) plan_tests(33); - ok( np_find_name(exclude_filesystem, "/var/log") == false, "/var/log not in list"); + ok( np_find_name(exclude_filesystem, "/var/log") == FALSE, "/var/log not in list"); np_add_name(&exclude_filesystem, "/var/log"); - ok( np_find_name(exclude_filesystem, "/var/log") == true, "is in list now"); - ok( np_find_name(exclude_filesystem, "/home") == false, "/home not in list"); + ok( np_find_name(exclude_filesystem, "/var/log") == TRUE, "is in list now"); + ok( np_find_name(exclude_filesystem, "/home") == FALSE, "/home not in list"); np_add_name(&exclude_filesystem, "/home"); - ok( np_find_name(exclude_filesystem, "/home") == true, "is in list now"); - ok( np_find_name(exclude_filesystem, "/var/log") == true, "/var/log still in list"); + ok( np_find_name(exclude_filesystem, "/home") == TRUE, "is in list now"); + ok( np_find_name(exclude_filesystem, "/var/log") == TRUE, "/var/log still in list"); - ok( np_find_name(exclude_fstype, "iso9660") == false, "iso9660 not in list"); + ok( np_find_name(exclude_fstype, "iso9660") == FALSE, "iso9660 not in list"); np_add_name(&exclude_fstype, "iso9660"); - ok( np_find_name(exclude_fstype, "iso9660") == true, "is in list now"); + ok( np_find_name(exclude_fstype, "iso9660") == TRUE, "is in list now"); - ok( np_find_name(exclude_filesystem, "iso9660") == false, "Make sure no clashing in variables"); + ok( np_find_name(exclude_filesystem, "iso9660") == FALSE, "Make sure no clashing in variables"); /* for (temp_name = exclude_filesystem; temp_name; temp_name = temp_name->next) { @@ -88,10 +88,10 @@ main (int argc, char **argv) cflags, 3,strdup("regex on dev names:")); np_test_mount_entry_regex(dummy_mount_list, strdup("/foo"), cflags, 0, - strdup("regex on non existent dev/path:")); + strdup("regex on non existant dev/path:")); np_test_mount_entry_regex(dummy_mount_list, strdup("/Foo"), cflags | REG_ICASE,0, - strdup("regi on non existent dev/path:")); + strdup("regi on non existant dev/path:")); np_test_mount_entry_regex(dummy_mount_list, strdup("/c.t0"), cflags, 3, strdup("partial devname regex match:")); @@ -120,7 +120,7 @@ main (int argc, char **argv) np_add_parameter(&paths, "/home/tonvoon"); np_add_parameter(&paths, "/dev/c2t0d0s0"); - np_set_best_match(paths, dummy_mount_list, false); + np_set_best_match(paths, dummy_mount_list, FALSE); for (p = paths; p; p = p->name_next) { struct mount_entry *temp_me; temp_me = p->best_match; @@ -144,7 +144,7 @@ main (int argc, char **argv) np_add_parameter(&paths, "/home/tonvoon"); np_add_parameter(&paths, "/home"); - np_set_best_match(paths, dummy_mount_list, true); + np_set_best_match(paths, dummy_mount_list, TRUE); for (p = paths; p; p = p->name_next) { if (! strcmp(p->name, "/home/groups")) { ok( ! p->best_match , "/home/groups correctly not found"); @@ -167,7 +167,7 @@ main (int argc, char **argv) } ok(found == 0, "first element successfully deleted"); found = 0; - + p=paths; while (p) { if (! strcmp(p->name, "/tmp")) @@ -203,9 +203,9 @@ main (int argc, char **argv) } -void +void np_test_mount_entry_regex (struct mount_entry *dummy_mount_list, char *regstr, int cflags, int expect, char *desc) -{ +{ int matches = 0; regex_t re; struct mount_entry *me; @@ -214,7 +214,7 @@ np_test_mount_entry_regex (struct mount_entry *dummy_mount_list, char *regstr, i if(np_regex_match_mount_entry(me,&re)) matches++; } - ok( matches == expect, + ok( matches == expect, "%s '%s' matched %i/3 entries. ok: %i/3", desc, regstr, expect, matches); diff --git a/lib/tests/test_ini1.c b/lib/tests/test_ini1.c index 6843bac..77f8854 100644 --- a/lib/tests/test_ini1.c +++ b/lib/tests/test_ini1.c @@ -1,19 +1,19 @@ /***************************************************************************** -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" diff --git a/lib/tests/test_ini3.c b/lib/tests/test_ini3.c index 8a2a041..814b3ec 100644 --- a/lib/tests/test_ini3.c +++ b/lib/tests/test_ini3.c @@ -1,19 +1,19 @@ /***************************************************************************** -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "parse_ini.h" diff --git a/lib/tests/test_ini3.t b/lib/tests/test_ini3.t index 41169db..a2ca94a 100755 --- a/lib/tests/test_ini3.t +++ b/lib/tests/test_ini3.t @@ -10,7 +10,7 @@ if (! -e "./test_ini3") { # array of argument arrays # - First value is the expected return code # - 2nd value is the NAGIOS_CONFIG_PATH -# TODO: looks like we look in default path after looking through this variable - shall we? +# TODO: looks like we look in default path after looking trough this variable - shall we? # - 3rd value is the plugin name # - 4th is the ini locator my @TESTS = ( diff --git a/lib/tests/test_opts2.c b/lib/tests/test_opts2.c index 780220e..c3d2067 100644 --- a/lib/tests/test_opts2.c +++ b/lib/tests/test_opts2.c @@ -12,7 +12,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* +* *****************************************************************************/ #include "common.h" diff --git a/lib/tests/test_opts3.t b/lib/tests/test_opts3.t index d77a35c..8d974ca 100755 --- a/lib/tests/test_opts3.t +++ b/lib/tests/test_opts3.t @@ -10,7 +10,7 @@ if (! -e "./test_opts3") { # array of argument arrays # - First value is the expected return code # - 2nd value is the NAGIOS_CONFIG_PATH -# TODO: looks like we look in default path after looking through this variable - shall we? +# TODO: looks like we look in default path after looking trough this variable - shall we? # - 3rd value is the plugin name # - 4th and up are arguments my @TESTS = ( diff --git a/lib/tests/test_tcp.c b/lib/tests/test_tcp.c index 1954b0f..114252b 100644 --- a/lib/tests/test_tcp.c +++ b/lib/tests/test_tcp.c @@ -1,19 +1,19 @@ /***************************************************************************** -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" @@ -33,7 +33,7 @@ main(void) server_expect[0] = strdup("AA"); server_expect[1] = strdup("bb"); server_expect[2] = strdup("CC"); - + ok(np_expect_match("AA bb CC XX", server_expect, server_expect_count, NP_MATCH_EXACT) == NP_MATCH_SUCCESS, "Test matching any string at the beginning (first expect string)"); ok(np_expect_match("bb AA CC XX", server_expect, server_expect_count, NP_MATCH_EXACT) == NP_MATCH_SUCCESS, @@ -52,7 +52,7 @@ main(void) "Test not matching all strings"); ok(np_expect_match("XX XX", server_expect, server_expect_count, NP_MATCH_ALL) == NP_MATCH_RETRY, "Test not matching any string (testing all)"); - + return exit_status(); } diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c index 01afacd..f35b7e2 100644 --- a/lib/tests/test_utils.c +++ b/lib/tests/test_utils.c @@ -1,19 +1,19 @@ /***************************************************************************** -* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" @@ -62,99 +62,99 @@ main (int argc, char **argv) range = parse_range_string("6"); ok( range != NULL, "'6' is valid range"); ok( range->start == 0, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); ok( range->end == 6, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); free(range); range = parse_range_string("1:12%%"); ok( range != NULL, "'1:12%%' is valid - percentages are ignored"); ok( range->start == 1, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); ok( range->end == 12, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); free(range); range = parse_range_string("-7:23"); ok( range != NULL, "'-7:23' is valid range"); ok( range->start == -7, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); ok( range->end == 23, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); free(range); range = parse_range_string(":5.75"); ok( range != NULL, "':5.75' is valid range"); ok( range->start == 0, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); ok( range->end == 5.75, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); free(range); range = parse_range_string("~:-95.99"); ok( range != NULL, "~:-95.99' is valid range"); - ok( range->start_infinity == true, "Using negative infinity"); + ok( range->start_infinity == TRUE, "Using negative infinity"); ok( range->end == -95.99, "End correct (with rounding errors)"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); free(range); range = parse_range_string("12345678901234567890:"); temp = atof("12345678901234567890"); /* Can't just use this because number too large */ ok( range != NULL, "'12345678901234567890:' is valid range"); ok( range->start == temp, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); - ok( range->end_infinity == true, "Using infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); + ok( range->end_infinity == TRUE, "Using infinity"); /* Cannot do a "-1" on temp, as it appears to be same value */ - ok( check_range(temp/1.1, range) == true, "12345678901234567890/1.1 - alert"); - ok( check_range(temp, range) == false, "12345678901234567890 - no alert"); - ok( check_range(temp*2, range) == false, "12345678901234567890*2 - no alert"); + ok( check_range(temp/1.1, range) == TRUE, "12345678901234567890/1.1 - alert"); + ok( check_range(temp, range) == FALSE, "12345678901234567890 - no alert"); + ok( check_range(temp*2, range) == FALSE, "12345678901234567890*2 - no alert"); free(range); range = parse_range_string("~:0"); ok( range != NULL, "'~:0' is valid range"); - ok( range->start_infinity == true, "Using negative infinity"); + ok( range->start_infinity == TRUE, "Using negative infinity"); ok( range->end == 0, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); ok( range->alert_on == OUTSIDE, "Will alert on outside of this range"); - ok( check_range(0.5, range) == true, "0.5 - alert"); - ok( check_range(-10, range) == false, "-10 - no alert"); - ok( check_range(0, range) == false, "0 - no alert"); + ok( check_range(0.5, range) == TRUE, "0.5 - alert"); + ok( check_range(-10, range) == FALSE, "-10 - no alert"); + ok( check_range(0, range) == FALSE, "0 - no alert"); free(range); - + range = parse_range_string("@0:657.8210567"); ok( range != 0, "@0:657.8210567' is a valid range"); ok( range->start == 0, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); ok( range->end == 657.8210567, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); ok( range->alert_on == INSIDE, "Will alert on inside of this range" ); - ok( check_range(32.88, range) == true, "32.88 - alert"); - ok( check_range(-2, range) == false, "-2 - no alert"); - ok( check_range(657.8210567, range) == true, "657.8210567 - alert"); - ok( check_range(0, range) == true, "0 - alert"); + ok( check_range(32.88, range) == TRUE, "32.88 - alert"); + ok( check_range(-2, range) == FALSE, "-2 - no alert"); + ok( check_range(657.8210567, range) == TRUE, "657.8210567 - alert"); + ok( check_range(0, range) == TRUE, "0 - alert"); free(range); range = parse_range_string("@1:1"); ok( range != NULL, "'@1:1' is a valid range"); ok( range->start == 1, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); ok( range->end == 1, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); + ok( range->end_infinity == FALSE, "Not using infinity"); ok( range->alert_on == INSIDE, "Will alert on inside of this range" ); - ok( check_range(0.5, range) == false, "0.5 - no alert"); - ok( check_range(1, range) == true, "1 - alert"); - ok( check_range(5.2, range) == false, "5.2 - no alert"); + ok( check_range(0.5, range) == FALSE, "0.5 - no alert"); + ok( check_range(1, range) == TRUE, "1 - alert"); + ok( check_range(5.2, range) == FALSE, "5.2 - no alert"); free(range); range = parse_range_string("1:1"); ok( range != NULL, "'1:1' is a valid range"); ok( range->start == 1, "Start correct"); - ok( range->start_infinity == false, "Not using negative infinity"); + ok( range->start_infinity == FALSE, "Not using negative infinity"); ok( range->end == 1, "End correct"); - ok( range->end_infinity == false, "Not using infinity"); - ok( check_range(0.5, range) == true, "0.5 - alert"); - ok( check_range(1, range) == false, "1 - no alert"); - ok( check_range(5.2, range) == true, "5.2 - alert"); + ok( range->end_infinity == FALSE, "Not using infinity"); + ok( check_range(0.5, range) == TRUE, "0.5 - alert"); + ok( check_range(1, range) == FALSE, "1 - no alert"); + ok( check_range(5.2, range) == TRUE, "5.2 - alert"); free(range); range = parse_range_string("2:1"); @@ -309,7 +309,7 @@ main (int argc, char **argv) /* This is the result of running ./test_utils */ temp_string = (char *) _np_state_generate_key(); - ok(!strcmp(temp_string, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got hash with exe and no parameters" ) || + ok(!strcmp(temp_string, "83d877b6cdfefb5d6f06101fd6fe76762f21792c"), "Got hash with exe and no parameters" ) || diag( "You are probably running in wrong directory. Must run as ./test_utils" ); @@ -319,7 +319,7 @@ main (int argc, char **argv) this_monitoring_plugin->argv[2] = "--and"; this_monitoring_plugin->argv[3] = "now"; temp_string = (char *) _np_state_generate_key(); - ok(!strcmp(temp_string, "bd72da9f78ff1419fad921ea5e43ce56508aef6c"), "Got based on expected argv" ); + ok(!strcmp(temp_string, "94b5e17bf5abf51cb15aff5f69b96f2f8dac5ecd"), "Got based on expected argv" ); unsetenv("MP_STATE_PATH"); temp_string = (char *) _np_state_calculate_location_prefix(); @@ -342,7 +342,7 @@ main (int argc, char **argv) np_enable_state(NULL, 51); temp_state_key = this_monitoring_plugin->state; ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); - ok( !strcmp(temp_state_key->name, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got generated filename" ); + ok( !strcmp(temp_state_key->name, "83d877b6cdfefb5d6f06101fd6fe76762f21792c"), "Got generated filename" ); np_enable_state("allowedchars_in_keyname", 77); @@ -377,13 +377,13 @@ main (int argc, char **argv) /* temp_fp = fopen("var/statefile", "r"); - if (temp_fp==NULL) + if (temp_fp==NULL) printf("Error opening. errno=%d\n", errno); printf("temp_fp=%s\n", temp_fp); - ok( _np_state_read_file(temp_fp) == true, "Can read state file" ); + ok( _np_state_read_file(temp_fp) == TRUE, "Can read state file" ); fclose(temp_fp); */ - + temp_state_key->_filename="var/statefile"; temp_state_data = np_state_read(); ok( this_monitoring_plugin->state->state_data!=NULL, "Got state data now" ) || diag("Are you running in right directory? Will get coredump next if not"); @@ -395,7 +395,7 @@ main (int argc, char **argv) ok( temp_state_data==NULL, "Older data version gives NULL" ); temp_state_key->data_version=54; - temp_state_key->_filename="var/nonexistent"; + temp_state_key->_filename="var/nonexistant"; temp_state_data = np_state_read(); ok( temp_state_data==NULL, "Missing file gives NULL" ); ok( this_monitoring_plugin->state->state_data==NULL, "No state information" ); @@ -446,20 +446,20 @@ main (int argc, char **argv) /* Check time is set to current_time */ ok(system("cmp var/generated var/statefile > /dev/null")!=0, "Generated file should be different this time"); ok(this_monitoring_plugin->state->state_data->time-current_time<=1, "Has time generated from current time"); - + /* Don't know how to automatically test this. Need to be able to redefine die and catch the error */ /* temp_state_key->_filename="/dev/do/not/expect/to/be/able/to/write"; np_state_write_string(0, "Bad file"); */ - + np_cleanup(); ok(this_monitoring_plugin==NULL, "Free'd this_monitoring_plugin"); - ok(mp_suid() == false, "Test aren't suid"); + ok(mp_suid() == FALSE, "Test aren't suid"); /* base states with random case */ char *states[] = { @@ -508,3 +508,4 @@ main (int argc, char **argv) return exit_status(); } + diff --git a/lib/utils_base.c b/lib/utils_base.c index f8592f4..08fa215 100644 --- a/lib/utils_base.c +++ b/lib/utils_base.c @@ -6,25 +6,25 @@ * Copyright (c) 2006 Monitoring Plugins Development Team * * Library of useful functions for plugins -* +* * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* +* * *****************************************************************************/ -#include "../plugins/common.h" +#include "common.h" #include #include "utils_base.h" #include @@ -37,10 +37,10 @@ monitoring_plugin *this_monitoring_plugin=NULL; -int timeout_state = STATE_CRITICAL; +unsigned int timeout_state = STATE_CRITICAL; unsigned int timeout_interval = DEFAULT_SOCKET_TIMEOUT; -bool _np_state_read_file(FILE *); +int _np_state_read_file(FILE *); void np_init( char *plugin_name, int argc, char **argv ) { if (this_monitoring_plugin==NULL) { @@ -105,12 +105,12 @@ die (int result, const char *fmt, ...) void set_range_start (range *this, double value) { this->start = value; - this->start_infinity = false; + this->start_infinity = FALSE; } void set_range_end (range *this, double value) { this->end = value; - this->end_infinity = false; + this->end_infinity = FALSE; } range @@ -124,9 +124,9 @@ range /* Set defaults */ temp_range->start = 0; - temp_range->start_infinity = false; + temp_range->start_infinity = FALSE; temp_range->end = 0; - temp_range->end_infinity = true; + temp_range->end_infinity = TRUE; temp_range->alert_on = OUTSIDE; temp_range->text = strdup(str); @@ -138,7 +138,7 @@ range end_str = index(str, ':'); if (end_str != NULL) { if (str[0] == '~') { - temp_range->start_infinity = true; + temp_range->start_infinity = TRUE; } else { start = strtod(str, NULL); /* Will stop at the ':' */ set_range_start(temp_range, start); @@ -152,8 +152,8 @@ range set_range_end(temp_range, end); } - if (temp_range->start_infinity == true || - temp_range->end_infinity == true || + if (temp_range->start_infinity == TRUE || + temp_range->end_infinity == TRUE || temp_range->start <= temp_range->end) { return temp_range; } @@ -223,30 +223,31 @@ void print_thresholds(const char *threshold_name, thresholds *my_threshold) { printf("\n"); } -/* Returns true if alert should be raised based on the range */ -bool check_range(double value, range *my_range) +/* Returns TRUE if alert should be raised based on the range */ +int +check_range(double value, range *my_range) { - bool no = false; - bool yes = true; + int no = FALSE; + int yes = TRUE; if (my_range->alert_on == INSIDE) { - no = true; - yes = false; + no = TRUE; + yes = FALSE; } - if (my_range->end_infinity == false && my_range->start_infinity == false) { + if (my_range->end_infinity == FALSE && my_range->start_infinity == FALSE) { if ((my_range->start <= value) && (value <= my_range->end)) { return no; } else { return yes; } - } else if (my_range->start_infinity == false && my_range->end_infinity == true) { + } else if (my_range->start_infinity == FALSE && my_range->end_infinity == TRUE) { if (my_range->start <= value) { return no; } else { return yes; } - } else if (my_range->start_infinity == true && my_range->end_infinity == false) { + } else if (my_range->start_infinity == TRUE && my_range->end_infinity == FALSE) { if (value <= my_range->end) { return no; } else { @@ -262,12 +263,12 @@ int get_status(double value, thresholds *my_thresholds) { if (my_thresholds->critical != NULL) { - if (check_range(value, my_thresholds->critical) == true) { + if (check_range(value, my_thresholds->critical) == TRUE) { return STATE_CRITICAL; } } if (my_thresholds->warning != NULL) { - if (check_range(value, my_thresholds->warning) == true) { + if (check_range(value, my_thresholds->warning) == TRUE) { return STATE_WARNING; } } @@ -318,20 +319,20 @@ char *np_extract_value(const char *varlist, const char *name, char sep) { while (1) { /* Strip any leading space */ - for (; isspace(varlist[0]); varlist++); + for (varlist; isspace(varlist[0]); varlist++); if (strncmp(name, varlist, strlen(name)) == 0) { varlist += strlen(name); /* strip trailing spaces */ - for (; isspace(varlist[0]); varlist++); + for (varlist; isspace(varlist[0]); varlist++); if (varlist[0] == '=') { /* We matched the key, go past the = sign */ varlist++; /* strip leading spaces */ - for (; isspace(varlist[0]); varlist++); + for (varlist; isspace(varlist[0]); varlist++); - if ((tmp = index(varlist, sep))) { + if (tmp = index(varlist, sep)) { /* Value is delimited by a comma */ if (tmp-varlist == 0) continue; value = (char *)calloc(1, tmp-varlist+1); @@ -347,7 +348,7 @@ char *np_extract_value(const char *varlist, const char *name, char sep) { break; } } - if ((tmp = index(varlist, sep))) { + if (tmp = index(varlist, sep)) { /* More keys, keep going... */ varlist = tmp + 1; } else { @@ -401,45 +402,26 @@ int mp_translate_state (char *state_text) { * parse of argv, so that uniqueness in parameters are reflected there. */ char *_np_state_generate_key() { + struct sha1_ctx ctx; int i; char **argv = this_monitoring_plugin->argv; + unsigned char result[20]; char keyname[41]; char *p=NULL; - unsigned char result[256]; - -#ifdef USE_OPENSSL - /* - * This code path is chosen if openssl is available (which should be the most common - * scenario). Alternatively, the gnulib implementation/ - * - */ - EVP_MD_CTX *ctx = EVP_MD_CTX_new(); - - EVP_DigestInit(ctx, EVP_sha256()); - + sha1_init_ctx(&ctx); + for(i=0; iargc; i++) { - EVP_DigestUpdate(ctx, argv[i], strlen(argv[i])); + sha1_process_bytes(argv[i], strlen(argv[i]), &ctx); } - EVP_DigestFinal(ctx, result, NULL); -#else - - struct sha256_ctx ctx; - - for(i=0; iargc; i++) { - sha256_process_bytes(argv[i], strlen(argv[i]), &ctx); - } - - sha256_finish_ctx(&ctx, result); -#endif // FOUNDOPENSSL - + sha1_finish_ctx(&ctx, &result); + for (i=0; i<20; ++i) { sprintf(&keyname[2*i], "%02x", result[i]); } - keyname[40]='\0'; - + p = strdup(keyname); if(p==NULL) { die(STATE_UNKNOWN, _("Cannot execute strdup: %s"), strerror(errno)); @@ -464,7 +446,7 @@ char* _np_state_calculate_location_prefix(){ /* Do not allow passing MP_STATE_PATH in setuid plugins * for security reasons */ - if (!mp_suid()) { + if (mp_suid() == FALSE) { env_dir = getenv("MP_STATE_PATH"); if(env_dir && env_dir[0] != '\0') return env_dir; @@ -540,7 +522,7 @@ void np_enable_state(char *keyname, int expected_data_version) { state_data *np_state_read() { state_data *this_state_data=NULL; FILE *statefile; - bool rc = false; + int rc = FALSE; if(this_monitoring_plugin==NULL) die(STATE_UNKNOWN, _("This requires np_init to be called")); @@ -562,7 +544,7 @@ state_data *np_state_read() { fclose(statefile); } - if(!rc) { + if(rc==FALSE) { _cleanup_state_data(); } @@ -572,8 +554,8 @@ state_data *np_state_read() { /* * Read the state file */ -bool _np_state_read_file(FILE *f) { - bool status = false; +int _np_state_read_file(FILE *f) { + int status=FALSE; size_t pos; char *line; int i; @@ -627,7 +609,7 @@ bool _np_state_read_file(FILE *f) { if(this_monitoring_plugin->state->state_data->data==NULL) die(STATE_UNKNOWN, _("Cannot execute strdup: %s"), strerror(errno)); expected=STATE_DATA_END; - status=true; + status=TRUE; break; case STATE_DATA_END: ; @@ -639,10 +621,10 @@ bool _np_state_read_file(FILE *f) { } /* - * If time=NULL, use current time. Create state file, with state format - * version, default text. Writes version, time, and data. Avoid locking - * problems - use mv to write and then swap. Possible loss of state data if - * two things writing to same key at same time. + * If time=NULL, use current time. Create state file, with state format + * version, default text. Writes version, time, and data. Avoid locking + * problems - use mv to write and then swap. Possible loss of state data if + * two things writing to same key at same time. * Will die with UNKNOWN if errors */ void np_state_write_string(time_t data_time, char *data_string) { @@ -657,7 +639,7 @@ void np_state_write_string(time_t data_time, char *data_string) { time(¤t_time); else current_time=data_time; - + /* If file doesn't currently exist, create directories */ if(access(this_monitoring_plugin->state->_filename,F_OK)!=0) { result = asprintf(&directories, "%s", this_monitoring_plugin->state->_filename); @@ -696,15 +678,15 @@ void np_state_write_string(time_t data_time, char *data_string) { np_free(temp_file); die(STATE_UNKNOWN, _("Unable to open temporary state file")); } - + fprintf(fp,"# NP State file\n"); fprintf(fp,"%d\n",NP_STATE_FORMAT_VERSION); fprintf(fp,"%d\n",this_monitoring_plugin->state->data_version); fprintf(fp,"%lu\n",current_time); fprintf(fp,"%s\n",data_string); - + fchmod(fd, S_IRUSR | S_IWUSR | S_IRGRP); - + fflush(fp); result=fclose(fp); diff --git a/lib/utils_base.h b/lib/utils_base.h index 9d4dffe..9482f23 100644 --- a/lib/utils_base.h +++ b/lib/utils_base.h @@ -2,11 +2,9 @@ #define _UTILS_BASE_ /* Header file for Monitoring Plugins utils_base.c */ -#ifndef USE_OPENSSL -# include "sha256.h" -#endif +#include "sha1.h" -/* This file holds header information for thresholds - use this in preference to +/* This file holds header information for thresholds - use this in preference to individual plugin logic */ /* This has not been merged with utils.h because of problems with @@ -21,7 +19,7 @@ typedef struct range_struct { double start; - bool start_infinity; + int start_infinity; /* FALSE (default) or TRUE */ double end; int end_infinity; int alert_on; /* OUTSIDE (default) or INSIDE */ @@ -61,11 +59,11 @@ range *parse_range_string (char *); int _set_thresholds(thresholds **, char *, char *); void set_thresholds(thresholds **, char *, char *); void print_thresholds(const char *, thresholds *); -bool check_range(double, range *); +int check_range(double, range *); int get_status(double, thresholds *); /* Handle timeouts */ -extern int timeout_state; +extern unsigned int timeout_state; extern unsigned int timeout_interval; /* All possible characters in a threshold range */ @@ -79,7 +77,7 @@ void die (int, const char *, ...) __attribute__((noreturn,format(printf, 2, 3))) #define NP_RANGE_UNPARSEABLE 1 #define NP_WARN_WITHIN_CRIT 2 -/* a simple check to see if we're running as root. +/* a simple check to see if we're running as root. * returns zero on failure, nonzero on success */ int np_check_if_root(void); diff --git a/lib/utils_cmd.c b/lib/utils_cmd.c index 7957ec1..795840d 100644 --- a/lib/utils_cmd.c +++ b/lib/utils_cmd.c @@ -18,18 +18,18 @@ * Care has been taken to make sure the functions are async-safe. The one * function which isn't is cmd_init() which it doesn't make sense to * call twice anyway, so the api as a whole should be considered async-safe. -* -* +* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . * @@ -42,20 +42,7 @@ #include "common.h" #include "utils.h" #include "utils_cmd.h" -/* This variable must be global, since there's no way the caller - * can forcibly slay a dead or ungainly running program otherwise. - * Multithreading apps and plugins can initialize it (via CMD_INIT) - * in an async safe manner PRIOR to calling cmd_run() or cmd_run_array() - * for the first time. - * - * The check for initialized values is atomic and can - * occur in any number of threads simultaneously. */ -static pid_t *_cmd_pids = NULL; - #include "utils_base.h" - -#include "./maxfd.h" - #include #ifdef HAVE_SYS_WAIT_H @@ -99,7 +86,13 @@ extern void die (int, const char *, ...) void cmd_init (void) { - long maxfd = mp_open_max(); +#ifndef maxfd + if (!maxfd && (maxfd = sysconf (_SC_OPEN_MAX)) < 0) { + /* possibly log or emit a warning here, since there's no + * guarantee that our guess at maxfd will be adequate */ + maxfd = DEFAULT_MAXFD; + } +#endif /* if maxfd is unnaturally high, we force it to a lower value * ( e.g. on SunOS, when ulimit is set to unlimited: 2147483647 this would cause @@ -125,6 +118,10 @@ _cmd_open (char *const *argv, int *pfd, int *pfderr) int i = 0; + /* if no command was passed, return with no error */ + if (argv == NULL) + return -1; + if (!_cmd_pids) CMD_INIT; @@ -155,7 +152,6 @@ _cmd_open (char *const *argv, int *pfd, int *pfderr) /* close all descriptors in _cmd_pids[] * This is executed in a separate address space (pure child), * so we don't have to worry about async safety */ - long maxfd = mp_open_max(); for (i = 0; i < maxfd; i++) if (_cmd_pids[i] > 0) close (i); @@ -165,7 +161,7 @@ _cmd_open (char *const *argv, int *pfd, int *pfderr) } /* parent picks up execution here */ - /* close children descriptors in our address space */ + /* close childs descriptors in our address space */ close (pfd[1]); close (pfderr[1]); @@ -182,7 +178,6 @@ _cmd_close (int fd) pid_t pid; /* make sure the provided fd was opened */ - long maxfd = mp_open_max(); if (fd < 0 || fd > maxfd || !_cmd_pids || (pid = _cmd_pids[fd]) == 0) return -1; @@ -274,6 +269,7 @@ _cmd_fetch_output (int fd, output * op, int flags) int cmd_run (const char *cmdstring, output * out, output * err, int flags) { + int fd, pfd_out[2], pfd_err[2]; int i = 0, argc; size_t cmdlen; char **argv = NULL; @@ -377,10 +373,10 @@ cmd_file_read ( char *filename, output *out, int flags) if ((fd = open(filename, O_RDONLY)) == -1) { die( STATE_UNKNOWN, _("Error opening %s: %s"), filename, strerror(errno) ); } - + if(out) out->lines = _cmd_fetch_output (fd, out, flags); - + if (close(fd) == -1) die( STATE_UNKNOWN, _("Error closing %s: %s"), filename, strerror(errno) ); @@ -390,12 +386,12 @@ cmd_file_read ( char *filename, output *out, int flags) void timeout_alarm_handler (int signo) { + size_t i; if (signo == SIGALRM) { printf (_("%s - Plugin timed out after %d seconds\n"), state_text(timeout_state), timeout_interval); - long maxfd = mp_open_max(); - if(_cmd_pids) for(long int i = 0; i < maxfd; i++) { + if(_cmd_pids) for(i = 0; i < maxfd; i++) { if(_cmd_pids[i] != 0) kill(_cmd_pids[i], SIGKILL); } diff --git a/lib/utils_cmd.h b/lib/utils_cmd.h index 061f5d4..6f3aeb8 100644 --- a/lib/utils_cmd.h +++ b/lib/utils_cmd.h @@ -1,10 +1,10 @@ #ifndef _UTILS_CMD_ #define _UTILS_CMD_ -/* +/* * Header file for Monitoring Plugins utils_cmd.c - * - * + * + * */ /** types **/ @@ -32,8 +32,17 @@ void cmd_init (void); #define CMD_NO_ARRAYS 0x01 /* don't populate arrays at all */ #define CMD_NO_ASSOC 0x02 /* output.line won't point to buf */ +/* This variable must be global, since there's no way the caller + * can forcibly slay a dead or ungainly running program otherwise. + * Multithreading apps and plugins can initialize it (via CMD_INIT) + * in an async safe manner PRIOR to calling cmd_run() or cmd_run_array() + * for the first time. + * + * The check for initialized values is atomic and can + * occur in any number of threads simultaneously. */ +static pid_t *_cmd_pids = NULL; -void timeout_alarm_handler (int); +RETSIGTYPE timeout_alarm_handler (int); #endif /* _UTILS_CMD_ */ diff --git a/lib/utils_disk.c b/lib/utils_disk.c index 483be06..4f16068 100644 --- a/lib/utils_disk.c +++ b/lib/utils_disk.c @@ -1,35 +1,34 @@ /***************************************************************************** -* +* * Library for check_disk -* +* * License: GPL * Copyright (c) 1999-2007 Monitoring Plugins Development Team -* +* * Description: -* +* * This file contains utilities for check_disk. These are tested by libtap -* -* +* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" #include "utils_disk.h" #include "gl/fsusage.h" -#include void np_add_name (struct name_list **list, const char *name) @@ -41,42 +40,6 @@ np_add_name (struct name_list **list, const char *name) *list = new_entry; } -/* @brief Initialises a new regex at the begin of list via regcomp(3) - * - * @details if the regex fails to compile the error code of regcomp(3) is returned - * and list is not modified, otherwise list is modified to point to the new - * element - * @param list Pointer to a linked list of regex_list elements - * @param regex the string containing the regex which should be inserted into the list - * @param clags the cflags parameter for regcomp(3) - */ -int -np_add_regex (struct regex_list **list, const char *regex, int cflags) -{ - struct regex_list *new_entry = (struct regex_list *) malloc (sizeof *new_entry); - - if (new_entry == NULL) { - die(STATE_UNKNOWN, _("Cannot allocate memory: %s"), - strerror(errno)); - } - - int regcomp_result = regcomp(&new_entry->regex, regex, cflags); - - if (!regcomp_result) { - // regcomp succeeded - new_entry->next = *list; - *list = new_entry; - - return 0; - } else { - // regcomp failed - free(new_entry); - - return regcomp_result; - } - -} - /* Initialises a new parameter at the end of list */ struct parameter_list * np_add_parameter(struct parameter_list **list, const char *name) @@ -84,10 +47,9 @@ np_add_parameter(struct parameter_list **list, const char *name) struct parameter_list *current = *list; struct parameter_list *new_path; new_path = (struct parameter_list *) malloc (sizeof *new_path); - new_path->name = (char *) malloc(strlen(name) + 1); + new_path->name = (char *) name; new_path->best_match = NULL; new_path->name_next = NULL; - new_path->name_prev = NULL; new_path->freespace_bytes = NULL; new_path->freespace_units = NULL; new_path->freespace_percent = NULL; @@ -98,7 +60,7 @@ np_add_parameter(struct parameter_list **list, const char *name) new_path->freeinodes_percent = NULL; new_path->group = NULL; new_path->dfree_pct = -1; - new_path->dused_pct = -1; + new_path->dused_pct = -1; new_path->total = 0; new_path->available = 0; new_path->available_to_root = 0; @@ -113,17 +75,13 @@ np_add_parameter(struct parameter_list **list, const char *name) new_path->dused_inodes_percent = 0; new_path->dfree_inodes_percent = 0; - strcpy(new_path->name, name); - if (current == NULL) { *list = new_path; - new_path->name_prev = NULL; } else { while (current->name_next) { current = current->name_next; } current->name_next = new_path; - new_path->name_prev = current; } return new_path; } @@ -132,9 +90,6 @@ np_add_parameter(struct parameter_list **list, const char *name) struct parameter_list * np_del_parameter(struct parameter_list *item, struct parameter_list *prev) { - if (item == NULL) { - return NULL; - } struct parameter_list *next; if (item->name_next) @@ -142,17 +97,10 @@ np_del_parameter(struct parameter_list *item, struct parameter_list *prev) else next = NULL; - if (next) - next->name_prev = prev; - + free(item); if (prev) prev->name_next = next; - if (item->name) { - free(item->name); - } - free(item); - return next; } @@ -170,7 +118,9 @@ np_find_parameter(struct parameter_list *list, const char *name) return NULL; } -void np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, bool exact) { +void +np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, int exact) +{ struct parameter_list *d; for (d = desired; d; d= d->name_next) { if (! d->best_match) { @@ -182,25 +132,24 @@ void np_set_best_match(struct parameter_list *desired, struct mount_entry *mount /* set best match if path name exactly matches a mounted device name */ for (me = mount_list; me; me = me->me_next) { - if (strcmp(me->me_devname, d->name)==0) { - if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) >= 0) { - best_match = me; - } - } + if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) < 0) + continue; /* skip if permissions do not suffice for accessing device */ + if (strcmp(me->me_devname, d->name)==0) + best_match = me; } /* set best match by directory name if no match was found by devname */ if (! best_match) { for (me = mount_list; me; me = me->me_next) { + if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) < 0) + continue; /* skip if permissions do not suffice for accessing device */ size_t len = strlen (me->me_mountdir); - if ((!exact && (best_match_len <= len && len <= name_len && + if ((exact == FALSE && (best_match_len <= len && len <= name_len && (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0))) - || (exact && strcmp(me->me_mountdir, d->name)==0)) + || (exact == TRUE && strcmp(me->me_mountdir, d->name)==0)) { - if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) >= 0) { - best_match = me; - best_match_len = len; - } + best_match = me; + best_match_len = len; } } } @@ -214,57 +163,43 @@ void np_set_best_match(struct parameter_list *desired, struct mount_entry *mount } } -/* Returns true if name is in list */ -bool np_find_name (struct name_list *list, const char *name) { +/* Returns TRUE if name is in list */ +int +np_find_name (struct name_list *list, const char *name) +{ const struct name_list *n; if (list == NULL || name == NULL) { - return false; + return FALSE; } for (n = list; n; n = n->next) { if (!strcmp(name, n->name)) { - return true; + return TRUE; } } - return false; + return FALSE; } -/* Returns true if name is in list */ -bool np_find_regmatch (struct regex_list *list, const char *name) { - int len; - regmatch_t m; - - if (name == NULL) { - return false; - } - - len = strlen(name); - - for (; list; list = list->next) { - /* Emulate a full match as if surrounded with ^( )$ - by checking whether the match spans the whole name */ - if (!regexec(&list->regex, name, 1, &m, 0) && m.rm_so == 0 && m.rm_eo == len) { - return true; - } - } - - return false; -} - -bool np_seen_name(struct name_list *list, const char *name) { +int +np_seen_name(struct name_list *list, const char *name) +{ const struct name_list *s; for (s = list; s; s=s->next) { if (!strcmp(s->name, name)) { - return true; + return TRUE; } } - return false; + return FALSE; } -bool np_regex_match_mount_entry (struct mount_entry* me, regex_t* re) { +int +np_regex_match_mount_entry (struct mount_entry* me, regex_t* re) +{ if (regexec(re, me->me_devname, (size_t) 0, NULL, 0) == 0 || regexec(re, me->me_mountdir, (size_t) 0, NULL, 0) == 0 ) { - return true; + return TRUE; + } else { + return FALSE; } - return false; } + diff --git a/lib/utils_disk.h b/lib/utils_disk.h index 5b2caf2..bf52e4c 100644 --- a/lib/utils_disk.h +++ b/lib/utils_disk.h @@ -10,12 +10,6 @@ struct name_list struct name_list *next; }; -struct regex_list -{ - regex_t regex; - struct regex_list *next; -}; - struct parameter_list { char *name; @@ -30,7 +24,6 @@ struct parameter_list char *group; struct mount_entry *best_match; struct parameter_list *name_next; - struct parameter_list *name_prev; uintmax_t total, available, available_to_root, used, inodes_free, inodes_free_to_root, inodes_used, inodes_total; double dfree_pct, dused_pct; @@ -39,14 +32,12 @@ struct parameter_list }; void np_add_name (struct name_list **list, const char *name); -bool np_find_name (struct name_list *list, const char *name); -bool np_seen_name (struct name_list *list, const char *name); -int np_add_regex (struct regex_list **list, const char *regex, int cflags); -bool np_find_regmatch (struct regex_list *list, const char *name); +int np_find_name (struct name_list *list, const char *name); +int np_seen_name (struct name_list *list, const char *name); struct parameter_list *np_add_parameter(struct parameter_list **list, const char *name); struct parameter_list *np_find_parameter(struct parameter_list *list, const char *name); struct parameter_list *np_del_parameter(struct parameter_list *item, struct parameter_list *prev); - + int search_parameter_list (struct parameter_list *list, const char *name); -void np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, bool exact); -bool np_regex_match_mount_entry (struct mount_entry* me, regex_t* re); +void np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, int exact); +int np_regex_match_mount_entry (struct mount_entry* me, regex_t* re); diff --git a/lib/utils_tcp.c b/lib/utils_tcp.c index 23ee4a9..b37c446 100644 --- a/lib/utils_tcp.c +++ b/lib/utils_tcp.c @@ -1,29 +1,29 @@ /***************************************************************************** -* +* * Library for check_tcp -* +* * License: GPL * Copyright (c) 1999-2013 Monitoring Plugins Development Team -* +* * Description: -* +* * This file contains utilities for check_tcp. These are tested by libtap -* -* +* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ #include "common.h" diff --git a/m4/np_mysqlclient.m4 b/m4/np_mysqlclient.m4 index 9fe38ac..5099a02 100644 --- a/m4/np_mysqlclient.m4 +++ b/m4/np_mysqlclient.m4 @@ -13,7 +13,7 @@ dnl np_mysql_libs = flags for libs, from mysql_config --libs dnl np_mysql_cflags = flags for cflags, from mysql_config --cflags dnl Also sets in config.h: dnl HAVE_MYSQLCLIENT -dnl Compile your code with: +dnl Copile your code with: dnl $(CC) $(np_mysql_include) code.c $(np_mysql_libs) AC_DEFUN([np_mysqlclient], @@ -81,7 +81,7 @@ AC_DEFUN([np_check_lib_mariadbclient], ], [with_mysql=no], [$np_mysql_libs]) ]) -dnl Will take $1, find last occurrence of -LDIR and add DIR to LD_RUN_PATH +dnl Will take $1, find last occurrance of -LDIR and add DIR to LD_RUN_PATH AC_DEFUN([np_add_to_runpath], [ dnl Need [[ ]] so autoconf gives us just one set diff --git a/m4/uriparser.m4 b/m4/uriparser.m4 index 5113638..dbb8a55 100644 --- a/m4/uriparser.m4 +++ b/m4/uriparser.m4 @@ -1,4 +1,4 @@ -# (this check is roughly based on and inspired libcurl.m4) +# (this check is rougly based on and inspired libcurl.m4) # URIPARSER_CHECK ([DEFAULT-ACTION], [MINIMUM-VERSION], # [ACTION-IF-YES], [ACTION-IF-NO]) # Checks for uriparser library. DEFAULT-ACTION is the string yes or no to diff --git a/pkg/solaris/pkginfo b/pkg/solaris/pkginfo index ef314e8..2dc1f08 100644 --- a/pkg/solaris/pkginfo +++ b/pkg/solaris/pkginfo @@ -2,11 +2,11 @@ PKG="NGOSplugin" NAME="monitoring-plugins" DESC="Network Monitoring Plugins for Nagios and compatible" ARCH="unknown" -VERSION="2.4.0,REV=2024.07.23.19.37" +VERSION="2.3.3,REV=2023.02.01.13.46" CATEGORY="application" VENDOR="Monitoring Plugins Development Team" EMAIL="devel@monitoring-plugins.org" -PSTAMP="nag20240723193729" +PSTAMP="nag20230201134644" BASEDIR="/" CLASSES="none" diff --git a/plugins-root/Makefile.am b/plugins-root/Makefile.am index a80229e..7cd2675 100644 --- a/plugins-root/Makefile.am +++ b/plugins-root/Makefile.am @@ -80,8 +80,8 @@ install-exec-local: $(noinst_PROGRAMS) ############################################################################## # the actual targets -check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS) $(LIB_CRYPTO) -check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS) $(LIB_CRYPTO) +check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS) +check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS) # -m64 needed at compiler and linker phase pst3_CFLAGS = @PST3CFLAGS@ diff --git a/plugins-root/Makefile.in b/plugins-root/Makefile.in index c5ecbb2..6a9c5f1 100644 --- a/plugins-root/Makefile.in +++ b/plugins-root/Makefile.in @@ -72,7 +72,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -95,58 +94,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -154,57 +145,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -501,6 +485,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t $(srcdir) +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -509,7 +494,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -520,11 +504,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -560,476 +542,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -1038,7 +897,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -1046,11 +904,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -1060,17 +916,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -1080,22 +932,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -1115,7 +962,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -1125,37 +971,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -1166,24 +1005,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1191,21 +1024,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1219,23 +1048,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1246,29 +1068,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1280,9 +1097,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1298,16 +1112,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1317,7 +1127,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1328,17 +1137,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1352,7 +1157,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1377,10 +1181,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1392,8 +1196,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1412,24 +1214,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1438,6 +1231,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1445,23 +1239,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1473,7 +1262,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1481,12 +1269,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1498,7 +1283,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1556,63 +1340,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1623,61 +1379,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1695,9 +1435,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1707,11 +1445,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1719,30 +1452,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1750,24 +1474,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1775,42 +1493,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -1818,10 +1521,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -1840,21 +1541,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -1867,9 +1561,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -1901,10 +1592,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -1919,9 +1608,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = $(datadir)/locale -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -1969,8 +1657,8 @@ INSTALL_SUID = \ ############################################################################## # the actual targets -check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS) $(LIB_CRYPTO) -check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS) $(LIB_CRYPTO) +check_dhcp_LDADD = @LTLIBINTL@ $(NETLIBS) +check_icmp_LDADD = @LTLIBINTL@ $(NETLIBS) $(SOCKETLIBS) # -m64 needed at compiler and linker phase pst3_CFLAGS = @PST3CFLAGS@ diff --git a/plugins-root/check_dhcp.c b/plugins-root/check_dhcp.c index 4b8f5e2..ad67323 100644 --- a/plugins-root/check_dhcp.c +++ b/plugins-root/check_dhcp.c @@ -1,40 +1,40 @@ /***************************************************************************** - * - * Monitoring check_dhcp plugin - * - * License: GPL - * Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org) - * Copyright (c) 2001-2007 Monitoring Plugins Development Team - * - * Description: - * - * This file contains the check_dhcp plugin - * - * This plugin tests the availability of DHCP servers on a network. - * - * Unicast mode was originally implemented by Heiti of Boras Kommun with - * general improvements as well as usability fixes and "forward"-porting by - * Andreas Ericsson of OP5 AB. - * - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * - *****************************************************************************/ +* +* Monitoring check_dhcp plugin +* +* License: GPL +* Copyright (c) 2001-2004 Ethan Galstad (nagios@nagios.org) +* Copyright (c) 2001-2007 Monitoring Plugins Development Team +* +* Description: +* +* This file contains the check_dhcp plugin +* +* This plugin tests the availability of DHCP servers on a network. +* +* Unicast mode was originally implemented by Heiti of Boras Kommun with +* general improvements as well as usability fixes and "forward"-porting by +* Andreas Ericsson of OP5 AB. +* +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* +*****************************************************************************/ const char *progname = "check_dhcp"; -const char *copyright = "2001-2023"; +const char *copyright = "2001-2007"; const char *email = "devel@monitoring-plugins.org"; #include "common.h" @@ -57,10 +57,9 @@ const char *email = "devel@monitoring-plugins.org"; #include #include #include - #if HAVE_SYS_SOCKIO_H #include -#endif // HAVE_SYS_SOCKIO_H +#endif #if defined( __linux__ ) @@ -99,6 +98,10 @@ static struct strbuf dat = {AREA_SZ, 0, (char *)dat_area}; #define GOT_INTR 4 #define GOT_ERR 128 +#define u_int8_t uint8_t +#define u_int16_t uint16_t +#define u_int32_t uint32_t + static int get_msg(int); static int check_ctrl(int); static int put_ctrl(int, int, int); @@ -107,7 +110,7 @@ static int dl_open(const char *, int, int *); static int dl_bind(int, int, u_char *); long mac_addr_dlpi( const char *, int, u_char *); -#endif // __sun__ || __solaris__ || __hpux +#endif @@ -116,6 +119,9 @@ long mac_addr_dlpi( const char *, int, u_char *); #define OK 0 #define ERROR -1 +#define FALSE 0 +#define TRUE 1 + /**** DHCP definitions ****/ @@ -126,40 +132,39 @@ long mac_addr_dlpi( const char *, int, u_char *); typedef struct dhcp_packet_struct{ - uint8_t op; /* packet type */ - uint8_t htype; /* type of hardware address for this machine (Ethernet, etc) */ - uint8_t hlen; /* length of hardware address (of this machine) */ - uint8_t hops; /* hops */ - uint32_t xid; /* random transaction id number - chosen by this machine */ - uint16_t secs; /* seconds used in timing */ - uint16_t flags; /* flags */ - struct in_addr ciaddr; /* IP address of this machine (if we already have one) */ - struct in_addr yiaddr; /* IP address of this machine (offered by the DHCP server) */ - struct in_addr siaddr; /* IP address of next server */ - struct in_addr giaddr; /* IP address of DHCP relay */ - unsigned char chaddr [MAX_DHCP_CHADDR_LENGTH]; /* hardware address of this machine */ - char sname [MAX_DHCP_SNAME_LENGTH]; /* name of DHCP server */ - char file [MAX_DHCP_FILE_LENGTH]; /* boot file name (used for diskless booting?) */ + u_int8_t op; /* packet type */ + u_int8_t htype; /* type of hardware address for this machine (Ethernet, etc) */ + u_int8_t hlen; /* length of hardware address (of this machine) */ + u_int8_t hops; /* hops */ + u_int32_t xid; /* random transaction id number - chosen by this machine */ + u_int16_t secs; /* seconds used in timing */ + u_int16_t flags; /* flags */ + struct in_addr ciaddr; /* IP address of this machine (if we already have one) */ + struct in_addr yiaddr; /* IP address of this machine (offered by the DHCP server) */ + struct in_addr siaddr; /* IP address of next server */ + struct in_addr giaddr; /* IP address of DHCP relay */ + unsigned char chaddr [MAX_DHCP_CHADDR_LENGTH]; /* hardware address of this machine */ + char sname [MAX_DHCP_SNAME_LENGTH]; /* name of DHCP server */ + char file [MAX_DHCP_FILE_LENGTH]; /* boot file name (used for diskless booting?) */ char options[MAX_DHCP_OPTIONS_LENGTH]; /* options */ -}dhcp_packet; + }dhcp_packet; typedef struct dhcp_offer_struct{ struct in_addr server_address; /* address of DHCP server that sent this offer */ struct in_addr offered_address; /* the IP address that was offered to us */ - uint32_t lease_time; /* lease time in seconds */ - uint32_t renewal_time; /* renewal time in seconds */ - uint32_t rebinding_time; /* rebinding time in seconds */ - bool desired; /* is this offer desired (necessary in exclusive mode) */ + u_int32_t lease_time; /* lease time in seconds */ + u_int32_t renewal_time; /* renewal time in seconds */ + u_int32_t rebinding_time; /* rebinding time in seconds */ struct dhcp_offer_struct *next; -}dhcp_offer; + }dhcp_offer; typedef struct requested_server_struct{ struct in_addr server_address; - bool answered; + int answered; struct requested_server_struct *next; -}requested_server; + }requested_server; #define BOOTREQUEST 1 @@ -193,8 +198,7 @@ typedef struct requested_server_struct{ #define ETHERNET_HARDWARE_ADDRESS 1 /* used in htype field of dhcp packet */ #define ETHERNET_HARDWARE_ADDRESS_LENGTH 6 /* length of Ethernet hardware addresses */ -bool unicast = false; /* unicast mode: mimic a DHCP relay */ -bool exclusive = false; /* exclusive mode aka "rogue DHCP server detection" */ +u_int8_t unicast = 0; /* unicast mode: mimic a DHCP relay */ struct in_addr my_ip; /* our address (required for relay) */ struct in_addr dhcp_ip; /* server to query (if in unicast mode) */ unsigned char client_hardware_address[MAX_DHCP_CHADDR_LENGTH]=""; @@ -202,11 +206,11 @@ unsigned char *user_specified_mac=NULL; char network_interface_name[IFNAMSIZ]="eth0"; -uint32_t packet_xid=0; +u_int32_t packet_xid=0; -uint32_t dhcp_lease_time=0; -uint32_t dhcp_renewal_time=0; -uint32_t dhcp_rebinding_time=0; +u_int32_t dhcp_lease_time=0; +u_int32_t dhcp_renewal_time=0; +u_int32_t dhcp_rebinding_time=0; int dhcpoffer_timeout=2; @@ -217,15 +221,15 @@ int valid_responses=0; /* number of valid DHCPOFFERs we received */ int requested_servers=0; int requested_responses=0; -bool request_specific_address=false; -bool received_requested_address=false; +int request_specific_address=FALSE; +int received_requested_address=FALSE; int verbose=0; struct in_addr requested_address; int process_arguments(int, char **); int call_getopt(int, char **); -int validate_arguments(int); +int validate_arguments(int, int); void print_usage(void); void print_help(void); @@ -264,7 +268,7 @@ int main(int argc, char **argv){ if(process_arguments(argc,argv)!=OK){ usage4 (_("Could not parse arguments")); - } + } /* create socket for DHCP communications */ dhcp_socket=create_dhcp_socket(); @@ -295,7 +299,7 @@ int main(int argc, char **argv){ free_requested_server_list(); return result; -} + } @@ -310,83 +314,83 @@ int get_hardware_address(int sock,char *interface_name){ /* try and grab hardware address of requested interface */ if(ioctl(sock,SIOCGIFHWADDR,&ifr)<0){ - printf(_("Error: Could not get hardware address of interface '%s'\n"),interface_name); + printf(_("Error: Could not get hardware address of interface '%s'\n"),interface_name); exit(STATE_UNKNOWN); - } + } memcpy(&client_hardware_address[0],&ifr.ifr_hwaddr.sa_data,6); #elif defined(__bsd__) - /* King 2004 see ACKNOWLEDGEMENTS */ + /* King 2004 see ACKNOWLEDGEMENTS */ - size_t len; - int mib[6]; - char *buf; - unsigned char *ptr; - struct if_msghdr *ifm; - struct sockaddr_dl *sdl; + size_t len; + int mib[6]; + char *buf; + unsigned char *ptr; + struct if_msghdr *ifm; + struct sockaddr_dl *sdl; - mib[0] = CTL_NET; - mib[1] = AF_ROUTE; - mib[2] = 0; - mib[3] = AF_LINK; - mib[4] = NET_RT_IFLIST; + mib[0] = CTL_NET; + mib[1] = AF_ROUTE; + mib[2] = 0; + mib[3] = AF_LINK; + mib[4] = NET_RT_IFLIST; - if((mib[5] = if_nametoindex(interface_name)) == 0){ - printf(_("Error: if_nametoindex error - %s.\n"), strerror(errno)); - exit(STATE_UNKNOWN); - } + if((mib[5] = if_nametoindex(interface_name)) == 0){ + printf(_("Error: if_nametoindex error - %s.\n"), strerror(errno)); + exit(STATE_UNKNOWN); + } - if(sysctl(mib, 6, NULL, &len, NULL, 0) < 0){ - printf(_("Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n"), interface_name, strerror(errno)); - exit(STATE_UNKNOWN); - } + if(sysctl(mib, 6, NULL, &len, NULL, 0) < 0){ + printf(_("Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n"), interface_name, strerror(errno)); + exit(STATE_UNKNOWN); + } - if((buf = malloc(len)) == NULL){ - printf(_("Error: Couldn't get hardware address from interface %s. malloc error - %s.\n"), interface_name, strerror(errno)); - exit(4); - } + if((buf = malloc(len)) == NULL){ + printf(_("Error: Couldn't get hardware address from interface %s. malloc error - %s.\n"), interface_name, strerror(errno)); + exit(4); + } - if(sysctl(mib, 6, buf, &len, NULL, 0) < 0){ - printf(_("Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n"), interface_name, strerror(errno)); - exit(STATE_UNKNOWN); - } + if(sysctl(mib, 6, buf, &len, NULL, 0) < 0){ + printf(_("Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n"), interface_name, strerror(errno)); + exit(STATE_UNKNOWN); + } - ifm = (struct if_msghdr *)buf; - sdl = (struct sockaddr_dl *)(ifm + 1); - ptr = (unsigned char *)LLADDR(sdl); - memcpy(&client_hardware_address[0], ptr, 6) ; - /* King 2004 */ + ifm = (struct if_msghdr *)buf; + sdl = (struct sockaddr_dl *)(ifm + 1); + ptr = (unsigned char *)LLADDR(sdl); + memcpy(&client_hardware_address[0], ptr, 6) ; + /* King 2004 */ #elif defined(__sun__) || defined(__solaris__) - /* Kompf 2000-2003 see ACKNOWLEDGEMENTS */ + /* Kompf 2000-2003 see ACKNOWLEDGEMENTS */ long stat; char dev[20] = "/dev/"; char *p; int unit; - /* get last number from interfacename, eg lnc0, e1000g0*/ - int i; - p = interface_name + strlen(interface_name) -1; + /* get last number from interfacename, eg lnc0, e1000g0*/ + int i; + p = interface_name + strlen(interface_name) -1; for(i = strlen(interface_name) -1; i > 0; p--) { if(isalpha(*p)) - break; - } - p++; + break; + } + p++; if( p != interface_name ){ unit = atoi(p) ; strncat(dev, interface_name, 6) ; - } + } else{ printf(_("Error: can't find unit number in interface_name (%s) - expecting TypeNumber eg lnc0.\n"), interface_name); exit(STATE_UNKNOWN); - } + } stat = mac_addr_dlpi(dev, unit, client_hardware_address); if(stat != 0){ printf(_("Error: can't read MAC address from DLPI streams interface for device %s unit %d.\n"), dev, unit); exit(STATE_UNKNOWN); - } + } #elif defined(__hpux__) @@ -398,8 +402,8 @@ int get_hardware_address(int sock,char *interface_name){ if(stat != 0){ printf(_("Error: can't read MAC address from DLPI streams interface for device %s unit %d.\n"), dev, unit); exit(STATE_UNKNOWN); - } - /* Kompf 2000-2003 */ + } + /* Kompf 2000-2003 */ #else printf(_("Error: can't get MAC address for this architecture. Use the --mac option.\n")); @@ -410,7 +414,7 @@ int get_hardware_address(int sock,char *interface_name){ print_hardware_address(client_hardware_address); return OK; -} + } /* determines IP address of the client interface */ int get_ip_address(int sock,char *interface_name){ @@ -422,9 +426,9 @@ int get_ip_address(int sock,char *interface_name){ if(ioctl(sock,SIOCGIFADDR,&ifr)<0){ printf(_("Error: Cannot determine IP address of interface %s\n"), - interface_name); + interface_name); exit(STATE_UNKNOWN); - } + } my_ip=((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; @@ -437,13 +441,13 @@ int get_ip_address(int sock,char *interface_name){ printf(_("Pretending to be relay client %s\n"),inet_ntoa(my_ip)); return OK; -} + } /* sends a DHCPDISCOVER broadcast message in an attempt to find DHCP servers */ int send_dhcp_discover(int sock){ dhcp_packet discover_packet; struct sockaddr_in sockaddr_broadcast; - unsigned short opts; + unsigned short opts; /* clear the packet data structure */ @@ -466,6 +470,10 @@ int send_dhcp_discover(int sock){ packet_xid=random(); discover_packet.xid=htonl(packet_xid); + /**** WHAT THE HECK IS UP WITH THIS?!? IF I DON'T MAKE THIS CALL, ONLY ONE SERVER RESPONSE IS PROCESSED!!!! ****/ + /* downright bizzarre... */ + ntohl(discover_packet.xid); + /*discover_packet.secs=htons(65535);*/ discover_packet.secs=0xFF; @@ -484,20 +492,20 @@ int send_dhcp_discover(int sock){ discover_packet.options[2]='\x53'; discover_packet.options[3]='\x63'; - opts = 4; + opts = 4; /* DHCP message type is embedded in options field */ discover_packet.options[opts++]=DHCP_OPTION_MESSAGE_TYPE; /* DHCP message type option identifier */ discover_packet.options[opts++]='\x01'; /* DHCP message option length in bytes */ discover_packet.options[opts++]=DHCPDISCOVER; /* the IP address we're requesting */ - if(request_specific_address){ + if(request_specific_address==TRUE){ discover_packet.options[opts++]=DHCP_OPTION_REQUESTED_ADDRESS; discover_packet.options[opts++]='\x04'; memcpy(&discover_packet.options[opts],&requested_address,sizeof(requested_address)); opts += sizeof(requested_address); - } - discover_packet.options[opts++]= (char)DHCP_OPTION_END; + } + discover_packet.options[opts++]=DHCP_OPTION_END; /* unicast fields */ if(unicast) @@ -507,8 +515,8 @@ int send_dhcp_discover(int sock){ discover_packet.hops = unicast ? 1 : 0; /* send the DHCPDISCOVER packet to broadcast address */ - sockaddr_broadcast.sin_family=AF_INET; - sockaddr_broadcast.sin_port=htons(DHCP_SERVER_PORT); + sockaddr_broadcast.sin_family=AF_INET; + sockaddr_broadcast.sin_port=htons(DHCP_SERVER_PORT); sockaddr_broadcast.sin_addr.s_addr = unicast ? dhcp_ip.s_addr : INADDR_BROADCAST; bzero(&sockaddr_broadcast.sin_zero,sizeof(sockaddr_broadcast.sin_zero)); @@ -520,7 +528,7 @@ int send_dhcp_discover(int sock){ printf("DHCDISCOVER yiaddr: %s\n",inet_ntoa(discover_packet.yiaddr)); printf("DHCDISCOVER siaddr: %s\n",inet_ntoa(discover_packet.siaddr)); printf("DHCDISCOVER giaddr: %s\n",inet_ntoa(discover_packet.giaddr)); - } + } /* send the DHCPDISCOVER packet out */ send_dhcp_packet(&discover_packet,sizeof(discover_packet),sock,&sockaddr_broadcast); @@ -529,7 +537,7 @@ int send_dhcp_discover(int sock){ printf("\n\n"); return OK; -} + } @@ -569,13 +577,13 @@ int get_dhcp_offer(int sock){ printf(_("Result=ERROR\n")); continue; - } + } else{ if(verbose) printf(_("Result=OK\n")); responses++; - } + } /* The "source" is either a server or a relay. */ /* Save a copy of "source" into "via" even if it's via itself */ @@ -585,7 +593,7 @@ int get_dhcp_offer(int sock){ printf(_("DHCPOFFER from IP address %s"),inet_ntoa(source.sin_addr)); printf(_(" via %s\n"),inet_ntoa(via.sin_addr)); printf("DHCPOFFER XID: %u (0x%X)\n",ntohl(offer_packet.xid),ntohl(offer_packet.xid)); - } + } /* check packet xid to see if its the same as the one we used in the discover packet */ if(ntohl(offer_packet.xid)!=packet_xid){ @@ -593,7 +601,7 @@ int get_dhcp_offer(int sock){ printf(_("DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n"),ntohl(offer_packet.xid),packet_xid); continue; - } + } /* check hardware address */ result=OK; @@ -606,7 +614,7 @@ int get_dhcp_offer(int sock){ if(offer_packet.chaddr[x]!=client_hardware_address[x]) result=ERROR; - } + } if(verbose) printf("\n"); @@ -615,27 +623,27 @@ int get_dhcp_offer(int sock){ printf(_("DHCPOFFER hardware address did not match our own - ignoring packet\n")); continue; - } + } if(verbose){ printf("DHCPOFFER ciaddr: %s\n",inet_ntoa(offer_packet.ciaddr)); printf("DHCPOFFER yiaddr: %s\n",inet_ntoa(offer_packet.yiaddr)); printf("DHCPOFFER siaddr: %s\n",inet_ntoa(offer_packet.siaddr)); printf("DHCPOFFER giaddr: %s\n",inet_ntoa(offer_packet.giaddr)); - } + } add_dhcp_offer(source.sin_addr,&offer_packet); valid_responses++; - } + } if(verbose){ printf(_("Total responses seen on the wire: %d\n"),responses); printf(_("Valid responses for this machine: %d\n"),valid_responses); - } + } return OK; -} + } @@ -652,14 +660,14 @@ int send_dhcp_packet(void *buffer, int buffer_size, int sock, struct sockaddr_in return ERROR; return OK; -} + } /* receives a DHCP packet */ int receive_dhcp_packet(void *buffer, int buffer_size, int sock, int timeout, struct sockaddr_in *address){ - struct timeval tv; - fd_set readfds; + struct timeval tv; + fd_set readfds; fd_set oobfds; int recv_result; socklen_t address_size; @@ -667,88 +675,88 @@ int receive_dhcp_packet(void *buffer, int buffer_size, int sock, int timeout, st int nfound; - /* wait for data to arrive (up time timeout) */ - tv.tv_sec=timeout; - tv.tv_usec=0; - FD_ZERO(&readfds); - FD_ZERO(&oobfds); - FD_SET(sock,&readfds); - FD_SET(sock,&oobfds); - nfound = select(sock+1,&readfds,NULL,&oobfds,&tv); + /* wait for data to arrive (up time timeout) */ + tv.tv_sec=timeout; + tv.tv_usec=0; + FD_ZERO(&readfds); + FD_ZERO(&oobfds); + FD_SET(sock,&readfds); + FD_SET(sock,&oobfds); + nfound = select(sock+1,&readfds,NULL,&oobfds,&tv); - /* make sure some data has arrived */ - if(!FD_ISSET(sock,&readfds)){ + /* make sure some data has arrived */ + if(!FD_ISSET(sock,&readfds)){ if(verbose) - printf(_("No (more) data received (nfound: %d)\n"), nfound); - return ERROR; - } + printf(_("No (more) data received (nfound: %d)\n"), nfound); + return ERROR; + } - else{ + else{ bzero(&source_address,sizeof(source_address)); address_size=sizeof(source_address); - recv_result=recvfrom(sock,(char *)buffer,buffer_size,0,(struct sockaddr *)&source_address,&address_size); + recv_result=recvfrom(sock,(char *)buffer,buffer_size,0,(struct sockaddr *)&source_address,&address_size); if(verbose) printf("recv_result: %d\n",recv_result); - if(recv_result==-1){ + if(recv_result==-1){ if(verbose){ printf(_("recvfrom() failed, ")); printf("errno: (%d) -> %s\n",errno,strerror(errno)); - } - return ERROR; - } + } + return ERROR; + } else{ if(verbose){ printf(_("receive_dhcp_packet() result: %d\n"),recv_result); printf(_("receive_dhcp_packet() source: %s\n"),inet_ntoa(source_address.sin_addr)); - } + } memcpy(address,&source_address,sizeof(source_address)); return OK; - } - } + } + } return OK; -} + } /* creates a socket for DHCP communication */ int create_dhcp_socket(void){ - struct sockaddr_in myname; + struct sockaddr_in myname; struct ifreq interface; - int sock; - int flag=1; + int sock; + int flag=1; - /* Set up the address we're going to bind to. */ + /* Set up the address we're going to bind to. */ bzero(&myname,sizeof(myname)); - myname.sin_family=AF_INET; - /* listen to DHCP server port if we're in unicast mode */ - myname.sin_port = htons(unicast ? DHCP_SERVER_PORT : DHCP_CLIENT_PORT); - myname.sin_addr.s_addr = unicast ? my_ip.s_addr : INADDR_ANY; - bzero(&myname.sin_zero,sizeof(myname.sin_zero)); + myname.sin_family=AF_INET; + /* listen to DHCP server port if we're in unicast mode */ + myname.sin_port = htons(unicast ? DHCP_SERVER_PORT : DHCP_CLIENT_PORT); + myname.sin_addr.s_addr = unicast ? my_ip.s_addr : INADDR_ANY; + bzero(&myname.sin_zero,sizeof(myname.sin_zero)); - /* create a socket for DHCP communications */ + /* create a socket for DHCP communications */ sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); - if(sock<0){ + if(sock<0){ printf(_("Error: Could not create socket!\n")); exit(STATE_UNKNOWN); - } + } if(verbose) printf("DHCP socket: %d\n",sock); - /* set the reuse address flag so we don't get errors when restarting */ - flag=1; - if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(flag))<0){ + /* set the reuse address flag so we don't get errors when restarting */ + flag=1; + if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(flag))<0){ printf(_("Error: Could not set reuse address option on DHCP socket!\n")); exit(STATE_UNKNOWN); - } + } - /* set the broadcast option - we need this to listen to DHCP broadcast messages */ - if(!unicast && setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof flag)<0){ + /* set the broadcast option - we need this to listen to DHCP broadcast messages */ + if(!unicast && setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof flag)<0){ printf(_("Error: Could not set broadcast option on DHCP socket!\n")); exit(STATE_UNKNOWN); - } + } /* bind socket to interface */ #if defined(__linux__) @@ -757,21 +765,21 @@ int create_dhcp_socket(void){ if(setsockopt(sock,SOL_SOCKET,SO_BINDTODEVICE,(char *)&interface,sizeof(interface))<0){ printf(_("Error: Could not bind socket to interface %s. Check your privileges...\n"),network_interface_name); exit(STATE_UNKNOWN); - } + } #else strncpy(interface.ifr_name,network_interface_name,IFNAMSIZ-1); interface.ifr_name[IFNAMSIZ-1]='\0'; #endif - /* bind the socket */ - if(bind(sock,(struct sockaddr *)&myname,sizeof(myname))<0){ + /* bind the socket */ + if(bind(sock,(struct sockaddr *)&myname,sizeof(myname))<0){ printf(_("Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n"),DHCP_CLIENT_PORT); exit(STATE_UNKNOWN); - } + } - return sock; -} + return sock; + } /* closes DHCP socket */ @@ -780,7 +788,7 @@ int close_dhcp_socket(int sock){ close(sock); return OK; -} + } /* adds a requested server address to list in memory */ @@ -792,7 +800,7 @@ int add_requested_server(struct in_addr server_address){ return ERROR; new_server->server_address=server_address; - new_server->answered=false; + new_server->answered=FALSE; new_server->next=requested_server_list; requested_server_list=new_server; @@ -803,7 +811,7 @@ int add_requested_server(struct in_addr server_address){ printf(_("Requested server address: %s\n"),inet_ntoa(new_server->server_address)); return OK; -} + } @@ -836,29 +844,29 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){ /* get option data */ switch(option_type){ - case DHCP_OPTION_LEASE_TIME: - memcpy(&dhcp_lease_time, &offer_packet->options[x],sizeof(dhcp_lease_time)); - dhcp_lease_time = ntohl(dhcp_lease_time); - break; - case DHCP_OPTION_RENEWAL_TIME: - memcpy(&dhcp_renewal_time, &offer_packet->options[x],sizeof(dhcp_renewal_time)); - dhcp_renewal_time = ntohl(dhcp_renewal_time); - break; - case DHCP_OPTION_REBINDING_TIME: - memcpy(&dhcp_rebinding_time, &offer_packet->options[x],sizeof(dhcp_rebinding_time)); - dhcp_rebinding_time = ntohl(dhcp_rebinding_time); - break; - case DHCP_OPTION_SERVER_IDENTIFIER: - memcpy(&serv_ident.s_addr, &offer_packet->options[x],sizeof(serv_ident.s_addr)); - break; - } + case DHCP_OPTION_LEASE_TIME: + memcpy(&dhcp_lease_time, &offer_packet->options[x],sizeof(dhcp_lease_time)); + dhcp_lease_time = ntohl(dhcp_lease_time); + break; + case DHCP_OPTION_RENEWAL_TIME: + memcpy(&dhcp_renewal_time, &offer_packet->options[x],sizeof(dhcp_renewal_time)); + dhcp_renewal_time = ntohl(dhcp_renewal_time); + break; + case DHCP_OPTION_REBINDING_TIME: + memcpy(&dhcp_rebinding_time, &offer_packet->options[x],sizeof(dhcp_rebinding_time)); + dhcp_rebinding_time = ntohl(dhcp_rebinding_time); + break; + case DHCP_OPTION_SERVER_IDENTIFIER: + memcpy(&serv_ident.s_addr, &offer_packet->options[x],sizeof(serv_ident.s_addr)); + break; + } /* skip option data we're ignoring */ if(option_type==0) /* "pad" option, see RFC 2132 (3.1) */ x+=1; else x+=option_length; - } + } if(verbose){ if(dhcp_lease_time==DHCP_INFINITE_TIME) @@ -872,7 +880,7 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){ if(dhcp_rebinding_time==DHCP_INFINITE_TIME) printf(_("Rebinding Time: Infinite\n")); printf(_("Rebinding Time: %lu seconds\n"),(unsigned long)dhcp_rebinding_time); - } + } new_offer=(dhcp_offer *)malloc(sizeof(dhcp_offer)); @@ -896,20 +904,19 @@ int add_dhcp_offer(struct in_addr source,dhcp_packet *offer_packet){ new_offer->lease_time=dhcp_lease_time; new_offer->renewal_time=dhcp_renewal_time; new_offer->rebinding_time=dhcp_rebinding_time; - new_offer->desired=false; /* exclusive mode: we'll check that in get_results */ if(verbose){ printf(_("Added offer from server @ %s"),inet_ntoa(new_offer->server_address)); printf(_(" of IP address %s\n"),inet_ntoa(new_offer->offered_address)); - } + } /* add new offer to head of list */ new_offer->next=dhcp_offer_list; dhcp_offer_list=new_offer; return OK; -} + } /* frees memory allocated to DHCP OFFER list */ @@ -920,10 +927,10 @@ int free_dhcp_offer_list(void){ for(this_offer=dhcp_offer_list;this_offer!=NULL;this_offer=next_offer){ next_offer=this_offer->next; free(this_offer); - } + } return OK; -} + } /* frees memory allocated to requested server list */ @@ -934,20 +941,20 @@ int free_requested_server_list(void){ for(this_server=requested_server_list;this_server!=NULL;this_server=next_server){ next_server=this_server->next; free(this_server); - } + } return OK; -} + } /* gets state and plugin output to return */ int get_results(void){ - dhcp_offer *temp_offer, *undesired_offer=NULL; + dhcp_offer *temp_offer; requested_server *temp_server; int result; - uint32_t max_lease_time=0; + u_int32_t max_lease_time=0; - received_requested_address=false; + received_requested_address=FALSE; /* checks responses from requested servers */ requested_responses=0; @@ -963,7 +970,7 @@ int get_results(void){ /* see if we got the address we requested */ if(!memcmp(&requested_address,&temp_offer->offered_address,sizeof(requested_address))) - received_requested_address=true; + received_requested_address=TRUE; /* see if the servers we wanted a response from talked to us or not */ if(!memcmp(&temp_offer->server_address,&temp_server->server_address,sizeof(temp_server->server_address))){ @@ -973,24 +980,16 @@ int get_results(void){ if(temp_server->answered) printf(_(" (duplicate)")); printf(_("\n")); - } - if(!temp_server->answered){ + } + if(temp_server->answered == FALSE){ requested_responses++; - temp_server->answered=true; - temp_offer->desired=true; - } - } - } - } + temp_server->answered=TRUE; + } + } + } + } - /* exclusive mode: check for undesired offers */ - for(temp_offer=dhcp_offer_list;temp_offer!=NULL;temp_offer=temp_offer->next) { - if (!temp_offer->desired) { - undesired_offer=temp_offer; /* Checks only for the first undesired offer */ - break; /* no further checks needed */ - } - } - } + } /* else check and see if we got our requested address from any server */ else{ @@ -1003,9 +1002,9 @@ int get_results(void){ /* see if we got the address we requested */ if(!memcmp(&requested_address,&temp_offer->offered_address,sizeof(requested_address))) - received_requested_address=true; - } - } + received_requested_address=TRUE; + } + } result=STATE_OK; if(valid_responses==0) @@ -1014,12 +1013,9 @@ int get_results(void){ result=STATE_CRITICAL; else if(requested_responsesserver_address)); - printf(_(" offered %s \n"),inet_ntoa(undesired_offer->offered_address)); - return result; - } - if(requested_servers>0) printf(_(", %s%d of %d requested servers responded"),((requested_responses0)?"only ":"",requested_responses,requested_servers); - if(request_specific_address) - printf(_(", requested address (%s) was %soffered"),inet_ntoa(requested_address),(received_requested_address)?"":_("not ")); + if(request_specific_address==TRUE) + printf(_(", requested address (%s) was %soffered"),inet_ntoa(requested_address),(received_requested_address==TRUE)?"":_("not ")); printf(_(", max lease time = ")); if(max_lease_time==DHCP_INFINITE_TIME) @@ -1059,17 +1048,19 @@ int get_results(void){ printf(".\n"); return result; -} + } /* process command-line arguments */ int process_arguments(int argc, char **argv){ + int arg_index; + if(argc<1) return ERROR; - call_getopt(argc,argv); - return validate_arguments(argc); -} + arg_index = call_getopt(argc,argv); + return validate_arguments(argc,arg_index); + } @@ -1084,98 +1075,96 @@ int call_getopt(int argc, char **argv){ {"interface", required_argument,0,'i'}, {"mac", required_argument,0,'m'}, {"unicast", no_argument, 0,'u'}, - {"exclusive", no_argument, 0,'x'}, {"verbose", no_argument, 0,'v'}, {"version", no_argument, 0,'V'}, {"help", no_argument, 0,'h'}, {0,0,0,0} }; - int c=0; - while(true){ - c=getopt_long(argc,argv,"+hVvxt:s:r:t:i:m:u",long_options,&option_index); + while(1){ + int c=0; + + c=getopt_long(argc,argv,"+hVvt:s:r:t:i:m:u",long_options,&option_index); if(c==-1||c==EOF||c==1) break; switch(c){ - case 's': /* DHCP server address */ - resolve_host(optarg,&dhcp_ip); - add_requested_server(dhcp_ip); - break; + case 's': /* DHCP server address */ + resolve_host(optarg,&dhcp_ip); + add_requested_server(dhcp_ip); + break; - case 'r': /* address we are requested from DHCP servers */ - resolve_host(optarg,&requested_address); - request_specific_address=true; - break; + case 'r': /* address we are requested from DHCP servers */ + resolve_host(optarg,&requested_address); + request_specific_address=TRUE; + break; - case 't': /* timeout */ + case 't': /* timeout */ - /* - if(is_intnonneg(optarg)) - */ - if(atoi(optarg)>0) - dhcpoffer_timeout=atoi(optarg); - /* - else - usage("Time interval must be a nonnegative integer\n"); - */ - break; + /* + if(is_intnonneg(optarg)) + */ + if(atoi(optarg)>0) + dhcpoffer_timeout=atoi(optarg); + /* + else + usage("Time interval must be a nonnegative integer\n"); + */ + break; - case 'm': /* MAC address */ + case 'm': /* MAC address */ - if((user_specified_mac=mac_aton(optarg)) == NULL) - usage("Cannot parse MAC address.\n"); - if(verbose) - print_hardware_address(user_specified_mac); + if((user_specified_mac=mac_aton(optarg)) == NULL) + usage("Cannot parse MAC address.\n"); + if(verbose) + print_hardware_address(user_specified_mac); - break; + break; - case 'i': /* interface name */ + case 'i': /* interface name */ - strncpy(network_interface_name,optarg,sizeof(network_interface_name)-1); - network_interface_name[sizeof(network_interface_name)-1]='\x0'; + strncpy(network_interface_name,optarg,sizeof(network_interface_name)-1); + network_interface_name[sizeof(network_interface_name)-1]='\x0'; - break; + break; - case 'u': /* unicast testing */ - unicast=true; - break; - case 'x': /* exclusive testing aka "rogue DHCP server detection" */ - exclusive=true; - break; + case 'u': /* unicast testing */ + unicast=1; + break; - case 'V': /* version */ - print_revision(progname, NP_VERSION); - exit(STATE_UNKNOWN); + case 'V': /* version */ + print_revision(progname, NP_VERSION); + exit(STATE_UNKNOWN); - case 'h': /* help */ - print_help(); - exit(STATE_UNKNOWN); + case 'h': /* help */ + print_help(); + exit(STATE_UNKNOWN); - case 'v': /* verbose */ - verbose=1; - break; - case '?': /* help */ - usage5 (); - break; + case 'v': /* verbose */ + verbose=1; + break; - default: - break; - } - } + case '?': /* help */ + usage5 (); + break; + + default: + break; + } + } return optind; -} + } -int validate_arguments(int argc){ +int validate_arguments(int argc, int arg_index){ - if(argc - optind > 0) + if(argc-optind > 0) usage(_("Got unexpected non-option argument")); return OK; -} + } #if defined(__sun__) || defined(__solaris__) || defined(__hpux__) @@ -1193,21 +1182,21 @@ static int get_msg(int fd){ if(res < 0){ if(errno == EINTR){ return(GOT_INTR); - } + } else{ printf("%s\n", "get_msg FAILED."); return(GOT_ERR); + } } - } if(ctl.len > 0){ ret |= GOT_CTRL; - } + } if(dat.len > 0){ ret |= GOT_DATA; - } + } return(ret); -} + } /* verify that dl_primitive in ctl_area = prim */ static int check_ctrl(int prim){ @@ -1216,10 +1205,10 @@ static int check_ctrl(int prim){ if(err_ack->dl_primitive != prim){ printf(_("Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n"), strerror(errno)); exit(STATE_UNKNOWN); - } + } return 0; -} + } /* put a control message on a stream */ static int put_ctrl(int fd, int len, int pri){ @@ -1228,10 +1217,10 @@ static int put_ctrl(int fd, int len, int pri){ if(putmsg(fd, &ctl, 0, pri) < 0){ printf(_("Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n"), strerror(errno)); exit(STATE_UNKNOWN); - } + } return 0; -} + } /* put a control + data message on a stream */ static int put_both(int fd, int clen, int dlen, int pri){ @@ -1241,10 +1230,10 @@ static int put_both(int fd, int clen, int dlen, int pri){ if(putmsg(fd, &ctl, &dat, pri) < 0){ printf(_("Error: DLPI stream API failed to get MAC in put_both/putmsg().\n"), strerror(errno)); exit(STATE_UNKNOWN); - } + } return 0; -} + } /* open file descriptor and attach */ static int dl_open(const char *dev, int unit, int *fd){ @@ -1253,13 +1242,13 @@ static int dl_open(const char *dev, int unit, int *fd){ if((*fd = open(dev, O_RDWR)) == -1){ printf(_("Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n"), dev, strerror(errno)); exit(STATE_UNKNOWN); - } + } attach_req->dl_primitive = DL_ATTACH_REQ; attach_req->dl_ppa = unit; put_ctrl(*fd, sizeof(dl_attach_req_t), 0); get_msg(*fd); return check_ctrl(DL_OK_ACK); -} + } /* send DL_BIND_REQ */ static int dl_bind(int fd, int sap, u_char *addr){ @@ -1277,12 +1266,12 @@ static int dl_bind(int fd, int sap, u_char *addr){ if (GOT_ERR == check_ctrl(DL_BIND_ACK)){ printf(_("Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n"), strerror(errno)); exit(STATE_UNKNOWN); - } + } bcopy((u_char *)bind_ack + bind_ack->dl_addr_offset, addr, - bind_ack->dl_addr_length); + bind_ack->dl_addr_length); return 0; -} + } /*********************************************************************** * interface: @@ -1301,15 +1290,15 @@ long mac_addr_dlpi( const char *dev, int unit, u_char *addr){ u_char mac_addr[25]; if(GOT_ERR != dl_open(dev, unit, &fd)){ - if(GOT_ERR != dl_bind(fd, INSAP, mac_addr)){ - bcopy( mac_addr, addr, 6); - return 0; + if(GOT_ERR != dl_bind(fd, INSAP, mac_addr)){ + bcopy( mac_addr, addr, 6); + return 0; + } } - } - close(fd); + close(fd); return -1; -} + } /* Kompf 2000-2003 */ #endif @@ -1326,7 +1315,7 @@ void resolve_host(const char *in,struct in_addr *out){ memcpy(out,&((struct sockaddr_in *)ai->ai_addr)->sin_addr,sizeof(*out)); freeaddrinfo(ai); -} + } /* parse MAC address string, return 6 bytes (unterminated) or NULL */ @@ -1345,10 +1334,10 @@ unsigned char *mac_aton(const char *string){ result[j]=strtol(tmp,(char **)NULL,16); i++; j++; - } + } return (j==6) ? result : NULL; -} + } void print_hardware_address(const unsigned char *address){ @@ -1359,7 +1348,7 @@ void print_hardware_address(const unsigned char *address){ printf("%2.2x:", address[i]); printf("%2.2x", address[i]); putchar('\n'); -} + } /* print usage help */ @@ -1372,7 +1361,7 @@ void print_help(void){ printf("%s\n", _("This plugin tests the availability of DHCP servers on a network.")); - printf ("\n\n"); + printf ("\n\n"); print_usage(); @@ -1382,31 +1371,32 @@ void print_help(void){ printf (UT_VERBOSE); printf (" %s\n", "-s, --serverip=IPADDRESS"); - printf (" %s\n", _("IP address of DHCP server that we must hear from")); - printf (" %s\n", "-r, --requestedip=IPADDRESS"); - printf (" %s\n", _("IP address that should be offered by at least one DHCP server")); - printf (" %s\n", "-t, --timeout=INTEGER"); - printf (" %s\n", _("Seconds to wait for DHCPOFFER before timeout occurs")); - printf (" %s\n", "-i, --interface=STRING"); - printf (" %s\n", _("Interface to to use for listening (i.e. eth0)")); - printf (" %s\n", "-m, --mac=STRING"); - printf (" %s\n", _("MAC address to use in the DHCP request")); - printf (" %s\n", "-u, --unicast"); - printf (" %s\n", _("Unicast testing: mimic a DHCP relay, requires -s")); - printf (" %s\n", "-x, --exclusive"); - printf (" %s\n", _("Only requested DHCP server may response (rogue DHCP server detection), requires -s")); + printf (" %s\n", _("IP address of DHCP server that we must hear from")); + printf (" %s\n", "-r, --requestedip=IPADDRESS"); + printf (" %s\n", _("IP address that should be offered by at least one DHCP server")); + printf (" %s\n", "-t, --timeout=INTEGER"); + printf (" %s\n", _("Seconds to wait for DHCPOFFER before timeout occurs")); + printf (" %s\n", "-i, --interface=STRING"); + printf (" %s\n", _("Interface to to use for listening (i.e. eth0)")); + printf (" %s\n", "-m, --mac=STRING"); + printf (" %s\n", _("MAC address to use in the DHCP request")); + printf (" %s\n", "-u, --unicast"); + printf (" %s\n", _("Unicast testing: mimic a DHCP relay, requires -s")); - printf (UT_SUPPORT); + printf (UT_SUPPORT); return; -} + } void print_usage(void){ - printf ("%s\n", _("Usage:")); - printf (" %s [-v] [-u] [-x] [-s serverip] [-r requestedip] [-t timeout]\n",progname); - printf (" [-i interface] [-m mac]\n"); + printf ("%s\n", _("Usage:")); + printf (" %s [-v] [-u] [-s serverip] [-r requestedip] [-t timeout]\n",progname); + printf (" [-i interface] [-m mac]\n"); return; -} + } + + + diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c index f788d42..1f87b75 100644 --- a/plugins-root/check_icmp.c +++ b/plugins-root/check_icmp.c @@ -1,39 +1,39 @@ /***************************************************************************** -* +* * Monitoring check_icmp plugin -* +* * License: GPL * Copyright (c) 2005-2008 Monitoring Plugins Development Team * Original Author : Andreas Ericsson -* +* * Description: -* +* * This file contains the check_icmp plugin -* +* * Relevant RFC's: 792 (ICMP), 791 (IP) -* +* * This program was modeled somewhat after the check_icmp program, * which was in turn a hack of fping (www.fping.org) but has been * completely rewritten since to generate higher precision rta values, * and support several different modes as well as setting ttl to control. * redundant routes. The only remainders of fping is currently a few * function names. -* -* +* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ /* progname may change */ @@ -43,7 +43,7 @@ const char *copyright = "2005-2008"; const char *email = "devel@monitoring-plugins.org"; /** Monitoring Plugins basic includes */ -#include "../plugins/common.h" +#include "common.h" #include "netutils.h" #include "utils.h" @@ -55,7 +55,6 @@ const char *email = "devel@monitoring-plugins.org"; #include #include #include -#include #include #include #include @@ -96,6 +95,10 @@ const char *email = "devel@monitoring-plugins.org"; # define ICMP_UNREACH_PRECEDENCE_CUTOFF 15 #endif +#ifndef DBL_MAX +# define DBL_MAX 9.9999999999e999 +#endif + typedef unsigned short range_t; /* type for get_range() -- unimplemented */ typedef struct rta_host { @@ -109,35 +112,18 @@ typedef struct rta_host { unsigned char icmp_type, icmp_code; /* type and code from errors */ unsigned short flags; /* control/status flags */ double rta; /* measured RTA */ - int rta_status; // check result for RTA checks double rtmax; /* max rtt */ double rtmin; /* min rtt */ - double jitter; /* measured jitter */ - int jitter_status; // check result for Jitter checks - double jitter_max; /* jitter rtt maximum */ - double jitter_min; /* jitter rtt minimum */ - double EffectiveLatency; - double mos; /* Mean opnion score */ - int mos_status; // check result for MOS checks - double score; /* score */ - int score_status; // check result for score checks - u_int last_tdiff; - u_int last_icmp_seq; /* Last ICMP_SEQ to check out of order pkts */ unsigned char pl; /* measured packet loss */ - int pl_status; // check result for packet loss checks struct rta_host *next; /* linked list */ - int order_status; // check result for packet order checks } rta_host; #define FLAG_LOST_CAUSE 0x01 /* decidedly dead target. */ /* threshold structure. all values are maximum allowed, exclusive */ typedef struct threshold { - unsigned char pl; /* max allowed packet loss in percent */ - unsigned int rta; /* roundtrip time average, microseconds */ - double jitter; /* jitter time average, microseconds */ - double mos; /* MOS */ - double score; /* Score */ + unsigned char pl; /* max allowed packet loss in percent */ + unsigned int rta; /* roundtrip time average, microseconds */ } threshold; /* the data structure */ @@ -176,16 +162,6 @@ typedef union icmp_packet { #define MODE_ALL 2 #define MODE_ICMP 3 -enum enum_threshold_mode { - const_rta_mode, - const_packet_loss_mode, - const_jitter_mode, - const_mos_mode, - const_score_mode -}; - -typedef enum enum_threshold_mode threshold_mode; - /* the different ping types we can do * TODO: investigate ARP ping as well */ #define HAVE_ICMP 1 @@ -215,8 +191,6 @@ static int wait_for_reply(int, u_int); static int recvfrom_wto(int, void *, unsigned int, struct sockaddr *, u_int *, struct timeval*); static int send_icmp_ping(int, struct rta_host *); static int get_threshold(char *str, threshold *th); -static bool get_threshold2(char *str, size_t length, threshold *, threshold *, threshold_mode mode); -static bool parse_threshold2_helper(char *s, size_t length, threshold *thr, threshold_mode mode); static void run_checks(void); static void set_source_ip(char *); static int add_target(char *); @@ -228,28 +202,13 @@ static void finish(int); static void crash(const char *, ...); /** external **/ -extern int optind; +extern int optind, opterr, optopt; extern char *optarg; extern char **environ; /** global variables **/ static struct rta_host **table, *cursor, *list; - -static threshold crit = { - .pl = 80, - .rta = 500000, - .jitter = 0.0, - .mos = 0.0, - .score = 0.0 -}; -static threshold warn = { - .pl = 40, - .rta = 200000, - .jitter = 0.0, - .mos = 0.0, - .score = 0.0 -}; - +static threshold crit = {80, 500000}, warn = {40, 200000}; static int mode, protocols, sockets, debug = 0, timeout = 10; static unsigned short icmp_data_size = DEFAULT_PING_DATA_SIZE; static unsigned short icmp_pkt_size = DEFAULT_PING_DATA_SIZE + ICMP_MINLEN; @@ -268,12 +227,6 @@ static unsigned int warn_down = 1, crit_down = 1; /* host down threshold values static int min_hosts_alive = -1; float pkt_backoff_factor = 1.5; float target_backoff_factor = 1.5; -bool rta_mode=false; -bool pl_mode=false; -bool jitter_mode=false; -bool score_mode=false; -bool mos_mode=false; -bool order_mode=false; /** code start **/ static void @@ -324,7 +277,7 @@ get_icmp_error_msg(unsigned char icmp_type, unsigned char icmp_code) break; case ICMP_TIMXCEED: - /* really 'out of reach', or non-existent host behind a router serving + /* really 'out of reach', or non-existant host behind a router serving * two different subnets */ switch(icmp_code) { case ICMP_TIMXCEED_INTRANS: msg = "Time to live exceeded in transit"; break; @@ -443,14 +396,12 @@ main(int argc, char **argv) int icmp_sockerrno, udp_sockerrno, tcp_sockerrno; int result; struct rta_host *host; -#ifdef HAVE_SIGACTION - struct sigaction sig_action; -#endif #ifdef SO_TIMESTAMP int on = 1; #endif char *source_ip = NULL; - char * opts_str = "vhVw:c:n:p:t:H:s:i:b:I:l:m:P:R:J:S:M:O64"; + char * opts_str = "vhVw:c:n:p:t:H:s:i:b:I:l:m:64"; + setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); @@ -459,7 +410,7 @@ main(int argc, char **argv) * that before pointer magic (esp. on network data) */ icmp_sockerrno = udp_sockerrno = tcp_sockerrno = sockets = 0; - address_family = -1; + address_family = -1; int icmp_proto = IPPROTO_ICMP; /* get calling name the old-fashioned way for portability instead @@ -474,19 +425,10 @@ main(int argc, char **argv) table = NULL; mode = MODE_RTA; - /* Default critical thresholds */ crit.rta = 500000; crit.pl = 80; - crit.jitter = 50; - crit.mos= 3; - crit.score=70; - /* Default warning thresholds */ warn.rta = 200000; warn.pl = 40; - warn.jitter = 40; - warn.mos= 3.5; - warn.score=80; - protocols = HAVE_ICMP | HAVE_UDP | HAVE_TCP; pkt_interval = 80000; /* 80 msec packet interval by default */ packets = 5; @@ -542,8 +484,7 @@ main(int argc, char **argv) /* Reset argument scanning */ optind = 1; - unsigned long size; - bool err; + unsigned short size; /* parse the arguments */ for(i = 1; i < argc; i++) { while((arg = getopt(argc, argv, opts_str)) != EOF) { @@ -552,7 +493,7 @@ main(int argc, char **argv) debug++; break; case 'b': - size = strtol(optarg,NULL,0); + size = (unsigned short)strtol(optarg,NULL,0); if (size >= (sizeof(struct icmp) + sizeof(struct icmp_ping_data)) && size < MAX_PING_DATA) { icmp_data_size = size; @@ -607,49 +548,6 @@ main(int argc, char **argv) print_help (); exit (STATE_UNKNOWN); break; - case 'R': /* RTA mode */ - err = get_threshold2(optarg, strlen(optarg), &warn, &crit, const_rta_mode); - if (!err) { - crash("Failed to parse RTA threshold"); - } - - rta_mode=true; - break; - case 'P': /* packet loss mode */ - err = get_threshold2(optarg, strlen(optarg), &warn, &crit, const_packet_loss_mode); - if (!err) { - crash("Failed to parse packet loss threshold"); - } - - pl_mode=true; - break; - case 'J': /* jitter mode */ - err = get_threshold2(optarg, strlen(optarg), &warn, &crit, const_jitter_mode); - if (!err) { - crash("Failed to parse jitter threshold"); - } - - jitter_mode=true; - break; - case 'M': /* MOS mode */ - err = get_threshold2(optarg, strlen(optarg), &warn, &crit, const_mos_mode); - if (!err) { - crash("Failed to parse MOS threshold"); - } - - mos_mode=true; - break; - case 'S': /* score mode */ - err = get_threshold2(optarg, strlen(optarg), &warn, &crit, const_score_mode); - if (!err) { - crash("Failed to parse score threshold"); - } - - score_mode=true; - break; - case 'O': /* out of order mode */ - order_mode=true; - break; } } } @@ -670,10 +568,10 @@ main(int argc, char **argv) add_target(*argv); argv++; } - if(!targets) { errno = 0; crash("No hosts to check"); + exit(3); } // add_target might change address_family @@ -736,25 +634,11 @@ main(int argc, char **argv) if(warn.pl > crit.pl) warn.pl = crit.pl; if(warn.rta > crit.rta) warn.rta = crit.rta; if(warn_down > crit_down) crit_down = warn_down; - if(warn.jitter > crit.jitter) crit.jitter = warn.jitter; - if(warn.mos < crit.mos) warn.mos = crit.mos; - if(warn.score < crit.score) warn.score = crit.score; -#ifdef HAVE_SIGACTION - sig_action.sa_sigaction = NULL; - sig_action.sa_handler = finish; - sigfillset(&sig_action.sa_mask); - sig_action.sa_flags = SA_NODEFER|SA_RESTART; - sigaction(SIGINT, &sig_action, NULL); - sigaction(SIGHUP, &sig_action, NULL); - sigaction(SIGTERM, &sig_action, NULL); - sigaction(SIGALRM, &sig_action, NULL); -#else /* HAVE_SIGACTION */ signal(SIGINT, finish); signal(SIGHUP, finish); signal(SIGTERM, finish); signal(SIGALRM, finish); -#endif /* HAVE_SIGACTION */ if(debug) printf("Setting alarm timeout to %u seconds\n", timeout); alarm(timeout); @@ -804,11 +688,7 @@ main(int argc, char **argv) } host = list; - table = malloc(sizeof(struct rta_host *) * targets); - if(!table) { - crash("main(): malloc failed for host table"); - } - + table = (struct rta_host**)malloc(sizeof(struct rta_host **) * targets); i = 0; while(host) { host->id = i*packets; @@ -895,7 +775,6 @@ wait_for_reply(int sock, u_int t) struct icmp_ping_data data; struct timeval wait_start, now; u_int tdiff, i, per_pkt_wait; - double jitter_tmp; if (!(packet.buf = malloc(icmp_pkt_size))) { crash("send_icmp_ping(): failed to malloc %d bytes for send buffer", @@ -1014,44 +893,12 @@ wait_for_reply(int sock, u_int t) tdiff = get_timevaldiff(&data.stime, &now); - if (host->last_tdiff>0) { - /* Calculate jitter */ - if (host->last_tdiff > tdiff) { - jitter_tmp = host->last_tdiff - tdiff; - } else { - jitter_tmp = tdiff - host->last_tdiff; - } - - if (host->jitter==0) { - host->jitter=jitter_tmp; - host->jitter_max=jitter_tmp; - host->jitter_min=jitter_tmp; - } else { - host->jitter+=jitter_tmp; - - if (jitter_tmp < host->jitter_min) { - host->jitter_min=jitter_tmp; - } - - if (jitter_tmp > host->jitter_max) { - host->jitter_max=jitter_tmp; - } - } - - /* Check if packets in order */ - if (host->last_icmp_seq >= packet.icp->icmp_seq) - host->order_status=STATE_CRITICAL; - } - host->last_tdiff=tdiff; - - host->last_icmp_seq=packet.icp->icmp_seq; - host->time_waited += tdiff; host->icmp_recv++; icmp_recv++; - if (tdiff > (unsigned int)host->rtmax) + if (tdiff > host->rtmax) host->rtmax = tdiff; - if (tdiff < (unsigned int)host->rtmin) + if (tdiff < host->rtmin) host->rtmin = tdiff; if(debug) { @@ -1212,9 +1059,7 @@ recvfrom_wto(int sock, void *buf, unsigned int len, struct sockaddr *saddr, int n, ret; struct timeval to, then, now; fd_set rd, wr; -#ifdef HAVE_MSGHDR_MSG_CONTROL char ans_data[4096]; -#endif // HAVE_MSGHDR_MSG_CONTROL struct msghdr hdr; struct iovec iov; #ifdef SO_TIMESTAMP @@ -1252,10 +1097,8 @@ recvfrom_wto(int sock, void *buf, unsigned int len, struct sockaddr *saddr, hdr.msg_namelen = slen; hdr.msg_iov = &iov; hdr.msg_iovlen = 1; -#ifdef HAVE_MSGHDR_MSG_CONTROL hdr.msg_control = ans_data; hdr.msg_controllen = sizeof(ans_data); -#endif ret = recvmsg(sock, &hdr, 0); #ifdef SO_TIMESTAMP @@ -1285,8 +1128,6 @@ finish(int sig) {"OK", "WARNING", "CRITICAL", "UNKNOWN", "DEPENDENT"}; int hosts_ok = 0; int hosts_warn = 0; - int this_status; - double R; alarm(0); if(debug > 1) printf("finish(%d) called\n", sig); @@ -1302,12 +1143,9 @@ finish(int sig) } /* iterate thrice to calculate values, give output, and print perfparse */ - status=STATE_OK; host = list; while(host) { - this_status = STATE_OK; - if(!host->icmp_recv) { /* rta 0 is ofcourse not entirely correct, but will still show up * conspicuously as missing entries in perfparse and cacti */ @@ -1316,138 +1154,26 @@ finish(int sig) status = STATE_CRITICAL; /* up the down counter if not already counted */ if(!(host->flags & FLAG_LOST_CAUSE) && targets_alive) targets_down++; - } else { + } + else { pl = ((host->icmp_sent - host->icmp_recv) * 100) / host->icmp_sent; rta = (double)host->time_waited / host->icmp_recv; } - - if (host->icmp_recv>1) { - /* - * This algorithm is probably pretty much blindly copied from - * locations like this one: https://www.slac.stanford.edu/comp/net/wan-mon/tutorial.html#mos - * It calculates a MOS value (range of 1 to 5, where 1 is bad and 5 really good). - * According to some quick research MOS originates from the Audio/Video transport network area. - * Whether it can and should be computed from ICMP data, I can not say. - * - * Anyway the basic idea is to map a value "R" with a range of 0-100 to the MOS value - * - * MOS stands likely for Mean Opinion Score ( https://en.wikipedia.org/wiki/Mean_Opinion_Score ) - * - * More links: - * - https://confluence.slac.stanford.edu/display/IEPM/MOS - */ - host->jitter=(host->jitter / (host->icmp_recv - 1)/1000); - - /* - * Take the average round trip latency (in milliseconds), add - * round trip jitter, but double the impact to latency - * then add 10 for protocol latencies (in milliseconds). - */ - host->EffectiveLatency = (rta/1000) + host->jitter * 2 + 10; - - if (host->EffectiveLatency < 160) { - R = 93.2 - (host->EffectiveLatency / 40); - } else { - R = 93.2 - ((host->EffectiveLatency - 120) / 10); - } - - // Now, let us deduct 2.5 R values per percentage of packet loss (i.e. a - // loss of 5% will be entered as 5). - R = R - (pl * 2.5); - - if (R < 0) { - R = 0; - } - - host->score = R; - host->mos= 1 + ((0.035) * R) + ((.000007) * R * (R-60) * (100-R)); - } else { - host->jitter=0; - host->jitter_min=0; - host->jitter_max=0; - host->mos=0; - } - host->pl = pl; host->rta = rta; - - /* if no new mode selected, use old schema */ - if (!rta_mode && !pl_mode && !jitter_mode && !score_mode && !mos_mode && !order_mode) { - rta_mode = true; - pl_mode = true; + if(pl >= crit.pl || rta >= crit.rta) { + status = STATE_CRITICAL; } - - /* Check which mode is on and do the warn / Crit stuff */ - if (rta_mode) { - if(rta >= crit.rta) { - this_status = STATE_CRITICAL; - status = STATE_CRITICAL; - host->rta_status=STATE_CRITICAL; - } else if(status!=STATE_CRITICAL && (rta >= warn.rta)) { - this_status = (this_status <= STATE_WARNING ? STATE_WARNING : this_status); - status = STATE_WARNING; - host->rta_status=STATE_WARNING; - } - } - - if (pl_mode) { - if(pl >= crit.pl) { - this_status = STATE_CRITICAL; - status = STATE_CRITICAL; - host->pl_status=STATE_CRITICAL; - } else if(status!=STATE_CRITICAL && (pl >= warn.pl)) { - this_status = (this_status <= STATE_WARNING ? STATE_WARNING : this_status); - status = STATE_WARNING; - host->pl_status=STATE_WARNING; - } - } - - if (jitter_mode) { - if(host->jitter >= crit.jitter) { - this_status = STATE_CRITICAL; - status = STATE_CRITICAL; - host->jitter_status=STATE_CRITICAL; - } else if(status!=STATE_CRITICAL && (host->jitter >= warn.jitter)) { - this_status = (this_status <= STATE_WARNING ? STATE_WARNING : this_status); - status = STATE_WARNING; - host->jitter_status=STATE_WARNING; - } - } - - if (mos_mode) { - if(host->mos <= crit.mos) { - this_status = STATE_CRITICAL; - status = STATE_CRITICAL; - host->mos_status=STATE_CRITICAL; - } else if(status!=STATE_CRITICAL && (host->mos <= warn.mos)) { - this_status = (this_status <= STATE_WARNING ? STATE_WARNING : this_status); - status = STATE_WARNING; - host->mos_status=STATE_WARNING; - } - } - - if (score_mode) { - if(host->score <= crit.score) { - this_status = STATE_CRITICAL; - status = STATE_CRITICAL; - host->score_status=STATE_CRITICAL; - } else if(status!=STATE_CRITICAL && (host->score <= warn.score)) { - this_status = (this_status <= STATE_WARNING ? STATE_WARNING : this_status); - status = STATE_WARNING; - host->score_status=STATE_WARNING; - } - } - - if (this_status == STATE_WARNING) { + else if(!status && (pl >= warn.pl || rta >= warn.rta)) { + status = STATE_WARNING; hosts_warn++; - } else if (this_status == STATE_OK) { + } + else { hosts_ok++; } host = host->next; } - - /* this is inevitable */ if(!targets_alive) status = STATE_CRITICAL; if(min_hosts_alive > -1) { @@ -1458,7 +1184,6 @@ finish(int sig) host = list; while(host) { - if(debug) puts(""); if(i) { if(i < targets) printf(" :: "); @@ -1467,8 +1192,6 @@ finish(int sig) i++; if(!host->icmp_recv) { status = STATE_CRITICAL; - host->rtmin=0; - host->jitter_min=0; if(host->flags & FLAG_LOST_CAUSE) { char address[INET6_ADDRSTRLEN]; parse_address(&host->error_addr, address, sizeof(address)); @@ -1477,137 +1200,31 @@ finish(int sig) get_icmp_error_msg(host->icmp_type, host->icmp_code), address, 100); - } else { /* not marked as lost cause, so we have no flags for it */ + } + else { /* not marked as lost cause, so we have no flags for it */ printf("%s: rta nan, lost 100%%", host->name); } - } else { /* !icmp_recv */ - printf("%s", host->name); - /* rta text output */ - if (rta_mode) { - if (status == STATE_OK) - printf(" rta %0.3fms", host->rta / 1000); - else if (status==STATE_WARNING && host->rta_status==status) - printf(" rta %0.3fms > %0.3fms", (float)host->rta / 1000, (float)warn.rta/1000); - else if (status==STATE_CRITICAL && host->rta_status==status) - printf(" rta %0.3fms > %0.3fms", (float)host->rta / 1000, (float)crit.rta/1000); - } - /* pl text output */ - if (pl_mode) { - if (status == STATE_OK) - printf(" lost %u%%", host->pl); - else if (status==STATE_WARNING && host->pl_status==status) - printf(" lost %u%% > %u%%", host->pl, warn.pl); - else if (status==STATE_CRITICAL && host->pl_status==status) - printf(" lost %u%% > %u%%", host->pl, crit.pl); - } - /* jitter text output */ - if (jitter_mode) { - if (status == STATE_OK) - printf(" jitter %0.3fms", (float)host->jitter); - else if (status==STATE_WARNING && host->jitter_status==status) - printf(" jitter %0.3fms > %0.3fms", (float)host->jitter, warn.jitter); - else if (status==STATE_CRITICAL && host->jitter_status==status) - printf(" jitter %0.3fms > %0.3fms", (float)host->jitter, crit.jitter); - } - /* mos text output */ - if (mos_mode) { - if (status == STATE_OK) - printf(" MOS %0.1f", (float)host->mos); - else if (status==STATE_WARNING && host->mos_status==status) - printf(" MOS %0.1f < %0.1f", (float)host->mos, (float)warn.mos); - else if (status==STATE_CRITICAL && host->mos_status==status) - printf(" MOS %0.1f < %0.1f", (float)host->mos, (float)crit.mos); - } - /* score text output */ - if (score_mode) { - if (status == STATE_OK) - printf(" Score %u", (int)host->score); - else if (status==STATE_WARNING && host->score_status==status ) - printf(" Score %u < %u", (int)host->score, (int)warn.score); - else if (status==STATE_CRITICAL && host->score_status==status ) - printf(" Score %u < %u", (int)host->score, (int)crit.score); - } - /* order statis text output */ - if (order_mode) { - if (status == STATE_OK) - printf(" Packets in order"); - else if (status==STATE_CRITICAL && host->order_status==status) - printf(" Packets out of order"); - } } + else { /* !icmp_recv */ + printf("%s: rta %0.3fms, lost %u%%", + host->name, host->rta / 1000, host->pl); + } + host = host->next; } /* iterate once more for pretty perfparse output */ - if (!(!rta_mode && !pl_mode && !jitter_mode && !score_mode && !mos_mode && order_mode)) { - printf("|"); - } + printf("|"); i = 0; host = list; while(host) { if(debug) puts(""); - - if (rta_mode) { - if (host->pl<100) { - printf("%srta=%0.3fms;%0.3f;%0.3f;0; %srtmax=%0.3fms;;;; %srtmin=%0.3fms;;;; ", - (targets > 1) ? host->name : "", - host->rta / 1000, (float)warn.rta / 1000, (float)crit.rta / 1000, - (targets > 1) ? host->name : "", (float)host->rtmax / 1000, - (targets > 1) ? host->name : "", (host->rtmin < INFINITY) ? (float)host->rtmin / 1000 : (float)0); - } else { - printf("%srta=U;;;; %srtmax=U;;;; %srtmin=U;;;; ", - (targets > 1) ? host->name : "", - (targets > 1) ? host->name : "", - (targets > 1) ? host->name : ""); - } - } - - if (pl_mode) { - printf("%spl=%u%%;%u;%u;0;100 ", (targets > 1) ? host->name : "", host->pl, warn.pl, crit.pl); - } - - if (jitter_mode) { - if (host->pl<100) { - printf("%sjitter_avg=%0.3fms;%0.3f;%0.3f;0; %sjitter_max=%0.3fms;;;; %sjitter_min=%0.3fms;;;; ", - (targets > 1) ? host->name : "", - (float)host->jitter, - (float)warn.jitter, - (float)crit.jitter, - (targets > 1) ? host->name : "", - (float)host->jitter_max / 1000, (targets > 1) ? host->name : "", - (float)host->jitter_min / 1000 - ); - } else { - printf("%sjitter_avg=U;;;; %sjitter_max=U;;;; %sjitter_min=U;;;; ", - (targets > 1) ? host->name : "", - (targets > 1) ? host->name : "", - (targets > 1) ? host->name : ""); - } - } - - if (mos_mode) { - if (host->pl<100) { - printf("%smos=%0.1f;%0.1f;%0.1f;0;5 ", - (targets > 1) ? host->name : "", - (float)host->mos, - (float)warn.mos, - (float)crit.mos); - } else { - printf("%smos=U;;;; ", (targets > 1) ? host->name : ""); - } - } - - if (score_mode) { - if (host->pl<100) { - printf("%sscore=%u;%u;%u;0;100 ", - (targets > 1) ? host->name : "", - (int)host->score, - (int)warn.score, - (int)crit.score); - } else { - printf("%sscore=U;;;; ", (targets > 1) ? host->name : ""); - } - } + printf("%srta=%0.3fms;%0.3f;%0.3f;0; %spl=%u%%;%u;%u;; %srtmax=%0.3fms;;;; %srtmin=%0.3fms;;;; ", + (targets > 1) ? host->name : "", + host->rta / 1000, (float)warn.rta / 1000, (float)crit.rta / 1000, + (targets > 1) ? host->name : "", host->pl, warn.pl, crit.pl, + (targets > 1) ? host->name : "", (float)host->rtmax / 1000, + (targets > 1) ? host->name : "", (host->rtmin < DBL_MAX) ? (float)host->rtmin / 1000 : (float)0); host = host->next; } @@ -1698,7 +1315,6 @@ add_target_ip(char *arg, struct sockaddr_storage *in) /* set the values. use calling name for output */ host->name = strdup(arg); - /* fill out the sockaddr_storage struct */ if(address_family == AF_INET) { host_sin = (struct sockaddr_in *)&host->saddr_in; @@ -1711,22 +1327,7 @@ add_target_ip(char *arg, struct sockaddr_storage *in) memcpy(host_sin6->sin6_addr.s6_addr, sin6->sin6_addr.s6_addr, sizeof host_sin6->sin6_addr.s6_addr); } - /* fill out the sockaddr_in struct */ - host->rtmin = INFINITY; - host->rtmax = 0; - host->jitter=0; - host->jitter_max=0; - host->jitter_min=INFINITY; - host->last_tdiff=0; - host->order_status=STATE_OK; - host->last_icmp_seq=0; - host->rta_status=0; - host->pl_status=0; - host->jitter_status=0; - host->mos_status=0; - host->score_status=0; - host->pl_status=0; - + host->rtmin = DBL_MAX; if(!list) list = cursor = host; else cursor->next = host; @@ -1741,7 +1342,7 @@ add_target_ip(char *arg, struct sockaddr_storage *in) static int add_target(char *arg) { - int error, result = -1; + int error, result; struct sockaddr_storage ip; struct addrinfo hints, *res, *p; struct sockaddr_in *sin; @@ -1810,7 +1411,7 @@ add_target(char *arg) } break; } - freeaddrinfo(res); + freeaddrinfo(res); return 0; } @@ -1832,26 +1433,20 @@ set_source_ip(char *arg) static in_addr_t get_ip_address(const char *ifname) { - // TODO: Rewrite this so the function return an error and we exit somewhere else - struct sockaddr_in ip; - ip.sin_addr.s_addr = 0; // Fake initialization to make compiler happy #if defined(SIOCGIFADDR) struct ifreq ifr; + struct sockaddr_in ip; strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1); - ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; - if(ioctl(icmp_sock, SIOCGIFADDR, &ifr) == -1) crash("Cannot determine IP address of interface %s", ifname); - memcpy(&ip, &ifr.ifr_addr, sizeof(ip)); + return ip.sin_addr.s_addr; #else - (void) ifname; errno = 0; crash("Cannot get interface IP address on this platform."); #endif - return ip.sin_addr.s_addr; } /* @@ -1874,7 +1469,7 @@ get_timevar(const char *str) /* unit might be given as ms|m (millisec), * us|u (microsec) or just plain s, for seconds */ - p = '\0'; + u = p = '\0'; u = str[len - 1]; if(len >= 2 && !isdigit((int)str[len - 2])) p = str[len - 2]; if(p && u == 's') u = p; @@ -1932,81 +1527,6 @@ get_threshold(char *str, threshold *th) return 0; } -/* - * This functions receives a pointer to a string which should contain a threshold for the - * rta, packet_loss, jitter, mos or score mode in the form number,number[m|%]* assigns the - * parsed number to the corresponding threshold variable. - * @param[in,out] str String containing the given threshold values - * @param[in] length strlen(str) - * @param[out] warn Pointer to the warn threshold struct to which the values should be assigned - * @param[out] crit Pointer to the crit threshold struct to which the values should be assigned - * @param[in] mode Determines whether this a threshold for rta, packet_loss, jitter, mos or score (exclusively) - */ -static bool get_threshold2(char *str, size_t length, threshold *warn, threshold *crit, threshold_mode mode) { - if (!str || !length || !warn || !crit) return false; - - - // p points to the last char in str - char *p = &str[length - 1]; - - // first_iteration is bof-stop on stupid libc's - bool first_iteration = true; - - while(p != &str[0]) { - if( (*p == 'm') || (*p == '%') ) { - *p = '\0'; - } else if(*p == ',' && !first_iteration) { - *p = '\0'; /* reset it so get_timevar(str) works nicely later */ - - char *start_of_value = p + 1; - - if (!parse_threshold2_helper(start_of_value, strlen(start_of_value), crit, mode)){ - return false; - } - - } - first_iteration = false; - p--; - } - - return parse_threshold2_helper(p, strlen(p), warn, mode); -} - -static bool parse_threshold2_helper(char *s, size_t length, threshold *thr, threshold_mode mode) { - char *resultChecker = {0}; - - switch (mode) { - case const_rta_mode: - thr->rta = strtod(s, &resultChecker) * 1000; - break; - case const_packet_loss_mode: - thr->pl = (unsigned char)strtoul(s, &resultChecker, 0); - break; - case const_jitter_mode: - thr->jitter = strtod(s, &resultChecker); - - break; - case const_mos_mode: - thr->mos = strtod(s, &resultChecker); - break; - case const_score_mode: - thr->score = strtod(s, &resultChecker); - break; - } - - if (resultChecker == s) { - // Failed to parse - return false; - } - - if (resultChecker != (s + length)) { - // Trailing symbols - return false; - } - - return true; -} - unsigned short icmp_checksum(uint16_t *p, size_t n) { @@ -2032,91 +1552,74 @@ icmp_checksum(uint16_t *p, size_t n) void print_help(void) { - /*print_revision (progname);*/ /* FIXME: Why? */ - printf ("Copyright (c) 2005 Andreas Ericsson \n"); - printf (COPYRIGHT, copyright, email); + /*print_revision (progname);*/ /* FIXME: Why? */ - printf ("\n\n"); + printf ("Copyright (c) 2005 Andreas Ericsson \n"); + printf (COPYRIGHT, copyright, email); - print_usage (); + printf ("\n\n"); - printf (UT_HELP_VRSN); - printf (UT_EXTRA_OPTS); + print_usage (); - printf (" %s\n", "-H"); - printf (" %s\n", _("specify a target")); - printf (" %s\n", "[-4|-6]"); - printf (" %s\n", _("Use IPv4 (default) or IPv6 to communicate with the targets")); - printf (" %s\n", "-w"); - printf (" %s", _("warning threshold (currently ")); - printf ("%0.3fms,%u%%)\n", (float)warn.rta / 1000, warn.pl); - printf (" %s\n", "-c"); - printf (" %s", _("critical threshold (currently ")); - printf ("%0.3fms,%u%%)\n", (float)crit.rta / 1000, crit.pl); + printf (UT_HELP_VRSN); + printf (UT_EXTRA_OPTS); - printf (" %s\n", "-R"); - printf (" %s\n", _("RTA, round trip average, mode warning,critical, ex. 100ms,200ms unit in ms")); - printf (" %s\n", "-P"); - printf (" %s\n", _("packet loss mode, ex. 40%,50% , unit in %")); - printf (" %s\n", "-J"); - printf (" %s\n", _("jitter mode warning,critical, ex. 40.000ms,50.000ms , unit in ms ")); - printf (" %s\n", "-M"); - printf (" %s\n", _("MOS mode, between 0 and 4.4 warning,critical, ex. 3.5,3.0")); - printf (" %s\n", "-S"); - printf (" %s\n", _("score mode, max value 100 warning,critical, ex. 80,70 ")); - printf (" %s\n", "-O"); - printf (" %s\n", _("detect out of order ICMP packts ")); - printf (" %s\n", "-H"); - printf (" %s\n", _("specify a target")); - printf (" %s\n", "-s"); - printf (" %s\n", _("specify a source IP address or device name")); - printf (" %s\n", "-n"); - printf (" %s", _("number of packets to send (currently ")); - printf ("%u)\n",packets); - printf (" %s\n", "-p"); - printf (" %s", _("number of packets to send (currently ")); - printf ("%u)\n",packets); - printf (" %s\n", "-i"); - printf (" %s", _("max packet interval (currently ")); - printf ("%0.3fms)\n",(float)pkt_interval / 1000); - printf (" %s\n", "-I"); - printf (" %s", _("max target interval (currently ")); - printf ("%0.3fms)\n", (float)target_interval / 1000); - printf (" %s\n", "-m"); - printf (" %s",_("number of alive hosts required for success")); - printf ("\n"); - printf (" %s\n", "-l"); - printf (" %s", _("TTL on outgoing packets (currently ")); - printf ("%u)\n", ttl); - printf (" %s\n", "-t"); - printf (" %s",_("timeout value (seconds, currently ")); - printf ("%u)\n", timeout); - printf (" %s\n", "-b"); - printf (" %s\n", _("Number of icmp data bytes to send")); - printf (" %s %u + %d)\n", _("Packet size will be data bytes + icmp header (currently"),icmp_data_size, ICMP_MINLEN); - printf (" %s\n", "-v"); - printf (" %s\n", _("verbose")); - printf ("\n"); - printf ("%s\n", _("Notes:")); - printf (" %s\n", _("If none of R,P,J,M,S or O is specified, default behavior is -R -P")); - printf (" %s\n", _("The -H switch is optional. Naming a host (or several) to check is not.")); - printf ("\n"); - printf (" %s\n", _("Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%")); - printf (" %s\n", _("packet loss. The default values should work well for most users.")); - printf (" %s\n", _("You can specify different RTA factors using the standardized abbreviations")); - printf (" %s\n", _("us (microseconds), ms (milliseconds, default) or just plain s for seconds.")); - /* -d not yet implemented */ - /* printf ("%s\n", _("Threshold format for -d is warn,crit. 12,14 means WARNING if >= 12 hops")); - printf ("%s\n", _("are spent and CRITICAL if >= 14 hops are spent.")); - printf ("%s\n\n", _("NOTE: Some systems decrease TTL when forming ICMP_ECHOREPLY, others do not."));*/ - printf ("\n"); - printf (" %s\n", _("The -v switch can be specified several times for increased verbosity.")); - /* printf ("%s\n", _("Long options are currently unsupported.")); - printf ("%s\n", _("Options marked with * require an argument")); - */ + printf (" %s\n", "-H"); + printf (" %s\n", _("specify a target")); + printf (" %s\n", "[-4|-6]"); + printf (" %s\n", _("Use IPv4 (default) or IPv6 to communicate with the targets")); + printf (" %s\n", "-w"); + printf (" %s", _("warning threshold (currently ")); + printf ("%0.3fms,%u%%)\n", (float)warn.rta / 1000, warn.pl); + printf (" %s\n", "-c"); + printf (" %s", _("critical threshold (currently ")); + printf ("%0.3fms,%u%%)\n", (float)crit.rta / 1000, crit.pl); + printf (" %s\n", "-s"); + printf (" %s\n", _("specify a source IP address or device name")); + printf (" %s\n", "-n"); + printf (" %s", _("number of packets to send (currently ")); + printf ("%u)\n",packets); + printf (" %s\n", "-i"); + printf (" %s", _("max packet interval (currently ")); + printf ("%0.3fms)\n",(float)pkt_interval / 1000); + printf (" %s\n", "-I"); + printf (" %s", _("max target interval (currently ")); + printf ("%0.3fms)\n", (float)target_interval / 1000); + printf (" %s\n", "-m"); + printf (" %s",_("number of alive hosts required for success")); + printf ("\n"); + printf (" %s\n", "-l"); + printf (" %s", _("TTL on outgoing packets (currently ")); + printf ("%u)\n", ttl); + printf (" %s\n", "-t"); + printf (" %s",_("timeout value (seconds, currently ")); + printf ("%u)\n", timeout); + printf (" %s\n", "-b"); + printf (" %s\n", _("Number of icmp data bytes to send")); + printf (" %s %u + %d)\n", _("Packet size will be data bytes + icmp header (currently"),icmp_data_size, ICMP_MINLEN); + printf (" %s\n", "-v"); + printf (" %s\n", _("verbose")); - printf (UT_SUPPORT); + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (" %s\n", _("The -H switch is optional. Naming a host (or several) to check is not.")); + printf ("\n"); + printf (" %s\n", _("Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%")); + printf (" %s\n", _("packet loss. The default values should work well for most users.")); + printf (" %s\n", _("You can specify different RTA factors using the standardized abbreviations")); + printf (" %s\n", _("us (microseconds), ms (milliseconds, default) or just plain s for seconds.")); +/* -d not yet implemented */ +/* printf ("%s\n", _("Threshold format for -d is warn,crit. 12,14 means WARNING if >= 12 hops")); + printf ("%s\n", _("are spent and CRITICAL if >= 14 hops are spent.")); + printf ("%s\n\n", _("NOTE: Some systems decrease TTL when forming ICMP_ECHOREPLY, others do not."));*/ + printf ("\n"); + printf (" %s\n", _("The -v switch can be specified several times for increased verbosity.")); +/* printf ("%s\n", _("Long options are currently unsupported.")); + printf ("%s\n", _("Options marked with * require an argument")); +*/ + + printf (UT_SUPPORT); } @@ -2124,6 +1627,6 @@ print_help(void) void print_usage (void) { - printf ("%s\n", _("Usage:")); - printf(" %s [options] [-H] host1 host2 hostN\n", progname); + printf ("%s\n", _("Usage:")); + printf(" %s [options] [-H] host1 host2 hostN\n", progname); } diff --git a/plugins-root/pst3.c b/plugins-root/pst3.c index 1f69f3a..c3589f0 100644 --- a/plugins-root/pst3.c +++ b/plugins-root/pst3.c @@ -257,6 +257,6 @@ void usage() { printf("\tRSS - Real memory usage (kilobytes)\n"); printf("\t%%CPU - CPU usage\n"); printf("\tCOMMAND - Command being run\n"); - printf("\tARGS - Full command line with arguments\n"); + printf("\tARGS - Full command line with arguements\n"); return; } diff --git a/plugins-root/t/check_icmp.t b/plugins-root/t/check_icmp.t index de1d88d..f6aa681 100644 --- a/plugins-root/t/check_icmp.t +++ b/plugins-root/t/check_icmp.t @@ -12,14 +12,14 @@ my $allow_sudo = getTestParameter( "NP_ALLOW_SUDO", "no" ); if ($allow_sudo eq "yes" or $> == 0) { - plan tests => 40; + plan tests => 20; } else { plan skip_all => "Need sudo to test check_icmp"; } my $sudo = $> == 0 ? '' : 'sudo'; -my $successOutput = '/OK - .*? rta (?:[\d\.]+ms)|(?:nan), lost \d+%/'; -my $failureOutput = '/(WARNING|CRITICAL) - .*? rta (?:[\d\.]+ms > [\d\.]+ms|nan)/'; +my $successOutput = '/OK - .*?: rta (?:[\d\.]+ms)|(?:nan), lost \d+%/'; +my $failureOutput = '/(WARNING|CRITICAL) - .*?: rta [\d\.]+ms, lost \d%/'; my $host_responsive = getTestParameter( "NP_HOST_RESPONSIVE", "The hostname of system responsive to network requests", @@ -54,11 +54,10 @@ is( $res->return_code, 2, "Syntax ok, with forced critical" ); like( $res->output, $failureOutput, "Output OK" ); $res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_nonresponsive -w 10000ms,100% -c 10000ms,100% -t 2" + "$sudo ./check_icmp -H $host_nonresponsive -w 10000ms,100% -c 10000ms,100%" ); is( $res->return_code, 2, "Timeout - host nonresponsive" ); -like( $res->output, '/pl=100%/', "Error contains 'pl=100%' string (for 100% packet loss)" ); -like( $res->output, '/rta=U/', "Error contains 'rta=U' string" ); +like( $res->output, '/100%/', "Error contains '100%' string (for 100% packet loss)" ); $res = NPTest->testCmd( "$sudo ./check_icmp -w 10000ms,100% -c 10000ms,100%" @@ -67,13 +66,13 @@ is( $res->return_code, 3, "No hostname" ); like( $res->output, '/No hosts to check/', "Output with appropriate error message"); $res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_nonresponsive -w 10000ms,100% -c 10000ms,100% -n 1 -m 0 -t 2" + "$sudo ./check_icmp -H $host_nonresponsive -w 10000ms,100% -c 10000ms,100% -n 1 -m 0" ); is( $res->return_code, 0, "One host nonresponsive - zero required" ); like( $res->output, $successOutput, "Output OK" ); $res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -H $host_nonresponsive -w 10000ms,100% -c 10000ms,100% -n 1 -m 1 -t 2" + "$sudo ./check_icmp -H $host_responsive -H $host_nonresponsive -w 10000ms,100% -c 10000ms,100% -n 1 -m 1" ); is( $res->return_code, 0, "One of two host nonresponsive - one required" ); like( $res->output, $successOutput, "Output OK" ); @@ -93,51 +92,5 @@ like( $res->output, $successOutput, "Output OK" ); $res = NPTest->testCmd( "$sudo ./check_icmp -H $host_responsive -b 65507" ); -is( $res->return_code, 0, "Try max packet size" ); +is( $res->return_code, 0, "Try max paket size" ); like( $res->output, $successOutput, "Output OK - Didn't overflow" ); - -$res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -R 100,100 -n 1 -t 2" - ); -is( $res->return_code, 0, "rta works" ); -like( $res->output, $successOutput, "Output OK" ); -$res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -P 80,90 -n 1 -t 2" - ); -is( $res->return_code, 0, "pl works" ); -like( $res->output, '/lost 0%/', "Output OK" ); - -$res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -J 80,90 -t 2" - ); -is( $res->return_code, 0, "jitter works" ); -like( $res->output, '/jitter \d/', "Output OK" ); - -$res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -M 4,3 -t 2" - ); -is( $res->return_code, 0, "mos works" ); -like( $res->output, '/MOS \d/', "Output OK" ); - -$res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -S 80,70 -t 2" - ); -is( $res->return_code, 0, "score works" ); -like( $res->output, '/Score \d/', "Output OK" ); - -$res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -O -t 2" - ); -is( $res->return_code, 0, "order works" ); -like( $res->output, '/Packets in order/', "Output OK" ); - -$res = NPTest->testCmd( - "$sudo ./check_icmp -H $host_responsive -O -S 80,70 -M 4,3 -J 80,90 -P 80,90 -R 100,100 -t 2" - ); -is( $res->return_code, 0, "order works" ); -like( $res->output, '/Packets in order/', "Output OK" ); -like( $res->output, '/Score \d/', "Output OK" ); -like( $res->output, '/MOS \d/', "Output OK" ); -like( $res->output, '/jitter \d/', "Output OK" ); -like( $res->output, '/lost 0%/', "Output OK" ); -like( $res->output, $successOutput, "Output OK" ); diff --git a/plugins-scripts/Makefile.am b/plugins-scripts/Makefile.am index 7879791..088a445 100644 --- a/plugins-scripts/Makefile.am +++ b/plugins-scripts/Makefile.am @@ -16,13 +16,13 @@ VPATH=$(top_srcdir) $(top_srcdir)/plugins-scripts $(top_srcdir)/plugins-scripts/ libexec_SCRIPTS = check_breeze check_disk_smb check_flexlm check_ircd \ check_log check_oracle check_rpc check_sensors check_wave \ check_ifstatus check_ifoperstatus check_mailq check_file_age \ - check_uptime check_mssql \ + check_uptime \ utils.sh utils.pm EXTRA_DIST=check_breeze.pl check_disk_smb.pl check_flexlm.pl check_ircd.pl \ check_log.sh check_oracle.sh check_rpc.pl check_sensors.sh \ check_ifstatus.pl check_ifoperstatus.pl check_wave.pl check_mailq.pl check_file_age.pl \ - check_uptime.pl check_mssql.pl \ + check_uptime.pl \ utils.sh.in utils.pm.in t EDIT = sed \ diff --git a/plugins-scripts/Makefile.in b/plugins-scripts/Makefile.in index 4265d6a..dc71f9e 100644 --- a/plugins-scripts/Makefile.in +++ b/plugins-scripts/Makefile.in @@ -72,7 +72,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -92,58 +91,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -151,57 +142,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -440,6 +424,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/utils.pm.in \ $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) VPATH = $(top_srcdir) $(top_srcdir)/plugins-scripts $(top_srcdir)/plugins-scripts/t +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -448,7 +433,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -459,11 +443,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -499,476 +481,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -977,7 +836,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -985,11 +843,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -999,17 +855,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -1019,22 +871,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -1054,7 +901,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -1064,37 +910,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -1105,24 +944,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1130,21 +963,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1158,23 +987,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1185,29 +1007,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1219,9 +1036,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1237,16 +1051,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1256,7 +1066,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1267,17 +1076,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1291,7 +1096,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1316,10 +1120,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1331,8 +1135,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1351,24 +1153,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1377,6 +1170,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1384,23 +1178,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1412,7 +1201,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1420,12 +1208,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1437,7 +1222,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1495,63 +1279,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1562,61 +1318,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1634,9 +1374,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1646,11 +1384,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1658,30 +1391,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1689,24 +1413,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1714,42 +1432,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -1757,10 +1460,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -1779,21 +1480,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -1806,9 +1500,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -1840,10 +1531,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -1858,9 +1547,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = @localedir@ -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -1885,13 +1573,13 @@ SUFFIXES = .pl .sh libexec_SCRIPTS = check_breeze check_disk_smb check_flexlm check_ircd \ check_log check_oracle check_rpc check_sensors check_wave \ check_ifstatus check_ifoperstatus check_mailq check_file_age \ - check_uptime check_mssql \ + check_uptime \ utils.sh utils.pm EXTRA_DIST = check_breeze.pl check_disk_smb.pl check_flexlm.pl check_ircd.pl \ check_log.sh check_oracle.sh check_rpc.pl check_sensors.sh \ check_ifstatus.pl check_ifoperstatus.pl check_wave.pl check_mailq.pl check_file_age.pl \ - check_uptime.pl check_mssql.pl \ + check_uptime.pl \ utils.sh.in utils.pm.in t EDIT = sed \ diff --git a/plugins-scripts/check_breeze.pl b/plugins-scripts/check_breeze.pl index 531625c..05b9920 100755 --- a/plugins-scripts/check_breeze.pl +++ b/plugins-scripts/check_breeze.pl @@ -14,9 +14,8 @@ sub print_help (); sub print_usage (); $ENV{'PATH'}='@TRUSTED_PATH@'; -$ENV{'BASH_ENV'}=''; +$ENV{'BASH_ENV'}=''; $ENV{'ENV'}=''; -$ENV{'CDPATH'}=''; Getopt::Long::Configure('bundling'); GetOptions diff --git a/plugins-scripts/check_disk_smb.pl b/plugins-scripts/check_disk_smb.pl index eda8dd4..15d1634 100644 --- a/plugins-scripts/check_disk_smb.pl +++ b/plugins-scripts/check_disk_smb.pl @@ -28,7 +28,7 @@ use FindBin; use lib "$FindBin::Bin"; use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); -# make us session leader which makes all children exit if we do +# make us session leader which makes all childs exit if we do setsid; sub print_help (); @@ -226,8 +226,7 @@ if (/\s*(\d*) blocks of size (\d*)\. (\d*) blocks available/) { my ($total_bytes) = $1 * $2; my ($occupied_bytes) = $1 * $2 - $avail_bytes; my ($avail) = $avail_bytes/1024; - my ($capper); - if ($1!=0) { $capper = int(($3/$1)*100) } else { $capper=100 }; + my ($capper) = int(($3/$1)*100); my ($mountpt) = "\\\\$host\\$share"; # TODO : why is the kB the standard unit for args ? diff --git a/plugins-scripts/check_ifoperstatus.pl b/plugins-scripts/check_ifoperstatus.pl index e335cda..c190ce9 100755 --- a/plugins-scripts/check_ifoperstatus.pl +++ b/plugins-scripts/check_ifoperstatus.pl @@ -134,7 +134,7 @@ if (defined $ifdescr || defined $iftype) { } if ($status==0) { $state = "UNKNOWN"; - printf "$state: could not retrieve ifdescr/iftype snmpkey - $status-$snmpkey\n"; + printf "$state: could not retrive ifdescr/iftype snmpkey - $status-$snmpkey\n"; $session->close; exit $ERRORS{$state}; } @@ -187,7 +187,7 @@ if (defined $ifXTable) { $name = $response->{$snmpIfDescr} ; } -## if AdminStatus is down - some one made a conscious effort to change config +## if AdminStatus is down - some one made a consious effort to change config ## if ( not ($response->{$snmpIfAdminStatus} == 1) ) { $answer = "Interface $name (index $snmpkey) is administratively down."; @@ -286,7 +286,7 @@ sub print_usage() { printf "check_ifoperstatus -k -H [-C ]\n"; printf "Copyright (C) 2000 Christoph Kron\n"; printf "check_ifoperstatus.pl comes with ABSOLUTELY NO WARRANTY\n"; - printf "This program is licensed under the terms of the "; + printf "This programm is licensed under the terms of the "; printf "GNU General Public License\n(check source code for details)\n"; printf "\n\n"; } @@ -424,7 +424,7 @@ sub process_arguments() { if (defined $seclevel && defined $secname) { $session_opts{'-username'} = $secname; - # Must define a security level even though default is noAuthNoPriv + # Must define a security level even though defualt is noAuthNoPriv unless ( grep /^$seclevel$/, qw(noAuthNoPriv authNoPriv authPriv) ) { usage("Must define a valid security level even though default is noAuthNoPriv"); } diff --git a/plugins-scripts/check_ifstatus.pl b/plugins-scripts/check_ifstatus.pl index 38b87fc..32984e5 100755 --- a/plugins-scripts/check_ifstatus.pl +++ b/plugins-scripts/check_ifstatus.pl @@ -354,7 +354,7 @@ sub process_arguments() { if (defined $seclevel && defined $secname) { $session_opts{'-username'} = $secname; - # Must define a security level even though default is noAuthNoPriv + # Must define a security level even though defualt is noAuthNoPriv unless ( grep /^$seclevel$/, qw(noAuthNoPriv authNoPriv authPriv) ) { usage("Must define a valid security level even though default is noAuthNoPriv"); } diff --git a/plugins-scripts/check_ircd.pl b/plugins-scripts/check_ircd.pl index 15a7080..d869ae7 100755 --- a/plugins-scripts/check_ircd.pl +++ b/plugins-scripts/check_ircd.pl @@ -40,16 +40,15 @@ # ----------------------------------------------------------------[ Require ]-- -require 5.14.0; +require 5.004; # -------------------------------------------------------------------[ Uses ]-- +use Socket; use strict; -use IO::Socket::IP; use Getopt::Long; -use vars qw($opt_V $opt_h $opt_t $opt_p $opt_H $opt_w $opt_c $opt_4 $opt_6 $verbose); +use vars qw($opt_V $opt_h $opt_t $opt_p $opt_H $opt_w $opt_c $verbose); use vars qw($PROGNAME); -use vars qw($ClientSocket); use FindBin; use lib "$FindBin::Bin"; use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); @@ -59,8 +58,9 @@ use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); sub print_help (); sub print_usage (); sub connection ($$$$); +sub bindRemote ($$); -# -------------------------------------------------------------[ Environment ]-- +# -------------------------------------------------------------[ Enviroment ]-- $ENV{'PATH'}='@TRUSTED_PATH@'; $ENV{'BASH_ENV'}=''; @@ -104,7 +104,7 @@ sub connection ($$$$) $answer = "Server $in_remotehost has less than 0 users! Something is Really WRONG!\n"; } - print $ClientSocket "quit\n"; + print ClientSocket "quit\n"; print $answer; exit $ERRORS{$state}; } @@ -112,7 +112,7 @@ sub connection ($$$$) # ------------------------------------------------------------[ print_usage ]-- sub print_usage () { - print "Usage: $PROGNAME -H [-w ] [-c ] [-p ] [ -4|-6 ]\n"; + print "Usage: $PROGNAME -H [-w ] [-c ] [-p ]\n"; } # -------------------------------------------------------------[ print_help ]-- @@ -135,15 +135,35 @@ Perl Check IRCD plugin for monitoring Number of connected users which generates a critical state (Default: 100) -p, --port=INTEGER Port that the ircd daemon is running on (Default: 6667) --4, --use-ipv4 - Use IPv4 connection --6, --use-ipv6 - Use IPv6 connection -v, --verbose Print extra debugging information "; } +# -------------------------------------------------------------[ bindRemote ]-- + +sub bindRemote ($$) +{ + my ($in_remotehost, $in_remoteport) = @_; + my $proto = getprotobyname('tcp'); + my $sockaddr; + my $that; + my ($name, $aliases,$type,$len,$thataddr) = gethostbyname($in_remotehost); + + if (!socket(ClientSocket,AF_INET, SOCK_STREAM, $proto)) { + print "IRCD UNKNOWN: Could not start socket ($!)\n"; + exit $ERRORS{"UNKNOWN"}; + } + $sockaddr = 'S n a4 x8'; + $that = pack($sockaddr, AF_INET, $in_remoteport, $thataddr); + if (!connect(ClientSocket, $that)) { + print "IRCD UNKNOWN: Could not connect socket ($!)\n"; + exit $ERRORS{"UNKNOWN"}; + } + select(ClientSocket); $| = 1; select(STDOUT); + return \*ClientSocket; +} + # ===================================================================[ MAIN ]== MAIN: @@ -159,8 +179,6 @@ MAIN: "w=i" => \$opt_w, "warning=i" => \$opt_w, "c=i" => \$opt_c, "critical=i" => \$opt_c, "p=i" => \$opt_p, "port=i" => \$opt_p, - "4" => \$opt_4, "use-ipv4" => \$opt_4, - "6" => \$opt_6, "use-ipv6" => \$opt_6, "H=s" => \$opt_H, "hostname=s" => \$opt_H); if ($opt_V) { @@ -171,7 +189,7 @@ MAIN: if ($opt_h) {print_help(); exit $ERRORS{'UNKNOWN'};} ($opt_H) || ($opt_H = shift @ARGV) || usage("Host name/address not specified\n"); - my $remotehost = $1 if ($opt_H =~ /([-.:%A-Za-z0-9]+)/); + my $remotehost = $1 if ($opt_H =~ /([-.A-Za-z0-9]+)/); ($remotehost) || usage("Invalid host: $opt_H\n"); ($opt_w) || ($opt_w = shift @ARGV) || ($opt_w = 50); @@ -190,34 +208,27 @@ MAIN: # Just in case of problems, let's not hang the monitoring system $SIG{'ALRM'} = sub { - print "Something is Taking a Long Time, Increase Your TIMEOUT (Currently Set At $TIMEOUT Seconds)\n"; + print "Somthing is Taking a Long Time, Increase Your TIMEOUT (Currently Set At $TIMEOUT Seconds)\n"; exit $ERRORS{"UNKNOWN"}; }; alarm($TIMEOUT); + my ($name, $alias, $proto) = getprotobyname('tcp'); + print "MAIN(debug): binding to remote host: $remotehost -> $remoteport\n" if $verbose; - $ClientSocket = IO::Socket::IP->new( - PeerHost => $remotehost, - PeerService => $remoteport, - Family => $opt_4 ? AF_INET : $opt_6 ? AF_INET6 : undef, - Type => SOCK_STREAM, - ); - if (!$ClientSocket) { - print "IRCD UNKNOWN: Could not start socket ($!)\n"; - exit $ERRORS{"UNKNOWN"}; - } + my $ClientSocket = &bindRemote($remotehost,$remoteport); - print $ClientSocket "NICK $NICK\nUSER $USER_INFO\n"; + print ClientSocket "NICK $NICK\nUSER $USER_INFO\n"; - while (<$ClientSocket>) { + while () { print "MAIN(debug): default var = $_\n" if $verbose; # DALnet,LagNet,UnderNet etc. Require this! # Replies with a PONG when presented with a PING query. # If a server doesn't require it, it will be ignored. - if (m/^PING (.*)/) {print $ClientSocket "PONG $1\n";} + if (m/^PING (.*)/) {print ClientSocket "PONG $1\n";} alarm(0); diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index 8ecdd31..c623a8d 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -105,11 +105,11 @@ while test -n "$1"; do case "$1" in -h | --help) print_help - exit "$STATE_UNKNOWN" + exit "$STATE_OK" ;; -V | --version) print_revision "$PROGNAME" "$REVISION" - exit "$STATE_UNKNOWN" + exit "$STATE_OK" ;; -F | --filename) logfile=$2 diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl index f143c6f..27073d3 100755 --- a/plugins-scripts/check_mailq.pl +++ b/plugins-scripts/check_mailq.pl @@ -1,10 +1,10 @@ #!@PERL@ -w # check_mailq - check to see how many messages are in the smtp queue awating -# transmittal. +# transmittal. # # Initial version support sendmail's mailq command -# Support for multiple sendmail queues (Carlos Canau) +# Support for mutiple sendmail queues (Carlos Canau) # Support for qmail (Benjamin Schmid) # License Information: @@ -29,8 +29,8 @@ use POSIX; use strict; use Getopt::Long; use vars qw($opt_V $opt_h $opt_v $verbose $PROGNAME $opt_w $opt_c $opt_t $opt_s $opt_d - $opt_M $mailq $status $state $msg $msg_q $msg_p $opt_W $opt_C $mailq $mailq_args - @lines %srcdomains %dstdomains); + $opt_M $mailq $status $state $msg $msg_q $msg_p $opt_W $opt_C $mailq $mailq_args + @lines %srcdomains %dstdomains); use FindBin; use lib "$FindBin::Bin"; use utils qw(%ERRORS &print_revision &support &usage ); @@ -42,10 +42,10 @@ sub print_usage (); sub process_arguments (); $ENV{'PATH'}='@TRUSTED_PATH@'; -$ENV{'BASH_ENV'}=''; +$ENV{'BASH_ENV'}=''; $ENV{'ENV'}=''; $PROGNAME = "check_mailq"; -$mailq = 'sendmail'; # default +$mailq = 'sendmail'; # default $msg_q = 0 ; $msg_p = 0 ; # If appended, must start with a space @@ -55,49 +55,50 @@ $state = $ERRORS{'UNKNOWN'}; Getopt::Long::Configure('bundling'); $status = process_arguments(); if ($status){ - print "ERROR: processing arguments\n"; - exit $ERRORS{"UNKNOWN"}; + print "ERROR: processing arguments\n"; + exit $ERRORS{"UNKNOWN"}; } if ($opt_s) { - if (defined $utils::PATH_TO_SUDO && -x $utils::PATH_TO_SUDO) { - $sudo = $utils::PATH_TO_SUDO; - } else { - print "ERROR: Cannot execute sudo\n"; - exit $ERRORS{'UNKNOWN'}; - } + if (defined $utils::PATH_TO_SUDO && -x $utils::PATH_TO_SUDO) { + $sudo = $utils::PATH_TO_SUDO; + } else { + print "ERROR: Cannot execute sudo\n"; + exit $ERRORS{'UNKNOWN'}; + } } else { - $sudo = ""; + $sudo = ""; } if ($opt_d) { - $mailq_args = $mailq_args . ' -C ' . $opt_d; + $mailq_args = $mailq_args . ' -C ' . $opt_d; } $SIG{'ALRM'} = sub { - print ("ERROR: timed out waiting for $utils::PATH_TO_MAILQ \n"); - exit $ERRORS{"WARNING"}; + print ("ERROR: timed out waiting for $utils::PATH_TO_MAILQ \n"); + exit $ERRORS{"WARNING"}; }; alarm($opt_t); # switch based on MTA if ($mailq eq "sendmail") { - if( ! $utils::PATH_TO_MAILQ) { - print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; - exit $ERRORS{'UNKNOWN'}; - } - if ( ! -x $utils::PATH_TO_MAILQ) { - print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; - exit $ERRORS{'UNKNOWN'}; - } - - ## open mailq - if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { - print "ERROR: could not open $sudo $utils::PATH_TO_MAILQ \n"; - exit $ERRORS{'UNKNOWN'}; - } + ## open mailq + if ( defined $utils::PATH_TO_MAILQ && -x $utils::PATH_TO_MAILQ ) { + if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { + print "ERROR: could not open $utils::PATH_TO_MAILQ \n"; + exit $ERRORS{'UNKNOWN'}; + } + }elsif( defined $utils::PATH_TO_MAILQ){ + unless (-x $utils::PATH_TO_MAILQ) { + print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; + exit $ERRORS{'UNKNOWN'}; + } + } else { + print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; + exit $ERRORS{'UNKNOWN'}; + } # single queue empty ##/var/spool/mqueue is empty # single queue: 1 @@ -148,226 +149,208 @@ if ($mailq eq "sendmail") { ##/var/spool/mqueue/qF/df is empty ## Total Requests: 1 -# separate submission/transport queues, empty -## MSP Queue status... -## /var/spool/mqueue-client is empty -## Total requests: 0 -## MTA Queue status... -## /var/spool/mqueue is empty -## Total requests: 0 -# separate submission/transport queues: 1 -## MSP Queue status... -## /var/spool/mqueue-client (1 request) -## -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- -## oAJEfhdW014123 5 Fri Nov 19 14:41 jwm -## (Deferred: Connection refused by [127.0.0.1]) -## root -## Total requests: 1 -## MTA Queue status... -## /var/spool/mqueue is empty -## Total requests: 0 + + while () { + + # match email addr on queue listing + if ( (/<.*@.*\.(\w+\.\w+)>/) || (/<.*@(\w+\.\w+)>/) ) { + my $domain = $1; + if (/^\w+/) { + print "$utils::PATH_TO_MAILQ = srcdomain = $domain \n" if $verbose ; + $srcdomains{$domain} ++; + } + next; + } + + # + # ... + # sendmail considers a message with more than one destiny, say N, to the same MX + # to have N messages in queue. + # we will only consider one in this code + if (( /\s\(reply:\sread\serror\sfrom\s.*\.(\w+\.\w+)\.$/ ) || ( /\s\(reply:\sread\serror\sfrom\s(\w+\.\w+)\.$/ ) || + ( /\s\(timeout\swriting\smessage\sto\s.*\.(\w+\.\w+)\.:/ ) || ( /\s\(timeout\swriting\smessage\sto\s(\w+\.\w+)\.:/ ) || + ( /\s\(host\smap:\slookup\s\(.*\.(\w+\.\w+)\):/ ) || ( /\s\(host\smap:\slookup\s\((\w+\.\w+)\):/ ) || + ( /\s\(Deferred:\s.*\s.*\.(\w+\.\w+)\.\)/ ) || ( /\s\(Deferred:\s.*\s(\w+\.\w+)\.\)/ ) ) { + + print "$utils::PATH_TO_MAILQ = dstdomain = $1 \n" if $verbose ; + $dstdomains{$1} ++; + } + + if (/\s+\(I\/O\serror\)/) { + print "$utils::PATH_TO_MAILQ = dstdomain = UNKNOWN \n" if $verbose ; + $dstdomains{'UNKNOWN'} ++; + } - my $this_msg_q = 0; - while () { + # Finally look at the overall queue length + # + if (/mqueue/) { + print "$utils::PATH_TO_MAILQ = $_ "if $verbose ; + if (/ \((\d+) request/) { + # + # single queue: first line + # multi queue: one for each queue. overwrite on multi queue below + $msg_q = $1 ; + } + } elsif (/^\s+Total\sRequests:\s(\d+)$/i) { + print "$utils::PATH_TO_MAILQ = $_ \n" if $verbose ; + # + # multi queue: last line + $msg_q = $1 ; + } + + } + - # match email addr on queue listing - if ( (/<.*@.*\.(\w+\.\w+)>/) || (/<.*@(\w+\.\w+)>/) ) { - my $domain = $1; - if (/^\w+/) { - print "$utils::PATH_TO_MAILQ = srcdomain = $domain \n" if $verbose ; - $srcdomains{$domain} ++; - } - next; - } + ## close mailq - # - # ... - # sendmail considers a message with more than one destiny, say N, to the same MX - # to have N messages in queue. - # we will only consider one in this code - if (( /\s\(reply:\sread\serror\sfrom\s.*\.(\w+\.\w+)\.$/ ) || ( /\s\(reply:\sread\serror\sfrom\s(\w+\.\w+)\.$/ ) || - ( /\s\(timeout\swriting\smessage\sto\s.*\.(\w+\.\w+)\.:/ ) || ( /\s\(timeout\swriting\smessage\sto\s(\w+\.\w+)\.:/ ) || - ( /\s\(host\smap:\slookup\s\(.*\.(\w+\.\w+)\):/ ) || ( /\s\(host\smap:\slookup\s\((\w+\.\w+)\):/ ) || - ( /\s\(Deferred:\s.*\s.*\.(\w+\.\w+)\.\)/ ) || ( /\s\(Deferred:\s.*\s(\w+\.\w+)\.\)/ ) ) { + close (MAILQ); - print "$utils::PATH_TO_MAILQ = dstdomain = $1 \n" if $verbose ; - $dstdomains{$1} ++; - } + if ( $? ) { + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; + } - if (/\s+\(I\/O\serror\)/) { - print "$utils::PATH_TO_MAILQ = dstdomain = UNKNOWN \n" if $verbose ; - $dstdomains{'UNKNOWN'} ++; - } + ## shut off the alarm + alarm(0); - # Finally look at the overall queue length - # - if (/mqueue/) { - print "$utils::PATH_TO_MAILQ = $_ "if $verbose ; - if (/ \((\d+) request/) { - # - # single queue: first line - # multi queue: one for each queue. overwrite on multi queue below - $this_msg_q = $1 ; - $msg_q += $1 ; - } - } elsif (/^\s+Total\sRequests:\s(\d+)$/i) { - if ($this_msg_q) { - $this_msg_q = 0 ; - } else { - print "$utils::PATH_TO_MAILQ = $_ \n" if $verbose ; - # - # multi queue: last line - $msg_q += $1 ; - } - } - } - ## close mailq - close (MAILQ); + ## now check the queue length(s) - if ( $? ) { - print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; - exit $ERRORS{CRITICAL}; - } + if ($msg_q == 0) { + $msg = "OK: $mailq mailq is empty"; + $state = $ERRORS{'OK'}; + } else { + print "msg_q = $msg_q warn=$opt_w crit=$opt_c\n" if $verbose; + + # overall queue length + if ($msg_q < $opt_w) { + $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; + $state = $ERRORS{'OK'}; + }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { + $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; + $state = $ERRORS{'WARNING'}; + }else { + $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; + $state = $ERRORS{'CRITICAL'}; + } - ## shut off the alarm - alarm(0); + # check for domain specific queue lengths if requested + if (defined $opt_W) { + + # Apply threshold to queue lengths FROM domain + my @srckeys = sort { $srcdomains{$b} <=> $srcdomains{$a} } keys %srcdomains; + my $srcmaxkey = $srckeys[0]; + print "src max is $srcmaxkey with $srcdomains{$srcmaxkey} messages\n" if $verbose; + + if ($srcdomains{$srcmaxkey} >= $opt_W && $srcdomains{$srcmaxkey} < $opt_C) { + if ($state == $ERRORS{'OK'}) { + $msg = "WARNING: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; + $state = $ERRORS{'WARNING'}; + } elsif (($state == $ERRORS{'WARNING'}) || ($state == $ERRORS{'CRITICAL'})){ + $msg .= " -and- $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; + } else { + $msg = "WARNING: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; + $state = $ERRORS{'WARNING'}; + } + } elsif ($srcdomains{$srcmaxkey} >= $opt_C) { + if ($state == $ERRORS{'OK'}) { + $msg = "CRITICAL: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold C = $opt_C)"; + $state = $ERRORS{'CRITICAL'}; + } elsif ($state == $ERRORS{'WARNING'}) { + $msg = "CRITICAL: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold C = $opt_C) -and- " . $msg; + $msg =~ s/WARNING: //; + } elsif ($state == $ERRORS{'CRITICAL'}) { + $msg .= " -and- $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; + } else { + $msg = "CRITICAL: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; + $state = $ERRORS{'CRITICAL'}; + } + } else { + if ($srcdomains{$srcmaxkey} > 0) { + $msg .= " $srcdomains{$srcmaxkey} msgs. FROM $srcmaxkey is below threshold ($opt_W/$opt_C)"; + } + } - ## now check the queue length(s) + # Apply threshold to queue lengths TO domain + my @dstkeys = sort { $dstdomains{$b} <=> $dstdomains{$a} } keys %dstdomains; + my $dstmaxkey = $dstkeys[0]; + print "dst max is $dstmaxkey with $dstdomains{$dstmaxkey} messages\n" if $verbose; + + if ($dstdomains{$dstmaxkey} >= $opt_W && $dstdomains{$dstmaxkey} < $opt_C) { + if ($state == $ERRORS{'OK'}) { + $msg = "WARNING: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; + $state = $ERRORS{'WARNING'}; + } elsif (($state == $ERRORS{'WARNING'}) || ($state == $ERRORS{'CRITICAL'})){ + $msg .= " -and- $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; + } else { + $msg = "WARNING: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; + $state = $ERRORS{'WARNING'}; + } + } elsif ($dstdomains{$dstmaxkey} >= $opt_C) { + if ($state == $ERRORS{'OK'}) { + $msg = "CRITICAL: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold C = $opt_C)"; + $state = $ERRORS{'CRITICAL'}; + } elsif ($state == $ERRORS{'WARNING'}) { + $msg = "CRITICAL: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold C = $opt_C) -and- " . $msg; + $msg =~ s/WARNING: //; + } elsif ($state == $ERRORS{'CRITICAL'}) { + $msg .= " -and- $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; + } else { + $msg = "CRITICAL: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; + $state = $ERRORS{'CRITICAL'}; + } + } else { + if ($dstdomains{$dstmaxkey} > 0) { + $msg .= " $dstdomains{$dstmaxkey} msgs. TO $dstmaxkey is below threshold ($opt_W/$opt_C)"; + } + } - if ($msg_q == 0) { - $msg = "OK: $mailq mailq is empty"; - $state = $ERRORS{'OK'}; - } else { - print "msg_q = $msg_q warn=$opt_w crit=$opt_c\n" if $verbose; + } # End of queue length thresholds - # overall queue length - if ($msg_q < $opt_w) { - $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; - $state = $ERRORS{'OK'}; - }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { - $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; - $state = $ERRORS{'WARNING'}; - }else { - $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; - $state = $ERRORS{'CRITICAL'}; - } - - # check for domain specific queue lengths if requested - if (defined $opt_W) { - - # Apply threshold to queue lengths FROM domain - my @srckeys = sort { $srcdomains{$b} <=> $srcdomains{$a} } keys %srcdomains; - my $srcmaxkey = $srckeys[0]; - print "src max is $srcmaxkey with $srcdomains{$srcmaxkey} messages\n" if $verbose; - - if ($srcdomains{$srcmaxkey} >= $opt_W && $srcdomains{$srcmaxkey} < $opt_C) { - if ($state == $ERRORS{'OK'}) { - $msg = "WARNING: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; - $state = $ERRORS{'WARNING'}; - } elsif (($state == $ERRORS{'WARNING'}) || ($state == $ERRORS{'CRITICAL'})){ - $msg .= " -and- $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; - } else { - $msg = "WARNING: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; - $state = $ERRORS{'WARNING'}; - } - } elsif ($srcdomains{$srcmaxkey} >= $opt_C) { - if ($state == $ERRORS{'OK'}) { - $msg = "CRITICAL: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold C = $opt_C)"; - $state = $ERRORS{'CRITICAL'}; - } elsif ($state == $ERRORS{'WARNING'}) { - $msg = "CRITICAL: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold C = $opt_C) -and- " . $msg; - $msg =~ s/WARNING: //; - } elsif ($state == $ERRORS{'CRITICAL'}) { - $msg .= " -and- $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; - } else { - $msg = "CRITICAL: $srcdomains{$srcmaxkey} messages in queue FROM $srcmaxkey (threshold W = $opt_W)"; - $state = $ERRORS{'CRITICAL'}; - } - } else { - if ($srcdomains{$srcmaxkey} > 0) { - $msg .= " $srcdomains{$srcmaxkey} msgs. FROM $srcmaxkey is below threshold ($opt_W/$opt_C)"; - } - } - - # Apply threshold to queue lengths TO domain - my @dstkeys = sort { $dstdomains{$b} <=> $dstdomains{$a} } keys %dstdomains; - my $dstmaxkey = $dstkeys[0]; - print "dst max is $dstmaxkey with $dstdomains{$dstmaxkey} messages\n" if $verbose; - - if ($dstdomains{$dstmaxkey} >= $opt_W && $dstdomains{$dstmaxkey} < $opt_C) { - if ($state == $ERRORS{'OK'}) { - $msg = "WARNING: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; - $state = $ERRORS{'WARNING'}; - } elsif (($state == $ERRORS{'WARNING'}) || ($state == $ERRORS{'CRITICAL'})){ - $msg .= " -and- $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; - } else { - $msg = "WARNING: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; - $state = $ERRORS{'WARNING'}; - } - } elsif ($dstdomains{$dstmaxkey} >= $opt_C) { - if ($state == $ERRORS{'OK'}) { - $msg = "CRITICAL: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold C = $opt_C)"; - $state = $ERRORS{'CRITICAL'}; - } elsif ($state == $ERRORS{'WARNING'}) { - $msg = "CRITICAL: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold C = $opt_C) -and- " . $msg; - $msg =~ s/WARNING: //; - } elsif ($state == $ERRORS{'CRITICAL'}) { - $msg .= " -and- $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; - } else { - $msg = "CRITICAL: $dstdomains{$dstmaxkey} messages in queue TO $dstmaxkey (threshold W = $opt_W)"; - $state = $ERRORS{'CRITICAL'}; - } - } else { - if ($dstdomains{$dstmaxkey} > 0) { - $msg .= " $dstdomains{$dstmaxkey} msgs. TO $dstmaxkey is below threshold ($opt_W/$opt_C)"; - } - } - - } # End of queue length thresholds - - } + } } # end of ($mailq eq "sendmail") elsif ( $mailq eq "postfix" ) { - if( ! $utils::PATH_TO_MAILQ ) { - print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; - exit $ERRORS{'UNKNOWN'}; - } - if ( ! -x $utils::PATH_TO_MAILQ) { - print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; - exit $ERRORS{'UNKNOWN'}; - } + ## open mailq + if ( defined $utils::PATH_TO_MAILQ && -x $utils::PATH_TO_MAILQ ) { + if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ$mailq_args | " ) ) { + print "ERROR: could not open $utils::PATH_TO_MAILQ$mailq_args \n"; + exit $ERRORS{'UNKNOWN'}; + } + }elsif( defined $utils::PATH_TO_MAILQ){ + unless (-x $utils::PATH_TO_MAILQ) { + print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; + exit $ERRORS{'UNKNOWN'}; + } + } else { + print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; + exit $ERRORS{'UNKNOWN'}; + } - ## open mailq - if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ$mailq_args | " ) ) { - print "ERROR: could not open $utils::PATH_TO_MAILQ$mailq_args \n"; - exit $ERRORS{'UNKNOWN'}; - } - @lines = reverse ; + @lines = reverse ; - # close qmail-qstat - close MAILQ; + # close qmail-qstat + close MAILQ; - if ( $? ) { - print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ$mailq_args",$/; - exit $ERRORS{CRITICAL}; - } + if ( $? ) { + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ$mailq_args",$/; + exit $ERRORS{CRITICAL}; + } - ## shut off the alarm - alarm(0); + ## shut off the alarm + alarm(0); - # check queue length - if ($lines[0]=~/Kbytes in (\d+)/) { - $msg_q = $1 ; - }elsif ($lines[0]=~/Mail queue is empty/) { - $msg_q = 0; + # check queue length + if ($lines[0]=~/Kbytes in (\d+)/) { + $msg_q = $1 ; + }elsif ($lines[0]=~/Mail queue is empty/) { + $msg_q = 0; }else{ - print "Couldn't match $utils::PATH_TO_MAILQ$mailq_args output\n"; - exit $ERRORS{'UNKNOWN'}; + print "Couldn't match $utils::PATH_TO_MAILQ$mailq_args output\n"; + exit $ERRORS{'UNKNOWN'}; } # check messages not processed @@ -383,193 +366,194 @@ elsif ( $mailq eq "postfix" ) { $msg = "OK: $mailq mailq reports queue is empty"; $state = $ERRORS{'OK'}; } else { - print "msg_q = $msg_q warn=$opt_w crit=$opt_c\n" if $verbose; + print "msg_q = $msg_q warn=$opt_w crit=$opt_c\n" if $verbose; - # overall queue length - if ($msg_q < $opt_w) { - $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; - $state = $ERRORS{'OK'}; - }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { - $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; - $state = $ERRORS{'WARNING'}; - }else { - $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; - $state = $ERRORS{'CRITICAL'}; - } + # overall queue length + if ($msg_q < $opt_w) { + $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; + $state = $ERRORS{'OK'}; + }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { + $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; + $state = $ERRORS{'WARNING'}; + }else { + $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; + $state = $ERRORS{'CRITICAL'}; + } - # check messages not yet preprocessed (only compare is $opt_W and $opt_C - # are defined) + # check messages not yet preprocessed (only compare is $opt_W and $opt_C + # are defined) - #if (defined $opt_W) { - # $msg .= "[Preprocessed = $msg_p]"; - # if ($msg_p >= $opt_W && $msg_p < $opt_C ) { - # $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - # }elsif ($msg_p >= $opt_C ) { - # $state = $ERRORS{"CRITICAL"} ; - # } - #} + #if (defined $opt_W) { + # $msg .= "[Preprocessed = $msg_p]"; + # if ($msg_p >= $opt_W && $msg_p < $opt_C ) { + # $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; + # }elsif ($msg_p >= $opt_C ) { + # $state = $ERRORS{"CRITICAL"} ; + # } + #} } } # end of ($mailq eq "postfix") elsif ( $mailq eq "qmail" ) { - if ( ! $utils::PATH_TO_QMAIL_QSTAT ) { - print "ERROR: \$utils::PATH_TO_QMAIL_QSTAT is not defined\n"; - exit $ERRORS{'UNKNOWN'}; - } - if ( ! -x $utils::PATH_TO_QMAIL_QSTAT) { - print "ERROR: $utils::PATH_TO_QMAIL_QSTAT is not executable by (uid $>:gid($)))\n"; - exit $ERRORS{'UNKNOWN'}; - } + # open qmail-qstat + if ( defined $utils::PATH_TO_QMAIL_QSTAT && -x $utils::PATH_TO_QMAIL_QSTAT ) { + if (! open (MAILQ, "$sudo $utils::PATH_TO_QMAIL_QSTAT | " ) ) { + print "ERROR: could not open $utils::PATH_TO_QMAIL_QSTAT \n"; + exit $ERRORS{'UNKNOWN'}; + } + }elsif( defined $utils::PATH_TO_QMAIL_QSTAT){ + unless (-x $utils::PATH_TO_QMAIL_QSTAT) { + print "ERROR: $utils::PATH_TO_QMAIL_QSTAT is not executable by (uid $>:gid($)))\n"; + exit $ERRORS{'UNKNOWN'}; + } + } else { + print "ERROR: \$utils::PATH_TO_QMAIL_QSTAT is not defined\n"; + exit $ERRORS{'UNKNOWN'}; + } - # open qmail-qstat - if (! open (MAILQ, "$sudo $utils::PATH_TO_QMAIL_QSTAT | " ) ) { - print "ERROR: could not open $utils::PATH_TO_QMAIL_QSTAT \n"; - exit $ERRORS{'UNKNOWN'}; - } + @lines = ; - @lines = ; + # close qmail-qstat + close MAILQ; - # close qmail-qstat - close MAILQ; + if ( $? ) { + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; + } - if ( $? ) { - print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; - exit $ERRORS{CRITICAL}; - } + ## shut off the alarm + alarm(0); - ## shut off the alarm - alarm(0); + # check queue length + if ($lines[0]=~/^messages in queue: (\d+)/) { + $msg_q = $1 ; + }else{ + print "Couldn't match $utils::PATH_TO_QMAIL_QSTAT output\n"; + exit $ERRORS{'UNKNOWN'}; + } - # check queue length - if ($lines[0]=~/^messages in queue: (\d+)/) { - $msg_q = $1 ; - }else{ - print "Couldn't match $utils::PATH_TO_QMAIL_QSTAT output\n"; - exit $ERRORS{'UNKNOWN'}; - } - - # check messages not processed - if ($lines[1]=~/^messages in queue but not yet preprocessed: (\d+)/) { - my $msg_p = $1; - }else{ - print "Couldn't match $utils::PATH_TO_QMAIL_QSTAT output\n"; - exit $ERRORS{'UNKNOWN'}; - } + # check messages not processed + if ($lines[1]=~/^messages in queue but not yet preprocessed: (\d+)/) { + my $msg_p = $1; + }else{ + print "Couldn't match $utils::PATH_TO_QMAIL_QSTAT output\n"; + exit $ERRORS{'UNKNOWN'}; + } - # check queue length(s) - if ($msg_q == 0){ - $msg = "OK: qmail-qstat reports queue is empty"; - $state = $ERRORS{'OK'}; - } else { - print "msg_q = $msg_q warn=$opt_w crit=$opt_c\n" if $verbose; - - # overall queue length - if ($msg_q < $opt_w) { - $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; - $state = $ERRORS{'OK'}; - }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { - $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; - $state = $ERRORS{'WARNING'}; - }else { - $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; - $state = $ERRORS{'CRITICAL'}; - } - - # check messages not yet preprocessed (only compare is $opt_W and $opt_C - # are defined) - - if (defined $opt_W) { - $msg .= "[Preprocessed = $msg_p]"; - if ($msg_p >= $opt_W && $msg_p < $opt_C ) { - $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - }elsif ($msg_p >= $opt_C ) { - $state = $ERRORS{"CRITICAL"} ; - } - } - } + # check queue length(s) + if ($msg_q == 0){ + $msg = "OK: qmail-qstat reports queue is empty"; + $state = $ERRORS{'OK'}; + } else { + print "msg_q = $msg_q warn=$opt_w crit=$opt_c\n" if $verbose; + + # overall queue length + if ($msg_q < $opt_w) { + $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; + $state = $ERRORS{'OK'}; + }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { + $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; + $state = $ERRORS{'WARNING'}; + }else { + $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; + $state = $ERRORS{'CRITICAL'}; + } + # check messages not yet preprocessed (only compare is $opt_W and $opt_C + # are defined) + + if (defined $opt_W) { + $msg .= "[Preprocessed = $msg_p]"; + if ($msg_p >= $opt_W && $msg_p < $opt_C ) { + $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; + }elsif ($msg_p >= $opt_C ) { + $state = $ERRORS{"CRITICAL"} ; + } + } + } + } # end of ($mailq eq "qmail") elsif ( $mailq eq "exim" ) { - if ( ! $utils::PATH_TO_MAILQ ) { - print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; - exit $ERRORS{'UNKNOWN'}; - } + ## open mailq + if ( defined $utils::PATH_TO_MAILQ && -x $utils::PATH_TO_MAILQ ) { + if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { + print "ERROR: could not open $utils::PATH_TO_MAILQ \n"; + exit $ERRORS{'UNKNOWN'}; + } + }elsif( defined $utils::PATH_TO_MAILQ){ + unless (-x $utils::PATH_TO_MAILQ) { + print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; + exit $ERRORS{'UNKNOWN'}; + } + } else { + print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; + exit $ERRORS{'UNKNOWN'}; + } - if ( ! -x $utils::PATH_TO_MAILQ) { - print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; - exit $ERRORS{'UNKNOWN'}; - } - - ## open mailq - if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { - print "ERROR: could not open $utils::PATH_TO_MAILQ \n"; - exit $ERRORS{'UNKNOWN'}; - } - - while () { - #22m 1.7K 19aEEr-0007hx-Dy <> *** frozen *** + while () { + #22m 1.7K 19aEEr-0007hx-Dy <> *** frozen *** #root@exlixams.glups.fr - if (/\s[\w\d]{6}-[\w\d]{6}-[\w\d]{2}\s/) { # message id 19aEEr-0007hx-Dy - $msg_q++ ; - } - } - close(MAILQ) ; + if (/\s[\w\d]{6}-[\w\d]{6}-[\w\d]{2}\s/) { # message id 19aEEr-0007hx-Dy + $msg_q++ ; + } + } + close(MAILQ) ; - if ( $? ) { - print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; - exit $ERRORS{CRITICAL}; - } - if ($msg_q < $opt_w) { - $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; - $state = $ERRORS{'OK'}; - }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { - $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; - $state = $ERRORS{'WARNING'}; - }else { - $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; - $state = $ERRORS{'CRITICAL'}; - } + if ( $? ) { + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; + } + if ($msg_q < $opt_w) { + $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; + $state = $ERRORS{'OK'}; + }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { + $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; + $state = $ERRORS{'WARNING'}; + }else { + $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; + $state = $ERRORS{'CRITICAL'}; + } } # end of ($mailq eq "exim") elsif ( $mailq eq "nullmailer" ) { - if( ! $utils::PATH_TO_MAILQ) { - print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; - exit $ERRORS{'UNKNOWN'}; - } + ## open mailq + if ( defined $utils::PATH_TO_MAILQ && -x $utils::PATH_TO_MAILQ ) { + if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { + print "ERROR: could not open $utils::PATH_TO_MAILQ \n"; + exit $ERRORS{'UNKNOWN'}; + } + }elsif( defined $utils::PATH_TO_MAILQ){ + unless (-x $utils::PATH_TO_MAILQ) { + print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; + exit $ERRORS{'UNKNOWN'}; + } + } else { + print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; + exit $ERRORS{'UNKNOWN'}; + } - if ( ! -x $utils::PATH_TO_MAILQ) { - print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; - exit $ERRORS{'UNKNOWN'}; - } + while () { + #2022-08-25 01:30:40 502 bytes from - ## open mailq - if ( ! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { - print "ERROR: could not open $utils::PATH_TO_MAILQ \n"; - exit $ERRORS{'UNKNOWN'}; - } - - while () { - #2022-08-25 01:30:40 502 bytes from - - if (/^\d{4}-\d{2}-\d{2}\s+\d{2}\:\d{2}\:\d{2}\s+\d+\sbytes/) { - $msg_q++ ; - } - } - close(MAILQ) ; - if ($msg_q < $opt_w) { - $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; - $state = $ERRORS{'OK'}; - }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { - $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; - $state = $ERRORS{'WARNING'}; - }else { - $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; - $state = $ERRORS{'CRITICAL'}; - } + if (/^\d{4}-\d{2}-\d{2}\s+\d{2}\:\d{2}\:\d{2}\s+\d+\sbytes/) { + $msg_q++ ; + } + } + close(MAILQ) ; + if ($msg_q < $opt_w) { + $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; + $state = $ERRORS{'OK'}; + }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { + $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; + $state = $ERRORS{'WARNING'}; + }else { + $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; + $state = $ERRORS{'CRITICAL'}; + } } # end of ($mailq eq "nullmailer") # Perfdata support @@ -582,130 +566,130 @@ exit $state; sub process_arguments(){ - GetOptions - ("V" => \$opt_V, "version" => \$opt_V, - "v" => \$opt_v, "verbose" => \$opt_v, - "h" => \$opt_h, "help" => \$opt_h, - "M:s" => \$opt_M, "mailserver:s" => \$opt_M, # mailserver (default sendmail) - "w=i" => \$opt_w, "warning=i" => \$opt_w, # warning if above this number - "c=i" => \$opt_c, "critical=i" => \$opt_c, # critical if above this number - "W=i" => \$opt_W, "warning-domain=i" => \$opt_W, # Warning if above this number - "C=i" => \$opt_C, "critical-domain=i" => \$opt_C, # Critical if above this number - "t=i" => \$opt_t, "timeout=i" => \$opt_t, - "s" => \$opt_s, "sudo" => \$opt_s, - "d:s" => \$opt_d, "configdir:s" => \$opt_d, - ); + GetOptions + ("V" => \$opt_V, "version" => \$opt_V, + "v" => \$opt_v, "verbose" => \$opt_v, + "h" => \$opt_h, "help" => \$opt_h, + "M:s" => \$opt_M, "mailserver:s" => \$opt_M, # mailserver (default sendmail) + "w=i" => \$opt_w, "warning=i" => \$opt_w, # warning if above this number + "c=i" => \$opt_c, "critical=i" => \$opt_c, # critical if above this number + "W=i" => \$opt_W, "warning-domain=i" => \$opt_W, # Warning if above this number + "C=i" => \$opt_C, "critical-domain=i" => \$opt_C, # Critical if above this number + "t=i" => \$opt_t, "timeout=i" => \$opt_t, + "s" => \$opt_s, "sudo" => \$opt_s, + "d:s" => \$opt_d, "configdir:s" => \$opt_d, + ); - if ($opt_V) { - print_revision($PROGNAME,'@NP_VERSION@'); - exit $ERRORS{'UNKNOWN'}; - } + if ($opt_V) { + print_revision($PROGNAME,'@NP_VERSION@'); + exit $ERRORS{'UNKNOWN'}; + } - if ($opt_h) { - print_help(); - exit $ERRORS{'UNKNOWN'}; - } + if ($opt_h) { + print_help(); + exit $ERRORS{'UNKNOWN'}; + } - if (defined $opt_v ){ - $verbose = $opt_v; - } + if (defined $opt_v ){ + $verbose = $opt_v; + } - unless (defined $opt_t) { - $opt_t = $utils::TIMEOUT ; # default timeout - } + unless (defined $opt_t) { + $opt_t = $utils::TIMEOUT ; # default timeout + } - unless ( defined $opt_w && defined $opt_c ) { - print_usage(); - exit $ERRORS{'UNKNOWN'}; - } + unless ( defined $opt_w && defined $opt_c ) { + print_usage(); + exit $ERRORS{'UNKNOWN'}; + } - if ( $opt_w >= $opt_c) { - print "Warning (-w) cannot be greater than Critical (-c)!\n"; - exit $ERRORS{'UNKNOWN'}; - } + if ( $opt_w >= $opt_c) { + print "Warning (-w) cannot be greater than Critical (-c)!\n"; + exit $ERRORS{'UNKNOWN'}; + } - if (defined $opt_W && ! defined !$opt_C) { - print "Need -C if using -W\n"; - exit $ERRORS{'UNKNOWN'}; - }elsif(defined $opt_W && defined $opt_C) { - if ($opt_W >= $opt_C) { - print "Warning (-W) cannot be greater than Critical (-C)!\n"; - exit $ERRORS{'UNKNOWN'}; - } - } + if (defined $opt_W && ! defined !$opt_C) { + print "Need -C if using -W\n"; + exit $ERRORS{'UNKNOWN'}; + }elsif(defined $opt_W && defined $opt_C) { + if ($opt_W >= $opt_C) { + print "Warning (-W) cannot be greater than Critical (-C)!\n"; + exit $ERRORS{'UNKNOWN'}; + } + } - if (defined $opt_M) { - if ($opt_M =~ /^(sendmail|qmail|postfix|exim|nullmailer)$/) { - $mailq = $opt_M ; - }elsif( $opt_M eq ''){ - $mailq = 'sendmail'; - }else{ - print "-M: $opt_M is not supported\n"; - exit $ERRORS{'UNKNOWN'}; - } - }else{ - if (defined $utils::PATH_TO_QMAIL_QSTAT - && -x $utils::PATH_TO_QMAIL_QSTAT) - { - $mailq = 'qmail'; - } - elsif (-d '/var/lib/postfix' || -d '/var/local/lib/postfix' - || -e '/usr/sbin/postfix' || -e '/usr/local/sbin/postfix') - { - $mailq = 'postfix'; - } - elsif (-d '/usr/lib/exim4' || -d '/usr/local/lib/exim4' - || -e '/usr/sbin/exim' || -e '/usr/local/sbin/exim') - { - $mailq = 'exim'; - } - elsif (-d '/usr/lib/nullmailer' || -d '/usr/local/lib/nullmailer' - || -e '/usr/sbin/nullmailer-send' - || -e '/usr/local/sbin/nullmailer-send') - { - $mailq = 'nullmailer'; - } - else { - $mailq = 'sendmail'; - } - } - - return $ERRORS{'OK'}; + if (defined $opt_M) { + if ($opt_M =~ /^(sendmail|qmail|postfix|exim|nullmailer)$/) { + $mailq = $opt_M ; + }elsif( $opt_M eq ''){ + $mailq = 'sendmail'; + }else{ + print "-M: $opt_M is not supported\n"; + exit $ERRORS{'UNKNOWN'}; + } + }else{ + if (defined $utils::PATH_TO_QMAIL_QSTAT + && -x $utils::PATH_TO_QMAIL_QSTAT) + { + $mailq = 'qmail'; + } + elsif (-d '/var/lib/postfix' || -d '/var/local/lib/postfix' + || -e '/usr/sbin/postfix' || -e '/usr/local/sbin/postfix') + { + $mailq = 'postfix'; + } + elsif (-d '/usr/lib/exim4' || -d '/usr/local/lib/exim4' + || -e '/usr/sbin/exim' || -e '/usr/local/sbin/exim') + { + $mailq = 'exim'; + } + elsif (-d '/usr/lib/nullmailer' || -d '/usr/local/lib/nullmailer' + || -e '/usr/sbin/nullmailer-send' + || -e '/usr/local/sbin/nullmailer-send') + { + $mailq = 'nullmailer'; + } + else { + $mailq = 'sendmail'; + } + } + + return $ERRORS{'OK'}; } sub print_usage () { - print "Usage: $PROGNAME -w -c [-W ] [-C ] [-M ] [-t ] [-s] [-d ] [-v]\n"; + print "Usage: $PROGNAME -w -c [-W ] [-C ] [-M ] [-t ] [-s] [-d ] [-v]\n"; } sub print_help () { - print_revision($PROGNAME,'@NP_VERSION@'); - print "Copyright (c) 2002 Subhendu Ghosh/Carlos Canau/Benjamin Schmid\n"; - print "\n"; - print_usage(); - print "\n"; - print " Checks the number of messages in the mail queue (supports multiple sendmail queues, qmail)\n"; - print " Feedback/patches to support non-sendmail mailqueue welcome\n\n"; - print "-w (--warning) = Min. number of messages in queue to generate warning\n"; - print "-c (--critical) = Min. number of messages in queue to generate critical alert ( w < c )\n"; - print "-W (--warning-domain) = Min. number of messages for same domain in queue to generate warning\n"; - print "-C (--critical-domain) = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n"; - print "-t (--timeout) = Plugin timeout in seconds (default = $utils::TIMEOUT)\n"; - print "-M (--mailserver) = [ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)\n"; - print "-s (--sudo) = Use sudo to call the mailq command\n"; - print "-d (--configdir) = Config file or directory\n"; - print "-h (--help)\n"; - print "-V (--version)\n"; - print "-v (--verbose) = debugging output\n"; - print "\n\n"; - print "Note: -w and -c are required arguments. -W and -C are optional.\n"; - print " -W and -C are applied to domains listed on the queues - both FROM and TO. (sendmail)\n"; - print " -W and -C are applied message not yet preproccessed. (qmail)\n"; - print " This plugin tries to autodetect which mailserver you are running,\n"; - print " you can override the autodetection with -M.\n"; - print " This plugin uses the system mailq command (sendmail) or qmail-stat (qmail)\n"; - print " to look at the queues. Mailq can usually only be accessed by root or \n"; - print " a TrustedUser. You will have to set appropriate permissions for the plugin to work.\n"; - print ""; - print "\n\n"; - support(); + print_revision($PROGNAME,'@NP_VERSION@'); + print "Copyright (c) 2002 Subhendu Ghosh/Carlos Canau/Benjamin Schmid\n"; + print "\n"; + print_usage(); + print "\n"; + print " Checks the number of messages in the mail queue (supports multiple sendmail queues, qmail)\n"; + print " Feedback/patches to support non-sendmail mailqueue welcome\n\n"; + print "-w (--warning) = Min. number of messages in queue to generate warning\n"; + print "-c (--critical) = Min. number of messages in queue to generate critical alert ( w < c )\n"; + print "-W (--warning-domain) = Min. number of messages for same domain in queue to generate warning\n"; + print "-C (--critical-domain) = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n"; + print "-t (--timeout) = Plugin timeout in seconds (default = $utils::TIMEOUT)\n"; + print "-M (--mailserver) = [ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)\n"; + print "-s (--sudo) = Use sudo to call the mailq command\n"; + print "-d (--configdir) = Config file or directory\n"; + print "-h (--help)\n"; + print "-V (--version)\n"; + print "-v (--verbose) = debugging output\n"; + print "\n\n"; + print "Note: -w and -c are required arguments. -W and -C are optional.\n"; + print " -W and -C are applied to domains listed on the queues - both FROM and TO. (sendmail)\n"; + print " -W and -C are applied message not yet preproccessed. (qmail)\n"; + print " This plugin tries to autodetect which mailserver you are running,\n"; + print " you can override the autodetection with -M.\n"; + print " This plugin uses the system mailq command (sendmail) or qmail-stat (qmail)\n"; + print " to look at the queues. Mailq can usually only be accessed by root or \n"; + print " a TrustedUser. You will have to set appropriate permissions for the plugin to work.\n"; + print ""; + print "\n\n"; + support(); } diff --git a/plugins-scripts/check_mssql.pl b/plugins-scripts/check_mssql.pl deleted file mode 100755 index bf3a651..0000000 --- a/plugins-scripts/check_mssql.pl +++ /dev/null @@ -1,145 +0,0 @@ -#!@PERL@ -w - -# -# Copyright 2003 Roy Sigurd Karlsbakk -# -# Requires freetds and DBD::Sybase -# http://www.freetds.org -# http://www.mbay.net/~mpeppler/ -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA. -# -# Report bugs to: help@monitoring-plugins.org -# -# - - -use DBI; -use DBD::Sybase; -use Getopt::Long; -use FindBin; -use lib "$FindBin::Bin"; -use utils qw($TIMEOUT %ERRORS &print_revision &support); -use strict; - -my $PROGNAME = "check_mssql"; - -$ENV{'PATH'}='@TRUSTED_PATH@'; -$ENV{'BASH_ENV'}=''; -$ENV{'ENV'}=''; - -my ( - $server,$database,$username,$password,$query,$help,$verbose,$timeout, - $dbh,$sth,$row, - $s,$opt_V,$regex -); -my $exitcode = $ERRORS{'OK'}; - -process_arguments(); - -# Just in case of problems, let's not hang the monitoring system -$SIG{'ALRM'} = sub { - print ("SQL UNKNOWN: ERROR connection $server (alarm timeout)\n"); - exit $ERRORS{"UNKNOWN"}; -}; -alarm($timeout); - -unless ($dbh = DBI->connect("dbi:Sybase:server=".uc($server), "$username", "$password")) { - printf "SQL CRITICAL: Can't connect to mssql server $DBI::errstr\n"; - exit($ERRORS{'CRITICAL'}); -} - -if (defined $database) { # otherwise use default database - unless ($dbh->do("use $database")) { - printf ("SQL CRITICAL: Can't 'use $database': $dbh->errstr"); - exit($ERRORS{'CRITICAL'}); - } -} -$sth = $dbh->prepare($query); -unless ($sth->execute()) { - printf("SQL CRITICAL: Error in query: $dbh->errstr\n"); - exit($ERRORS{'CRITICAL'}); -} - -$row = join(";",$sth->fetchrow_array); - -$sth->finish; -$dbh->disconnect; - -alarm(0); -if (defined $regex) { - if ($row =~ /$regex/) { - printf "SQL CRITICAL: - $row|$row\n"; - exit $ERRORS{'CRITICAL'}; - }else{ - print "SQL OK: $row|$row\n"; - exit $ERRORS{'OK'}; - } -} - -print "SQL OK: $row|$row\n"; -exit $ERRORS{'OK'}; - -################################################## - -sub syntax { - $s = shift or $s = 'Unknown'; - printf("Error: ($s)\n") unless ($help); - printf("Runs a query against a MS-SQL server or Sybase server and returns the first row\n"); - printf("Returns an error if no responses are running. Row is passed to perfdata in\n"); - printf("semicolon delimited format\n"); - printf("A simple sql statement like \"select getdate()\" verifies server responsiveness\n\n"); - printf("Syntax: %s -s -d -u -p -q [-v]\n", $PROGNAME); - printf(" --database -d Database name\n"); - printf(" --Hostname -H Server name\n"); - printf(" --username -u Username\n"); - printf(" --password -p Password\n"); - printf(" --query -q SQL query to run\n"); - printf(" --timeout -t Plugin timeout (default:$TIMEOUT)\n"); - printf(" --regex -r regex against SQL response(CRIT if MATCH)\n"); - printf(" --verbose -v verbose\n"); - printf("\nThe SQL response is concatenated into a string with a \";\" demarkation\n\n"); - exit($ERRORS{'UNKNOWN'}); -} - -sub process_arguments { - Getopt::Long::Configure('bundling'); - my $status = GetOptions - ("p=s" => \$password, "password=s" => \$password, - "u=s" => \$username, "username=s" => \$username, - "H=s" => \$server, "Hostname=s" => \$server, - "d=s" => \$database, "database=s" => \$database, - "q=s" => \$query, "query=s" => \$query, - "t=i" => \$timeout, "timeout=i" => \$timeout, - "r=s" => \$regex, "regex=s" => \$regex, - "h" => \$help, "help" => \$help, - "v" => \$verbose, "verbose" => \$verbose, - "V" => \$opt_V, "version" => \$opt_V); - - if (defined $opt_V) { - print_revision($PROGNAME,'@NP_VERSION@'); - exit $ERRORS{'UNKNOWN'}; - } - - syntax("Help:") if ($help); - syntax("Missing username") unless (defined($username)); - syntax("Missing password") unless (defined($password)); - syntax("Missing server") unless (defined($server)); - syntax("Missing query string") unless (defined($query)); - $timeout = $TIMEOUT unless (defined($timeout)); - - return; - -} diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index db824be..b14ec50 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh @@ -47,7 +47,7 @@ print_help() { echo "--cache" echo " Check local database for library and buffer cache hit ratios" echo " ---> Requires Oracle user/password and SID specified." - echo " ---> Requires select on v_\$sysstat and v_\$librarycache" + echo " ---> Requires select on v_$sysstat and v_$librarycache" echo "--tablespace" echo " Check local database for tablespace capacity in ORACLE_SID" echo " ---> Requires Oracle user/password specified." @@ -86,20 +86,20 @@ esac # Information options case "$cmd" in --help) - print_help - exit "$STATE_UNKNOWN" + print_help + exit "$STATE_OK" ;; -h) - print_help - exit "$STATE_UNKNOWN" + print_help + exit "$STATE_OK" ;; --version) - print_revision "$PROGNAME" "$REVISION" - exit "$STATE_UNKNOWN" + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; -V) - print_revision "$PROGNAME" "$REVISION" - exit "$STATE_UNKNOWN" + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; esac @@ -109,14 +109,14 @@ if [ -z "$ORACLE_HOME" ] ; then for oratab in /var/opt/oracle/oratab /etc/oratab do [ ! -f $oratab ] && continue - ORACLE_HOME=$(IFS=: - while read -r SID ORACLE_HOME _; + ORACLE_HOME=`IFS=: + while read -r SID ORACLE_HOME junk; do if [ "$SID" = "$2" ] || [ "$SID" = "*" ] ; then echo "$ORACLE_HOME"; exit; fi; - done < $oratab) + done < $oratab` [ -n "$ORACLE_HOME" ] && break done fi @@ -209,7 +209,7 @@ case "$cmd" in echo "UNKNOWN - Warning level is less then Crit" exit "$STATE_UNKNOWN" fi - result=$(sqlplus -s "${3}"/"${4}"@"${2}" << EOF + result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF set pagesize 0 set numf '9999999.99' select (1-(pr.value/(dbg.value+cg.value)))*100 @@ -217,8 +217,7 @@ from v\\$sysstat pr, v\\$sysstat dbg, v\\$sysstat cg where pr.name='physical reads' and dbg.name='db block gets' and cg.name='consistent gets'; -EOF -) +EOF` if echo "$result" | grep -q 'ORA-' ; then error=$(echo "$result" | grep "ORA-" | head -1) @@ -228,13 +227,12 @@ EOF buf_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') buf_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') - result=$(sqlplus -s "${3}"/"${4}"@"${2}" << EOF + result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF set pagesize 0 set numf '9999999.99' select sum(lc.pins)/(sum(lc.pins)+sum(lc.reloads))*100 from v\\$librarycache lc; -EOF -) +EOF` if echo "$result" | grep -q 'ORA-' ; then error=$(echo "$result" | grep "ORA-" | head -1) @@ -262,7 +260,7 @@ EOF echo "UNKNOWN - Warning level is more then Crit" exit "$STATE_UNKNOWN" fi - result=$(sqlplus -s "${3}"/"${4}"@"${2}" << EOF + result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF set pagesize 0 set numf '9999999.99' select NVL(b.free,0.0),a.total,100 - trunc(NVL(b.free,0.0)/a.total * 1000) / 10 prc @@ -273,8 +271,7 @@ LEFT OUTER JOIN ( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space group by tablespace_name) B ON a.tablespace_name=b.tablespace_name WHERE a.tablespace_name='${5}'; -EOF -) +EOF` if echo "$result" | grep -q 'ORA-' ; then error=$(echo "$result" | grep "ORA-" | head -1) diff --git a/plugins-scripts/check_rpc.pl b/plugins-scripts/check_rpc.pl index 8a56b9f..47d6e49 100755 --- a/plugins-scripts/check_rpc.pl +++ b/plugins-scripts/check_rpc.pl @@ -5,7 +5,7 @@ # usage: # check_rpc host service # -# Check if an rpc service is registered and running +# Check if an rpc serice is registered and running # using rpcinfo - $proto $host $prognum 2>&1 |"; # # Use these hosts.cfg entries as examples diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh index 866e0e0..921e7b3 100755 --- a/plugins-scripts/check_sensors.sh +++ b/plugins-scripts/check_sensors.sh @@ -26,19 +26,19 @@ print_help() { case "$1" in --help) print_help - exit "$STATE_UNKNOWN" + exit "$STATE_OK" ;; -h) print_help - exit "$STATE_UNKNOWN" + exit "$STATE_OK" ;; --version) print_revision "$PROGNAME" "$REVISION" - exit "$STATE_UNKNOWN" + exit "$STATE_OK" ;; -V) print_revision "$PROGNAME" "$REVISION" - exit "$STATE_UNKNOWN" + exit "$STATE_OK" ;; *) sensordata=$(sensors 2>&1) diff --git a/plugins-scripts/check_uptime.pl b/plugins-scripts/check_uptime.pl index d73e40e..f954287 100755 --- a/plugins-scripts/check_uptime.pl +++ b/plugins-scripts/check_uptime.pl @@ -110,7 +110,7 @@ $pretty_uptime .= sprintf( "%d week%s, ", $weeks, $weeks == 1 ? "" : "s" ) if $pretty_uptime .= sprintf( "%d day%s, ", $days, $days == 1 ? "" : "s" ) if $days; $pretty_uptime .= sprintf( "%d hour%s, ", $hours, $hours == 1 ? "" : "s" ) if $hours; $pretty_uptime .= sprintf( "%d minute%s, ", $mins, $mins == 1 ? "" : "s" ) if $mins; -# Replace last occurrence of comma with "and" +# Replace last occurence of comma with "and" $pretty_uptime =~ s/, $/ and /; # Always print the seconds (though it may be 0 seconds) $pretty_uptime .= sprintf( "%d second%s", $secs, $secs == 1 ? "" : "s" ); diff --git a/plugins-scripts/check_wave.pl b/plugins-scripts/check_wave.pl index c24015c..41e15f5 100755 --- a/plugins-scripts/check_wave.pl +++ b/plugins-scripts/check_wave.pl @@ -19,7 +19,6 @@ sub print_usage (); $ENV{'PATH'}='@TRUSTED_PATH@'; $ENV{'BASH_ENV'}=''; $ENV{'ENV'}=''; -$ENV{'CDPATH'}=''; Getopt::Long::Configure('bundling'); GetOptions @@ -51,34 +50,34 @@ my $critical = $1 if ($opt_c =~ /([0-9]+)/); ($opt_w) || ($opt_w = shift) || ($opt_w = 60); my $warning = $1 if ($opt_w =~ /([0-9]+)/); -$low1 = `$utils::PATH_TO_SNMPGET $host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`; +$low1 = `snmpget $host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`; @test = split(/ /,$low1); $low1 = $test[2]; -$med1 = `$utils::PATH_TO_SNMPGET $host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`; +$med1 = `snmpget $host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`; @test = split(/ /,$med1); $med1 = $test[2]; -$high1 = `$utils::PATH_TO_SNMPGET $host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`; +$high1 = `snmpget $host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`; @test = split(/ /,$high1); $high1 = $test[2]; sleep(2); -$snr = `$utils::PATH_TO_SNMPGET $host public .1.3.6.1.4.1.762.2.5.2.1.17.1`; +$snr = `snmpget $host public .1.3.6.1.4.1.762.2.5.2.1.17.1`; @test = split(/ /,$snr); $snr = $test[2]; $snr = int($snr*25); -$low2 = `$utils::PATH_TO_SNMPGET $host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`; +$low2 = `snmpget $host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`; @test = split(/ /,$low2); $low2 = $test[2]; -$med2 = `$utils::PATH_TO_SNMPGET $host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`; +$med2 = `snmpget $host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`; @test = split(/ /,$med2); $med2 = $test[2]; -$high2 = `$utils::PATH_TO_SNMPGET $host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`; +$high2 = `snmpget $host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`; @test = split(/ /,$high2); $high2 = $test[2]; diff --git a/plugins-scripts/utils.pm.in b/plugins-scripts/utils.pm.in index c84769f..386831e 100644 --- a/plugins-scripts/utils.pm.in +++ b/plugins-scripts/utils.pm.in @@ -23,7 +23,6 @@ $PATH_TO_LMSTAT = "@PATH_TO_LMSTAT@" ; $PATH_TO_SMBCLIENT = "@PATH_TO_SMBCLIENT@" ; $PATH_TO_MAILQ = "@PATH_TO_MAILQ@"; $PATH_TO_QMAIL_QSTAT = "@PATH_TO_QMAIL_QSTAT@"; -$PATH_TO_SNMPGET = "@PATH_TO_SNMPGET@"; ## common variables $TIMEOUT = 15; diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 49086b7..3fde54d 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -51,10 +51,10 @@ noinst_LIBRARIES = libnpcommon.a libnpcommon_a_SOURCES = utils.c netutils.c sslutils.c runcmd.c \ popen.c utils.h netutils.h popen.h common.h runcmd.c runcmd.h -BASEOBJS = libnpcommon.a ../lib/libmonitoringplug.a ../gl/libgnu.a $(LIB_CRYPTO) +BASEOBJS = libnpcommon.a ../lib/libmonitoringplug.a ../gl/libgnu.a NETOBJS = $(BASEOBJS) $(EXTRA_NETOBLS) NETLIBS = $(NETOBJS) $(SOCKETLIBS) -SSLOBJS = $(BASEOBJS) $(NETLIBS) $(SSLLIBS) $(LIB_CRYPTO) +SSLOBJS = $(BASEOBJS) $(NETLIBS) $(SSLLIBS) TESTS_ENVIRONMENT = perl -I $(top_builddir) -I $(top_srcdir) @@ -112,7 +112,7 @@ check_tcp_LDADD = $(SSLOBJS) check_time_LDADD = $(NETLIBS) check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS) check_ups_LDADD = $(NETLIBS) -check_users_LDADD = $(BASEOBJS) $(WTSAPI32LIBS) $(SYSTEMDLIBS) +check_users_LDADD = $(BASEOBJS) $(WTSAPI32LIBS) check_by_ssh_LDADD = $(NETLIBS) check_ide_smart_LDADD = $(BASEOBJS) negate_LDADD = $(BASEOBJS) diff --git a/plugins/Makefile.in b/plugins/Makefile.in index 3970232..c6914e4 100644 --- a/plugins/Makefile.in +++ b/plugins/Makefile.in @@ -73,7 +73,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -111,58 +110,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -170,57 +161,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -244,84 +228,90 @@ am_libnpcommon_a_OBJECTS = utils.$(OBJEXT) netutils.$(OBJEXT) \ libnpcommon_a_OBJECTS = $(am_libnpcommon_a_OBJECTS) check_apt_SOURCES = check_apt.c check_apt_OBJECTS = check_apt.$(OBJEXT) -am__DEPENDENCIES_1 = -am__DEPENDENCIES_2 = libnpcommon.a ../lib/libmonitoringplug.a \ - ../gl/libgnu.a $(am__DEPENDENCIES_1) -check_apt_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_apt_DEPENDENCIES = $(BASEOBJS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = check_by_ssh_SOURCES = check_by_ssh.c check_by_ssh_OBJECTS = check_by_ssh.$(OBJEXT) -am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) -am__DEPENDENCIES_4 = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) -check_by_ssh_DEPENDENCIES = $(am__DEPENDENCIES_4) +am__DEPENDENCIES_1 = +am__DEPENDENCIES_2 = $(check_apt_LDADD) $(am__DEPENDENCIES_1) +check_by_ssh_DEPENDENCIES = $(am__DEPENDENCIES_2) check_cluster_SOURCES = check_cluster.c check_cluster_OBJECTS = check_cluster.$(OBJEXT) -check_cluster_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_cluster_DEPENDENCIES = $(BASEOBJS) check_curl_SOURCES = check_curl.c check_curl_OBJECTS = check_curl-check_curl.$(OBJEXT) -am__DEPENDENCIES_5 = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_4) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -check_curl_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_1) \ +am__DEPENDENCIES_3 = $(check_cluster_LDADD) $(am__DEPENDENCIES_1) +am__DEPENDENCIES_4 = $(BASEOBJS) $(am__DEPENDENCIES_3) \ + $(am__DEPENDENCIES_1) +check_curl_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) \ picohttpparser/libpicohttpparser.a check_curl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(check_curl_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ check_dbi_SOURCES = check_dbi.c check_dbi_OBJECTS = check_dbi.$(OBJEXT) -check_dbi_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) +check_dbi_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) check_dig_SOURCES = check_dig.c check_dig_OBJECTS = check_dig.$(OBJEXT) -check_dig_DEPENDENCIES = $(am__DEPENDENCIES_4) +check_dig_DEPENDENCIES = $(am__DEPENDENCIES_3) check_disk_SOURCES = check_disk.c check_disk_OBJECTS = check_disk.$(OBJEXT) -check_disk_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_disk_DEPENDENCIES = $(BASEOBJS) check_dns_SOURCES = check_dns.c check_dns_OBJECTS = check_dns.$(OBJEXT) -check_dns_DEPENDENCIES = $(am__DEPENDENCIES_4) +am__DEPENDENCIES_5 = $(check_disk_LDADD) $(am__DEPENDENCIES_1) +check_dns_DEPENDENCIES = $(am__DEPENDENCIES_5) check_dummy_SOURCES = check_dummy.c check_dummy_OBJECTS = check_dummy.$(OBJEXT) -check_dummy_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_dummy_DEPENDENCIES = $(BASEOBJS) check_fping_SOURCES = check_fping.c check_fping_OBJECTS = check_fping.$(OBJEXT) -check_fping_DEPENDENCIES = $(am__DEPENDENCIES_4) +am__DEPENDENCIES_6 = $(check_dummy_LDADD) $(am__DEPENDENCIES_1) +check_fping_DEPENDENCIES = $(am__DEPENDENCIES_6) check_game_SOURCES = check_game.c check_game_OBJECTS = check_game.$(OBJEXT) -check_game_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_game_DEPENDENCIES = $(BASEOBJS) check_hpjd_SOURCES = check_hpjd.c check_hpjd_OBJECTS = check_hpjd.$(OBJEXT) -check_hpjd_DEPENDENCIES = $(am__DEPENDENCIES_4) +am__DEPENDENCIES_7 = $(check_game_LDADD) $(am__DEPENDENCIES_1) +check_hpjd_DEPENDENCIES = $(am__DEPENDENCIES_7) check_http_SOURCES = check_http.c check_http_OBJECTS = check_http.$(OBJEXT) -check_http_DEPENDENCIES = $(am__DEPENDENCIES_5) +am__DEPENDENCIES_8 = $(BASEOBJS) $(am__DEPENDENCIES_7) \ + $(am__DEPENDENCIES_1) +check_http_DEPENDENCIES = $(am__DEPENDENCIES_8) check_ide_smart_SOURCES = check_ide_smart.c check_ide_smart_OBJECTS = check_ide_smart.$(OBJEXT) -check_ide_smart_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_ide_smart_DEPENDENCIES = $(BASEOBJS) check_ldap_SOURCES = check_ldap.c check_ldap_OBJECTS = check_ldap.$(OBJEXT) -check_ldap_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) +am__DEPENDENCIES_9 = $(check_ide_smart_LDADD) $(am__DEPENDENCIES_1) +check_ldap_DEPENDENCIES = $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_1) check_load_SOURCES = check_load.c check_load_OBJECTS = check_load.$(OBJEXT) -check_load_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_load_DEPENDENCIES = $(BASEOBJS) check_mrtg_SOURCES = check_mrtg.c check_mrtg_OBJECTS = check_mrtg.$(OBJEXT) -check_mrtg_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_mrtg_DEPENDENCIES = $(BASEOBJS) check_mrtgtraf_SOURCES = check_mrtgtraf.c check_mrtgtraf_OBJECTS = check_mrtgtraf.$(OBJEXT) -check_mrtgtraf_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_mrtgtraf_DEPENDENCIES = $(BASEOBJS) check_mysql_SOURCES = check_mysql.c check_mysql_OBJECTS = check_mysql-check_mysql.$(OBJEXT) -check_mysql_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) +am__DEPENDENCIES_10 = $(check_mrtgtraf_LDADD) $(am__DEPENDENCIES_1) +check_mysql_DEPENDENCIES = $(am__DEPENDENCIES_10) \ + $(am__DEPENDENCIES_1) check_mysql_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(check_mysql_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ check_mysql_query_SOURCES = check_mysql_query.c check_mysql_query_OBJECTS = \ check_mysql_query-check_mysql_query.$(OBJEXT) -check_mysql_query_DEPENDENCIES = $(am__DEPENDENCIES_4) \ +check_mysql_query_DEPENDENCIES = $(am__DEPENDENCIES_10) \ $(am__DEPENDENCIES_1) check_mysql_query_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -329,74 +319,82 @@ check_mysql_query_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ -o $@ check_nagios_SOURCES = check_nagios.c check_nagios_OBJECTS = check_nagios.$(OBJEXT) -check_nagios_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_nagios_DEPENDENCIES = $(BASEOBJS) check_nt_SOURCES = check_nt.c check_nt_OBJECTS = check_nt.$(OBJEXT) -check_nt_DEPENDENCIES = $(am__DEPENDENCIES_4) +am__DEPENDENCIES_11 = $(check_nagios_LDADD) $(am__DEPENDENCIES_1) +check_nt_DEPENDENCIES = $(am__DEPENDENCIES_11) check_ntp_SOURCES = check_ntp.c check_ntp_OBJECTS = check_ntp.$(OBJEXT) -check_ntp_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) +check_ntp_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_1) check_ntp_peer_SOURCES = check_ntp_peer.c check_ntp_peer_OBJECTS = check_ntp_peer.$(OBJEXT) -check_ntp_peer_DEPENDENCIES = $(am__DEPENDENCIES_4) \ +check_ntp_peer_DEPENDENCIES = $(am__DEPENDENCIES_11) \ $(am__DEPENDENCIES_1) check_ntp_time_SOURCES = check_ntp_time.c check_ntp_time_OBJECTS = check_ntp_time.$(OBJEXT) -check_ntp_time_DEPENDENCIES = $(am__DEPENDENCIES_4) \ +check_ntp_time_DEPENDENCIES = $(am__DEPENDENCIES_11) \ $(am__DEPENDENCIES_1) check_nwstat_SOURCES = check_nwstat.c check_nwstat_OBJECTS = check_nwstat.$(OBJEXT) -check_nwstat_DEPENDENCIES = $(am__DEPENDENCIES_4) +check_nwstat_DEPENDENCIES = $(am__DEPENDENCIES_11) check_overcr_SOURCES = check_overcr.c check_overcr_OBJECTS = check_overcr.$(OBJEXT) -check_overcr_DEPENDENCIES = $(am__DEPENDENCIES_4) +check_overcr_DEPENDENCIES = $(am__DEPENDENCIES_11) check_pgsql_SOURCES = check_pgsql.c check_pgsql_OBJECTS = check_pgsql.$(OBJEXT) -check_pgsql_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) +check_pgsql_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_1) check_ping_SOURCES = check_ping.c check_ping_OBJECTS = check_ping.$(OBJEXT) -check_ping_DEPENDENCIES = $(am__DEPENDENCIES_4) +check_ping_DEPENDENCIES = $(am__DEPENDENCIES_11) check_procs_SOURCES = check_procs.c check_procs_OBJECTS = check_procs.$(OBJEXT) -check_procs_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_procs_DEPENDENCIES = $(BASEOBJS) check_radius_SOURCES = check_radius.c check_radius_OBJECTS = check_radius.$(OBJEXT) -check_radius_DEPENDENCIES = $(am__DEPENDENCIES_4) \ +am__DEPENDENCIES_12 = $(check_procs_LDADD) $(am__DEPENDENCIES_1) +check_radius_DEPENDENCIES = $(am__DEPENDENCIES_12) \ $(am__DEPENDENCIES_1) check_real_SOURCES = check_real.c check_real_OBJECTS = check_real.$(OBJEXT) -check_real_DEPENDENCIES = $(am__DEPENDENCIES_4) +check_real_DEPENDENCIES = $(am__DEPENDENCIES_12) check_smtp_SOURCES = check_smtp.c check_smtp_OBJECTS = check_smtp.$(OBJEXT) -check_smtp_DEPENDENCIES = $(am__DEPENDENCIES_5) +am__DEPENDENCIES_13 = $(BASEOBJS) $(am__DEPENDENCIES_12) \ + $(am__DEPENDENCIES_1) +check_smtp_DEPENDENCIES = $(am__DEPENDENCIES_13) check_snmp_SOURCES = check_snmp.c check_snmp_OBJECTS = check_snmp.$(OBJEXT) -check_snmp_DEPENDENCIES = $(am__DEPENDENCIES_2) +check_snmp_DEPENDENCIES = $(BASEOBJS) check_ssh_SOURCES = check_ssh.c check_ssh_OBJECTS = check_ssh.$(OBJEXT) -check_ssh_DEPENDENCIES = $(am__DEPENDENCIES_4) +am__DEPENDENCIES_14 = $(check_snmp_LDADD) $(am__DEPENDENCIES_1) +check_ssh_DEPENDENCIES = $(am__DEPENDENCIES_14) check_swap_SOURCES = check_swap.c check_swap_OBJECTS = check_swap.$(OBJEXT) -check_swap_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +check_swap_DEPENDENCIES = $(am__DEPENDENCIES_1) $(BASEOBJS) check_tcp_SOURCES = check_tcp.c check_tcp_OBJECTS = check_tcp.$(OBJEXT) -check_tcp_DEPENDENCIES = $(am__DEPENDENCIES_5) +am__DEPENDENCIES_15 = $(BASEOBJS) $(am__DEPENDENCIES_14) \ + $(am__DEPENDENCIES_1) +check_tcp_DEPENDENCIES = $(am__DEPENDENCIES_15) check_time_SOURCES = check_time.c check_time_OBJECTS = check_time.$(OBJEXT) -check_time_DEPENDENCIES = $(am__DEPENDENCIES_4) +check_time_DEPENDENCIES = $(am__DEPENDENCIES_14) check_ups_SOURCES = check_ups.c check_ups_OBJECTS = check_ups.$(OBJEXT) -check_ups_DEPENDENCIES = $(am__DEPENDENCIES_4) +check_ups_DEPENDENCIES = $(am__DEPENDENCIES_14) check_users_SOURCES = check_users.c check_users_OBJECTS = check_users.$(OBJEXT) -check_users_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__append_1) +check_users_DEPENDENCIES = $(BASEOBJS) $(am__DEPENDENCIES_1) \ + $(am__append_1) negate_SOURCES = negate.c negate_OBJECTS = negate.$(OBJEXT) -negate_DEPENDENCIES = $(am__DEPENDENCIES_2) +negate_DEPENDENCIES = $(BASEOBJS) urlize_SOURCES = urlize.c urlize_OBJECTS = urlize.$(OBJEXT) -urlize_DEPENDENCIES = $(am__DEPENDENCIES_2) +urlize_DEPENDENCIES = $(BASEOBJS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -751,6 +749,7 @@ am__relativize = \ done; \ reldir="$$dir2" VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -759,7 +758,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -770,11 +768,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -811,476 +807,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -1289,7 +1162,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -1297,11 +1169,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -1311,17 +1181,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -1331,22 +1197,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -1366,7 +1227,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -1376,37 +1236,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -1417,24 +1270,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1442,21 +1289,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1470,23 +1313,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1497,29 +1333,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1531,9 +1362,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1549,16 +1377,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1568,7 +1392,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1579,17 +1402,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1603,7 +1422,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1628,10 +1446,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1643,8 +1461,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1663,25 +1479,16 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ # gettext docs say to use LDADD, but per module_LDADD override LIBS = @LTLIBINTL@ @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1690,6 +1497,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1697,23 +1505,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1725,7 +1528,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1733,12 +1535,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1750,7 +1549,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1808,63 +1606,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1875,61 +1645,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1947,9 +1701,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1959,11 +1711,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1971,30 +1718,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -2002,24 +1740,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -2027,42 +1759,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -2070,10 +1787,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -2092,21 +1807,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -2119,9 +1827,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -2153,10 +1858,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -2171,9 +1874,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = $(datadir)/locale -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -2208,10 +1910,10 @@ noinst_LIBRARIES = libnpcommon.a libnpcommon_a_SOURCES = utils.c netutils.c sslutils.c runcmd.c \ popen.c utils.h netutils.h popen.h common.h runcmd.c runcmd.h -BASEOBJS = libnpcommon.a ../lib/libmonitoringplug.a ../gl/libgnu.a $(LIB_CRYPTO) +BASEOBJS = libnpcommon.a ../lib/libmonitoringplug.a ../gl/libgnu.a NETOBJS = $(BASEOBJS) $(EXTRA_NETOBLS) NETLIBS = $(NETOBJS) $(SOCKETLIBS) -SSLOBJS = $(BASEOBJS) $(NETLIBS) $(SSLLIBS) $(LIB_CRYPTO) +SSLOBJS = $(BASEOBJS) $(NETLIBS) $(SSLLIBS) TESTS_ENVIRONMENT = perl -I $(top_builddir) -I $(top_srcdir) TESTS = @PLUGIN_TEST@ @@ -2260,8 +1962,7 @@ check_tcp_LDADD = $(SSLOBJS) check_time_LDADD = $(NETLIBS) check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS) check_ups_LDADD = $(NETLIBS) -check_users_LDADD = $(BASEOBJS) $(WTSAPI32LIBS) $(SYSTEMDLIBS) \ - $(am__append_1) +check_users_LDADD = $(BASEOBJS) $(WTSAPI32LIBS) $(am__append_1) check_by_ssh_LDADD = $(NETLIBS) check_ide_smart_LDADD = $(BASEOBJS) negate_LDADD = $(BASEOBJS) diff --git a/plugins/check_apt.c b/plugins/check_apt.c index 5c0f6e2..fa982ae 100644 --- a/plugins/check_apt.c +++ b/plugins/check_apt.c @@ -94,7 +94,7 @@ static int stderr_warning = 0; /* if a cmd issued output on stderr */ static int exec_warning = 0; /* if a cmd exited non-zero */ int main (int argc, char **argv) { - int result=STATE_UNKNOWN, packages_available=0, sec_count=0; + int result=STATE_UNKNOWN, packages_available=0, sec_count=0, i=0; char **packages_list=NULL, **secpackages_list=NULL; /* Parse extra opts if any */ @@ -142,11 +142,10 @@ int main (int argc, char **argv) { qsort(secpackages_list, sec_count, sizeof(char*), cmpstringp); qsort(packages_list, packages_available-sec_count, sizeof(char*), cmpstringp); - for(int i = 0; i < sec_count; i++) + for(i = 0; i < sec_count; i++) printf("%s (security)\n", secpackages_list[i]); - if (only_critical == false) { - for(int i = 0; i < packages_available - sec_count; i++) + for(i = 0; i < packages_available - sec_count; i++) printf("%s\n", packages_list[i]); } } @@ -252,7 +251,7 @@ int process_arguments (int argc, char **argv) { /* run an apt-get upgrade */ int run_upgrade(int *pkgcount, int *secpkgcount, char ***pkglist, char ***secpkglist){ - int result=STATE_UNKNOWN, regres=0, pc=0, spc=0; + int i=0, result=STATE_UNKNOWN, regres=0, pc=0, spc=0; struct output chld_out, chld_err; regex_t ireg, ereg, sreg; char *cmdline=NULL, rerrbuf[64]; @@ -321,7 +320,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount, char ***pkglist, char ***secpkg * we may need to switch to the --print-uris output format, * in which case the logic here will slightly change. */ - for(size_t i = 0; i < chld_out.lines; i++) { + for(i = 0; i < chld_out.lines; i++) { if(verbose){ printf("%s\n", chld_out.line[i]); } @@ -354,7 +353,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount, char ***pkglist, char ***secpkg stderr_warning=1; result = max_state(result, STATE_WARNING); if(verbose){ - for(size_t i = 0; i < chld_err.lines; i++) { + for(i = 0; i < chld_err.lines; i++) { fprintf(stderr, "%s\n", chld_err.line[i]); } } @@ -368,7 +367,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount, char ***pkglist, char ***secpkg /* run an apt-get update (needs root) */ int run_update(void){ - int result=STATE_UNKNOWN; + int i=0, result=STATE_UNKNOWN; struct output chld_out, chld_err; char *cmdline; @@ -386,7 +385,7 @@ int run_update(void){ } if(verbose){ - for(size_t i = 0; i < chld_out.lines; i++) { + for(i = 0; i < chld_out.lines; i++) { printf("%s\n", chld_out.line[i]); } } @@ -396,7 +395,7 @@ int run_update(void){ stderr_warning=1; result = max_state(result, STATE_WARNING); if(verbose){ - for(size_t i = 0; i < chld_err.lines; i++) { + for(i = 0; i < chld_err.lines; i++) { fprintf(stderr, "%s\n", chld_err.line[i]); } } diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c index 2a23b39..1ad547e 100644 --- a/plugins/check_by_ssh.c +++ b/plugins/check_by_ssh.c @@ -50,7 +50,7 @@ unsigned int services = 0; int skip_stdout = 0; int skip_stderr = 0; int warn_on_stderr = 0; -bool unknown_timeout = false; +bool unknown_timeout = FALSE; char *remotecmd = NULL; char **commargv = NULL; int commargc = 0; @@ -58,8 +58,8 @@ char *hostname = NULL; char *outputfile = NULL; char *host_shortname = NULL; char **service; -bool passive = false; -bool verbose = false; +int passive = FALSE; +int verbose = FALSE; int main (int argc, char **argv) @@ -68,6 +68,7 @@ main (int argc, char **argv) char *status_text; int cresult; int result = STATE_UNKNOWN; + int i; time_t local_time; FILE *fp = NULL; output chld_out, chld_err; @@ -95,7 +96,7 @@ main (int argc, char **argv) /* run the command */ if (verbose) { printf ("Command: %s\n", commargv[0]); - for (int i = 1; i < commargc; i++) + for (i=1; i (size_t)skip_stderr) { + if(chld_err.lines > skip_stderr) { printf (_("Remote command execution failed: %s\n"), chld_err.line[skip_stderr]); if ( warn_on_stderr ) @@ -133,8 +134,8 @@ main (int argc, char **argv) /* this is simple if we're not supposed to be passive. * Wrap up quickly and keep the tricks below */ if(!passive) { - if (chld_out.lines > (size_t)skip_stdout) - for (size_t i = skip_stdout; i < chld_out.lines; i++) + if (chld_out.lines > skip_stdout) + for (i = skip_stdout; i < chld_out.lines; i++) puts (chld_out.line[i]); else printf (_("%s - check_by_ssh: Remote command '%s' returned status %d\n"), @@ -155,7 +156,7 @@ main (int argc, char **argv) local_time = time (NULL); commands = 0; - for(size_t i = skip_stdout; i < chld_out.lines; i++) { + for(i = skip_stdout; i < chld_out.lines; i++) { status_text = chld_out.line[i++]; if (i == chld_out.lines || strstr (chld_out.line[i], "STATUS CODE: ") == NULL) die (STATE_UNKNOWN, _("%s: Error parsing output\n"), progname); @@ -234,7 +235,7 @@ process_arguments (int argc, char **argv) print_help (); exit (STATE_UNKNOWN); case 'v': /* help */ - verbose = true; + verbose = TRUE; break; case 't': /* timeout period */ if (!is_integer (optarg)) @@ -243,7 +244,7 @@ process_arguments (int argc, char **argv) timeout_interval = atoi (optarg); break; case 'U': - unknown_timeout = true; + unknown_timeout = TRUE; break; case 'H': /* host */ hostname = optarg; @@ -256,7 +257,7 @@ process_arguments (int argc, char **argv) break; case 'O': /* output file */ outputfile = optarg; - passive = true; + passive = TRUE; break; case 's': /* description of service to check */ p1 = optarg; diff --git a/plugins/check_curl.c b/plugins/check_curl.c index c54be5e..c6593df 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c @@ -37,7 +37,6 @@ const char *progname = "check_curl"; const char *copyright = "2006-2019"; const char *email = "devel@monitoring-plugins.org"; -#include #include #include "common.h" @@ -55,7 +54,6 @@ const char *email = "devel@monitoring-plugins.org"; #include "uriparser/Uri.h" #include -#include #if defined(HAVE_SSL) && defined(USE_OPENSSL) #include @@ -133,15 +131,14 @@ regmatch_t pmatch[REGS]; char regexp[MAX_RE_SIZE]; int cflags = REG_NOSUB | REG_EXTENDED | REG_NEWLINE; int errcode; -bool invert_regex = false; -int state_regex = STATE_CRITICAL; +int invert_regex = 0; char *server_address = NULL; char *host_name = NULL; char *server_url = 0; char server_ip[DEFAULT_BUFFER_SIZE]; struct curl_slist *server_ips = NULL; -bool specify_port = false; +int specify_port = FALSE; unsigned short server_port = HTTP_PORT; unsigned short virtual_port = 0; int host_name_length; @@ -153,8 +150,8 @@ int days_till_exp_warn, days_till_exp_crit; thresholds *thlds; char user_agent[DEFAULT_BUFFER_SIZE]; int verbose = 0; -bool show_extended_perfdata = false; -bool show_body = false; +int show_extended_perfdata = FALSE; +int show_body = FALSE; int min_page_len = 0; int max_page_len = 0; int redir_depth = 0; @@ -163,16 +160,10 @@ char *http_method = NULL; char *http_post_data = NULL; char *http_content_type = NULL; CURL *curl; -bool curl_global_initialized = false; -bool curl_easy_initialized = false; struct curl_slist *header_list = NULL; -bool body_buf_initialized = false; curlhelp_write_curlbuf body_buf; -bool header_buf_initialized = false; curlhelp_write_curlbuf header_buf; -bool status_line_initialized = false; curlhelp_statusline status_line; -bool put_buf_initialized = false; curlhelp_read_curlbuf put_buf; char http_header[DEFAULT_BUFFER_SIZE]; long code; @@ -182,7 +173,7 @@ double time_connect; double time_appconnect; double time_headers; double time_firstbyte; -char errbuf[MAX_INPUT_BUFFER]; +char errbuf[CURL_ERROR_SIZE+1]; CURLcode res; char url[DEFAULT_BUFFER_SIZE]; char msg[DEFAULT_BUFFER_SIZE]; @@ -195,14 +186,14 @@ char user_auth[MAX_INPUT_BUFFER] = ""; char proxy_auth[MAX_INPUT_BUFFER] = ""; char **http_opt_headers; int http_opt_headers_count = 0; -bool display_html = false; +int display_html = FALSE; int onredirect = STATE_OK; int followmethod = FOLLOW_HTTP_CURL; int followsticky = STICKY_NONE; -bool use_ssl = false; -bool use_sni = true; -bool check_cert = false; -bool continue_after_check_cert = false; +int use_ssl = FALSE; +int use_sni = TRUE; +int check_cert = FALSE; +int continue_after_check_cert = FALSE; typedef union { struct curl_slist* to_info; struct curl_certinfo* to_certinfo; @@ -212,21 +203,19 @@ int ssl_version = CURL_SSLVERSION_DEFAULT; char *client_cert = NULL; char *client_privkey = NULL; char *ca_cert = NULL; -bool verify_peer_and_host = false; -bool is_openssl_callback = false; +int verify_peer_and_host = FALSE; +int is_openssl_callback = FALSE; #if defined(HAVE_SSL) && defined(USE_OPENSSL) X509 *cert = NULL; #endif /* defined(HAVE_SSL) && defined(USE_OPENSSL) */ -bool no_body = false; +int no_body = FALSE; int maximum_age = -1; int address_family = AF_UNSPEC; curlhelp_ssl_library ssl_library = CURLHELP_SSL_LIBRARY_UNKNOWN; int curl_http_version = CURL_HTTP_VERSION_NONE; -bool automatic_decompression = false; -char *cookie_jar_file = NULL; -bool haproxy_protocol = false; +int automatic_decompression = FALSE; -bool process_arguments (int, char**); +int process_arguments (int, char**); void handle_curl_option_return_code (CURLcode res, const char* option); int check_http (void); void redir (curlhelp_write_curlbuf*); @@ -241,12 +230,12 @@ void print_help (void); void print_usage (void); void print_curl_version (void); int curlhelp_initwritebuffer (curlhelp_write_curlbuf*); -size_t curlhelp_buffer_write_callback(void*, size_t , size_t , void*); +int curlhelp_buffer_write_callback (void*, size_t , size_t , void*); void curlhelp_freewritebuffer (curlhelp_write_curlbuf*); int curlhelp_initreadbuffer (curlhelp_read_curlbuf *, const char *, size_t); -size_t curlhelp_buffer_read_callback(void *, size_t , size_t , void *); +int curlhelp_buffer_read_callback (void *, size_t , size_t , void *); void curlhelp_freereadbuffer (curlhelp_read_curlbuf *); -curlhelp_ssl_library curlhelp_get_ssl_library (); +curlhelp_ssl_library curlhelp_get_ssl_library (CURL*); const char* curlhelp_get_ssl_library_string (curlhelp_ssl_library); int net_noopenssl_check_certificate (cert_ptr_union*, int, int); @@ -280,10 +269,10 @@ main (int argc, char **argv) progname, NP_VERSION, VERSION, curl_version()); /* parse arguments */ - if (process_arguments (argc, argv) == false) + if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); - if (display_html) + if (display_html == TRUE) printf ("", use_ssl ? "https" : "http", host_name ? host_name : server_address, @@ -299,7 +288,6 @@ main (int argc, char **argv) int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) { - (void) preverify_ok; /* TODO: we get all certificates of the chain, so which ones * should we test? * TODO: is the last certificate always the server certificate? @@ -324,8 +312,6 @@ int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) CURLcode sslctxfun(CURL *curl, SSL_CTX *sslctx, void *parm) { - (void) curl; // ignore unused parameter - (void) parm; // ignore unused parameter SSL_CTX_set_verify(sslctx, SSL_VERIFY_PEER, verify_callback); return CURLE_OK; @@ -380,12 +366,8 @@ void handle_curl_option_return_code (CURLcode res, const char* option) { if (res != CURLE_OK) { - snprintf (msg, - DEFAULT_BUFFER_SIZE, - _("Error while setting cURL option '%s': cURL returned %d - %s"), - option, - res, - curl_easy_strerror(res)); + snprintf (msg, DEFAULT_BUFFER_SIZE, _("Error while setting cURL option '%s': cURL returned %d - %s"), + option, res, curl_easy_strerror(res)); die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); } } @@ -394,11 +376,8 @@ int lookup_host (const char *host, char *buf, size_t buflen) { struct addrinfo hints, *res, *result; - char addrstr[100]; - size_t addrstr_len; int errcode; - void *ptr = { 0 }; - size_t buflen_remaining = buflen - 1; + void *ptr; memset (&hints, 0, sizeof (hints)); hints.ai_family = address_family; @@ -408,62 +387,31 @@ lookup_host (const char *host, char *buf, size_t buflen) errcode = getaddrinfo (host, NULL, &hints, &result); if (errcode != 0) return errcode; - - strcpy(buf, ""); + res = result; while (res) { - switch (res->ai_family) { - case AF_INET: - ptr = &((struct sockaddr_in *) res->ai_addr)->sin_addr; - break; - case AF_INET6: - ptr = &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr; - break; + inet_ntop (res->ai_family, res->ai_addr->sa_data, buf, buflen); + switch (res->ai_family) { + case AF_INET: + ptr = &((struct sockaddr_in *) res->ai_addr)->sin_addr; + break; + case AF_INET6: + ptr = &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr; + break; } - - inet_ntop (res->ai_family, ptr, addrstr, 100); - if (verbose >= 1) { + inet_ntop (res->ai_family, ptr, buf, buflen); + if (verbose >= 1) printf ("* getaddrinfo IPv%d address: %s\n", - res->ai_family == PF_INET6 ? 6 : 4, addrstr); - } - - // Append all IPs to buf as a comma-separated string - addrstr_len = strlen(addrstr); - if (buflen_remaining > addrstr_len + 1) { - if (buf[0] != '\0') { - strncat(buf, ",", buflen_remaining); - buflen_remaining -= 1; - } - strncat(buf, addrstr, buflen_remaining); - buflen_remaining -= addrstr_len; - } - + res->ai_family == PF_INET6 ? 6 : 4, buf); res = res->ai_next; } - + freeaddrinfo(result); return 0; } -static void -cleanup (void) -{ - if (status_line_initialized) curlhelp_free_statusline(&status_line); - status_line_initialized = false; - if (curl_easy_initialized) curl_easy_cleanup (curl); - curl_easy_initialized = false; - if (curl_global_initialized) curl_global_cleanup (); - curl_global_initialized = false; - if (body_buf_initialized) curlhelp_freewritebuffer (&body_buf); - body_buf_initialized = false; - if (header_buf_initialized) curlhelp_freewritebuffer (&header_buf); - header_buf_initialized = false; - if (put_buf_initialized) curlhelp_freereadbuffer (&put_buf); - put_buf_initialized = false; -} - int check_http (void) { @@ -472,24 +420,18 @@ check_http (void) int i; char *force_host_header = NULL; struct curl_slist *host = NULL; - char addrstr[DEFAULT_BUFFER_SIZE/2]; + char addrstr[100]; char dnscache[DEFAULT_BUFFER_SIZE]; /* initialize curl */ if (curl_global_init (CURL_GLOBAL_DEFAULT) != CURLE_OK) die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_global_init failed\n"); - curl_global_initialized = true; - if ((curl = curl_easy_init()) == NULL) { + if ((curl = curl_easy_init()) == NULL) die (STATE_UNKNOWN, "HTTP UNKNOWN - curl_easy_init failed\n"); - } - curl_easy_initialized = true; - - /* register cleanup function to shut down libcurl properly */ - atexit (cleanup); if (verbose >= 1) - handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_VERBOSE, 1), "CURLOPT_VERBOSE"); + handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_VERBOSE, TRUE), "CURLOPT_VERBOSE"); /* print everything on stdout like check_http would do */ handle_curl_option_return_code (curl_easy_setopt(curl, CURLOPT_STDERR, stdout), "CURLOPT_STDERR"); @@ -504,14 +446,12 @@ check_http (void) /* initialize buffer for body of the answer */ if (curlhelp_initwritebuffer(&body_buf) < 0) die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating buffer for body\n"); - body_buf_initialized = true; handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, (curl_write_callback)curlhelp_buffer_write_callback), "CURLOPT_WRITEFUNCTION"); handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEDATA, (void *)&body_buf), "CURLOPT_WRITEDATA"); /* initialize buffer for header of the answer */ if (curlhelp_initwritebuffer( &header_buf ) < 0) die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating buffer for header\n" ); - header_buf_initialized = true; handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_HEADERFUNCTION, (curl_write_callback)curlhelp_buffer_write_callback), "CURLOPT_HEADERFUNCTION"); handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_WRITEHEADER, (void *)&header_buf), "CURLOPT_WRITEHEADER"); @@ -522,21 +462,12 @@ check_http (void) handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_CONNECTTIMEOUT, socket_timeout), "CURLOPT_CONNECTTIMEOUT"); handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_TIMEOUT, socket_timeout), "CURLOPT_TIMEOUT"); - /* enable haproxy protocol */ - if (haproxy_protocol) { - handle_curl_option_return_code(curl_easy_setopt(curl, CURLOPT_HAPROXYPROTOCOL, 1L), "CURLOPT_HAPROXYPROTOCOL"); - } - // fill dns resolve cache to make curl connect to the given server_address instead of the host_name, only required for ssl, because we use the host_name later on to make SNI happy if(use_ssl && host_name != NULL) { - if ( (res=lookup_host (server_address, addrstr, DEFAULT_BUFFER_SIZE/2)) != 0) { - snprintf (msg, - DEFAULT_BUFFER_SIZE, - _("Unable to lookup IP address for '%s': getaddrinfo returned %d - %s"), - server_address, - res, - gai_strerror (res)); - die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); + if ( (res=lookup_host (server_address, addrstr, 100)) != 0) { + snprintf (msg, DEFAULT_BUFFER_SIZE, _("Unable to lookup IP address for '%s': getaddrinfo returned %d - %s"), + server_address, res, gai_strerror (res)); + die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); } snprintf (dnscache, DEFAULT_BUFFER_SIZE, "%s:%d:%s", host_name, server_port, addrstr); host = curl_slist_append(NULL, dnscache); @@ -560,7 +491,7 @@ check_http (void) /* compose URL: use the address we want to connect to, set Host: header later */ snprintf (url, DEFAULT_BUFFER_SIZE, "%s://%s:%d%s", use_ssl ? "https" : "http", - ( use_ssl & ( host_name != NULL ) ) ? host_name : server_address, + use_ssl & host_name != NULL ? host_name : server_address, server_port, server_url ); @@ -581,7 +512,7 @@ check_http (void) /* disable body for HEAD request */ if (http_method && !strcmp (http_method, "HEAD" )) { - no_body = true; + no_body = TRUE; } /* set HTTP protocol version */ @@ -636,7 +567,7 @@ check_http (void) #ifdef LIBCURL_FEATURE_SSL - /* set SSL version, warn about insecure or unsupported versions */ + /* set SSL version, warn about unsecure or unsupported versions */ if (use_ssl) { handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_SSLVERSION, ssl_version), "CURLOPT_SSLVERSION"); } @@ -664,7 +595,7 @@ check_http (void) } /* detect SSL library used by libcurl */ - ssl_library = curlhelp_get_ssl_library (); + ssl_library = curlhelp_get_ssl_library (curl); /* try hard to get a stack of certificates to verify against */ if (check_cert) { @@ -678,7 +609,7 @@ check_http (void) #ifdef USE_OPENSSL /* libcurl and monitoring plugins built with OpenSSL, good */ handle_curl_option_return_code (curl_easy_setopt(curl, CURLOPT_SSL_CTX_FUNCTION, sslctxfun), "CURLOPT_SSL_CTX_FUNCTION"); - is_openssl_callback = true; + is_openssl_callback = TRUE; #else /* USE_OPENSSL */ #endif /* USE_OPENSSL */ /* libcurl is built with OpenSSL, monitoring plugins, so falling @@ -757,11 +688,9 @@ check_http (void) handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_MAXREDIRS, max_depth+1), "CURLOPT_MAXREDIRS"); /* for now allow only http and https (we are a http(s) check plugin in the end) */ -#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 85, 0) - handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_REDIR_PROTOCOLS_STR, "http,https"), "CURLOPT_REDIR_PROTOCOLS_STR"); -#elif LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) +#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS), "CURLOPT_REDIRECT_PROTOCOLS"); -#endif +#endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 19, 4) */ /* TODO: handle the following aspects of redirection, make them * command line options too later: @@ -805,20 +734,12 @@ check_http (void) handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_POSTFIELDS, http_post_data), "CURLOPT_POSTFIELDS"); } else if (!strcmp(http_method, "PUT")) { handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_READFUNCTION, (curl_read_callback)curlhelp_buffer_read_callback), "CURLOPT_READFUNCTION"); - if (curlhelp_initreadbuffer (&put_buf, http_post_data, strlen (http_post_data)) < 0) - die (STATE_UNKNOWN, "HTTP CRITICAL - out of memory allocating read buffer for PUT\n"); - put_buf_initialized = true; + curlhelp_initreadbuffer (&put_buf, http_post_data, strlen (http_post_data)); handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_READDATA, (void *)&put_buf), "CURLOPT_READDATA"); handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_INFILESIZE, (curl_off_t)strlen (http_post_data)), "CURLOPT_INFILESIZE"); } } - /* cookie handling */ - if (cookie_jar_file != NULL) { - handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEJAR, cookie_jar_file), "CURLOPT_COOKIEJAR"); - handle_curl_option_return_code (curl_easy_setopt (curl, CURLOPT_COOKIEFILE, cookie_jar_file), "CURLOPT_COOKIEFILE"); - } - /* do the request */ res = curl_easy_perform(curl); @@ -828,32 +749,25 @@ check_http (void) /* free header and server IP resolve lists, we don't need it anymore */ curl_slist_free_all (header_list); header_list = NULL; curl_slist_free_all (server_ips); server_ips = NULL; - if (host) { - curl_slist_free_all (host); host = NULL; - } /* Curl errors, result in critical Nagios state */ if (res != CURLE_OK) { - snprintf (msg, - DEFAULT_BUFFER_SIZE, - _("Invalid HTTP response received from host on port %d: cURL returned %d - %s"), - server_port, - res, - errbuf[0] ? errbuf : curl_easy_strerror(res)); - die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); + snprintf (msg, DEFAULT_BUFFER_SIZE, _("Invalid HTTP response received from host on port %d: cURL returned %d - %s"), + server_port, res, errbuf[0] ? errbuf : curl_easy_strerror(res)); + die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); } /* certificate checks */ #ifdef LIBCURL_FEATURE_SSL - if (use_ssl) { - if (check_cert) { + if (use_ssl == TRUE) { + if (check_cert == TRUE) { if (is_openssl_callback) { #ifdef USE_OPENSSL /* check certificate with OpenSSL functions, curl has been built against OpenSSL * and we actually have OpenSSL in the monitoring tools */ result = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); - if (!continue_after_check_cert) { + if (continue_after_check_cert == FALSE) { return result; } #else /* USE_OPENSSL */ @@ -883,23 +797,19 @@ check_http (void) } GOT_FIRST_CERT: if (!raw_cert) { - snprintf (msg, - DEFAULT_BUFFER_SIZE, - _("Cannot retrieve certificates from CERTINFO information - certificate data was empty")); - die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); + snprintf (msg, DEFAULT_BUFFER_SIZE, _("Cannot retrieve certificates from CERTINFO information - certificate data was empty")); + die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); } BIO* cert_BIO = BIO_new (BIO_s_mem()); BIO_write (cert_BIO, raw_cert, strlen(raw_cert)); cert = PEM_read_bio_X509 (cert_BIO, NULL, NULL, NULL); if (!cert) { - snprintf (msg, - DEFAULT_BUFFER_SIZE, - _("Cannot read certificate from CERTINFO information - BIO error")); - die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); + snprintf (msg, DEFAULT_BUFFER_SIZE, _("Cannot read certificate from CERTINFO information - BIO error")); + die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); } BIO_free (cert_BIO); result = np_net_ssl_check_certificate(cert, days_till_exp_warn, days_till_exp_crit); - if (!continue_after_check_cert) { + if (continue_after_check_cert == FALSE) { return result; } #else /* USE_OPENSSL */ @@ -907,17 +817,14 @@ GOT_FIRST_CERT: * so we use the libcurl CURLINFO data */ result = net_noopenssl_check_certificate(&cert_ptr, days_till_exp_warn, days_till_exp_crit); - if (!continue_after_check_cert) { + if (continue_after_check_cert == FALSE) { return result; } #endif /* USE_OPENSSL */ } else { - snprintf (msg, - DEFAULT_BUFFER_SIZE, - _("Cannot retrieve certificates - cURL returned %d - %s"), - res, - curl_easy_strerror(res)); - die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); + snprintf (msg, DEFAULT_BUFFER_SIZE, _("Cannot retrieve certificates - cURL returned %d - %s"), + res, curl_easy_strerror(res)); + die (STATE_CRITICAL, "HTTP CRITICAL - %s\n", msg); } } } @@ -938,7 +845,7 @@ GOT_FIRST_CERT: perfd_time(total_time), perfd_size(page_len), perfd_time_connect(time_connect), - use_ssl ? perfd_time_ssl (time_appconnect-time_connect) : "", + use_ssl == TRUE ? perfd_time_ssl (time_appconnect-time_connect) : "", perfd_time_headers(time_headers - time_appconnect), perfd_time_firstbyte(time_firstbyte - time_headers), perfd_time_transfer(total_time-time_firstbyte) @@ -956,15 +863,11 @@ GOT_FIRST_CERT: /* get status line of answer, check sanity of HTTP code */ if (curlhelp_parse_statusline (header_buf.buf, &status_line) < 0) { - snprintf (msg, - DEFAULT_BUFFER_SIZE, - "Unparsable status line in %.3g seconds response time|%s\n", - total_time, - perfstring); + snprintf (msg, DEFAULT_BUFFER_SIZE, "Unparsable status line in %.3g seconds response time|%s\n", + total_time, perfstring); /* we cannot know the major/minor version here for sure as we cannot parse the first line */ die (STATE_CRITICAL, "HTTP CRITICAL HTTP/x.x %ld unknown - %s", code, msg); } - status_line_initialized = true; /* get result code from cURL */ handle_curl_option_return_code (curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &code), "CURLINFO_RESPONSE_CODE"); @@ -980,16 +883,9 @@ GOT_FIRST_CERT: /* make sure the status line matches the response we are looking for */ if (!expected_statuscode(status_line.first_line, server_expect)) { if (server_port == HTTP_PORT) - snprintf(msg, - DEFAULT_BUFFER_SIZE, - _("Invalid HTTP response received from host: %s\n"), - status_line.first_line); + snprintf(msg, DEFAULT_BUFFER_SIZE, _("Invalid HTTP response received from host: %s\n"), status_line.first_line); else - snprintf(msg, - DEFAULT_BUFFER_SIZE, - _("Invalid HTTP response received from host on port %d: %s\n"), - server_port, - status_line.first_line); + snprintf(msg, DEFAULT_BUFFER_SIZE, _("Invalid HTTP response received from host on port %d: %s\n"), server_port, status_line.first_line); die (STATE_CRITICAL, "HTTP CRITICAL - %s%s%s", msg, show_body ? "\n" : "", show_body ? body_buf.buf : ""); @@ -1025,7 +921,7 @@ GOT_FIRST_CERT: } } else { /* this is a specific code in the command line to - * be returned when a redirection is encountered + * be returned when a redirection is encoutered */ } result = max_state_alt (onredirect, result); @@ -1062,107 +958,54 @@ GOT_FIRST_CERT: if (strlen (header_expect)) { if (!strstr (header_buf.buf, header_expect)) { - strncpy(&output_header_search[0],header_expect,sizeof(output_header_search)); - if(output_header_search[sizeof(output_header_search)-1]!='\0') { bcopy("...",&output_header_search[sizeof(output_header_search)-4],4); } - - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, - DEFAULT_BUFFER_SIZE, - _("%sheader '%s' not found on '%s://%s:%d%s', "), - msg, - output_header_search, - use_ssl ? "https" : "http", - host_name ? host_name : server_address, - server_port, - server_url); - - strcpy(msg, tmp); - - result = STATE_CRITICAL; + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%sheader '%s' not found on '%s://%s:%d%s', "), msg, output_header_search, use_ssl ? "https" : "http", host_name ? host_name : server_address, server_port, server_url); + result = STATE_CRITICAL; } } if (strlen (string_expect)) { if (!strstr (body_buf.buf, string_expect)) { - strncpy(&output_string_search[0],string_expect,sizeof(output_string_search)); - if(output_string_search[sizeof(output_string_search)-1]!='\0') { bcopy("...",&output_string_search[sizeof(output_string_search)-4],4); } - - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, - DEFAULT_BUFFER_SIZE, - _("%sstring '%s' not found on '%s://%s:%d%s', "), - msg, - output_string_search, - use_ssl ? "https" : "http", - host_name ? host_name : server_address, - server_port, - server_url); - - strcpy(msg, tmp); - - result = STATE_CRITICAL; + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%sstring '%s' not found on '%s://%s:%d%s', "), msg, output_string_search, use_ssl ? "https" : "http", host_name ? host_name : server_address, server_port, server_url); + result = STATE_CRITICAL; } } if (strlen (regexp)) { errcode = regexec (&preg, body_buf.buf, REGS, pmatch, 0); - if ((errcode == 0 && !invert_regex) || (errcode == REG_NOMATCH && invert_regex)) { + if ((errcode == 0 && invert_regex == 0) || (errcode == REG_NOMATCH && invert_regex == 1)) { /* OK - No-op to avoid changing the logic around it */ result = max_state_alt(STATE_OK, result); } - else if ((errcode == REG_NOMATCH && !invert_regex) || (errcode == 0 && invert_regex)) { - if (!invert_regex) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%spattern not found, "), msg); - strcpy(msg, tmp); - - } else { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%spattern found, "), msg); - strcpy(msg, tmp); - - } - result = state_regex; - } else { - regerror (errcode, &preg, errbuf, MAX_INPUT_BUFFER); - - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sExecute Error: %s, "), msg, errbuf); - strcpy(msg, tmp); - result = STATE_UNKNOWN; - } + else if ((errcode == REG_NOMATCH && invert_regex == 0) || (errcode == 0 && invert_regex == 1)) { + if (invert_regex == 0) + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%spattern not found, "), msg); + else + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%spattern found, "), msg); + result = STATE_CRITICAL; + } + else { + regerror (errcode, &preg, errbuf, MAX_INPUT_BUFFER); + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%sExecute Error: %s, "), msg, errbuf); + result = STATE_UNKNOWN; + } } /* make sure the page is of an appropriate size */ - if ((max_page_len > 0) && (page_len > max_page_len)) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%spage size %d too large, "), msg, page_len); - - strcpy(msg, tmp); - - result = max_state_alt(STATE_WARNING, result); - - } else if ((min_page_len > 0) && (page_len < min_page_len)) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%spage size %d too small, "), msg, page_len); - strcpy(msg, tmp); - result = max_state_alt(STATE_WARNING, result); - } + if ((max_page_len > 0) && (page_len > max_page_len)) { + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%spage size %d too large, "), msg, page_len); + result = max_state_alt(STATE_WARNING, result); + } else if ((min_page_len > 0) && (page_len < min_page_len)) { + snprintf (msg, DEFAULT_BUFFER_SIZE, _("%spage size %d too small, "), msg, page_len); + result = max_state_alt(STATE_WARNING, result); + } /* -w, -c: check warning and critical level */ result = max_state_alt(get_status(total_time, thlds), result); @@ -1186,6 +1029,16 @@ GOT_FIRST_CERT: (show_body ? body_buf.buf : ""), (show_body ? "\n" : "") ); + /* proper cleanup after die? */ + curlhelp_free_statusline(&status_line); + curl_easy_cleanup (curl); + curl_global_cleanup (); + curlhelp_freewritebuffer (&body_buf); + curlhelp_freewritebuffer (&header_buf); + if (!strcmp (http_method, "PUT")) { + curlhelp_freereadbuffer (&put_buf); + } + return result; } @@ -1193,16 +1046,16 @@ int uri_strcmp (const UriTextRangeA range, const char* s) { if (!range.first) return -1; - if ( (size_t)(range.afterLast - range.first) < strlen (s) ) return -1; - return strncmp (s, range.first, min( (size_t)(range.afterLast - range.first), strlen (s))); + if (range.afterLast - range.first < strlen (s)) return -1; + return strncmp (s, range.first, min( range.afterLast - range.first, strlen (s))); } char* uri_string (const UriTextRangeA range, char* buf, size_t buflen) { if (!range.first) return "(null)"; - strncpy (buf, range.first, max (buflen-1, (size_t)(range.afterLast - range.first))); - buf[max (buflen-1, (size_t)(range.afterLast - range.first))] = '\0'; + strncpy (buf, range.first, max (buflen-1, range.afterLast - range.first)); + buf[max (buflen-1, range.afterLast - range.first)] = '\0'; buf[range.afterLast - range.first] = '\0'; return buf; } @@ -1225,10 +1078,6 @@ redir (curlhelp_write_curlbuf* header_buf) &status_line.http_major, &status_line.http_minor, &status_line.http_code, &status_line.msg, &msglen, headers, &nof_headers, 0); - if (res == -1) { - die (STATE_UNKNOWN, _("HTTP UNKNOWN - Failed to parse Response\n")); - } - location = get_header_value (headers, nof_headers, "location"); if (verbose >= 2) @@ -1285,10 +1134,7 @@ redir (curlhelp_write_curlbuf* header_buf) } } - if (!uri_strcmp (uri.scheme, "https")) - use_ssl = true; - else - use_ssl = false; + use_ssl = !uri_strcmp (uri.scheme, "https"); /* we do a sloppy test here only, because uriparser would have failed * above, if the port would be invalid, we just check for MAX_PORT @@ -1363,7 +1209,6 @@ redir (curlhelp_write_curlbuf* header_buf) * attached to the URL in Location */ - cleanup (); check_http (); } @@ -1376,7 +1221,7 @@ test_file (char *path) usage2 (_("file does not exist or is not readable"), path); } -bool +int process_arguments (int argc, char **argv) { char *p; @@ -1390,10 +1235,7 @@ process_arguments (int argc, char **argv) CONTINUE_AFTER_CHECK_CERT, CA_CERT_OPTION, HTTP_VERSION_OPTION, - AUTOMATIC_DECOMPRESSION, - COOKIE_JAR, - HAPROXY_PROTOCOL, - STATE_REGEX + AUTOMATIC_DECOMPRESSION }; int option = 0; @@ -1432,7 +1274,6 @@ process_arguments (int argc, char **argv) {"content-type", required_argument, 0, 'T'}, {"pagesize", required_argument, 0, 'm'}, {"invert-regex", no_argument, NULL, INVERT_REGEX}, - {"state-regex", required_argument, 0, STATE_REGEX}, {"use-ipv4", no_argument, 0, '4'}, {"use-ipv6", no_argument, 0, '6'}, {"extended-perfdata", no_argument, 0, 'E'}, @@ -1440,13 +1281,11 @@ process_arguments (int argc, char **argv) {"max-redirs", required_argument, 0, MAX_REDIRS_OPTION}, {"http-version", required_argument, 0, HTTP_VERSION_OPTION}, {"enable-automatic-decompression", no_argument, 0, AUTOMATIC_DECOMPRESSION}, - {"cookie-jar", required_argument, 0, COOKIE_JAR}, - {"haproxy-protocol", no_argument, 0, HAPROXY_PROTOCOL}, {0, 0, 0, 0} }; if (argc < 2) - return false; + return ERROR; /* support check_http compatible arguments */ for (c = 1; c < argc; c++) { @@ -1526,7 +1365,7 @@ process_arguments (int argc, char **argv) if( strtol(optarg, NULL, 10) > MAX_PORT) usage2 (_("Invalid port number, supplied port number is too big"), optarg); server_port = (unsigned short)strtol(optarg, NULL, 10); - specify_port = true; + specify_port = TRUE; } break; case 'a': /* authorization info */ @@ -1560,10 +1399,10 @@ process_arguments (int argc, char **argv) http_opt_headers[http_opt_headers_count - 1] = optarg; break; case 'L': /* show html link */ - display_html = true; + display_html = TRUE; break; case 'n': /* do not show html link */ - display_html = false; + display_html = FALSE; break; case 'C': /* Check SSL cert validity */ #ifdef LIBCURL_FEATURE_SSL @@ -1584,12 +1423,12 @@ process_arguments (int argc, char **argv) usage2 (_("Invalid certificate expiration period"), optarg); days_till_exp_warn = atoi (optarg); } - check_cert = true; + check_cert = TRUE; goto enable_ssl; #endif case CONTINUE_AFTER_CHECK_CERT: /* don't stop after the certificate is checked */ #ifdef HAVE_SSL - continue_after_check_cert = true; + continue_after_check_cert = TRUE; break; #endif case 'J': /* use client certificate */ @@ -1612,13 +1451,13 @@ process_arguments (int argc, char **argv) #endif #ifdef LIBCURL_FEATURE_SSL case 'D': /* verify peer certificate & host */ - verify_peer_and_host = true; + verify_peer_and_host = TRUE; break; #endif case 'S': /* use SSL */ #ifdef LIBCURL_FEATURE_SSL enable_ssl: - use_ssl = true; + use_ssl = TRUE; /* ssl_version initialized to CURL_SSLVERSION_DEFAULT as a default. * Only set if it's non-zero. This helps when we include multiple * parameters, like -S and -C combinations */ @@ -1692,15 +1531,15 @@ process_arguments (int argc, char **argv) #endif /* LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 54, 0) */ if (verbose >= 2) printf(_("* Set SSL/TLS version to %d\n"), ssl_version); - if (!specify_port) + if (specify_port == FALSE) server_port = HTTPS_PORT; break; #else /* LIBCURL_FEATURE_SSL */ /* -C -J and -K fall through to here without SSL */ usage4 (_("Invalid option - SSL is not available")); break; - case SNI_OPTION: /* --sni is parsed, but ignored, the default is true with libcurl */ - use_sni = true; + case SNI_OPTION: /* --sni is parsed, but ignored, the default is TRUE with libcurl */ + use_sni = TRUE; break; #endif /* LIBCURL_FEATURE_SSL */ case MAX_REDIRS_OPTION: @@ -1709,7 +1548,7 @@ process_arguments (int argc, char **argv) else { max_depth = atoi (optarg); } - break; + break; case 'f': /* onredirect */ if (!strcmp (optarg, "ok")) onredirect = STATE_OK; @@ -1754,7 +1593,6 @@ process_arguments (int argc, char **argv) break; case 'R': /* regex */ cflags |= REG_ICASE; - // fall through case 'r': /* regex */ strncpy (regexp, optarg, MAX_RE_SIZE - 1); regexp[MAX_RE_SIZE - 1] = 0; @@ -1762,18 +1600,11 @@ process_arguments (int argc, char **argv) if (errcode != 0) { (void) regerror (errcode, &preg, errbuf, MAX_INPUT_BUFFER); printf (_("Could Not Compile Regular Expression: %s"), errbuf); - return false; + return ERROR; } break; case INVERT_REGEX: - invert_regex = true; - break; - case STATE_REGEX: - if (!strcmp (optarg, "critical")) - state_regex = STATE_CRITICAL; - else if (!strcmp (optarg, "warning")) - state_regex = STATE_WARNING; - else usage2 (_("Invalid state-regex option"), optarg); + invert_regex = 1; break; case '4': address_family = AF_INET; @@ -1808,7 +1639,7 @@ process_arguments (int argc, char **argv) break; } case 'N': /* no-body */ - no_body = true; + no_body = TRUE; break; case 'M': /* max-age */ { @@ -1831,10 +1662,10 @@ process_arguments (int argc, char **argv) } break; case 'E': /* show extended perfdata */ - show_extended_perfdata = true; + show_extended_perfdata = TRUE; break; case 'B': /* print body content after status line */ - show_body = true; + show_body = TRUE; break; case HTTP_VERSION_OPTION: curl_http_version = CURL_HTTP_VERSION_NONE; @@ -1854,13 +1685,7 @@ process_arguments (int argc, char **argv) } break; case AUTOMATIC_DECOMPRESSION: - automatic_decompression = true; - break; - case COOKIE_JAR: - cookie_jar_file = optarg; - break; - case HAPROXY_PROTOCOL: - haproxy_protocol = true; + automatic_decompression = TRUE; break; case '?': /* print short usage statement if args not parsable */ @@ -1901,52 +1726,52 @@ process_arguments (int argc, char **argv) virtual_port = server_port; else { if ((use_ssl && server_port == HTTPS_PORT) || (!use_ssl && server_port == HTTP_PORT)) - if(!specify_port) + if(specify_port == FALSE) server_port = virtual_port; } - return true; + return TRUE; } char *perfd_time (double elapsed_time) { return fperfdata ("time", elapsed_time, "s", - thlds->warning?true:false, thlds->warning?thlds->warning->end:0, - thlds->critical?true:false, thlds->critical?thlds->critical->end:0, - true, 0, true, socket_timeout); + thlds->warning?TRUE:FALSE, thlds->warning?thlds->warning->end:0, + thlds->critical?TRUE:FALSE, thlds->critical?thlds->critical->end:0, + TRUE, 0, TRUE, socket_timeout); } char *perfd_time_connect (double elapsed_time_connect) { - return fperfdata ("time_connect", elapsed_time_connect, "s", false, 0, false, 0, false, 0, true, socket_timeout); + return fperfdata ("time_connect", elapsed_time_connect, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); } char *perfd_time_ssl (double elapsed_time_ssl) { - return fperfdata ("time_ssl", elapsed_time_ssl, "s", false, 0, false, 0, false, 0, true, socket_timeout); + return fperfdata ("time_ssl", elapsed_time_ssl, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); } char *perfd_time_headers (double elapsed_time_headers) { - return fperfdata ("time_headers", elapsed_time_headers, "s", false, 0, false, 0, false, 0, true, socket_timeout); + return fperfdata ("time_headers", elapsed_time_headers, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); } char *perfd_time_firstbyte (double elapsed_time_firstbyte) { - return fperfdata ("time_firstbyte", elapsed_time_firstbyte, "s", false, 0, false, 0, false, 0, true, socket_timeout); + return fperfdata ("time_firstbyte", elapsed_time_firstbyte, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); } char *perfd_time_transfer (double elapsed_time_transfer) { - return fperfdata ("time_transfer", elapsed_time_transfer, "s", false, 0, false, 0, false, 0, true, socket_timeout); + return fperfdata ("time_transfer", elapsed_time_transfer, "s", FALSE, 0, FALSE, 0, FALSE, 0, TRUE, socket_timeout); } char *perfd_size (int page_len) { return perfdata ("size", page_len, "B", - (min_page_len>0?true:false), min_page_len, - (min_page_len>0?true:false), 0, - true, 0, false, 0); + (min_page_len>0?TRUE:FALSE), min_page_len, + (min_page_len>0?TRUE:FALSE), 0, + TRUE, 0, FALSE, 0); } void @@ -2032,7 +1857,7 @@ print_help (void) printf (" %s\n", "-u, --url=PATH"); printf (" %s\n", _("URL to GET or POST (default: /)")); printf (" %s\n", "-P, --post=STRING"); - printf (" %s\n", _("URL decoded http POST data")); + printf (" %s\n", _("URL encoded http POST data")); printf (" %s\n", "-j, --method=STRING (for example: HEAD, OPTIONS, TRACE, PUT, DELETE, CONNECT)"); printf (" %s\n", _("Set HTTP method.")); printf (" %s\n", "-N, --no-body"); @@ -2050,10 +1875,7 @@ print_help (void) printf (" %s\n", "-R, --eregi=STRING"); printf (" %s\n", _("Search page for case-insensitive regex STRING")); printf (" %s\n", "--invert-regex"); - printf (" %s\n", _("Return STATE if found, OK if not (STATE is CRITICAL, per default)")); - printf (" %s\n", _("can be changed with --state--regex)")); - printf (" %s\n", "--regex-state=STATE"); - printf (" %s\n", _("Return STATE if regex is found, OK if not\n")); + printf (" %s\n", _("Return CRITICAL if found, OK if not\n")); printf (" %s\n", "-a, --authorization=AUTH_PAIR"); printf (" %s\n", _("Username:password on sites with basic authentication")); printf (" %s\n", "-b, --proxy-authorization=AUTH_PAIR"); @@ -2084,10 +1906,6 @@ print_help (void) printf (" %s\n", _("1.0 = HTTP/1.0, 1.1 = HTTP/1.1, 2.0 = HTTP/2 (HTTP/2 will fail without -S)")); printf (" %s\n", "--enable-automatic-decompression"); printf (" %s\n", _("Enable automatic decompression of body (CURLOPT_ACCEPT_ENCODING).")); - printf(" %s\n", "--haproxy-protocol"); - printf(" %s\n", _("Send HAProxy proxy protocol v1 header (CURLOPT_HAPROXYPROTOCOL).")); - printf (" %s\n", "---cookie-jar=FILE"); - printf (" %s\n", _("Store cookies in the cookie jar and send them out when requested.")); printf ("\n"); printf (UT_WARN_CRIT); @@ -2167,13 +1985,12 @@ print_usage (void) printf (" %s -H | -I [-u ] [-p ]\n",progname); printf (" [-J ] [-K ] [--ca-cert ] [-D]\n"); printf (" [-w ] [-c ] [-t ] [-L] [-E] [-a auth]\n"); - printf (" [-b proxy_auth] [-f ]\n"); + printf (" [-b proxy_auth] [-f ]\n"); printf (" [-e ] [-d string] [-s string] [-l] [-r | -R ]\n"); printf (" [-P string] [-m :] [-4|-6] [-N] [-M ]\n"); - printf (" [-A string] [-k string] [-S ] [--sni] [--haproxy-protocol]\n"); + printf (" [-A string] [-k string] [-S ] [--sni]\n"); printf (" [-T ] [-j method]\n"); - printf (" [--http-version=] [--enable-automatic-decompression]\n"); - printf (" [--cookie-jar=\n"); + printf (" [--http-version=]\n"); printf (" %s -H | -I -C [,]\n",progname); printf (" [-p ] [-t ] [-4|-6] [--sni]\n"); printf ("\n"); @@ -2201,7 +2018,8 @@ curlhelp_initwritebuffer (curlhelp_write_curlbuf *buf) return 0; } -size_t curlhelp_buffer_write_callback (void *buffer, size_t size, size_t nmemb, void *stream) +int +curlhelp_buffer_write_callback (void *buffer, size_t size, size_t nmemb, void *stream) { curlhelp_write_curlbuf *buf = (curlhelp_write_curlbuf *)stream; @@ -2221,7 +2039,8 @@ size_t curlhelp_buffer_write_callback (void *buffer, size_t size, size_t nmemb, return (int)(size * nmemb); } -size_t curlhelp_buffer_read_callback(void *buffer, size_t size, size_t nmemb, void *stream) +int +curlhelp_buffer_read_callback (void *buffer, size_t size, size_t nmemb, void *stream) { curlhelp_read_curlbuf *buf = (curlhelp_read_curlbuf *)stream; @@ -2331,10 +2150,11 @@ curlhelp_parse_statusline (const char *buf, curlhelp_statusline *status_line) if( strchr( p, '.' ) != NULL ) { /* HTTP 1.x case */ - strtok( p, "." ); + char *ppp; + ppp = strtok( p, "." ); status_line->http_major = (int)strtol( p, &pp, 10 ); if( *pp != '\0' ) { free( first_line_buf ); return -1; } - strtok( NULL, " " ); + ppp = strtok( NULL, " " ); status_line->http_minor = (int)strtol( p, &pp, 10 ); if( *pp != '\0' ) { free( first_line_buf ); return -1; } p += 4; /* 1.x SP */ @@ -2394,7 +2214,8 @@ remove_newlines (char *s) char * get_header_value (const struct phr_header* headers, const size_t nof_headers, const char* header) { - for(size_t i = 0; i < nof_headers; i++ ) { + int i; + for( i = 0; i < nof_headers; i++ ) { if(headers[i].name != NULL && strncasecmp( header, headers[i].name, max( headers[i].name_len, 4 ) ) == 0 ) { return strndup( headers[i].value, headers[i].value_len ); } @@ -2417,74 +2238,40 @@ check_document_dates (const curlhelp_write_curlbuf *header_buf, char (*msg)[DEFA &status_line.http_major, &status_line.http_minor, &status_line.http_code, &status_line.msg, &msglen, headers, &nof_headers, 0); - if (res == -1) { - die (STATE_UNKNOWN, _("HTTP UNKNOWN - Failed to parse Response\n")); - } - server_date = get_header_value (headers, nof_headers, "date"); document_date = get_header_value (headers, nof_headers, "last-modified"); - if (!server_date || !*server_date) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sServer date unknown, "), *msg); - strcpy(*msg, tmp); - - date_result = max_state_alt(STATE_UNKNOWN, date_result); - - } else if (!document_date || !*document_date) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sDocument modification date unknown, "), *msg); - strcpy(*msg, tmp); - - date_result = max_state_alt(STATE_CRITICAL, date_result); - + if (!server_date || !*server_date) { + snprintf (*msg, DEFAULT_BUFFER_SIZE, _("%sServer date unknown, "), *msg); + date_result = max_state_alt(STATE_UNKNOWN, date_result); + } else if (!document_date || !*document_date) { + snprintf (*msg, DEFAULT_BUFFER_SIZE, _("%sDocument modification date unknown, "), *msg); + date_result = max_state_alt(STATE_CRITICAL, date_result); } else { time_t srv_data = curl_getdate (server_date, NULL); time_t doc_data = curl_getdate (document_date, NULL); if (verbose >= 2) printf ("* server date: '%s' (%d), doc_date: '%s' (%d)\n", server_date, (int)srv_data, document_date, (int)doc_data); - if (srv_data <= 0) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sServer date \"%100s\" unparsable, "), *msg, server_date); - strcpy(*msg, tmp); - - date_result = max_state_alt(STATE_CRITICAL, date_result); - } else if (doc_data <= 0) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sDocument date \"%100s\" unparsable, "), *msg, document_date); - strcpy(*msg, tmp); - - date_result = max_state_alt(STATE_CRITICAL, date_result); - } else if (doc_data > srv_data + 30) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sDocument is %d seconds in the future, "), *msg, (int)doc_data - (int)srv_data); - strcpy(*msg, tmp); - - date_result = max_state_alt(STATE_CRITICAL, date_result); - } else if (doc_data < srv_data - maximum_age) { - int n = (srv_data - doc_data); - if (n > (60 * 60 * 24 * 2)) { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sLast modified %.1f days ago, "), *msg, ((float) n) / (60 * 60 * 24)); - strcpy(*msg, tmp); - - date_result = max_state_alt(STATE_CRITICAL, date_result); - } else { - char tmp[DEFAULT_BUFFER_SIZE]; - - snprintf (tmp, DEFAULT_BUFFER_SIZE, _("%sLast modified %d:%02d:%02d ago, "), *msg, n / (60 * 60), (n / 60) % 60, n % 60); - strcpy(*msg, tmp); - - date_result = max_state_alt(STATE_CRITICAL, date_result); - } - } - } + if (srv_data <= 0) { + snprintf (*msg, DEFAULT_BUFFER_SIZE, _("%sServer date \"%100s\" unparsable, "), *msg, server_date); + date_result = max_state_alt(STATE_CRITICAL, date_result); + } else if (doc_data <= 0) { + snprintf (*msg, DEFAULT_BUFFER_SIZE, _("%sDocument date \"%100s\" unparsable, "), *msg, document_date); + date_result = max_state_alt(STATE_CRITICAL, date_result); + } else if (doc_data > srv_data + 30) { + snprintf (*msg, DEFAULT_BUFFER_SIZE, _("%sDocument is %d seconds in the future, "), *msg, (int)doc_data - (int)srv_data); + date_result = max_state_alt(STATE_CRITICAL, date_result); + } else if (doc_data < srv_data - maximum_age) { + int n = (srv_data - doc_data); + if (n > (60 * 60 * 24 * 2)) { + snprintf (*msg, DEFAULT_BUFFER_SIZE, _("%sLast modified %.1f days ago, "), *msg, ((float) n) / (60 * 60 * 24)); + date_result = max_state_alt(STATE_CRITICAL, date_result); + } else { + snprintf (*msg, DEFAULT_BUFFER_SIZE, _("%sLast modified %d:%02d:%02d ago, "), *msg, n / (60 * 60), (n / 60) % 60, n % 60); + date_result = max_state_alt(STATE_CRITICAL, date_result); + } + } + } if (server_date) free (server_date); if (document_date) free (document_date); @@ -2496,7 +2283,9 @@ check_document_dates (const curlhelp_write_curlbuf *header_buf, char (*msg)[DEFA int get_content_length (const curlhelp_write_curlbuf* header_buf, const curlhelp_write_curlbuf* body_buf) { - size_t content_length = 0; + const char *s; + int content_length = 0; + char *copy; struct phr_header headers[255]; size_t nof_headers = 255; size_t msglen; @@ -2507,10 +2296,6 @@ get_content_length (const curlhelp_write_curlbuf* header_buf, const curlhelp_wri &status_line.http_major, &status_line.http_minor, &status_line.http_code, &status_line.msg, &msglen, headers, &nof_headers, 0); - if (res == -1) { - die (STATE_UNKNOWN, _("HTTP UNKNOWN - Failed to parse Response\n")); - } - content_length_s = get_header_value (headers, nof_headers, "content-length"); if (!content_length_s) { return header_buf->buflen + body_buf->buflen; @@ -2528,7 +2313,7 @@ get_content_length (const curlhelp_write_curlbuf* header_buf, const curlhelp_wri /* TODO: is there a better way in libcurl to check for the SSL library? */ curlhelp_ssl_library -curlhelp_get_ssl_library () +curlhelp_get_ssl_library (CURL* curl) { curl_version_info_data* version_data; char *ssl_version; diff --git a/plugins/check_dbi.c b/plugins/check_dbi.c index 29c8520..ced13d0 100644 --- a/plugins/check_dbi.c +++ b/plugins/check_dbi.c @@ -141,28 +141,21 @@ main (int argc, char **argv) if (verbose > 2) printf ("Initializing DBI\n"); - dbi_inst *instance_p = { 0 }; - - if (dbi_initialize_r(NULL, instance_p) < 0) { + if (dbi_initialize (NULL) < 0) { printf ("UNKNOWN - failed to initialize DBI; possibly you don't have any drivers installed.\n"); return STATE_UNKNOWN; } - if (instance_p == NULL) { - printf ("UNKNOWN - failed to initialize DBI.\n"); - return STATE_UNKNOWN; - } - if (verbose) printf ("Opening DBI driver '%s'\n", np_dbi_driver); - driver = dbi_driver_open_r(np_dbi_driver, instance_p); + driver = dbi_driver_open (np_dbi_driver); if (! driver) { printf ("UNKNOWN - failed to open DBI driver '%s'; possibly it's not installed.\n", np_dbi_driver); printf ("Known drivers:\n"); - for (driver = dbi_driver_list_r(NULL, instance_p); driver; driver = dbi_driver_list_r(driver, instance_p)) { + for (driver = dbi_driver_list (NULL); driver; driver = dbi_driver_list (driver)) { printf (" - %s\n", dbi_driver_get_name (driver)); } return STATE_UNKNOWN; @@ -433,7 +426,6 @@ process_arguments (int argc, char **argv) else timeout_interval = atoi (optarg); - break; case 'H': /* host */ if (!is_host (optarg)) usage2 (_("Invalid hostname/address"), optarg); diff --git a/plugins/check_dig.c b/plugins/check_dig.c index be7a610..5d85ae2 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c @@ -56,7 +56,7 @@ char *expected_address = NULL; char *dns_server = NULL; char *dig_args = ""; char *query_transport = ""; -bool verbose = false; +int verbose = FALSE; int server_port = DEFAULT_PORT; int number_tries = DEFAULT_TRIES; double warning_interval = UNDEFINED; @@ -176,11 +176,11 @@ main (int argc, char **argv) state_text (result), elapsed_time, msg ? msg : _("Probably a non-existent host/domain"), fperfdata("time", elapsed_time, "s", - (warning_interval>UNDEFINED ? true:false), + (warning_interval>UNDEFINED?TRUE:FALSE), warning_interval, - (critical_interval>UNDEFINED ? true:false), + (critical_interval>UNDEFINED?TRUE:FALSE), critical_interval, - true, 0, false, 0)); + TRUE, 0, FALSE, 0)); return result; } @@ -270,7 +270,7 @@ process_arguments (int argc, char **argv) dig_args = strdup(optarg); break; case 'v': /* verbose */ - verbose = true; + verbose = TRUE; break; case 'T': record_type = optarg; diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 24de2d4..6de17f8 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c @@ -46,7 +46,7 @@ const char *email = "devel@monitoring-plugins.org"; #include #include "fsusage.h" #include "mountlist.h" -#include +#include "intprops.h" /* necessary for TYPE_MAXIMUM */ #if HAVE_LIMITS_H # include #endif @@ -93,11 +93,11 @@ static int stat_remote_fs = 0; /* Linked list of filesystem types to omit. If the list is empty, don't exclude any types. */ -static struct regex_list *fs_exclude_list = NULL; +static struct name_list *fs_exclude_list; /* Linked list of filesystem types to check. If the list is empty, include all types. */ -static struct regex_list *fs_include_list; +static struct name_list *fs_include_list; static struct name_list *dp_exclude_list; @@ -116,7 +116,7 @@ enum }; #ifdef _AIX -#pragma alloca + #pragma alloca #endif int process_arguments (int, char **); @@ -126,20 +126,22 @@ int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, ch void print_help (void); void print_usage (void); double calculate_percent(uintmax_t, uintmax_t); -bool stat_path (struct parameter_list *p); +void stat_path (struct parameter_list *p); void get_stats (struct parameter_list *p, struct fs_usage *fsp); void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); +double w_dfp = -1.0; +double c_dfp = -1.0; +char *path; char *exclude_device; char *units; uintmax_t mult = 1024 * 1024; int verbose = 0; -bool erronly = false; -bool display_mntp = false; -bool exact_match = false; -bool ignore_missing = false; -bool freespace_ignore_reserved = false; -bool display_inodes_perfdata = false; +int erronly = FALSE; +int display_mntp = FALSE; +int exact_match = FALSE; +int freespace_ignore_reserved = FALSE; +int display_inodes_perfdata = FALSE; char *warn_freespace_units = NULL; char *crit_freespace_units = NULL; char *warn_freespace_percent = NULL; @@ -152,8 +154,7 @@ char *warn_usedinodes_percent = NULL; char *crit_usedinodes_percent = NULL; char *warn_freeinodes_percent = NULL; char *crit_freeinodes_percent = NULL; -bool path_selected = false; -bool path_ignored = false; +int path_selected = FALSE; char *group = NULL; struct stat *stat_buf; struct name_list *seen = NULL; @@ -165,12 +166,10 @@ main (int argc, char **argv) int result = STATE_UNKNOWN; int disk_result = STATE_UNKNOWN; char *output; - char *ignored; char *details; char *perf; char *perf_ilabel; - char *preamble = " - free space:"; - char *ignored_preamble = " - ignored paths:"; + char *preamble; char *flag_header; int temp_result; @@ -182,8 +181,8 @@ main (int argc, char **argv) char mountdir[32]; #endif + preamble = strdup (" - free space:"); output = strdup (""); - ignored = strdup (""); details = strdup (""); perf = strdup (""); perf_ilabel = strdup (""); @@ -204,7 +203,7 @@ main (int argc, char **argv) /* If a list of paths has not been selected, find entire mount list and create list of paths */ - if (path_selected == false && path_ignored == false) { + if (path_selected == FALSE) { for (me = mount_list; me; me = me->me_next) { if (! (path = np_find_parameter(path_select_list, me->me_mountdir))) { path = np_add_parameter(&path_select_list, me->me_mountdir); @@ -214,40 +213,17 @@ main (int argc, char **argv) set_all_thresholds(path); } } - - if (path_ignored == false) { - np_set_best_match(path_select_list, mount_list, exact_match); - } + np_set_best_match(path_select_list, mount_list, exact_match); /* Error if no match found for specified paths */ temp_list = path_select_list; - while (path_select_list) { - if (! path_select_list->best_match && ignore_missing == true) { - /* If the first element will be deleted, the temp_list must be updated with the new start address as well */ - if (path_select_list == temp_list) { - temp_list = path_select_list->name_next; - } - /* Add path argument to list of ignored paths to inform about missing paths being ignored and not alerted */ - xasprintf (&ignored, "%s %s;", ignored, path_select_list->name); - /* Delete the path from the list so that it is not stat-checked later in the code. */ - path_select_list = np_del_parameter(path_select_list, path_select_list->name_prev); - } else if (! path_select_list->best_match) { - /* Without --ignore-missing option, exit with Critical state. */ - die (STATE_CRITICAL, _("DISK %s: %s not found\n"), _("CRITICAL"), path_select_list->name); - } else { - /* Continue jumping through the list */ - path_select_list = path_select_list->name_next; + while (temp_list) { + if (! temp_list->best_match) { + die (STATE_CRITICAL, _("DISK %s: %s not found\n"), _("CRITICAL"), temp_list->name); } - } - path_select_list = temp_list; - - if (! path_select_list && ignore_missing == true) { - result = STATE_OK; - if (verbose >= 2) { - printf ("None of the provided paths were found\n"); - } + temp_list = temp_list->name_next; } /* Process for every path in list */ @@ -266,10 +242,6 @@ main (int argc, char **argv) me = path->best_match; - if (!me) { - continue; - } - #ifdef __CYGWIN__ if (strncmp(path->name, "/cygdrive/", 10) != 0 || strlen(path->name) > 11) continue; @@ -288,18 +260,14 @@ main (int argc, char **argv) if (path->group == NULL) { /* Skip remote filesystems if we're not interested in them */ if (me->me_remote && show_local_fs) { - if (stat_remote_fs) { - if (!stat_path(path) && ignore_missing == true) { - result = STATE_OK; - xasprintf (&ignored, "%s %s;", ignored, path->name); - } - } + if (stat_remote_fs) + stat_path(path); continue; /* Skip pseudo fs's if we haven't asked for all fs's */ } else if (me->me_dummy && !show_all_fs) { continue; /* Skip excluded fstypes */ - } else if (fs_exclude_list && np_find_regmatch (fs_exclude_list, me->me_type)) { + } else if (fs_exclude_list && np_find_name (fs_exclude_list, me->me_type)) { continue; /* Skip excluded fs's */ } else if (dp_exclude_list && @@ -307,25 +275,19 @@ main (int argc, char **argv) np_find_name (dp_exclude_list, me->me_mountdir))) { continue; /* Skip not included fstypes */ - } else if (fs_include_list && !np_find_regmatch(fs_include_list, me->me_type)) { + } else if (fs_include_list && !np_find_name (fs_include_list, me->me_type)) { continue; } } - if (!stat_path(path)) { - if (ignore_missing == true) { - result = STATE_OK; - xasprintf (&ignored, "%s %s;", ignored, path->name); - } - continue; - } + stat_path(path); get_fs_usage (me->me_mountdir, me->me_devname, &fsp); if (fsp.fsu_blocks && strcmp ("none", me->me_mountdir)) { get_stats (path, &fsp); if (verbose >= 3) { - printf ("For %s, used_pct=%f free_pct=%f used_units=%lu free_units=%lu total_units=%lu used_inodes_pct=%f free_inodes_pct=%f fsp.fsu_blocksize=%lu mult=%lu\n", + printf ("For %s, used_pct=%g free_pct=%g used_units=%lu free_units=%lu total_units=%lu used_inodes_pct=%g free_inodes_pct=%g fsp.fsu_blocksize=%lu mult=%lu\n", me->me_mountdir, path->dused_pct, path->dfree_pct, @@ -395,10 +357,10 @@ main (int argc, char **argv) perfdata_uint64 ( (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, path->dused_units * mult, "B", - (warning_high_tide == UINT64_MAX ? false : true), warning_high_tide, - (critical_high_tide == UINT64_MAX ? false : true), critical_high_tide, - true, 0, - true, path->dtotal_units * mult)); + (warning_high_tide == UINT64_MAX ? FALSE : TRUE), warning_high_tide, + (critical_high_tide == UINT64_MAX ? FALSE : TRUE), critical_high_tide, + TRUE, 0, + TRUE, path->dtotal_units * mult)); if (display_inodes_perfdata) { /* *_high_tide must be reinitialized at each run */ @@ -417,10 +379,10 @@ main (int argc, char **argv) xasprintf (&perf, "%s %s", perf, perfdata_uint64 (perf_ilabel, path->inodes_used, "", - (warning_high_tide != UINT64_MAX ? true : false), warning_high_tide, - (critical_high_tide != UINT64_MAX ? true : false), critical_high_tide, - true, 0, - true, path->inodes_total)); + (warning_high_tide != UINT64_MAX ? TRUE : FALSE), warning_high_tide, + (critical_high_tide != UINT64_MAX ? TRUE : FALSE), critical_high_tide, + TRUE, 0, + TRUE, path->inodes_total)); } if (disk_result==STATE_OK && erronly && !verbose) @@ -431,7 +393,7 @@ main (int argc, char **argv) } else { xasprintf(&flag_header, ""); } - xasprintf (&output, "%s%s %s %llu%s (%.1f%%", + xasprintf (&output, "%s%s %s %llu%s (%.0f%%", output, flag_header, (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, path->dfree_units, @@ -449,20 +411,32 @@ main (int argc, char **argv) if (verbose >= 2) xasprintf (&output, "%s%s", output, details); - if (strcmp(output, "") == 0 && ! erronly) { - preamble = ""; - xasprintf (&output, " - No disks were found for provided parameters"); - } - printf ("DISK %s%s%s%s%s|%s\n", state_text (result), ((erronly && result==STATE_OK)) ? "" : preamble, output, (strcmp(ignored, "") == 0) ? "" : ignored_preamble, ignored, perf); + printf ("DISK %s%s%s|%s\n", state_text (result), (erronly && result==STATE_OK) ? "" : preamble, output, perf); return result; } double calculate_percent(uintmax_t value, uintmax_t total) { double pct = -1; - if(value <= DBL_MAX && total != 0) { - pct = (double)value / total * 100.0; + /* I don't understand the below, but it is taken from coreutils' df */ + /* Seems to be calculating pct, in the best possible way */ + if (value <= TYPE_MAXIMUM(uintmax_t) / 100 + && total != 0) { + uintmax_t u100 = value * 100; + pct = u100 / total + (u100 % total != 0); + } else { + /* Possible rounding errors - see coreutils' df for more explanation */ + double u = value; + double t = total; + if (t) { + long int lipct = pct = u * 100 / t; + double ipct = lipct; + + /* Like 'pct = ceil (dpct);', but without ceil - from coreutils again */ + if (ipct - 1 < pct && pct <= ipct + 1) + pct = ipct + (ipct < pct); + } } return pct; } @@ -507,7 +481,6 @@ process_arguments (int argc, char **argv) {"ignore-ereg-partition", required_argument, 0, 'i'}, {"ignore-eregi-path", required_argument, 0, 'I'}, {"ignore-eregi-partition", required_argument, 0, 'I'}, - {"ignore-missing", no_argument, 0, 'n'}, {"local", no_argument, 0, 'l'}, {"stat-remote-fs", no_argument, 0, 'L'}, {"iperfdata", no_argument, 0, 'P'}, @@ -526,14 +499,14 @@ process_arguments (int argc, char **argv) if (argc < 2) return ERROR; - np_add_regex(&fs_exclude_list, "iso9660", REG_EXTENDED); + np_add_name(&fs_exclude_list, "iso9660"); for (c = 1; c < argc; c++) if (strcmp ("-to", argv[c]) == 0) strcpy (argv[c], "-t"); while (1) { - c = getopt_long (argc, argv, "+?VqhvefCt:c:w:K:W:u:p:x:X:N:mklLPg:R:r:i:I:MEAn", longopts, &option); + c = getopt_long (argc, argv, "+?VqhvefCt:c:w:K:W:u:p:x:X:N:mklLPg:R:r:i:I:MEA", longopts, &option); if (c == -1 || c == EOF) break; @@ -550,10 +523,6 @@ process_arguments (int argc, char **argv) /* See comments for 'c' */ case 'w': /* warning threshold */ - if (!is_percentage_expression(optarg) && !is_numeric(optarg)) { - die(STATE_UNKNOWN, "Argument for --warning invalid or missing: %s\n", optarg); - } - if (strstr(optarg, "%")) { if (*optarg == '@') { warn_freespace_percent = optarg; @@ -571,14 +540,10 @@ process_arguments (int argc, char **argv) /* Awful mistake where the range values do not make sense. Normally, you alert if the value is within the range, but since we are using - freespace, we have to alert if outside the range. Thus we artificially + freespace, we have to alert if outside the range. Thus we artifically force @ at the beginning of the range, so that it is backwards compatible */ case 'c': /* critical threshold */ - if (!is_percentage_expression(optarg) && !is_numeric(optarg)) { - die(STATE_UNKNOWN, "Argument for --critical invalid or missing: %s\n", optarg); - } - if (strstr(optarg, "%")) { if (*optarg == '@') { crit_freespace_percent = optarg; @@ -614,36 +579,21 @@ process_arguments (int argc, char **argv) if (! strcasecmp (optarg, "bytes")) { mult = (uintmax_t)1; units = strdup ("B"); - } else if (!strcmp(optarg, "KiB")) { + } else if ( (! strcmp (optarg, "kB")) || (!strcmp(optarg, "KiB")) ) { mult = (uintmax_t)1024; - units = strdup ("KiB"); - } else if (! strcmp (optarg, "kB")) { - mult = (uintmax_t)1000; - units = strdup ("kB"); - } else if (!strcmp(optarg, "MiB")) { + units = strdup ("kiB"); + } else if ( (! strcmp (optarg, "MB")) || (!strcmp(optarg, "MiB")) ) { mult = (uintmax_t)1024 * 1024; units = strdup ("MiB"); - } else if (! strcmp (optarg, "MB")) { - mult = (uintmax_t)1000 * 1000; - units = strdup ("MB"); - } else if (!strcmp(optarg, "GiB")) { + } else if ( (! strcmp (optarg, "GB")) || (!strcmp(optarg, "GiB")) ) { mult = (uintmax_t)1024 * 1024 * 1024; units = strdup ("GiB"); - } else if (! strcmp (optarg, "GB")){ - mult = (uintmax_t)1000 * 1000 * 1000; - units = strdup ("GB"); - } else if (!strcmp(optarg, "TiB")) { + } else if ( (! strcmp (optarg, "TB")) || (!strcmp(optarg, "TiB")) ) { mult = (uintmax_t)1024 * 1024 * 1024 * 1024; units = strdup ("TiB"); - } else if (! strcmp (optarg, "TB")) { - mult = (uintmax_t)1000 * 1000 * 1000 * 1000; - units = strdup ("TB"); - } else if (!strcmp(optarg, "PiB")) { + } else if ( (! strcmp (optarg, "PB")) || (!strcmp(optarg, "PiB")) ) { mult = (uintmax_t)1024 * 1024 * 1024 * 1024 * 1024; units = strdup ("PiB"); - } else if (! strcmp (optarg, "PB")){ - mult = (uintmax_t)1000 * 1000 * 1000 * 1000 * 1000; - units = strdup ("PB"); } else { die (STATE_UNKNOWN, _("unit type %s not known\n"), optarg); } @@ -682,61 +632,46 @@ process_arguments (int argc, char **argv) /* add parameter if not found. overwrite thresholds if path has already been added */ if (! (se = np_find_parameter(path_select_list, optarg))) { se = np_add_parameter(&path_select_list, optarg); - - if (stat(optarg, &stat_buf[0]) && ignore_missing == true) { - path_ignored = true; - break; - } } se->group = group; set_all_thresholds(se); /* With autofs, it is required to stat() the path before re-populating the mount_list */ - if (!stat_path(se)) { - break; - } + stat_path(se); /* NB: We can't free the old mount_list "just like that": both list pointers and struct * pointers are copied around. One of the reason it wasn't done yet is that other parts * of check_disk need the same kind of cleanup so it'd better be done as a whole */ mount_list = read_file_system_list (0); np_set_best_match(se, mount_list, exact_match); - path_selected = true; + path_selected = TRUE; break; case 'x': /* exclude path or partition */ np_add_name(&dp_exclude_list, optarg); break; case 'X': /* exclude file system type */ - err = np_add_regex(&fs_exclude_list, optarg, REG_EXTENDED); - if (err != 0) { - regerror (err, &fs_exclude_list->regex, errbuf, MAX_INPUT_BUFFER); - die (STATE_UNKNOWN, "DISK %s: %s - %s\n",_("UNKNOWN"), _("Could not compile regular expression"), errbuf); - } + np_add_name(&fs_exclude_list, optarg); break; case 'N': /* include file system type */ - err = np_add_regex(&fs_include_list, optarg, REG_EXTENDED); - if (err != 0) { - regerror (err, &fs_exclude_list->regex, errbuf, MAX_INPUT_BUFFER); - die (STATE_UNKNOWN, "DISK %s: %s - %s\n",_("UNKNOWN"), _("Could not compile regular expression"), errbuf); - } + np_add_name(&fs_include_list, optarg); break; case 'v': /* verbose */ verbose++; break; case 'q': /* TODO: this function should eventually go away (removed 2007-09-20) */ /* verbose--; **replaced by line below**. -q was only a broken way of implementing -e */ - erronly = true; + erronly = TRUE; break; case 'e': - erronly = true; + erronly = TRUE; break; case 'E': if (path_selected) die (STATE_UNKNOWN, "DISK %s: %s", _("UNKNOWN"), _("Must set -E before selecting paths\n")); - exact_match = true; + exact_match = TRUE; break; case 'f': - freespace_ignore_reserved = true; + freespace_ignore_reserved = TRUE; break; case 'g': if (path_selected) @@ -783,9 +718,6 @@ process_arguments (int argc, char **argv) cflags = default_cflags; break; - case 'n': - ignore_missing = true; - break; case 'A': optarg = strdup(".*"); // Intentional fallthrough @@ -797,7 +729,7 @@ process_arguments (int argc, char **argv) crit_freespace_percent || warn_usedspace_units || crit_usedspace_units || warn_usedspace_percent || crit_usedspace_percent || warn_usedinodes_percent || crit_usedinodes_percent || warn_freeinodes_percent || crit_freeinodes_percent )) { - die (STATE_UNKNOWN, "DISK %s: %s", _("UNKNOWN"), _("Must set a threshold value before using -r/-R/-A (--ereg-path/--eregi-path/--all)\n")); + die (STATE_UNKNOWN, "DISK %s: %s", _("UNKNOWN"), _("Must set a threshold value before using -r/-R\n")); } err = regcomp(&re, optarg, cflags); @@ -808,7 +740,7 @@ process_arguments (int argc, char **argv) for (me = mount_list; me; me = me->me_next) { if (np_regex_match_mount_entry(me, &re)) { - fnd = true; + fnd = TRUE; if (verbose >= 3) printf("%s %s matching expression %s\n", me->me_devname, me->me_mountdir, optarg); @@ -821,26 +753,22 @@ process_arguments (int argc, char **argv) } } - if (!fnd && ignore_missing == true) { - path_ignored = true; - path_selected = true; - break; - } else if (!fnd) + if (!fnd) die (STATE_UNKNOWN, "DISK %s: %s - %s\n",_("UNKNOWN"), _("Regular expression did not match any path or disk"), optarg); - fnd = false; - path_selected = true; + fnd = FALSE; + path_selected = TRUE; np_set_best_match(path_select_list, mount_list, exact_match); cflags = default_cflags; break; case 'M': /* display mountpoint */ - display_mntp = true; + display_mntp = TRUE; break; case 'C': /* add all mount entries to path_select list if no partitions have been explicitly defined using -p */ - if (path_selected == false) { + if (path_selected == FALSE) { struct parameter_list *path; for (me = mount_list; me; me = me->me_next) { if (! (path = np_find_parameter(path_select_list, me->me_mountdir))) @@ -863,7 +791,7 @@ process_arguments (int argc, char **argv) warn_freeinodes_percent = NULL; crit_freeinodes_percent = NULL; - path_selected = false; + path_selected = FALSE; group = NULL; break; case 'V': /* version */ @@ -885,9 +813,9 @@ process_arguments (int argc, char **argv) if (crit_usedspace_percent == NULL && argc > c && is_intnonneg (argv[c])) crit_usedspace_percent = argv[c++]; - if (argc > c) { + if (argc > c && path == NULL) { se = np_add_parameter(&path_select_list, strdup(argv[c++])); - path_selected = true; + path_selected = TRUE; set_all_thresholds(se); } @@ -896,7 +824,7 @@ process_arguments (int argc, char **argv) mult = (uintmax_t)1024 * 1024; } - return true; + return TRUE; } @@ -995,33 +923,22 @@ print_help (void) printf (" %s\n", _("Regular expression to ignore selected path/partition (case insensitive) (may be repeated)")); printf (" %s\n", "-i, --ignore-ereg-path=PATH, --ignore-ereg-partition=PARTITION"); printf (" %s\n", _("Regular expression to ignore selected path or partition (may be repeated)")); - printf (" %s\n", "-n, --ignore-missing"); - printf (" %s\n", _("Return OK if no filesystem matches, filesystem does not exist or is inaccessible.")); - printf (" %s\n", _("(Provide this option before -p / -r / --ereg-path if used)")); printf (UT_PLUG_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); printf (" %s\n", "-u, --units=STRING"); printf (" %s\n", _("Choose bytes, kB, MB, GB, TB (default: MB)")); printf (UT_VERBOSE); - printf (" %s\n", "-X, --exclude-type=TYPE_REGEX"); - printf (" %s\n", _("Ignore all filesystems of types matching given regex(7) (may be repeated)")); - printf (" %s\n", "-N, --include-type=TYPE_REGEX"); - printf (" %s\n", _("Check only filesystems where the type matches this given regex(7) (may be repeated)")); - - printf ("\n"); - printf ("%s\n", _("General usage hints:")); - printf (" %s\n", _("- Arguments are positional! \"-w 5 -c 1 -p /foo -w6 -c2 -p /bar\" is not the same as")); - printf (" %s\n", _("\"-w 5 -c 1 -p /bar w6 -c2 -p /foo\".")); - printf (" %s\n", _("- The syntax is broadly: \"{thresholds a} {paths a} -C {thresholds b} {thresholds b} ...\"")); - - + printf (" %s\n", "-X, --exclude-type=TYPE"); + printf (" %s\n", _("Ignore all filesystems of indicated type (may be repeated)")); + printf (" %s\n", "-N, --include-type=TYPE"); + printf (" %s\n", _("Check only filesystems of indicated type (may be repeated)")); printf ("\n"); printf ("%s\n", _("Examples:")); printf (" %s\n", "check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /"); - printf (" %s\n\n", _("Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB")); + printf (" %s\n", _("Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB")); printf (" %s\n", "check_disk -w 100 -c 50 -C -w 1000 -c 500 -g sidDATA -r '^/oracle/SID/data.*$'"); printf (" %s\n", _("Checks all filesystems not matching -r at 100M and 50M. The fs matching the -r regex")); - printf (" %s\n\n", _("are grouped which means the freespace thresholds are applied to all disks together")); + printf (" %s\n", _("are grouped which means the freespace thresholds are applied to all disks together")); printf (" %s\n", "check_disk -w 100 -c 50 -C -w 1000 -c 500 -p /foo -C -w 5% -c 3% -p /bar"); printf (" %s\n", _("Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use 100M/50M")); @@ -1034,12 +951,12 @@ void print_usage (void) { printf ("%s\n", _("Usage:")); - printf (" %s {-w absolute_limit |-w percentage_limit%% | -W inode_percentage_limit } {-c absolute_limit|-c percentage_limit%% | -K inode_percentage_limit } {-p path | -x device}\n", progname); + printf (" %s {-w absolute_limit |-w percentage_limit% | -W inode_percentage_limit } {-c absolute_limit|-c percentage_limit% | -K inode_percentage_limit } {-p path | -x device}\n", progname); printf ("[-C] [-E] [-e] [-f] [-g group ] [-k] [-l] [-M] [-m] [-R path ] [-r path ]\n"); - printf ("[-t timeout] [-u unit] [-v] [-X type_regex] [-N type]\n"); + printf ("[-t timeout] [-u unit] [-v] [-X type] [-N type]\n"); } -bool +void stat_path (struct parameter_list *p) { /* Stat entry to check that dir exists and is accessible */ @@ -1048,14 +965,9 @@ stat_path (struct parameter_list *p) if (stat (p->name, &stat_buf[0])) { if (verbose >= 3) printf("stat failed on %s\n", p->name); - if (ignore_missing == true) { - return false; - } else { - printf("DISK %s - ", _("CRITICAL")); - die (STATE_CRITICAL, _("%s %s: %s\n"), p->name, _("is not accessible"), strerror(errno)); - } + printf("DISK %s - ", _("CRITICAL")); + die (STATE_CRITICAL, _("%s %s: %s\n"), p->name, _("is not accessible"), strerror(errno)); } - return true; } @@ -1075,8 +987,7 @@ get_stats (struct parameter_list *p, struct fs_usage *fsp) { continue; #endif if (p_list->group && ! (strcmp(p_list->group, p->group))) { - if (! stat_path(p_list)) - continue; + stat_path(p_list); get_fs_usage (p_list->best_match->me_mountdir, p_list->best_match->me_devname, &tmpfsp); get_path_stats(p_list, &tmpfsp); if (verbose >= 3) @@ -1122,7 +1033,7 @@ get_stats (struct parameter_list *p, struct fs_usage *fsp) { } /* finally calculate percentages for either plain FS or summed up group */ p->dused_pct = calculate_percent( p->used, p->used + p->available ); /* used + available can never be > uintmax */ - p->dfree_pct = 100.0 - p->dused_pct; + p->dfree_pct = 100 - p->dused_pct; p->dused_inodes_percent = calculate_percent(p->inodes_total - p->inodes_free, p->inodes_total); p->dfree_inodes_percent = 100 - p->dused_inodes_percent; @@ -1134,7 +1045,7 @@ get_path_stats (struct parameter_list *p, struct fs_usage *fsp) { p->available_to_root = fsp->fsu_bfree; p->used = fsp->fsu_blocks - fsp->fsu_bfree; if (freespace_ignore_reserved) { - /* option activated : we subtract the root-reserved space from the total */ + /* option activated : we substract the root-reserved space from the total */ p->total = fsp->fsu_blocks - p->available_to_root + p->available; } else { /* default behaviour : take all the blocks into account */ @@ -1145,11 +1056,11 @@ get_path_stats (struct parameter_list *p, struct fs_usage *fsp) { p->dfree_units = p->available*fsp->fsu_blocksize/mult; p->dtotal_units = p->total*fsp->fsu_blocksize/mult; /* Free file nodes. Not sure the workaround is required, but in case...*/ - p->inodes_free = fsp->fsu_ffree; + p->inodes_free = fsp->fsu_favail > fsp->fsu_ffree ? 0 : fsp->fsu_favail; p->inodes_free_to_root = fsp->fsu_ffree; /* Free file nodes for root. */ p->inodes_used = fsp->fsu_files - fsp->fsu_ffree; if (freespace_ignore_reserved) { - /* option activated : we subtract the root-reserved inodes from the total */ + /* option activated : we substract the root-reserved inodes from the total */ /* not all OS report fsp->fsu_favail, only the ones with statvfs syscall */ /* for others, fsp->fsu_ffree == fsp->fsu_favail */ p->inodes_total = fsp->fsu_files - p->inodes_free_to_root + p->inodes_free; diff --git a/plugins/check_dns.c b/plugins/check_dns.c index 468bc95..9de6caf 100644 --- a/plugins/check_dns.c +++ b/plugins/check_dns.c @@ -41,8 +41,8 @@ const char *email = "devel@monitoring-plugins.org"; int process_arguments (int, char **); int validate_arguments (void); -int error_scan (char *, bool *); -bool ip_match_cidr(const char *, const char *); +int error_scan (char *, int *); +int ip_match_cidr(const char *, const char *); unsigned long ip2long(const char *); void print_help (void); void print_usage (void); @@ -51,13 +51,13 @@ void print_usage (void); char query_address[ADDRESS_LENGTH] = ""; char dns_server[ADDRESS_LENGTH] = ""; char ptr_server[ADDRESS_LENGTH] = ""; -bool verbose = false; +int verbose = FALSE; char **expected_address = NULL; int expected_address_cnt = 0; -bool expect_nxdomain = false; +int expect_nxdomain = FALSE; -bool expect_authority = false; -bool all_match = false; +int expect_authority = FALSE; +int all_match = FALSE; thresholds *time_thresholds = NULL; static int @@ -75,19 +75,20 @@ main (int argc, char **argv) { char *command_line = NULL; char input_buffer[MAX_INPUT_BUFFER]; - char *address = NULL; /* comma separated str with addrs/ptrs (sorted) */ + char *address = NULL; /* comma seperated str with addrs/ptrs (sorted) */ char **addresses = NULL; int n_addresses = 0; char *msg = NULL; char *temp_buffer = NULL; - bool non_authoritative = false; + int non_authoritative = FALSE; int result = STATE_UNKNOWN; double elapsed_time; long microsec; struct timeval tv; - bool parse_address = false; /* This flag scans for Address: but only after Name: */ + int parse_address = FALSE; /* This flag scans for Address: but only after Name: */ output chld_out, chld_err; - bool is_nxdomain = false; + size_t i; + int is_nxdomain = FALSE; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); @@ -121,7 +122,7 @@ main (int argc, char **argv) } /* scan stdout */ - for(size_t i = 0; i < chld_out.lines; i++) { + for(i = 0; i < chld_out.lines; i++) { if (addresses == NULL) addresses = malloc(sizeof(*addresses)*10); else if (!(n_addresses % 10)) @@ -163,8 +164,8 @@ main (int argc, char **argv) /* the server is responding, we just got the host name... */ if (strstr (chld_out.line[i], "Name:")) - parse_address = true; - else if (parse_address && (strstr (chld_out.line[i], "Address:") || + parse_address = TRUE; + else if (parse_address == TRUE && (strstr (chld_out.line[i], "Address:") || strstr (chld_out.line[i], "Addresses:"))) { temp_buffer = index (chld_out.line[i], ':'); temp_buffer++; @@ -183,7 +184,7 @@ main (int argc, char **argv) addresses[n_addresses++] = strdup(temp_buffer); } else if (strstr (chld_out.line[i], _("Non-authoritative answer:"))) { - non_authoritative = true; + non_authoritative = TRUE; } @@ -196,7 +197,7 @@ main (int argc, char **argv) } /* scan stderr */ - for(size_t i = 0; i < chld_err.lines; i++) { + for(i = 0; i < chld_err.lines; i++) { if (verbose) puts(chld_err.line[i]); @@ -240,7 +241,7 @@ main (int argc, char **argv) unsigned long expect_match = (1 << expected_address_cnt) - 1; unsigned long addr_match = (1 << n_addresses) - 1; - for (int i=0; iwarning != NULL) && (time_thresholds->critical != NULL)) { printf ("|%s\n", fperfdata ("time", elapsed_time, "s", - true, time_thresholds->warning->end, - true, time_thresholds->critical->end, - true, 0, false, 0)); + TRUE, time_thresholds->warning->end, + TRUE, time_thresholds->critical->end, + TRUE, 0, FALSE, 0)); } else if ((time_thresholds->warning == NULL) && (time_thresholds->critical != NULL)) { printf ("|%s\n", fperfdata ("time", elapsed_time, "s", - false, 0, - true, time_thresholds->critical->end, - true, 0, false, 0)); + FALSE, 0, + TRUE, time_thresholds->critical->end, + TRUE, 0, FALSE, 0)); } else if ((time_thresholds->warning != NULL) && (time_thresholds->critical == NULL)) { printf ("|%s\n", fperfdata ("time", elapsed_time, "s", - true, time_thresholds->warning->end, - false, 0, - true, 0, false, 0)); + TRUE, time_thresholds->warning->end, + FALSE, 0, + TRUE, 0, FALSE, 0)); } else - printf ("|%s\n", fperfdata ("time", elapsed_time, "s", false, 0, false, 0, true, 0, false, 0)); + printf ("|%s\n", fperfdata ("time", elapsed_time, "s", FALSE, 0, FALSE, 0, TRUE, 0, FALSE, 0)); } else if (result == STATE_WARNING) printf (_("DNS WARNING - %s\n"), @@ -326,14 +327,15 @@ main (int argc, char **argv) return result; } -bool ip_match_cidr(const char *addr, const char *cidr_ro) { +int +ip_match_cidr(const char *addr, const char *cidr_ro) +{ char *subnet, *mask_c, *cidr = strdup(cidr_ro); int mask; subnet = strtok(cidr, "/"); mask_c = strtok(NULL, "\0"); - if (!subnet || !mask_c) { - return false; - } + if (!subnet || !mask_c) + return FALSE; mask = atoi(mask_c); /* https://www.cryptobells.com/verifying-ips-in-a-subnet-in-php/ */ @@ -353,14 +355,14 @@ ip2long(const char* src) { } int -error_scan (char *input_buffer, bool *is_nxdomain) +error_scan (char *input_buffer, int *is_nxdomain) { const int nxdomain = strstr (input_buffer, "Non-existent") || strstr (input_buffer, "** server can't find") || strstr (input_buffer, "** Can't find") || strstr (input_buffer, "NXDOMAIN"); - if (nxdomain) *is_nxdomain = true; + if (nxdomain) *is_nxdomain = TRUE; /* the DNS lookup timed out */ if (strstr (input_buffer, _("Note: nslookup is deprecated and may be removed from future releases.")) || @@ -459,7 +461,7 @@ process_arguments (int argc, char **argv) print_revision (progname, NP_VERSION); exit (STATE_UNKNOWN); case 'v': /* version */ - verbose = true; + verbose = TRUE; break; case 't': /* timeout period */ timeout_interval = atoi (optarg); @@ -506,13 +508,13 @@ process_arguments (int argc, char **argv) } break; case 'n': /* expect NXDOMAIN */ - expect_nxdomain = true; + expect_nxdomain = TRUE; break; case 'A': /* expect authority */ - expect_authority = true; + expect_authority = TRUE; break; case 'L': /* all must match */ - all_match = true; + all_match = TRUE; break; case 'w': warning = optarg; diff --git a/plugins/check_fping.c b/plugins/check_fping.c index 70d6f9f..db43316 100644 --- a/plugins/check_fping.c +++ b/plugins/check_fping.c @@ -59,21 +59,21 @@ int packet_size = PACKET_SIZE; int packet_count = PACKET_COUNT; int target_timeout = 0; int packet_interval = 0; -bool verbose = false; +int verbose = FALSE; int cpl; int wpl; double crta; double wrta; -bool cpl_p = false; -bool wpl_p = false; -bool alive_p = false; -bool crta_p = false; -bool wrta_p = false; +int cpl_p = FALSE; +int wpl_p = FALSE; +bool alive_p = FALSE; +int crta_p = FALSE; +int wrta_p = FALSE; int main (int argc, char **argv) { -/* normally should be int result = STATE_UNKNOWN; */ +/* normaly should be int result = STATE_UNKNOWN; */ int status = STATE_UNKNOWN; int result = 0; @@ -194,8 +194,8 @@ int textscan (char *buf) { _("FPING %s - %s (rta=%f ms)|%s\n"), state_text (STATE_OK), server_name,rta, /* No loss since we only waited for the first reply - perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, true, 0, true, 100), */ - fperfdata ("rta", rta/1.0e3, "s", wrta_p, wrta/1.0e3, crta_p, crta/1.0e3, true, 0, false, 0)); + perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100), */ + fperfdata ("rta", rta/1.0e3, "s", wrta_p, wrta/1.0e3, crta_p, crta/1.0e3, TRUE, 0, FALSE, 0)); } if (strstr (buf, "not found")) { @@ -228,21 +228,21 @@ int textscan (char *buf) { rtastr = 1 + index (rtastr, '/'); loss = strtod (losstr, NULL); rta = strtod (rtastr, NULL); - if (cpl_p && loss > cpl) + if (cpl_p == TRUE && loss > cpl) status = STATE_CRITICAL; - else if (crta_p && rta > crta) + else if (crta_p == TRUE && rta > crta) status = STATE_CRITICAL; - else if (wpl_p && loss > wpl) + else if (wpl_p == TRUE && loss > wpl) status = STATE_WARNING; - else if (wrta_p && rta > wrta) + else if (wrta_p == TRUE && rta > wrta) status = STATE_WARNING; else status = STATE_OK; die (status, _("FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n"), state_text (status), server_name, loss, rta, - perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, true, 0, true, 100), - fperfdata ("rta", rta/1.0e3, "s", wrta_p, wrta/1.0e3, crta_p, crta/1.0e3, true, 0, false, 0)); + perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100), + fperfdata ("rta", rta/1.0e3, "s", wrta_p, wrta/1.0e3, crta_p, crta/1.0e3, TRUE, 0, FALSE, 0)); } else if(strstr (buf, "xmt/rcv/%loss") ) { @@ -258,16 +258,16 @@ int textscan (char *buf) { loss = strtod (losstr, NULL); if (atoi(losstr) == 100) status = STATE_CRITICAL; - else if (cpl_p && loss > cpl) + else if (cpl_p == TRUE && loss > cpl) status = STATE_CRITICAL; - else if (wpl_p && loss > wpl) + else if (wpl_p == TRUE && loss > wpl) status = STATE_WARNING; else status = STATE_OK; /* loss=%.0f%%;%d;%d;0;100 */ die (status, _("FPING %s - %s (loss=%.0f%% )|%s\n"), state_text (status), server_name, loss , - perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, true, 0, true, 100)); + perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100)); } else { @@ -329,7 +329,7 @@ process_arguments (int argc, char **argv) case '?': /* print short usage statement if args not parsable */ usage5 (); case 'a': /* host alive mode */ - alive_p = true; + alive_p = TRUE; break; case 'h': /* help */ print_help (); @@ -338,23 +338,22 @@ process_arguments (int argc, char **argv) print_revision (progname, NP_VERSION); exit (STATE_UNKNOWN); case 'v': /* verbose mode */ - verbose = true; + verbose = TRUE; break; case 'H': /* hostname */ - if (is_host (optarg) == false) { + if (is_host (optarg) == FALSE) { usage2 (_("Invalid hostname/address"), optarg); } server_name = strscpy (server_name, optarg); break; case 'S': /* sourceip */ - if (is_host (optarg) == false) { + if (is_host (optarg) == FALSE) { usage2 (_("Invalid hostname/address"), optarg); } sourceip = strscpy (sourceip, optarg); break; case 'I': /* sourceip */ sourceif = strscpy (sourceif, optarg); - break; case '4': /* IPv4 only */ address_family = AF_INET; break; @@ -369,12 +368,12 @@ process_arguments (int argc, char **argv) get_threshold (optarg, rv); if (rv[RTA]) { crta = strtod (rv[RTA], NULL); - crta_p = true; + crta_p = TRUE; rv[RTA] = NULL; } if (rv[PL]) { cpl = atoi (rv[PL]); - cpl_p = true; + cpl_p = TRUE; rv[PL] = NULL; } break; @@ -382,12 +381,12 @@ process_arguments (int argc, char **argv) get_threshold (optarg, rv); if (rv[RTA]) { wrta = strtod (rv[RTA], NULL); - wrta_p = true; + wrta_p = TRUE; rv[RTA] = NULL; } if (rv[PL]) { wpl = atoi (rv[PL]); - wpl_p = true; + wpl_p = TRUE; rv[PL] = NULL; } break; diff --git a/plugins/check_game.c b/plugins/check_game.c index ca12697..a534b69 100644 --- a/plugins/check_game.c +++ b/plugins/check_game.c @@ -53,7 +53,7 @@ char *server_ip; char *game_type; int port = 0; -bool verbose = false; +int verbose; int qstat_game_players_max = -1; int qstat_game_players = -1; @@ -90,7 +90,7 @@ main (int argc, char **argv) if (port) xasprintf (&command_line, "%s:%-d", command_line, port); - if (verbose) + if (verbose > 0) printf ("%s\n", command_line); /* run the command. historically, this plugin ignores output on stderr, @@ -142,11 +142,11 @@ main (int argc, char **argv) ret[qstat_map_field], ret[qstat_ping_field], perfdata ("players", atol(ret[qstat_game_players]), "", - false, 0, false, 0, - true, 0, true, atol(ret[qstat_game_players_max])), + FALSE, 0, FALSE, 0, + TRUE, 0, TRUE, atol(ret[qstat_game_players_max])), fperfdata ("ping", strtod(ret[qstat_ping_field], NULL), "", - false, 0, false, 0, - true, 0, false, 0)); + FALSE, 0, FALSE, 0, + TRUE, 0, FALSE, 0)); } return result; @@ -201,7 +201,7 @@ process_arguments (int argc, char **argv) print_revision (progname, NP_VERSION); exit (STATE_UNKNOWN); case 'v': /* version */ - verbose = true; + verbose = TRUE; break; case 't': /* timeout period */ timeout_interval = atoi (optarg); diff --git a/plugins/check_hpjd.c b/plugins/check_hpjd.c index c34bb08..c4b4417 100644 --- a/plugins/check_hpjd.c +++ b/plugins/check_hpjd.c @@ -353,7 +353,6 @@ process_arguments (int argc, char **argv) usage2 (_("Port must be a positive short integer"), optarg); else port = atoi(optarg); - break; case 'D': /* disable paper out check*/ check_paper_out = 0; break; diff --git a/plugins/check_http.c b/plugins/check_http.c index cdf768c..5fa310f 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c @@ -85,7 +85,6 @@ char errbuf[MAX_INPUT_BUFFER]; int cflags = REG_NOSUB | REG_EXTENDED | REG_NEWLINE; int errcode; int invert_regex = 0; -int state_regex = STATE_CRITICAL; struct timeval tv; struct timeval tv_temp; @@ -199,7 +198,7 @@ test_file (char *path) /* * process command-line arguments - * returns true on success, false otherwise + * returns true on succes, false otherwise */ bool process_arguments (int argc, char **argv) { @@ -211,8 +210,7 @@ bool process_arguments (int argc, char **argv) INVERT_REGEX = CHAR_MAX + 1, SNI_OPTION, MAX_REDIRS_OPTION, - CONTINUE_AFTER_CHECK_CERT, - STATE_REGEX + CONTINUE_AFTER_CHECK_CERT }; int option = 0; @@ -248,7 +246,6 @@ bool process_arguments (int argc, char **argv) {"content-type", required_argument, 0, 'T'}, {"pagesize", required_argument, 0, 'm'}, {"invert-regex", no_argument, NULL, INVERT_REGEX}, - {"state-regex", required_argument, 0, STATE_REGEX}, {"use-ipv4", no_argument, 0, '4'}, {"use-ipv6", no_argument, 0, '6'}, {"extended-perfdata", no_argument, 0, 'E'}, @@ -474,9 +471,10 @@ bool process_arguments (int argc, char **argv) free(http_method); http_method = strdup (optarg); char *tmp; - if ((tmp = strstr(http_method, ":")) != NULL) { - tmp[0] = '\0'; // set the ":" in the middle to 0 - http_method_proxy = ++tmp; // this points to the second part + if ((tmp = strstr(http_method, ":")) > 0) { + tmp[0] = '\0'; + http_method = http_method; + http_method_proxy = ++tmp; } break; case 'd': /* string or substring */ @@ -500,7 +498,6 @@ bool process_arguments (int argc, char **argv) break; case 'R': /* regex */ cflags |= REG_ICASE; - // fall through case 'r': /* regex */ strncpy (regexp, optarg, MAX_RE_SIZE - 1); regexp[MAX_RE_SIZE - 1] = 0; @@ -514,13 +511,6 @@ bool process_arguments (int argc, char **argv) case INVERT_REGEX: invert_regex = 1; break; - case STATE_REGEX: - if (!strcmp (optarg, "critical")) - state_regex = STATE_CRITICAL; - else if (!strcmp (optarg, "warning")) - state_regex = STATE_WARNING; - else usage2 (_("Invalid state-regex option"), optarg); - break; case '4': address_family = AF_INET; break; @@ -1103,7 +1093,7 @@ check_http (void) microsec_firstbyte = deltime (tv_temp); elapsed_time_firstbyte = (double)microsec_firstbyte / 1.0e6; } - while ((pos = memchr(buffer, '\0', i))) { + while (pos = memchr(buffer, '\0', i)) { /* replace nul character with a blank */ *pos = ' '; } @@ -1288,7 +1278,7 @@ check_http (void) regmatch_t chre_pmatch[1]; // We actually do not care about this, since we only want to know IF it was found - if (!no_body && regexec(&chunked_header_regex, header, 1, chre_pmatch, 0) == 0) { + if (regexec(&chunked_header_regex, header, 1, chre_pmatch, 0) == 0) { if (verbose) { printf("Found chunked content\n"); } @@ -1327,7 +1317,7 @@ check_http (void) xasprintf (&msg, _("%spattern not found, "), msg); else xasprintf (&msg, _("%spattern found, "), msg); - result = state_regex; + result = STATE_CRITICAL; } else { /* FIXME: Shouldn't that be UNKNOWN? */ @@ -1401,6 +1391,7 @@ char *unchunk_content(const char *content) { // https://en.wikipedia.org/wiki/Chunked_transfer_encoding // https://www.rfc-editor.org/rfc/rfc7230#section-4.1 char *result = NULL; + size_t content_length = strlen(content); char *start_of_chunk; char* end_of_chunk; long size_of_chunk; @@ -1471,13 +1462,7 @@ char *unchunk_content(const char *content) { memcpy(result + (overall_size - size_of_chunk), start_of_chunk, size_of_chunk); } - if (overall_size == 0 && result == NULL) { - // We might just have received the end chunk without previous content, so result is never allocated - result = calloc(1, sizeof(char)); - // No error handling here, we can only return NULL anyway - } else { - result[overall_size] = '\0'; - } + result[overall_size] = '\0'; return result; } @@ -1784,7 +1769,7 @@ print_help (void) printf (" %s\n", "-u, --url=PATH"); printf (" %s\n", _("URL to GET or POST (default: /)")); printf (" %s\n", "-P, --post=STRING"); - printf (" %s\n", _("URL decoded http POST data")); + printf (" %s\n", _("URL encoded http POST data")); printf (" %s\n", "-j, --method=STRING (for example: HEAD, OPTIONS, TRACE, PUT, DELETE, CONNECT, CONNECT:POST)"); printf (" %s\n", _("Set HTTP method.")); printf (" %s\n", "-N, --no-body"); @@ -1803,10 +1788,7 @@ print_help (void) printf (" %s\n", "-R, --eregi=STRING"); printf (" %s\n", _("Search page for case-insensitive regex STRING")); printf (" %s\n", "--invert-regex"); - printf (" %s\n", _("Return STATE if found, OK if not (STATE is CRITICAL, per default)")); - printf (" %s\n", _("can be changed with --state--regex)")); - printf (" %s\n", "--regex-state=STATE"); - printf (" %s\n", _("Return STATE if regex is found, OK if not\n")); + printf (" %s\n", _("Return CRITICAL if found, OK if not\n")); printf (" %s\n", "-a, --authorization=AUTH_PAIR"); printf (" %s\n", _("Username:password on sites with basic authentication")); @@ -1897,7 +1879,7 @@ print_usage (void) printf (" %s -H | -I [-u ] [-p ]\n",progname); printf (" [-J ] [-K ]\n"); printf (" [-w ] [-c ] [-t ] [-L] [-E] [-a auth]\n"); - printf (" [-b proxy_auth] [-f ]\n"); + printf (" [-b proxy_auth] [-f ]\n"); printf (" [-e ] [-d string] [-s string] [-l] [-r | -R ]\n"); printf (" [-P string] [-m :] [-4|-6] [-N] [-M ]\n"); printf (" [-A string] [-k string] [-S ] [--sni]\n"); diff --git a/plugins/check_ide_smart.c b/plugins/check_ide_smart.c index 3872e34..0160d98 100644 --- a/plugins/check_ide_smart.c +++ b/plugins/check_ide_smart.c @@ -73,6 +73,10 @@ void print_usage (void); #define NR_ATTRIBUTES 30 +#ifndef TRUE +#define TRUE 1 +#endif /* */ + #define PREFAILURE 2 #define ADVISORY 1 #define OPERATIONAL 0 @@ -165,9 +169,9 @@ int smart_read_values (int, values_t *); int nagios (values_t *, thresholds_t *); void print_value (value_t *, threshold_t *); void print_values (values_t *, thresholds_t *); -int smart_cmd_simple (int, enum SmartCommand, __u8, bool); +int smart_cmd_simple (int, enum SmartCommand, __u8, char); int smart_read_thresholds (int, thresholds_t *); -bool verbose = false; +int verbose = FALSE; int main (int argc, char *argv[]) @@ -199,7 +203,7 @@ main (int argc, char *argv[]) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - while (true) { + while (1) { o = getopt_long (argc, argv, "+d:iq10nhVv", longopts, &longindex); @@ -225,7 +229,7 @@ main (int argc, char *argv[]) fprintf (stderr, "%s\n", _("default and will be removed from future releases.")); break; case 'v': /* verbose */ - verbose = true; + verbose = TRUE; break; case 'h': print_help (); @@ -254,7 +258,7 @@ main (int argc, char *argv[]) return STATE_CRITICAL; } - if (smart_cmd_simple (fd, SMART_CMD_ENABLE, 0, false)) { + if (smart_cmd_simple (fd, SMART_CMD_ENABLE, 0, FALSE)) { printf (_("CRITICAL - SMART_CMD_ENABLE\n")); return STATE_CRITICAL; } @@ -443,7 +447,9 @@ print_values (values_t * p, thresholds_t * t) } -int smart_cmd_simple (int fd, enum SmartCommand command, __u8 val0, bool show_error) { +int +smart_cmd_simple (int fd, enum SmartCommand command, __u8 val0, char show_error) +{ int e = STATE_UNKNOWN; #ifdef __linux__ __u8 args[4]; diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c index 868ffc1..845a4f5 100644 --- a/plugins/check_ldap.c +++ b/plugins/check_ldap.c @@ -71,9 +71,9 @@ thresholds *entries_thresholds = NULL; struct timeval tv; char* warn_entries = NULL; char* crit_entries = NULL; -bool starttls = false; -bool ssl_on_connect = false; -bool verbose = false; +int starttls = FALSE; +int ssl_on_connect = FALSE; +int verbose = 0; /* for ldap tls */ @@ -97,6 +97,9 @@ main (int argc, char *argv[]) int tls; int version=3; + /* for entry counting */ + + LDAPMessage *next_entry; int status_entries = STATE_OK; int num_entries = 0; @@ -115,7 +118,7 @@ main (int argc, char *argv[]) usage4 (_("Could not parse arguments")); if (strstr(argv[0],"check_ldaps") && ! starttls && ! ssl_on_connect) - starttls = true; + starttls = TRUE; /* initialize alarm signal handling */ signal (SIGALRM, socket_timeout_alarm_handler); @@ -219,7 +222,7 @@ main (int argc, char *argv[]) /* reset the alarm handler */ alarm (0); - /* calculate the elapsed time and compare to thresholds */ + /* calcutate the elapsed time and compare to thresholds */ microsec = deltime (tv); elapsed_time = (double)microsec / 1.0e6; @@ -253,11 +256,11 @@ main (int argc, char *argv[]) fperfdata ("time", elapsed_time, "s", (int)warn_time, warn_time, (int)crit_time, crit_time, - true, 0, false, 0), + TRUE, 0, FALSE, 0), sperfdata ("entries", (double)num_entries, "", warn_entries, crit_entries, - true, 0.0, false, 0.0)); + TRUE, 0.0, FALSE, 0.0)); } else { printf (_("LDAP %s - %.3f seconds response time|%s\n"), state_text (status), @@ -265,7 +268,7 @@ main (int argc, char *argv[]) fperfdata ("time", elapsed_time, "s", (int)warn_time, warn_time, (int)crit_time, crit_time, - true, 0, false, 0)); + TRUE, 0, FALSE, 0)); } return status; @@ -313,7 +316,7 @@ process_arguments (int argc, char **argv) strcpy (argv[c], "-t"); } - while (true) { + while (1) { c = getopt_long (argc, argv, "hvV234TS6t:c:w:H:b:p:a:D:P:C:W:", longopts, &option); if (c == -1 || c == EOF) @@ -374,17 +377,17 @@ process_arguments (int argc, char **argv) address_family = AF_INET; break; case 'v': - verbose = true; + verbose++; break; case 'T': if (! ssl_on_connect) - starttls = true; + starttls = TRUE; else usage_va(_("%s cannot be combined with %s"), "-T/--starttls", "-S/--ssl"); break; case 'S': if (! starttls) { - ssl_on_connect = true; + ssl_on_connect = TRUE; if (ld_port == -1) ld_port = LDAPS_PORT; } else diff --git a/plugins/check_load.c b/plugins/check_load.c index 1431d13..00f7c87 100644 --- a/plugins/check_load.c +++ b/plugins/check_load.c @@ -107,9 +107,13 @@ main (int argc, char **argv) int i; long numcpus; - double la[3] = { 0.0, 0.0, 0.0 }; /* NetBSD complains about uninitialized arrays */ + double la[3] = { 0.0, 0.0, 0.0 }; /* NetBSD complains about unitialized arrays */ #ifndef HAVE_GETLOADAVG char input_buffer[MAX_INPUT_BUFFER]; +# ifdef HAVE_PROC_LOADAVG + FILE *fp; + char *str, *next; +# endif #endif setlocale (LC_ALL, ""); @@ -128,6 +132,23 @@ main (int argc, char **argv) if (result != 3) return STATE_UNKNOWN; #else +# ifdef HAVE_PROC_LOADAVG + fp = fopen (PROC_LOADAVG, "r"); + if (fp == NULL) { + printf (_("Error opening %s\n"), PROC_LOADAVG); + return STATE_UNKNOWN; + } + + while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, fp)) { + str = (char *)input_buffer; + for(i = 0; i < 3; i++) { + la[i] = strtod(str, &next); + str = next; + } + } + + fclose (fp); +# else child_process = spopen (PATH_TO_UPTIME); if (child_process == NULL) { printf (_("Error opening %s\n"), PATH_TO_UPTIME); @@ -154,13 +175,18 @@ main (int argc, char **argv) printf (_("Error code %d returned in %s\n"), result, PATH_TO_UPTIME); return STATE_UNKNOWN; } +# endif #endif if ((la[0] < 0.0) || (la[1] < 0.0) || (la[2] < 0.0)) { #ifdef HAVE_GETLOADAVG printf (_("Error in getloadavg()\n")); #else +# ifdef HAVE_PROC_LOADAVG + printf (_("Error processing %s\n"), PROC_LOADAVG); +# else printf (_("Error processing %s\n"), PATH_TO_UPTIME); +# endif #endif return STATE_UNKNOWN; } diff --git a/plugins/check_mrtg.c b/plugins/check_mrtg.c index 826b77e..1fda549 100644 --- a/plugins/check_mrtg.c +++ b/plugins/check_mrtg.c @@ -43,7 +43,7 @@ void print_usage (void); char *log_file = NULL; int expire_minutes = 0; -bool use_average = true; +int use_average = TRUE; int variable_number = -1; unsigned long value_warning_threshold = 0L; unsigned long value_critical_threshold = 0L; @@ -138,7 +138,7 @@ main (int argc, char **argv) } /* else check the incoming/outgoing rates */ - if (use_average) + if (use_average == TRUE) rate = average_value_rate; else rate = maximum_value_rate; @@ -149,7 +149,7 @@ main (int argc, char **argv) result = STATE_WARNING; printf("%s. %s = %lu %s|%s\n", - (use_average) ? _("Avg") : _("Max"), + (use_average == TRUE) ? _("Avg") : _("Max"), label, rate, units, perfdata(label, (long) rate, units, (int) value_warning_threshold, (long) value_warning_threshold, @@ -211,9 +211,9 @@ process_arguments (int argc, char **argv) break; case 'a': /* port */ if (!strcmp (optarg, "MAX")) - use_average = false; + use_average = FALSE; else - use_average = true; + use_average = TRUE; break; case 'v': variable_number = atoi (optarg); @@ -258,11 +258,11 @@ process_arguments (int argc, char **argv) } if (argc > c && strcmp (argv[c], "MAX") == 0) { - use_average = false; + use_average = FALSE; c++; } else if (argc > c && strcmp (argv[c], "AVG") == 0) { - use_average = true; + use_average = TRUE; c++; } diff --git a/plugins/check_mrtgtraf.c b/plugins/check_mrtgtraf.c index bd25d47..eb66f62 100644 --- a/plugins/check_mrtgtraf.c +++ b/plugins/check_mrtgtraf.c @@ -43,7 +43,7 @@ void print_usage(void); char *log_file = NULL; int expire_minutes = -1; -bool use_average = true; +int use_average = TRUE; unsigned long incoming_warning_threshold = 0L; unsigned long incoming_critical_threshold = 0L; unsigned long outgoing_warning_threshold = 0L; @@ -137,7 +137,7 @@ main (int argc, char **argv) (int) ((current_time - timestamp) / 60)); /* else check the incoming/outgoing rates */ - if (use_average) { + if (use_average == TRUE) { incoming_rate = average_incoming_rate; outgoing_rate = average_outgoing_rate; } @@ -192,17 +192,17 @@ main (int argc, char **argv) } xasprintf (&error_message, _("%s. In = %0.1f %s/s, %s. Out = %0.1f %s/s|%s %s\n"), - (use_average) ? _("Avg") : _("Max"), adjusted_incoming_rate, - incoming_speed_rating, (use_average) ? _("Avg") : _("Max"), + (use_average == TRUE) ? _("Avg") : _("Max"), adjusted_incoming_rate, + incoming_speed_rating, (use_average == TRUE) ? _("Avg") : _("Max"), adjusted_outgoing_rate, outgoing_speed_rating, fperfdata("in", adjusted_incoming_rate, incoming_speed_rating, (int)incoming_warning_threshold, incoming_warning_threshold, (int)incoming_critical_threshold, incoming_critical_threshold, - true, 0, false, 0), + TRUE, 0, FALSE, 0), fperfdata("out", adjusted_outgoing_rate, outgoing_speed_rating, (int)outgoing_warning_threshold, outgoing_warning_threshold, (int)outgoing_critical_threshold, outgoing_critical_threshold, - true, 0, false, 0)); + TRUE, 0, FALSE, 0)); printf (_("Traffic %s - %s\n"), state_text(result), error_message); @@ -256,9 +256,9 @@ process_arguments (int argc, char **argv) break; case 'a': /* aggregation (AVE or MAX) */ if (!strcmp (optarg, "MAX")) - use_average = false; + use_average = FALSE; else - use_average = true; + use_average = TRUE; break; case 'c': /* warning threshold */ sscanf (optarg, "%lu,%lu", &incoming_critical_threshold, @@ -289,11 +289,11 @@ process_arguments (int argc, char **argv) } if (argc > c && strcmp (argv[c], "MAX") == 0) { - use_average = false; + use_average = FALSE; c++; } else if (argc > c && strcmp (argv[c], "AVG") == 0) { - use_average = true; + use_average = TRUE; c++; } diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 6a7daf1..0cba50e 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c @@ -34,7 +34,7 @@ const char *progname = "check_mysql"; const char *copyright = "1999-2011"; const char *email = "devel@monitoring-plugins.org"; -#define SLAVERESULTSIZE 96 +#define SLAVERESULTSIZE 70 #include "common.h" #include "utils.h" @@ -89,8 +89,6 @@ static const char *metric_counter[LENGTH_METRIC_COUNTER] = { "Uptime" }; -#define MYSQLDUMP_THREADS_QUERY "SELECT COUNT(1) mysqldumpThreads FROM information_schema.processlist WHERE info LIKE 'SELECT /*!40001 SQL_NO_CACHE */%'" - thresholds *my_threshold = NULL; int process_arguments (int, char **); @@ -110,10 +108,10 @@ main (int argc, char **argv) char *result = NULL; char *error = NULL; - char slaveresult[SLAVERESULTSIZE] = { 0 }; + char slaveresult[SLAVERESULTSIZE]; char* perf; - perf = strdup (""); + perf = strdup (""); setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); @@ -140,10 +138,7 @@ main (int argc, char **argv) mysql_ssl_set(&mysql,key,cert,ca_cert,ca_dir,ciphers); /* establish a connection to the server and error checking */ if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) { - /* Depending on internally-selected auth plugin MySQL might return */ - /* ER_ACCESS_DENIED_NO_PASSWORD_ERROR or ER_ACCESS_DENIED_ERROR. */ - /* Semantically these errors are the same. */ - if (ignore_auth && (mysql_errno (&mysql) == ER_ACCESS_DENIED_ERROR || mysql_errno (&mysql) == ER_ACCESS_DENIED_NO_PASSWORD_ERROR)) + if (ignore_auth && mysql_errno (&mysql) == ER_ACCESS_DENIED_ERROR) { printf("MySQL OK - Version: %s (protocol %d)\n", mysql_get_server_info(&mysql), @@ -193,14 +188,14 @@ main (int argc, char **argv) for(i = 0; i < LENGTH_METRIC_UNIT; i++) { if (strcmp(row[0], metric_unit[i]) == 0) { xasprintf(&perf, "%s%s ", perf, perfdata(metric_unit[i], - atol(row[1]), "", false, 0, false, 0, false, 0, false, 0)); + atol(row[1]), "", FALSE, 0, FALSE, 0, FALSE, 0, FALSE, 0)); continue; } } for(i = 0; i < LENGTH_METRIC_COUNTER; i++) { if (strcmp(row[0], metric_counter[i]) == 0) { xasprintf(&perf, "%s%s ", perf, perfdata(metric_counter[i], - atol(row[1]), "c", false, 0, false, 0, false, 0, false, 0)); + atol(row[1]), "c", FALSE, 0, FALSE, 0, FALSE, 0, FALSE, 0)); continue; } } @@ -280,30 +275,11 @@ main (int argc, char **argv) /* Save slave status in slaveresult */ snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s Seconds Behind Master: %s", row[slave_io_field], row[slave_sql_field], seconds_behind_field!=-1?row[seconds_behind_field]:"Unknown"); - /* Raise critical error if SQL THREAD or IO THREAD are stopped, but only if there are no mysqldump threads running */ + /* Raise critical error if SQL THREAD or IO THREAD are stopped */ if (strcmp (row[slave_io_field], "Yes") != 0 || strcmp (row[slave_sql_field], "Yes") != 0) { - MYSQL_RES *res_mysqldump; - MYSQL_ROW row_mysqldump; - unsigned int mysqldump_threads = 0; - - if (mysql_query (&mysql, MYSQLDUMP_THREADS_QUERY) == 0) { - /* store the result */ - if ( (res_mysqldump = mysql_store_result (&mysql)) != NULL) { - if (mysql_num_rows(res_mysqldump) == 1) { - if ( (row_mysqldump = mysql_fetch_row (res_mysqldump)) != NULL) { - mysqldump_threads = atoi(row_mysqldump[0]); - } - } - /* free the result */ - mysql_free_result (res_mysqldump); - } - mysql_close (&mysql); - } - if (mysqldump_threads == 0) { - die (STATE_CRITICAL, "%s\n", slaveresult); - } else { - strncat(slaveresult, " Mysqldump: in progress", SLAVERESULTSIZE-1); - } + mysql_free_result (res); + mysql_close (&mysql); + die (STATE_CRITICAL, "%s\n", slaveresult); } if (verbose >=3) { @@ -315,17 +291,17 @@ main (int argc, char **argv) } /* Check Seconds Behind against threshold */ - if ((seconds_behind_field != -1) && (row[seconds_behind_field] != NULL && strcmp (row[seconds_behind_field], "NULL") != 0)) { + if ((seconds_behind_field != -1) && (strcmp (row[seconds_behind_field], "NULL") != 0)) { double value = atof(row[seconds_behind_field]); int status; status = get_status(value, my_threshold); xasprintf (&perf, "%s %s", perf, fperfdata ("seconds behind master", value, "s", - true, (double) warning_time, - true, (double) critical_time, - false, 0, - false, 0)); + TRUE, (double) warning_time, + TRUE, (double) critical_time, + FALSE, 0, + FALSE, 0)); if (status == STATE_WARNING) { printf("SLOW_SLAVE %s: %s|%s\n", _("WARNING"), slaveresult, perf); @@ -575,7 +551,7 @@ print_help (void) printf (" %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds")); printf (" %s\n", _("behind master")); printf (" %s\n", "-l, --ssl"); - printf (" %s\n", _("Use ssl encryption")); + printf (" %s\n", _("Use ssl encryptation")); printf (" %s\n", "-C, --ca-cert=STRING"); printf (" %s\n", _("Path to CA signing the cert")); printf (" %s\n", "-a, --cert=STRING"); diff --git a/plugins/check_mysql_query.c b/plugins/check_mysql_query.c index 842b7a2..ac2fb15 100644 --- a/plugins/check_mysql_query.c +++ b/plugins/check_mysql_query.c @@ -162,10 +162,10 @@ main (int argc, char **argv) } printf(_("'%s' returned %f | %s"), sql_query, value, fperfdata("result", value, "", - my_thresholds->warning?true:false, my_thresholds->warning?my_thresholds->warning->end:0, - my_thresholds->critical?true:false, my_thresholds->critical?my_thresholds->critical->end:0, - false, 0, - false, 0) + my_thresholds->warning?TRUE:FALSE, my_thresholds->warning?my_thresholds->warning->end:0, + my_thresholds->critical?TRUE:FALSE, my_thresholds->critical?my_thresholds->critical->end:0, + FALSE, 0, + FALSE, 0) ); printf("\n"); diff --git a/plugins/check_nt.c b/plugins/check_nt.c index 19c050d..59c135d 100644 --- a/plugins/check_nt.c +++ b/plugins/check_nt.c @@ -67,17 +67,17 @@ char *req_password=NULL; unsigned long lvalue_list[MAX_VALUE_LIST]; unsigned long warning_value=0L; unsigned long critical_value=0L; -bool check_warning_value=false; -bool check_critical_value=false; +int check_warning_value=FALSE; +int check_critical_value=FALSE; enum checkvars vars_to_check = CHECK_NONE; -bool show_all = false; +int show_all=FALSE; char recv_buffer[MAX_INPUT_BUFFER]; void fetch_data (const char* address, int port, const char* sendb); int process_arguments(int, char **); void preparelist(char *string); -bool strtoularray(unsigned long *array, char *string, const char *delim); +int strtoularray(unsigned long *array, char *string, const char *delim); void print_help(void); void print_usage(void); @@ -113,8 +113,8 @@ int main(int argc, char **argv){ int uphours=0; int upminutes=0; - bool isPercent = false; - bool allRight = false; + int isPercent = FALSE; + int allRight = FALSE; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); @@ -151,7 +151,7 @@ int main(int argc, char **argv){ if (value_list==NULL) output_message = strdup (_("missing -l parameters")); - else if (! strtoularray(lvalue_list,value_list,",")) + else if (strtoularray(lvalue_list,value_list,",")==FALSE) output_message = strdup (_("wrong -l parameter.")); else { /* -l parameters is present with only integers */ @@ -224,9 +224,9 @@ int main(int argc, char **argv){ xasprintf(&output_message,_("System Uptime - %u day(s) %u hour(s) %u minute(s) |uptime=%lu"),updays, uphours, upminutes, uptime); - if (check_critical_value && uptime <= critical_value) + if (check_critical_value==TRUE && uptime <= critical_value) return_code=STATE_CRITICAL; - else if (check_warning_value && uptime <= warning_value) + else if (check_warning_value==TRUE && uptime <= warning_value) return_code=STATE_WARNING; else return_code=STATE_OK; @@ -261,9 +261,9 @@ int main(int argc, char **argv){ (total_disk_space - free_disk_space) / 1073741824, warning_used_space / 1073741824, critical_used_space / 1073741824, total_disk_space / 1073741824); - if(check_critical_value && percent_used_space >= critical_value) + if(check_critical_value==TRUE && percent_used_space >= critical_value) return_code=STATE_CRITICAL; - else if (check_warning_value && percent_used_space >= warning_value) + else if (check_warning_value==TRUE && percent_used_space >= warning_value) return_code=STATE_WARNING; else return_code=STATE_OK; @@ -285,7 +285,7 @@ int main(int argc, char **argv){ else { preparelist(value_list); /* replace , between services with & to send the request */ xasprintf(&send_buffer,"%s&%u&%s&%s", req_password,(vars_to_check==CHECK_SERVICESTATE)?5:6, - (show_all) ? "ShowAll" : "ShowFail",value_list); + (show_all==TRUE) ? "ShowAll" : "ShowFail",value_list); fetch_data (server_address, server_port, send_buffer); numstr = strtok(recv_buffer,"&"); if (numstr == NULL) @@ -321,9 +321,9 @@ int main(int argc, char **argv){ warning_used_space / 1048567, critical_used_space / 1048567, mem_commitLimit / 1048567); return_code=STATE_OK; - if(check_critical_value && percent_used_space >= critical_value) + if(check_critical_value==TRUE && percent_used_space >= critical_value) return_code=STATE_CRITICAL; - else if (check_warning_value && percent_used_space >= warning_value) + else if (check_warning_value==TRUE && percent_used_space >= warning_value) return_code=STATE_WARNING; break; @@ -341,7 +341,7 @@ int main(int argc, char **argv){ 2) If the counter you're going to measure is percent-based, the code will detect the percent sign in its name and will attribute minimum (0%) and maximum (100%) - values automagically, as well the "%" sign to graph units. + values automagically, as well the ¨%" sign to graph units. 3) OTOH, if the counter is "absolute", you'll have to provide the following the counter unit - that is, the dimensions of the counter you're getting. Examples: @@ -371,7 +371,7 @@ int main(int argc, char **argv){ else if (isPercent) { counter_unit = strdup ("%"); - allRight = true; + allRight = TRUE; } if ((counter_unit != NULL) && (!allRight)) @@ -391,7 +391,7 @@ int main(int argc, char **argv){ if ((fmaxval == 0) && (maxval == errcvt)) output_message = strdup (_("Maximum value contains non-numbers")); else - allRight = true; /* Everything is OK. */ + allRight = TRUE; /* Everything is OK. */ } } @@ -418,9 +418,9 @@ int main(int argc, char **argv){ if (critical_value > warning_value) { /* Normal thresholds */ - if (check_critical_value && counter_value >= critical_value) + if (check_critical_value == TRUE && counter_value >= critical_value) return_code = STATE_CRITICAL; - else if (check_warning_value && counter_value >= warning_value) + else if (check_warning_value == TRUE && counter_value >= warning_value) return_code = STATE_WARNING; else return_code = STATE_OK; @@ -428,9 +428,9 @@ int main(int argc, char **argv){ else { /* inverse thresholds */ return_code = STATE_OK; - if (check_critical_value && counter_value <= critical_value) + if (check_critical_value == TRUE && counter_value <= critical_value) return_code = STATE_CRITICAL; - else if (check_warning_value && counter_value <= warning_value) + else if (check_warning_value == TRUE && counter_value <= warning_value) return_code = STATE_WARNING; } break; @@ -448,17 +448,17 @@ int main(int argc, char **argv){ output_message = strdup (description); if (critical_value > warning_value) { /* Normal thresholds */ - if(check_critical_value && age_in_minutes >= critical_value) + if(check_critical_value==TRUE && age_in_minutes >= critical_value) return_code=STATE_CRITICAL; - else if (check_warning_value && age_in_minutes >= warning_value) + else if (check_warning_value==TRUE && age_in_minutes >= warning_value) return_code=STATE_WARNING; else return_code=STATE_OK; } else { /* inverse thresholds */ - if(check_critical_value && age_in_minutes <= critical_value) + if(check_critical_value==TRUE && age_in_minutes <= critical_value) return_code=STATE_CRITICAL; - else if (check_warning_value && age_in_minutes <= warning_value) + else if (check_warning_value==TRUE && age_in_minutes <= warning_value) return_code=STATE_WARNING; else return_code=STATE_OK; @@ -600,15 +600,15 @@ int process_arguments(int argc, char **argv){ break; case 'w': /* warning threshold */ warning_value=strtoul(optarg,NULL,10); - check_warning_value=true; + check_warning_value=TRUE; break; case 'c': /* critical threshold */ critical_value=strtoul(optarg,NULL,10); - check_critical_value=true; + check_critical_value=TRUE; break; case 'd': /* Display select for services */ if (!strcmp(optarg,"SHOWALL")) - show_all = true; + show_all = TRUE; break; case 'u': socket_timeout_state=STATE_UNKNOWN; @@ -646,7 +646,7 @@ void fetch_data (const char *address, int port, const char *sendb) { die (STATE_UNKNOWN, "NSClient - %s\n",recv_buffer); } -bool strtoularray(unsigned long *array, char *string, const char *delim) { +int strtoularray(unsigned long *array, char *string, const char *delim) { /* split a delimited string into a long array */ int idx=0; char *t1; @@ -660,9 +660,9 @@ bool strtoularray(unsigned long *array, char *string, const char *delim) { array[idx]=strtoul(t1,NULL,10); idx++; } else - return false; + return FALSE; } - return true; + return TRUE; } void preparelist(char *string) { diff --git a/plugins/check_ntp.c b/plugins/check_ntp.c index 61b2d69..8b776ba 100644 --- a/plugins/check_ntp.c +++ b/plugins/check_ntp.c @@ -10,7 +10,7 @@ * * This file contains the check_ntp plugin * -* This plugin to check ntp servers independent of any commandline +* This plugin to check ntp servers independant of any commandline * programs or external libraries. * * @@ -40,10 +40,10 @@ const char *email = "devel@monitoring-plugins.org"; static char *server_address=NULL; static int verbose=0; -static bool do_offset = false; +static short do_offset=0; static char *owarn="60"; static char *ocrit="120"; -static bool do_jitter = false; +static short do_jitter=0; static char *jwarn="5000"; static char *jcrit="10000"; @@ -79,7 +79,7 @@ typedef struct { /* this structure holds data about results from querying offset from a peer */ typedef struct { time_t waiting; /* ts set when we started waiting for a response */ - int num_responses; /* number of successfully received responses */ + int num_responses; /* number of successfully recieved responses */ uint8_t stratum; /* copied verbatim from the ntp_message */ double rtdelay; /* converted from the ntp_message */ double rtdisp; /* converted from the ntp_message */ @@ -100,7 +100,7 @@ typedef struct { /* NB: not necessarily NULL terminated! */ } ntp_control_message; -/* this is an association/status-word pair found in control packet responses */ +/* this is an association/status-word pair found in control packet reponses */ typedef struct { uint16_t assoc; uint16_t status; @@ -486,7 +486,7 @@ double offset_request(const char *host, int *status){ } /* cleanup */ - /* FIXME: Not closing the socket to avoid reuse of the local port + /* FIXME: Not closing the socket to avoid re-use of the local port * which can cause old NTP packets to be read instead of NTP control * packets in jitter_request(). THERE MUST BE ANOTHER WAY... * for(j=0; j= PEER_INCLUDED){ num_candidates++; if(PEER_SEL(peers[i].status) >= PEER_SYNCSOURCE){ - syncsource_found = true; + syncsource_found=1; min_peer_sel=PEER_SYNCSOURCE; } } } - if(verbose) printf("%d candidate peers available\n", num_candidates); + if(verbose) printf("%d candiate peers available\n", num_candidates); if(verbose && syncsource_found) printf("synchronization source found\n"); if(! syncsource_found){ *status = STATE_UNKNOWN; @@ -598,7 +597,7 @@ double jitter_request(int *status){ /* By spec, putting the variable name "jitter" in the request * should cause the server to provide _only_ the jitter value. * thus reducing net traffic, guaranteeing us only a single - * datagram in reply, and making interpretation much simpler + * datagram in reply, and making intepretation much simpler */ /* Older servers doesn't know what jitter is, so if we get an * error on the first pass we redo it with "dispersion" */ @@ -700,23 +699,23 @@ int process_arguments(int argc, char **argv){ verbose++; break; case 'w': - do_offset = true; + do_offset=1; owarn = optarg; break; case 'c': - do_offset = true; + do_offset=1; ocrit = optarg; break; case 'j': - do_jitter = true; + do_jitter=1; jwarn = optarg; break; case 'k': - do_jitter = true; + do_jitter=1; jcrit = optarg; break; case 'H': - if(!is_host(optarg)) + if(is_host(optarg) == FALSE) usage2(_("Invalid hostname/address"), optarg); server_address = strdup(optarg); break; @@ -750,9 +749,9 @@ int process_arguments(int argc, char **argv){ char *perfd_offset (double offset) { return fperfdata ("offset", offset, "s", - true, offset_thresholds->warning->end, - true, offset_thresholds->critical->end, - false, 0, false, 0); + TRUE, offset_thresholds->warning->end, + TRUE, offset_thresholds->critical->end, + FALSE, 0, FALSE, 0); } char *perfd_jitter (double jitter) @@ -760,7 +759,7 @@ char *perfd_jitter (double jitter) return fperfdata ("jitter", jitter, "s", do_jitter, jitter_thresholds->warning->end, do_jitter, jitter_thresholds->critical->end, - true, 0, false, 0); + TRUE, 0, FALSE, 0); } int main(int argc, char *argv[]){ diff --git a/plugins/check_ntp_peer.c b/plugins/check_ntp_peer.c index 464a9e1..6842842 100644 --- a/plugins/check_ntp_peer.c +++ b/plugins/check_ntp_peer.c @@ -46,20 +46,21 @@ const char *email = "devel@monitoring-plugins.org"; static char *server_address=NULL; static int port=123; static int verbose=0; -static bool quiet = false; +static int quiet=0; +static short do_offset=0; static char *owarn="60"; static char *ocrit="120"; -static bool do_stratum = false; +static short do_stratum=0; static char *swarn="-1:16"; static char *scrit="-1:16"; -static bool do_jitter = false; +static short do_jitter=0; static char *jwarn="-1:5000"; static char *jcrit="-1:10000"; -static bool do_truechimers = false; +static short do_truechimers=0; static char *twarn="0:"; static char *tcrit="0:"; -static bool syncsource_found = false; -static bool li_alarm = false; +static int syncsource_found=0; +static int li_alarm=0; int process_arguments (int, char **); thresholds *offset_thresholds = NULL; @@ -85,7 +86,7 @@ typedef struct { /* NB: not necessarily NULL terminated! */ } ntp_control_message; -/* this is an association/status-word pair found in control packet responses */ +/* this is an association/status-word pair found in control packet reponses */ typedef struct { uint16_t assoc; uint16_t status; @@ -188,7 +189,7 @@ setup_control_request(ntp_control_message *p, uint8_t opcode, uint16_t seq){ } /* This function does all the actual work; roughly here's what it does - * beside setting the offset, jitter and stratum passed as argument: + * beside setting the offest, jitter and stratum passed as argument: * - offset can be negative, so if it cannot get the offset, offset_result * is set to UNKNOWN, otherwise OK. * - jitter and stratum are set to -1 if they cannot be retrieved so any @@ -198,7 +199,7 @@ setup_control_request(ntp_control_message *p, uint8_t opcode, uint16_t seq){ * status is pretty much useless as syncsource_found is a global variable * used later in main to check is the server was synchronized. It works * so I left it alone */ -int ntp_request(double *offset, int *offset_result, double *jitter, int *stratum, int *num_truechimers){ +int ntp_request(const char *host, double *offset, int *offset_result, double *jitter, int *stratum, int *num_truechimers){ int conn=-1, i, npeers=0, num_candidates=0; double tmp_offset = 0; int min_peer_sel=PEER_INCLUDED; @@ -253,7 +254,7 @@ int ntp_request(double *offset, int *offset_result, double *jitter, int *stratum die(STATE_CRITICAL, "NTP CRITICAL: Invalid packet received from NTP server\n"); } while (!(req.op&OP_READSTAT && ntohs(req.seq) == 1)); - if (LI(req.flags) == LI_ALARM) li_alarm = true; + if (LI(req.flags) == LI_ALARM) li_alarm = 1; /* Each peer identifier is 4 bytes in the data section, which * we represent as a ntp_assoc_status_pair datatype. */ @@ -275,7 +276,7 @@ int ntp_request(double *offset, int *offset_result, double *jitter, int *stratum if(PEER_SEL(peers[i].status) >= PEER_INCLUDED){ num_candidates++; if(PEER_SEL(peers[i].status) >= PEER_SYNCSOURCE){ - syncsource_found = true; + syncsource_found=1; min_peer_sel=PEER_SYNCSOURCE; } } @@ -305,7 +306,7 @@ int ntp_request(double *offset, int *offset_result, double *jitter, int *stratum /* Putting the wanted variable names in the request * cause the server to provide _only_ the requested values. * thus reducing net traffic, guaranteeing us only a single - * datagram in reply, and making interpretation much simpler + * datagram in reply, and making intepretation much simpler */ /* Older servers doesn't know what jitter is, so if we get an * error on the first pass we redo it with "dispersion" */ @@ -439,7 +440,7 @@ int process_arguments(int argc, char **argv){ if (argc < 2) usage ("\n"); - while (true) { + while (1) { c = getopt_long (argc, argv, "Vhv46qw:c:W:C:j:k:m:n:t:H:p:", longopts, &option); if (c == -1 || c == EOF || c == 1) break; @@ -457,40 +458,42 @@ int process_arguments(int argc, char **argv){ verbose++; break; case 'q': - quiet = true; + quiet = 1; break; case 'w': + do_offset=1; owarn = optarg; break; case 'c': + do_offset=1; ocrit = optarg; break; case 'W': - do_stratum = true; + do_stratum=1; swarn = optarg; break; case 'C': - do_stratum = true; + do_stratum=1; scrit = optarg; break; case 'j': - do_jitter = true; + do_jitter=1; jwarn = optarg; break; case 'k': - do_jitter = true; + do_jitter=1; jcrit = optarg; break; case 'm': - do_truechimers = true; + do_truechimers=1; twarn = optarg; break; case 'n': - do_truechimers = true; + do_truechimers=1; tcrit = optarg; break; case 'H': - if(!is_host(optarg)) + if(is_host(optarg) == FALSE) usage2(_("Invalid hostname/address"), optarg); server_address = strdup(optarg); break; @@ -527,9 +530,9 @@ int process_arguments(int argc, char **argv){ char *perfd_offset (double offset) { return fperfdata ("offset", offset, "s", - true, offset_thresholds->warning->end, - true, offset_thresholds->critical->end, - false, 0, false, 0); + TRUE, offset_thresholds->warning->end, + TRUE, offset_thresholds->critical->end, + FALSE, 0, FALSE, 0); } char *perfd_jitter (double jitter) @@ -537,7 +540,7 @@ char *perfd_jitter (double jitter) return fperfdata ("jitter", jitter, "", do_jitter, jitter_thresholds->warning->end, do_jitter, jitter_thresholds->critical->end, - true, 0, false, 0); + TRUE, 0, FALSE, 0); } char *perfd_stratum (int stratum) @@ -545,7 +548,7 @@ char *perfd_stratum (int stratum) return perfdata ("stratum", stratum, "", do_stratum, (int)stratum_thresholds->warning->end, do_stratum, (int)stratum_thresholds->critical->end, - true, 0, true, 16); + TRUE, 0, TRUE, 16); } char *perfd_truechimers (int num_truechimers) @@ -553,11 +556,11 @@ char *perfd_truechimers (int num_truechimers) return perfdata ("truechimers", num_truechimers, "", do_truechimers, (int)truechimer_thresholds->warning->end, do_truechimers, (int)truechimer_thresholds->critical->end, - true, 0, false, 0); + TRUE, 0, FALSE, 0); } int main(int argc, char *argv[]){ - int result, offset_result, stratum, num_truechimers; + int result, offset_result, stratum, num_truechimers, oresult, jresult, sresult, tresult; double offset=0, jitter=0; char *result_line, *perfdata_line; @@ -582,40 +585,30 @@ int main(int argc, char *argv[]){ /* set socket timeout */ alarm (socket_timeout); - /* This returns either OK or WARNING (See comment preceding ntp_request) */ - result = ntp_request(&offset, &offset_result, &jitter, &stratum, &num_truechimers); + /* This returns either OK or WARNING (See comment preceeding ntp_request) */ + result = ntp_request(server_address, &offset, &offset_result, &jitter, &stratum, &num_truechimers); if(offset_result == STATE_UNKNOWN) { /* if there's no sync peer (this overrides ntp_request output): */ - result = (quiet ? STATE_UNKNOWN : STATE_CRITICAL); + result = (quiet == 1 ? STATE_UNKNOWN : STATE_CRITICAL); } else { /* Be quiet if there's no candidates either */ - if (quiet && result == STATE_WARNING) + if (quiet == 1 && result == STATE_WARNING) result = STATE_UNKNOWN; result = max_state_alt(result, get_status(fabs(offset), offset_thresholds)); } - - int oresult = result; - - - int tresult = STATE_UNKNOWN; + oresult = result; if(do_truechimers) { tresult = get_status(num_truechimers, truechimer_thresholds); result = max_state_alt(result, tresult); } - - int sresult = STATE_UNKNOWN; - if(do_stratum) { sresult = get_status(stratum, stratum_thresholds); result = max_state_alt(result, sresult); } - - int jresult = STATE_UNKNOWN; - if(do_jitter) { jresult = get_status(jitter, jitter_thresholds); result = max_state_alt(result, jresult); diff --git a/plugins/check_ntp_time.c b/plugins/check_ntp_time.c index b2e1655..391b2df 100644 --- a/plugins/check_ntp_time.c +++ b/plugins/check_ntp_time.c @@ -45,7 +45,7 @@ const char *email = "devel@monitoring-plugins.org"; static char *server_address=NULL; static char *port="123"; static int verbose=0; -static bool quiet = false; +static int quiet=0; static char *owarn="60"; static char *ocrit="120"; static int time_offset=0; @@ -81,7 +81,7 @@ typedef struct { /* this structure holds data about results from querying offset from a peer */ typedef struct { time_t waiting; /* ts set when we started waiting for a response */ - int num_responses; /* number of successfully received responses */ + int num_responses; /* number of successfully recieved responses */ uint8_t stratum; /* copied verbatim from the ntp_message */ double rtdelay; /* converted from the ntp_message */ double rtdisp; /* converted from the ntp_message */ @@ -485,7 +485,7 @@ int process_arguments(int argc, char **argv){ verbose++; break; case 'q': - quiet = true; + quiet = 1; break; case 'w': owarn = optarg; @@ -494,7 +494,7 @@ int process_arguments(int argc, char **argv){ ocrit = optarg; break; case 'H': - if(!is_host(optarg)) + if(is_host(optarg) == FALSE) usage2(_("Invalid hostname/address"), optarg); server_address = strdup(optarg); break; @@ -531,11 +531,12 @@ int process_arguments(int argc, char **argv){ return 0; } -char *perfd_offset (double offset) { +char *perfd_offset (double offset) +{ return fperfdata ("offset", offset, "s", - true, offset_thresholds->warning->end, - true, offset_thresholds->critical->end, - false, 0, false, 0); + TRUE, offset_thresholds->warning->end, + TRUE, offset_thresholds->critical->end, + FALSE, 0, FALSE, 0); } int main(int argc, char *argv[]){ @@ -565,7 +566,7 @@ int main(int argc, char *argv[]){ offset = offset_request(server_address, &offset_result); if (offset_result == STATE_UNKNOWN) { - result = ( (!quiet) ? STATE_UNKNOWN : STATE_CRITICAL); + result = (quiet == 1 ? STATE_UNKNOWN : STATE_CRITICAL); } else { result = get_status(fabs(offset), offset_thresholds); } diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c index 10c493b..e7e8de0 100644 --- a/plugins/check_nwstat.c +++ b/plugins/check_nwstat.c @@ -46,7 +46,6 @@ enum checkvar { VPF, /* check % free space on volume */ VMF, /* check MB free space on volume */ VMU, /* check MB used space on volume */ - VPU, /* check % used space on volume */ VMP, /* check MB purgeable space on volume */ VKF, /* check KB free space on volume */ LTCH, /* check long-term cache hit percentage */ @@ -105,9 +104,9 @@ char *nss7_name=NULL; int server_port=PORT; unsigned long warning_value=0L; unsigned long critical_value=0L; -bool check_warning_value = false; -bool check_critical_value = false; -bool check_netware_version = false; +int check_warning_value=FALSE; +int check_critical_value=FALSE; +int check_netware_version=FALSE; enum checkvar vars_to_check = NONE; int sap_number=-1; @@ -147,8 +146,6 @@ main(int argc, char **argv) { unsigned long nss6_value=0L; unsigned long nss7_value=0L; unsigned long total_disk_space=0L; - unsigned long used_disk_space=0L; - unsigned long percent_used_disk_space=0L; unsigned long purgeable_disk_space=0L; unsigned long non_purgeable_disk_space=0L; unsigned long percent_free_space=0; @@ -185,7 +182,7 @@ main(int argc, char **argv) { my_tcp_connect (server_address, server_port, &sd); /* get OS version string */ - if (check_netware_version) { + if (check_netware_version==TRUE) { send_buffer = strdup ("S19\r\n"); result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); if (result!=STATE_OK) @@ -234,9 +231,9 @@ main(int argc, char **argv) { recv_buffer[strlen(recv_buffer)-1]=0; sprintf(uptime,_("Up %s,"),recv_buffer); - if (check_critical_value && utilization >= critical_value) + if (check_critical_value==TRUE && utilization >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && utilization >= warning_value) + else if (check_warning_value==TRUE && utilization >= warning_value) result=STATE_WARNING; xasprintf (&output_message, @@ -262,9 +259,9 @@ main(int argc, char **argv) { return result; current_connections=strtoul(recv_buffer,NULL,10); - if (check_critical_value && current_connections >= critical_value) + if (check_critical_value==TRUE && current_connections >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && current_connections >= warning_value) + else if (check_warning_value==TRUE && current_connections >= warning_value) result=STATE_WARNING; xasprintf (&output_message, @@ -287,9 +284,9 @@ main(int argc, char **argv) { return result; cache_hits=atoi(recv_buffer); - if (check_critical_value && cache_hits <= critical_value) + if (check_critical_value==TRUE && cache_hits <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && cache_hits <= warning_value) + else if (check_warning_value==TRUE && cache_hits <= warning_value) result=STATE_WARNING; xasprintf (&output_message, @@ -309,9 +306,9 @@ main(int argc, char **argv) { return result; cache_buffers=strtoul(recv_buffer,NULL,10); - if (check_critical_value && cache_buffers <= critical_value) + if (check_critical_value==TRUE && cache_buffers <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && cache_buffers <= warning_value) + else if (check_warning_value==TRUE && cache_buffers <= warning_value) result=STATE_WARNING; xasprintf (&output_message, @@ -334,9 +331,9 @@ main(int argc, char **argv) { return result; cache_buffers=strtoul(recv_buffer,NULL,10); - if (check_critical_value && cache_buffers >= critical_value) + if (check_critical_value==TRUE && cache_buffers >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && cache_buffers >= warning_value) + else if (check_warning_value==TRUE && cache_buffers >= warning_value) result=STATE_WARNING; xasprintf (&output_message, @@ -359,9 +356,9 @@ main(int argc, char **argv) { return result; lru_time=strtoul(recv_buffer,NULL,10); - if (check_critical_value && lru_time <= critical_value) + if (check_critical_value==TRUE && lru_time <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && lru_time <= warning_value) + else if (check_warning_value==TRUE && lru_time <= warning_value) result=STATE_WARNING; xasprintf (&output_message, @@ -386,9 +383,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { free_disk_space=strtoul(recv_buffer,NULL,10); - if (check_critical_value && free_disk_space <= critical_value) + if (check_critical_value==TRUE && free_disk_space <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && free_disk_space <= warning_value) + else if (check_warning_value==TRUE && free_disk_space <= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s%lu KB free on volume %s|KBFree%s=%lu;%lu;%lu;;"), @@ -414,9 +411,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { free_disk_space=strtoul(recv_buffer,NULL,10); - if (check_critical_value && free_disk_space <= critical_value) + if (check_critical_value==TRUE && free_disk_space <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && free_disk_space <= warning_value) + else if (check_warning_value==TRUE && free_disk_space <= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s%lu MB free on volume %s|MBFree%s=%lu;%lu;%lu;;"), @@ -441,9 +438,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { free_disk_space=strtoul(recv_buffer,NULL,10); - if (check_critical_value && free_disk_space <= critical_value) + if (check_critical_value==TRUE && free_disk_space <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && free_disk_space <= warning_value) + else if (check_warning_value==TRUE && free_disk_space <= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s%lu MB used on volume %s|MBUsed%s=%lu;%lu;%lu;;"), @@ -455,50 +452,7 @@ main(int argc, char **argv) { warning_value, critical_value); } - /* check % used space on volume */ - } else if (vars_to_check==VPU) { - close(sd); - my_tcp_connect (server_address, server_port, &sd); - asprintf (&send_buffer,"VMU%s\r\n",volume_name); - result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); - - if (result!=STATE_OK) - return result; - - if (!strcmp(recv_buffer,"-1\n")) { - asprintf (&output_message,_("CRITICAL - Volume '%s' does not exist!"),volume_name); - result=STATE_CRITICAL; - - } else { - used_disk_space=strtoul(recv_buffer,NULL,10); - close(sd); - my_tcp_connect (server_address, server_port, &sd); - /* get total volume in MB */ - asprintf (&send_buffer,"VMS%s\r\n",volume_name); - result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer)); - if (result!=STATE_OK) - return result; - total_disk_space=strtoul(recv_buffer,NULL,10); - /* calculate percent used on volume */ - percent_used_disk_space=(unsigned long)(((double)used_disk_space/(double)total_disk_space)*100.0); - - if (check_critical_value && percent_used_disk_space >= critical_value) - result=STATE_CRITICAL; - else if (check_warning_value && percent_used_disk_space >= warning_value) - result=STATE_WARNING; - - asprintf (&output_message,_("%lu MB (%lu%%) used on volume %s - total %lu MB|Used space in percent on %s=%lu;%lu;%lu;0;100"), - used_disk_space, - percent_used_disk_space, - volume_name, - total_disk_space, - volume_name, - percent_used_disk_space, - warning_value, - critical_value - ); - } /* check % free space on volume */ } else if (vars_to_check==VPF) { @@ -531,9 +485,9 @@ main(int argc, char **argv) { percent_free_space=(unsigned long)(((double)free_disk_space/(double)total_disk_space)*100.0); - if (check_critical_value && percent_free_space <= critical_value) + if (check_critical_value==TRUE && percent_free_space <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && percent_free_space <= warning_value) + else if (check_warning_value==TRUE && percent_free_space <= warning_value) result=STATE_WARNING; free_disk_space/=1024; total_disk_space/=1024; @@ -642,14 +596,14 @@ main(int argc, char **argv) { percent_used_packet_receive_buffers=(unsigned long)(((double)used_packet_receive_buffers/(double)max_packet_receive_buffers)*100.0); if (vars_to_check==UPRB) { - if (check_critical_value && used_packet_receive_buffers >= critical_value) + if (check_critical_value==TRUE && used_packet_receive_buffers >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && used_packet_receive_buffers >= warning_value) + else if (check_warning_value==TRUE && used_packet_receive_buffers >= warning_value) result=STATE_WARNING; } else { - if (check_critical_value && percent_used_packet_receive_buffers >= critical_value) + if (check_critical_value==TRUE && percent_used_packet_receive_buffers >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && percent_used_packet_receive_buffers >= warning_value) + else if (check_warning_value==TRUE && percent_used_packet_receive_buffers >= warning_value) result=STATE_WARNING; } @@ -671,9 +625,9 @@ main(int argc, char **argv) { sap_entries=atoi(recv_buffer); - if (check_critical_value && sap_entries >= critical_value) + if (check_critical_value==TRUE && sap_entries >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && sap_entries >= warning_value) + else if (check_warning_value==TRUE && sap_entries >= warning_value) result=STATE_WARNING; if (sap_number==-1) @@ -697,9 +651,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { purgeable_disk_space=strtoul(recv_buffer,NULL,10); - if (check_critical_value && purgeable_disk_space >= critical_value) + if (check_critical_value==TRUE && purgeable_disk_space >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && purgeable_disk_space >= warning_value) + else if (check_warning_value==TRUE && purgeable_disk_space >= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("%s%lu KB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;"), (result==STATE_OK)?"":_("Only "), @@ -723,9 +677,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { purgeable_disk_space=strtoul(recv_buffer,NULL,10); - if (check_critical_value && purgeable_disk_space >= critical_value) + if (check_critical_value==TRUE && purgeable_disk_space >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && purgeable_disk_space >= warning_value) + else if (check_warning_value==TRUE && purgeable_disk_space >= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("%s%lu MB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;"), (result==STATE_OK)?"":_("Only "), @@ -768,9 +722,9 @@ main(int argc, char **argv) { percent_purgeable_space=(unsigned long)(((double)purgeable_disk_space/(double)total_disk_space)*100.0); - if (check_critical_value && percent_purgeable_space >= critical_value) + if (check_critical_value==TRUE && percent_purgeable_space >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && percent_purgeable_space >= warning_value) + else if (check_warning_value==TRUE && percent_purgeable_space >= warning_value) result=STATE_WARNING; purgeable_disk_space/=1024; xasprintf (&output_message,_("%lu MB (%lu%%) purgeable on volume %s|Purgeable%s=%lu;%lu;%lu;0;100"), @@ -800,9 +754,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { non_purgeable_disk_space=strtoul(recv_buffer,NULL,10); - if (check_critical_value && non_purgeable_disk_space >= critical_value) + if (check_critical_value==TRUE && non_purgeable_disk_space >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && non_purgeable_disk_space >= warning_value) + else if (check_warning_value==TRUE && non_purgeable_disk_space >= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("%s%lu KB not yet purgeable on volume %s"),(result==STATE_OK)?"":_("Only "),non_purgeable_disk_space,volume_name); } @@ -838,9 +792,9 @@ main(int argc, char **argv) { percent_non_purgeable_space=(unsigned long)(((double)non_purgeable_disk_space/(double)total_disk_space)*100.0); - if (check_critical_value && percent_non_purgeable_space >= critical_value) + if (check_critical_value==TRUE && percent_non_purgeable_space >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && percent_non_purgeable_space >= warning_value) + else if (check_warning_value==TRUE && percent_non_purgeable_space >= warning_value) result=STATE_WARNING; purgeable_disk_space/=1024; xasprintf (&output_message,_("%lu MB (%lu%%) not yet purgeable on volume %s"),non_purgeable_disk_space,percent_non_purgeable_space,volume_name); @@ -859,9 +813,9 @@ main(int argc, char **argv) { open_files=atoi(recv_buffer); - if (check_critical_value && open_files >= critical_value) + if (check_critical_value==TRUE && open_files >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && open_files >= warning_value) + else if (check_warning_value==TRUE && open_files >= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("%lu open files|Openfiles=%lu;%lu;%lu;0,0"), @@ -884,9 +838,9 @@ main(int argc, char **argv) { abended_threads=atoi(recv_buffer); - if (check_critical_value && abended_threads >= critical_value) + if (check_critical_value==TRUE && abended_threads >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && abended_threads >= warning_value) + else if (check_warning_value==TRUE && abended_threads >= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("%lu abended threads|Abends=%lu;%lu;%lu;;"), @@ -918,9 +872,9 @@ main(int argc, char **argv) { current_service_processes=atoi(recv_buffer); - if (check_critical_value && current_service_processes >= critical_value) + if (check_critical_value==TRUE && current_service_processes >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && current_service_processes >= warning_value) + else if (check_warning_value==TRUE && current_service_processes >= warning_value) result=STATE_WARNING; xasprintf (&output_message, @@ -969,9 +923,9 @@ main(int argc, char **argv) { return result; lru_time=strtoul(recv_buffer,NULL,10); - if (check_critical_value && lru_time <= critical_value) + if (check_critical_value==TRUE && lru_time <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && lru_time <= warning_value) + else if (check_warning_value==TRUE && lru_time <= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("LRU sitting time = %lu seconds"),lru_time); @@ -988,9 +942,9 @@ main(int argc, char **argv) { return result; dirty_cache_buffers=atoi(recv_buffer); - if (check_critical_value && dirty_cache_buffers <= critical_value) + if (check_critical_value==TRUE && dirty_cache_buffers <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && dirty_cache_buffers <= warning_value) + else if (check_warning_value==TRUE && dirty_cache_buffers <= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("Dirty cache buffers = %lu%% of the total|DCB=%lu;%lu;%lu;0;100"), dirty_cache_buffers, @@ -1010,9 +964,9 @@ main(int argc, char **argv) { return result; total_cache_buffers=atoi(recv_buffer); - if (check_critical_value && total_cache_buffers <= critical_value) + if (check_critical_value==TRUE && total_cache_buffers <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && total_cache_buffers <= warning_value) + else if (check_warning_value==TRUE && total_cache_buffers <= warning_value) result=STATE_WARNING; xasprintf (&output_message,_("Total cache buffers = %lu%% of the original|TCB=%lu;%lu;%lu;0;100"), total_cache_buffers, @@ -1080,9 +1034,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nrmp_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nrmp_value <= critical_value) + if (check_critical_value==TRUE && nrmp_value <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nrmp_value <= warning_value) + else if (check_warning_value==TRUE && nrmp_value <= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1106,9 +1060,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nrmm_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nrmm_value <= critical_value) + if (check_critical_value==TRUE && nrmm_value <= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nrmm_value <= warning_value) + else if (check_warning_value==TRUE && nrmm_value <= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1132,9 +1086,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nrms_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nrms_value >= critical_value) + if (check_critical_value==TRUE && nrms_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nrms_value >= warning_value) + else if (check_warning_value==TRUE && nrms_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1158,9 +1112,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nss1_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nss1_value >= critical_value) + if (check_critical_value==TRUE && nss1_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nss1_value >= warning_value) + else if (check_warning_value==TRUE && nss1_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1184,9 +1138,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nss2_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nss2_value >= critical_value) + if (check_critical_value==TRUE && nss2_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nss2_value >= warning_value) + else if (check_warning_value==TRUE && nss2_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1210,9 +1164,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nss3_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nss3_value >= critical_value) + if (check_critical_value==TRUE && nss3_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nss3_value >= warning_value) + else if (check_warning_value==TRUE && nss3_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1236,9 +1190,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nss4_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nss4_value >= critical_value) + if (check_critical_value==TRUE && nss4_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nss4_value >= warning_value) + else if (check_warning_value==TRUE && nss4_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1262,9 +1216,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nss5_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nss5_value >= critical_value) + if (check_critical_value==TRUE && nss5_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nss5_value >= warning_value) + else if (check_warning_value==TRUE && nss5_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1288,9 +1242,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nss6_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nss6_value >= critical_value) + if (check_critical_value==TRUE && nss6_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nss6_value >= warning_value) + else if (check_warning_value==TRUE && nss6_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1314,9 +1268,9 @@ main(int argc, char **argv) { result=STATE_CRITICAL; } else { nss7_value=strtoul(recv_buffer,NULL,10); - if (check_critical_value && nss7_value >= critical_value) + if (check_critical_value==TRUE && nss7_value >= critical_value) result=STATE_CRITICAL; - else if (check_warning_value && nss7_value >= warning_value) + else if (check_warning_value==TRUE && nss7_value >= warning_value) result=STATE_WARNING; xasprintf (&output_message, _("%s is %lu|%s=%lu;%lu;%lu;;"), @@ -1408,7 +1362,7 @@ int process_arguments(int argc, char **argv) { server_address=optarg; break; case 'o': /* display nos version */ - check_netware_version = true; + check_netware_version=TRUE; break; case 'p': /* port */ if (is_intnonneg(optarg)) @@ -1496,12 +1450,6 @@ int process_arguments(int argc, char **argv) { if (!strcmp(volume_name,"")) volume_name = strdup ("SYS"); } - else if (strncmp(optarg,"VPU",3)==0) { - vars_to_check=VPU; - volume_name = strdup (optarg+3); - if (!strcmp(volume_name,"")) - volume_name = strdup ("SYS"); - } else if (strncmp(optarg,"VPP",3)==0) { vars_to_check=VPP; volume_name = strdup (optarg+3); @@ -1621,11 +1569,11 @@ int process_arguments(int argc, char **argv) { break; case 'w': /* warning threshold */ warning_value=strtoul(optarg,NULL,10); - check_warning_value = true; + check_warning_value=TRUE; break; case 'c': /* critical threshold */ critical_value=strtoul(optarg,NULL,10); - check_critical_value = true; + check_critical_value=TRUE; break; case 't': /* timeout */ socket_timeout=atoi(optarg); @@ -1678,7 +1626,6 @@ void print_help(void) printf (" %s\n", _("OFILES = number of open files")); printf (" %s\n", _(" VMF = MB of free space on Volume ")); printf (" %s\n", _(" VMU = MB used space on Volume ")); - printf (" %s\n", _(" VPU = percent used space on Volume ")); printf (" %s\n", _(" VMP = MB of purgeable space on Volume ")); printf (" %s\n", _(" VPF = percent free space on volume ")); printf (" %s\n", _(" VKF = KB of free space on volume ")); @@ -1721,7 +1668,7 @@ void print_help(void) printf ("\n"); printf ("%s\n", _("Notes:")); - printf (" %s\n", _("- This plugin requires that the MRTGEXT.NLM file from James Drews' MRTG")); + printf (" %s\n", _("- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG")); printf (" %s\n", _(" extension for NetWare be loaded on the Novell servers you wish to check.")); printf (" %s\n", _(" (available from http://www.engr.wisc.edu/~drews/mrtg/)")); printf (" %s\n", _("- Values for critical thresholds should be lower than warning thresholds")); diff --git a/plugins/check_overcr.c b/plugins/check_overcr.c index 5165c82..9a4d25f 100644 --- a/plugins/check_overcr.c +++ b/plugins/check_overcr.c @@ -56,15 +56,15 @@ char *server_address = NULL; int server_port = PORT; double warning_value = 0L; double critical_value = 0L; -bool check_warning_value = false; -bool check_critical_value = false; +int check_warning_value = FALSE; +int check_critical_value = FALSE; enum checkvar vars_to_check = NONE; int cmd_timeout = 1; int netstat_port = 0; char *disk_name = NULL; char *process_name = NULL; -char send_buffer[MAX_INPUT_BUFFER]; + char send_buffer[MAX_INPUT_BUFFER]; int process_arguments (int, char **); void print_usage (void); @@ -77,7 +77,7 @@ main (int argc, char **argv) char recv_buffer[MAX_INPUT_BUFFER]; char temp_buffer[MAX_INPUT_BUFFER]; char *temp_ptr = NULL; - bool found_disk = false; + int found_disk = FALSE; unsigned long percent_used_disk_space = 100; double load; double load_1min; @@ -155,9 +155,9 @@ main (int argc, char **argv) break; } - if (check_critical_value && (load >= critical_value)) + if (check_critical_value == TRUE && (load >= critical_value)) result = STATE_CRITICAL; - else if (check_warning_value && (load >= warning_value)) + else if (check_warning_value == TRUE && (load >= warning_value)) result = STATE_WARNING; die (result, @@ -178,7 +178,7 @@ main (int argc, char **argv) temp_ptr = (char *) strtok (NULL, " ")) { if (!strcmp (temp_ptr, disk_name)) { - found_disk = true; + found_disk = TRUE; temp_ptr = (char *) strtok (NULL, "%"); if (temp_ptr == NULL) die (STATE_CRITICAL, _("Invalid response from server\n")); @@ -191,14 +191,14 @@ main (int argc, char **argv) } /* error if we couldn't find the info for the disk */ - if (!found_disk) + if (found_disk == FALSE) die (STATE_CRITICAL, "CRITICAL - Disk '%s' non-existent or not mounted", disk_name); - if (check_critical_value && (percent_used_disk_space >= critical_value)) + if (check_critical_value == TRUE && (percent_used_disk_space >= critical_value)) result = STATE_CRITICAL; - else if (check_warning_value && (percent_used_disk_space >= warning_value)) + else if (check_warning_value == TRUE && (percent_used_disk_space >= warning_value)) result = STATE_WARNING; die (result, "Disk %s - %lu%% used on %s", state_text(result), percent_used_disk_space, disk_name); @@ -212,9 +212,9 @@ main (int argc, char **argv) else port_connections = strtod (recv_buffer, NULL); - if (check_critical_value && (port_connections >= critical_value)) + if (check_critical_value == TRUE && (port_connections >= critical_value)) result = STATE_CRITICAL; - else if (check_warning_value && (port_connections >= warning_value)) + else if (check_warning_value == TRUE && (port_connections >= warning_value)) result = STATE_WARNING; die (result, @@ -241,9 +241,9 @@ main (int argc, char **argv) else processes = strtod (temp_ptr, NULL); - if (check_critical_value && (processes >= critical_value)) + if (check_critical_value == TRUE && (processes >= critical_value)) result = STATE_CRITICAL; - else if (check_warning_value && (processes >= warning_value)) + else if (check_warning_value == TRUE && (processes >= warning_value)) result = STATE_WARNING; die (result, @@ -262,9 +262,9 @@ main (int argc, char **argv) uptime_raw_hours = strtod (recv_buffer, NULL); uptime_raw_minutes = (unsigned long) (uptime_raw_hours * 60.0); - if (check_critical_value && (uptime_raw_minutes <= critical_value)) + if (check_critical_value == TRUE && (uptime_raw_minutes <= critical_value)) result = STATE_CRITICAL; - else if (check_warning_value && (uptime_raw_minutes <= warning_value)) + else if (check_warning_value == TRUE && (uptime_raw_minutes <= warning_value)) result = STATE_WARNING; uptime_days = uptime_raw_minutes / 1440; @@ -388,11 +388,11 @@ process_arguments (int argc, char **argv) break; case 'w': /* warning threshold */ warning_value = strtoul (optarg, NULL, 10); - check_warning_value = true; + check_warning_value = TRUE; break; case 'c': /* critical threshold */ critical_value = strtoul (optarg, NULL, 10); - check_critical_value = true; + check_critical_value = TRUE; break; case 't': /* timeout */ socket_timeout = atoi (optarg); diff --git a/plugins/check_pgsql.c b/plugins/check_pgsql.c index 94d589e..c26cd43 100644 --- a/plugins/check_pgsql.c +++ b/plugins/check_pgsql.c @@ -69,7 +69,7 @@ int process_arguments (int, char **); int validate_arguments (void); void print_usage (void); void print_help (void); -bool is_pg_logname (char *); +int is_pg_logname (char *); int do_query (PGconn *, char *); char *pghost = NULL; /* host name of the backend server */ @@ -93,7 +93,7 @@ int verbose = 0; /****************************************************************************** -The (pseudo?)literate programming XML is contained within \@\@\- \-\@\@ +The (psuedo?)literate programming XML is contained within \@\@\- \-\@\@ tags in the comments. With in the tags, the XML is assembled sequentially. You can define entities in tags. You also have all the #defines available as entities. @@ -252,7 +252,7 @@ main (int argc, char **argv) printf (_(" %s - database %s (%f sec.)|%s\n"), state_text(status), dbName, elapsed_time, fperfdata("time", elapsed_time, "s", - !!(twarn > 0.0), twarn, !!(tcrit > 0.0), tcrit, true, 0, false,0)); + !!(twarn > 0.0), twarn, !!(tcrit > 0.0), tcrit, TRUE, 0, FALSE,0)); if (pgquery) query_status = do_query (conn, pgquery); @@ -393,7 +393,7 @@ process_arguments (int argc, char **argv) &PROTO_validate_arguments; -Given a database name, this function returns true if the string +Given a database name, this function returns TRUE if the string is a valid PostgreSQL database name, and returns false if it is not. @@ -424,7 +424,7 @@ function prototype &PROTO_is_pg_logname; -Given a username, this function returns true if the string is a +Given a username, this function returns TRUE if the string is a valid PostgreSQL username, and returns false if it is not. Valid PostgreSQL usernames are less than &NAMEDATALEN; characters long and consist of letters, numbers, dashes, and underscores, plus possibly some other @@ -439,10 +439,12 @@ should be added. -bool is_pg_logname (char *username) { +int +is_pg_logname (char *username) +{ if (strlen (username) > NAMEDATALEN - 1) - return (false); - return (true); + return (FALSE); + return (TRUE); } /****************************************************************************** @@ -515,10 +517,7 @@ print_help (void) printf (" %s\n", _("connecting to the server. The result from the query has to be numeric.")); printf (" %s\n", _("Multiple SQL commands, separated by semicolon, are allowed but the result ")); printf (" %s\n", _("of the last command is taken into account only. The value of the first")); - printf (" %s\n", _("column in the first row is used as the check result. If a second column is")); - printf (" %s\n", _("present in the result set, this is added to the plugin output with a")); - printf (" %s\n", _("prefix of \"Extra Info:\". This information can be displayed in the system")); - printf (" %s\n\n", _("executing the plugin.")); + printf (" %s\n\n", _("column in the first row is used as the check result.")); printf (" %s\n", _("See the chapter \"Monitoring Database Activity\" of the PostgreSQL manual")); printf (" %s\n\n", _("for details about how to access internal statistics of the database server.")); @@ -558,7 +557,6 @@ do_query (PGconn *conn, char *query) PGresult *res; char *val_str; - char *extra_info; double value; char *endptr = NULL; @@ -623,12 +621,6 @@ do_query (PGconn *conn, char *query) printf ("|query=%f;%s;%s;;\n", value, query_warning ? query_warning : "", query_critical ? query_critical : ""); - if (PQnfields (res) > 1) { - extra_info = PQgetvalue (res, 0, 1); - if (extra_info != NULL) { - printf ("Extra Info: %s\n", extra_info); - } - } return my_status; } diff --git a/plugins/check_ping.c b/plugins/check_ping.c index 6e162e6..741f732 100644 --- a/plugins/check_ping.c +++ b/plugins/check_ping.c @@ -55,7 +55,7 @@ int error_scan (char buf[MAX_INPUT_BUFFER], const char *addr); void print_usage (void); void print_help (void); -bool display_html = false; +int display_html = FALSE; int wpl = UNKNOWN_PACKET_LOSS; int cpl = UNKNOWN_PACKET_LOSS; float wrta = UNKNOWN_TRIP_TIME; @@ -153,7 +153,7 @@ main (int argc, char **argv) if (n_addresses > 1 && this_result != STATE_UNKNOWN) die (STATE_OK, "%s is alive\n", addresses[i]); - if (display_html == true) + if (display_html == TRUE) printf ("", CGIURL, addresses[i]); if (pl == 100) printf (_("PING %s - %sPacket loss = %d%%"), state_text (this_result), warn_text, @@ -161,22 +161,22 @@ main (int argc, char **argv) else printf (_("PING %s - %sPacket loss = %d%%, RTA = %2.2f ms"), state_text (this_result), warn_text, pl, rta); - if (display_html == true) + if (display_html == TRUE) printf (""); /* Print performance data */ if (pl != 100) { printf("|%s", fperfdata ("rta", (double) rta, "ms", - wrta>0?true:false, wrta, - crta>0?true:false, crta, - true, 0, false, 0)); + wrta>0?TRUE:FALSE, wrta, + crta>0?TRUE:FALSE, crta, + TRUE, 0, FALSE, 0)); } else { printf("| rta=U;%f;%f;;", wrta, crta); } printf(" %s\n", perfdata ("pl", (long) pl, "%", - wpl>0?true:false, wpl, - cpl>0?true:false, cpl, - true, 0, false, 0)); + wpl>0?TRUE:FALSE, wpl, + cpl>0?TRUE:FALSE, cpl, + TRUE, 0, FALSE, 0)); if (verbose >= 2) printf ("%f:%d%% %f:%d%%\n", wrta, wpl, crta, cpl); @@ -278,10 +278,10 @@ process_arguments (int argc, char **argv) usage2 (_(" (%s) must be a non-negative number\n"), optarg); break; case 'n': /* no HTML */ - display_html = false; + display_html = FALSE; break; case 'L': /* show HTML */ - display_html = true; + display_html = TRUE; break; case 'c': get_threshold (optarg, &crta, &cpl); @@ -297,7 +297,7 @@ process_arguments (int argc, char **argv) return validate_arguments (); if (addresses[0] == NULL) { - if (!is_host (argv[c])) { + if (is_host (argv[c]) == FALSE) { usage2 (_("Invalid hostname/address"), argv[c]); } else { addresses[0] = argv[c++]; @@ -308,7 +308,7 @@ process_arguments (int argc, char **argv) } if (wpl == UNKNOWN_PACKET_LOSS) { - if (!is_intpercent (argv[c])) { + if (is_intpercent (argv[c]) == FALSE) { printf (_(" (%s) must be an integer percentage\n"), argv[c]); return ERROR; } else { @@ -319,7 +319,7 @@ process_arguments (int argc, char **argv) } if (cpl == UNKNOWN_PACKET_LOSS) { - if (!is_intpercent (argv[c])) { + if (is_intpercent (argv[c]) == FALSE) { printf (_(" (%s) must be an integer percentage\n"), argv[c]); return ERROR; } else { @@ -420,7 +420,7 @@ validate_arguments () timeout_interval = (int)max_seconds; for (i=0; i= 3) @@ -244,9 +237,8 @@ main (int argc, char **argv) /* Ignore self */ if ((usepid && mypid == procpid) || - ( ((!usepid) && ((ret = stat_exe(procpid, &statbuf) != -1) && statbuf.st_dev == mydev && statbuf.st_ino == myino)) || - (ret == -1 && errno == ENOENT)) - ) { + (!usepid && ((ret = stat_exe(procpid, &statbuf) != -1) && statbuf.st_dev == mydev && statbuf.st_ino == myino) || + (ret == -1 && errno == ENOENT))) { if (verbose >= 3) printf("not considering - is myself or gone\n"); continue; @@ -258,33 +250,7 @@ main (int argc, char **argv) continue; } - /* Ignore our own children */ - if (procppid == mypid) { - if (verbose >= 3) - printf("not considering - is our child\n"); - continue; - } - - /* Ignore excluded processes by name */ - if(options & EXCLUDE_PROGS) { - int found = 0; - int i = 0; - - for(i=0; i < (exclude_progs_counter); i++) { - if(!strcmp(procprog, exclude_progs_arr[i])) { - found = 1; - } - } - if(found == 0) { - resultsum |= EXCLUDE_PROGS; - } else - { - if(verbose >= 3) - printf("excluding - by ignorelist\n"); - } - } - - /* filter kernel threads (children of KTHREAD_PARENT)*/ + /* filter kernel threads (childs of KTHREAD_PARENT)*/ /* TODO adapt for other OSes than GNU/Linux sorry for not doing that, but I've no other OSes to test :-( */ if (kthread_filter == 1) { @@ -443,7 +409,6 @@ process_arguments (int argc, char **argv) {"input-file", required_argument, 0, CHAR_MAX+2}, {"no-kthreads", required_argument, 0, 'k'}, {"traditional-filter", no_argument, 0, 'T'}, - {"exclude-process", required_argument, 0, 'X'}, {0, 0, 0, 0} }; @@ -452,7 +417,7 @@ process_arguments (int argc, char **argv) strcpy (argv[c], "-t"); while (1) { - c = getopt_long (argc, argv, "Vvhkt:c:w:p:s:u:C:a:z:r:m:P:T:X:", + c = getopt_long (argc, argv, "Vvhkt:c:w:p:s:u:C:a:z:r:m:P:T", longopts, &option); if (c == -1 || c == EOF) @@ -525,23 +490,6 @@ process_arguments (int argc, char **argv) prog); options |= PROG; break; - case 'X': - if(exclude_progs) - break; - else - exclude_progs = optarg; - xasprintf (&fmt, _("%s%sexclude progs '%s'"), (fmt ? fmt : ""), (options ? ", " : ""), - exclude_progs); - char *p = strtok(exclude_progs, ","); - - while(p){ - exclude_progs_arr = realloc(exclude_progs_arr, sizeof(char*) * ++exclude_progs_counter); - exclude_progs_arr[exclude_progs_counter-1] = p; - p = strtok(NULL, ","); - } - - options |= EXCLUDE_PROGS; - break; case 'a': /* args (full path name with args) */ /* TODO: allow this to be passed in with --metric */ if (args) @@ -738,23 +686,18 @@ convert_to_seconds(char *etime) { void print_help (void) { - print_revision (progname, NP_VERSION); + print_revision (progname, NP_VERSION); - printf ("Copyright (c) 1999 Ethan Galstad \n"); - printf (COPYRIGHT, copyright, email); + printf ("Copyright (c) 1999 Ethan Galstad \n"); + printf (COPYRIGHT, copyright, email); - printf ("%s\n", _("Checks all processes and generates WARNING or CRITICAL states if the specified")); + printf ("%s\n", _("Checks all processes and generates WARNING or CRITICAL states if the specified")); printf ("%s\n", _("metric is outside the required threshold ranges. The metric defaults to number")); printf ("%s\n", _("of processes. Search filters can be applied to limit the processes to check.")); printf ("\n\n"); - printf ("%s\n", _("The parent process, check_procs itself and any child process of check_procs (ps)")); - printf ("%s\n", _("are excluded from any checks to prevent false positives.")); - - printf ("\n\n"); - - print_usage (); + print_usage (); printf (UT_HELP_VRSN); printf (UT_EXTRA_OPTS); @@ -770,11 +713,11 @@ print_help (void) printf (" %s\n", _("CPU - percentage CPU")); /* only linux etime is support currently */ #if defined( __linux__ ) - printf (" %s\n", _("ELAPSED - time elapsed in seconds")); + printf (" %s\n", _("ELAPSED - time elapsed in seconds")); #endif /* defined(__linux__) */ - printf (UT_PLUG_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); + printf (UT_PLUG_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); - printf (" %s\n", "-v, --verbose"); + printf (" %s\n", "-v, --verbose"); printf (" %s\n", _("Extra information. Up to 3 verbosity levels")); printf (" %s\n", "-T, --traditional"); @@ -792,7 +735,7 @@ print_help (void) printf (" %s\n", _("Only scan for processes with VSZ higher than indicated.")); printf (" %s\n", "-r, --rss=RSS"); printf (" %s\n", _("Only scan for processes with RSS higher than indicated.")); - printf (" %s\n", "-P, --pcpu=PCPU"); + printf (" %s\n", "-P, --pcpu=PCPU"); printf (" %s\n", _("Only scan for processes with PCPU higher than indicated.")); printf (" %s\n", "-u, --user=USER"); printf (" %s\n", _("Only scan for processes with user name or ID indicated.")); @@ -802,24 +745,22 @@ print_help (void) printf (" %s\n", _("Only scan for processes with args that contain the regex STRING.")); printf (" %s\n", "-C, --command=COMMAND"); printf (" %s\n", _("Only scan for exact matches of COMMAND (without path).")); - printf (" %s\n", "-X, --exclude-process"); - printf (" %s\n", _("Exclude processes which match this comma separated list")); printf (" %s\n", "-k, --no-kthreads"); printf (" %s\n", _("Only scan for non kernel threads (works on Linux only).")); - printf(_("\n\ + printf(_("\n\ RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n\ specified 'max:min', a warning status will be generated if the\n\ count is inside the specified range\n\n")); - printf(_("\ + printf(_("\ This plugin checks the number of currently running processes and\n\ generates WARNING or CRITICAL states if the process count is outside\n\ the specified threshold ranges. The process count can be filtered by\n\ process owner, parent process PID, current state (e.g., 'Z'), or may\n\ be the total number of running processes\n\n")); - printf ("%s\n", _("Examples:")); + printf ("%s\n", _("Examples:")); printf (" %s\n", "check_procs -w 2:2 -c 2:1024 -C portsentry"); printf (" %s\n", _("Warning if not two processes with command name portsentry.")); printf (" %s\n\n", _("Critical if < 2 or > 1024 processes")); @@ -836,14 +777,14 @@ be the total number of running processes\n\n")); printf (" %s\n", "check_procs -w 10 -c 20 --metric=CPU"); printf (" %s\n", _("Alert if CPU of any processes over 10\% or 20\%")); - printf (UT_SUPPORT); + printf (UT_SUPPORT); } void print_usage (void) { printf ("%s\n", _("Usage:")); - printf ("%s -w -c [-m metric] [-s state] [-p ppid]\n", progname); + printf ("%s -w -c [-m metric] [-s state] [-p ppid]\n", progname); printf (" [-u user] [-r rss] [-z vsz] [-P %%cpu] [-a argument-array]\n"); - printf (" [-C command] [-X process_to_exclude] [-k] [-t timeout] [-v]\n"); + printf (" [-C command] [-k] [-t timeout] [-v]\n"); } diff --git a/plugins/check_radius.c b/plugins/check_radius.c index 6b32710..be1001b 100644 --- a/plugins/check_radius.c +++ b/plugins/check_radius.c @@ -93,11 +93,11 @@ char *expect = NULL; char *config_file = NULL; unsigned short port = PW_AUTH_UDP_PORT; int retries = 1; -bool verbose = false; +int verbose = FALSE; /****************************************************************************** -The (pseudo?)literate programming XML is contained within \@\@\- \-\@\@ +The (psuedo?)literate programming XML is contained within \@\@\- \-\@\@ tags in the comments. With in the tags, the XML is assembled sequentially. You can define entities in tags. You also have all the #defines available as entities. @@ -155,11 +155,7 @@ main (int argc, char **argv) { struct sockaddr_storage ss; char name[HOST_NAME_MAX]; -#ifdef RC_BUFFER_LEN - char msg[RC_BUFFER_LEN]; -#else char msg[BUFFER_LEN]; -#endif SEND_DATA data; int result = STATE_UNKNOWN; uint32_t client_id, service; @@ -272,10 +268,10 @@ process_arguments (int argc, char **argv) print_revision (progname, NP_VERSION); exit (STATE_UNKNOWN); case 'v': /* verbose mode */ - verbose = true; + verbose = TRUE; break; case 'H': /* hostname */ - if (!is_host (optarg)) { + if (is_host (optarg) == FALSE) { usage2 (_("Invalid hostname/address"), optarg); } server = optarg; @@ -381,7 +377,7 @@ print_help (void) printf ("\n"); printf ("%s\n", _("This plugin tests a RADIUS server to see if it is accepting connections.")); printf ("%s\n", _("The server to test must be specified in the invocation, as well as a user")); - printf ("%s\n", _("name and password. A configuration file must be present. The format of")); + printf ("%s\n", _("name and password. A configuration file may also be present. The format of")); printf ("%s\n", _("the configuration file is described in the radiusclient library sources.")); printf ("%s\n", _("The password option presents a substantial security issue because the")); printf ("%s\n", _("password can possibly be determined by careful watching of the command line")); diff --git a/plugins/check_real.c b/plugins/check_real.c index 15e035b..0f1a1ba 100644 --- a/plugins/check_real.c +++ b/plugins/check_real.c @@ -54,10 +54,10 @@ char *host_name; char *server_url = NULL; char *server_expect; int warning_time = 0; -bool check_warning_time = false; +int check_warning_time = FALSE; int critical_time = 0; -bool check_critical_time = false; -bool verbose = false; +int check_critical_time = FALSE; +int verbose = FALSE; @@ -178,7 +178,7 @@ main (int argc, char **argv) /* watch for the REAL connection string */ result = recv (sd, buffer, MAX_INPUT_BUFFER - 1, 0); - buffer[result] = '\0'; /* null terminate received buffer */ + buffer[result] = '\0'; /* null terminate recieved buffer */ /* return a CRITICAL status if we couldn't read any data */ if (result == -1) { @@ -238,9 +238,9 @@ main (int argc, char **argv) /* Return results */ if (result == STATE_OK) { - if (check_critical_time + if (check_critical_time == TRUE && (end_time - start_time) > critical_time) result = STATE_CRITICAL; - else if (check_warning_time + else if (check_warning_time == TRUE && (end_time - start_time) > warning_time) result = STATE_WARNING; @@ -331,7 +331,7 @@ process_arguments (int argc, char **argv) case 'w': /* warning time threshold */ if (is_intnonneg (optarg)) { warning_time = atoi (optarg); - check_warning_time = true; + check_warning_time = TRUE; } else { usage4 (_("Warning time must be a positive integer")); @@ -340,14 +340,14 @@ process_arguments (int argc, char **argv) case 'c': /* critical time threshold */ if (is_intnonneg (optarg)) { critical_time = atoi (optarg); - check_critical_time = true; + check_critical_time = TRUE; } else { usage4 (_("Critical time must be a positive integer")); } break; case 'v': /* verbose */ - verbose = true; + verbose = TRUE; break; case 't': /* timeout */ if (is_intnonneg (optarg)) { @@ -436,7 +436,7 @@ print_help (void) printf ("\n"); printf ("%s\n", _("This plugin will attempt to open an RTSP connection with the host.")); - printf ("%s\n", _("Successful connects return STATE_OK, refusals and timeouts return")); + printf ("%s\n", _("Successul connects return STATE_OK, refusals and timeouts return")); printf ("%s\n", _("STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects,")); printf ("%s\n", _("but incorrect response messages from the host result in STATE_WARNING return")); printf ("%s\n", _("values.")); diff --git a/plugins/check_smtp.c b/plugins/check_smtp.c index 986c3e1..c1e92df 100644 --- a/plugins/check_smtp.c +++ b/plugins/check_smtp.c @@ -3,7 +3,7 @@ * Monitoring check_smtp plugin * * License: GPL -* Copyright (c) 2000-2023 Monitoring Plugins Development Team +* Copyright (c) 2000-2007 Monitoring Plugins Development Team * * Description: * @@ -40,20 +40,18 @@ const char *email = "devel@monitoring-plugins.org"; #include #ifdef HAVE_SSL -bool check_cert = false; +int check_cert = FALSE; int days_till_exp_warn, days_till_exp_crit; -# define my_recv(buf, len) (((use_starttls || use_ssl) && ssl_established) ? np_net_ssl_read(buf, len) : read(sd, buf, len)) -# define my_send(buf, len) (((use_starttls || use_ssl) && ssl_established) ? np_net_ssl_write(buf, len) : send(sd, buf, len, 0)) +# define my_recv(buf, len) ((use_ssl && ssl_established) ? np_net_ssl_read(buf, len) : read(sd, buf, len)) +# define my_send(buf, len) ((use_ssl && ssl_established) ? np_net_ssl_write(buf, len) : send(sd, buf, len, 0)) #else /* ifndef HAVE_SSL */ # define my_recv(buf, len) read(sd, buf, len) # define my_send(buf, len) send(sd, buf, len, 0) #endif enum { - SMTP_PORT = 25, - SMTPS_PORT = 465 + SMTP_PORT = 25 }; -#define PROXY_PREFIX "PROXY TCP4 0.0.0.0 0.0.0.0 25 25\r\n" #define SMTP_EXPECT "220" #define SMTP_HELO "HELO " #define SMTP_EHLO "EHLO " @@ -84,7 +82,6 @@ int eflags = 0; int errcode, excode; int server_port = SMTP_PORT; -int server_port_option = 0; char *server_address = NULL; char *server_expect = NULL; char *mail_command = NULL; @@ -100,17 +97,14 @@ char *authtype = NULL; char *authuser = NULL; char *authpass = NULL; double warning_time = 0; -bool check_warning_time = false; +int check_warning_time = FALSE; double critical_time = 0; -bool check_critical_time = false; +int check_critical_time = FALSE; int verbose = 0; -bool use_ssl = false; -bool use_starttls = false; -bool use_sni = false; -bool use_proxy_prefix = false; -bool use_ehlo = false; -bool use_lhlo = false; -bool ssl_established = false; +int use_ssl = FALSE; +short use_ehlo = FALSE; +short use_lhlo = FALSE; +short ssl_established = 0; char *localhostname = NULL; int sd; char buffer[MAX_INPUT_BUFFER]; @@ -118,13 +112,13 @@ enum { TCP_PROTOCOL = 1, UDP_PROTOCOL = 2, }; -bool ignore_send_quit_failure = false; +int ignore_send_quit_failure = FALSE; int main (int argc, char **argv) { - bool supports_tls = false; + short supports_tls=FALSE; int n = 0; double elapsed_time; long microsec; @@ -189,26 +183,6 @@ main (int argc, char **argv) result = my_tcp_connect (server_address, server_port, &sd); if (result == STATE_OK) { /* we connected */ - /* If requested, send PROXY header */ - if (use_proxy_prefix) { - if (verbose) - printf ("Sending header %s\n", PROXY_PREFIX); - my_send(PROXY_PREFIX, strlen(PROXY_PREFIX)); - } - -#ifdef HAVE_SSL - if (use_ssl) { - result = np_net_ssl_init_with_hostname(sd, (use_sni ? server_address : NULL)); - if (result != STATE_OK) { - printf (_("CRITICAL - Cannot create SSL context.\n")); - close(sd); - np_net_ssl_cleanup(); - return STATE_CRITICAL; - } else { - ssl_established = 1; - } - } -#endif /* watch for the SMTP connection string and */ /* return a WARNING status if we couldn't read any data */ @@ -221,7 +195,7 @@ main (int argc, char **argv) xasprintf(&server_response, "%s", buffer); /* send the HELO/EHLO command */ - my_send(helocmd, strlen(helocmd)); + send(sd, helocmd, strlen(helocmd), 0); /* allow for response to helo command to reach us */ if (recvlines(buffer, MAX_INPUT_BUFFER) <= 0) { @@ -230,18 +204,18 @@ main (int argc, char **argv) } else if(use_ehlo || use_lhlo){ if(strstr(buffer, "250 STARTTLS") != NULL || strstr(buffer, "250-STARTTLS") != NULL){ - supports_tls=true; + supports_tls=TRUE; } } - if(use_starttls && ! supports_tls){ + if(use_ssl && ! supports_tls){ printf(_("WARNING - TLS not supported by server\n")); smtp_quit(); return STATE_WARNING; } #ifdef HAVE_SSL - if(use_starttls) { + if(use_ssl) { /* send the STARTTLS command */ send(sd, SMTP_STARTTLS, strlen(SMTP_STARTTLS), 0); @@ -251,7 +225,7 @@ main (int argc, char **argv) smtp_quit(); return STATE_UNKNOWN; } - result = np_net_ssl_init_with_hostname(sd, (use_sni ? server_address : NULL)); + result = np_net_ssl_init(sd); if(result != STATE_OK) { printf (_("CRITICAL - Cannot create SSL context.\n")); close(sd); @@ -466,7 +440,7 @@ main (int argc, char **argv) fperfdata ("time", elapsed_time, "s", (int)check_warning_time, warning_time, (int)check_critical_time, critical_time, - true, 0, false, 0)); + TRUE, 0, FALSE, 0)); return result; } @@ -480,12 +454,6 @@ process_arguments (int argc, char **argv) int c; char* temp; - bool implicit_tls = false; - - enum { - SNI_OPTION - }; - int option = 0; static struct option longopts[] = { {"hostname", required_argument, 0, 'H'}, @@ -507,13 +475,9 @@ process_arguments (int argc, char **argv) {"use-ipv6", no_argument, 0, '6'}, {"help", no_argument, 0, 'h'}, {"lmtp", no_argument, 0, 'L'}, - {"ssl", no_argument, 0, 's'}, - {"tls", no_argument, 0, 's'}, {"starttls",no_argument,0,'S'}, - {"sni", no_argument, 0, SNI_OPTION}, {"certificate",required_argument,0,'D'}, {"ignore-quit-failure",no_argument,0,'q'}, - {"proxy",no_argument,0,'r'}, {0, 0, 0, 0} }; @@ -530,7 +494,7 @@ process_arguments (int argc, char **argv) } while (1) { - c = getopt_long (argc, argv, "+hVv46Lrt:p:f:e:c:w:H:C:R:sSD:F:A:U:P:q", + c = getopt_long (argc, argv, "+hVv46Lt:p:f:e:c:w:H:C:R:SD:F:A:U:P:q", longopts, &option); if (c == -1 || c == EOF) @@ -547,7 +511,7 @@ process_arguments (int argc, char **argv) break; case 'p': /* port */ if (is_intpos (optarg)) - server_port_option = atoi (optarg); + server_port = atoi (optarg); else usage4 (_("Port must be a positive integer")); break; @@ -562,7 +526,7 @@ process_arguments (int argc, char **argv) break; case 'A': authtype = optarg; - use_ehlo = true; + use_ehlo = TRUE; break; case 'U': authuser = optarg; @@ -602,7 +566,7 @@ process_arguments (int argc, char **argv) usage4 (_("Critical time must be a positive")); else { critical_time = strtod (optarg, NULL); - check_critical_time = true; + check_critical_time = TRUE; } break; case 'w': /* warning time threshold */ @@ -610,14 +574,14 @@ process_arguments (int argc, char **argv) usage4 (_("Warning time must be a positive")); else { warning_time = strtod (optarg, NULL); - check_warning_time = true; + check_warning_time = TRUE; } break; case 'v': /* verbose */ verbose++; break; case 'q': - ignore_send_quit_failure = true; /* ignore problem sending QUIT */ + ignore_send_quit_failure++; /* ignore problem sending QUIT */ break; case 't': /* timeout */ if (is_intnonneg (optarg)) { @@ -647,35 +611,18 @@ process_arguments (int argc, char **argv) usage2 ("Invalid certificate expiration period", optarg); days_till_exp_warn = atoi (optarg); } - check_cert = true; - ignore_send_quit_failure = true; + check_cert = TRUE; + ignore_send_quit_failure = TRUE; #else usage (_("SSL support not available - install OpenSSL and recompile")); #endif - implicit_tls = true; - // fallthrough - case 's': - /* ssl */ - use_ssl = true; - server_port = SMTPS_PORT; - break; case 'S': /* starttls */ - use_starttls = true; - use_ehlo = true; - break; - case SNI_OPTION: -#ifdef HAVE_SSL - use_sni = true; -#else - usage (_("SSL support not available - install OpenSSL and recompile")); -#endif - break; - case 'r': - use_proxy_prefix = true; + use_ssl = TRUE; + use_ehlo = TRUE; break; case 'L': - use_lhlo = true; + use_lhlo = TRUE; break; case '4': address_family = AF_INET; @@ -720,19 +667,6 @@ process_arguments (int argc, char **argv) if (from_arg==NULL) from_arg = strdup(" "); - if (use_starttls && use_ssl) { - if (implicit_tls) { - use_ssl = false; - server_port = SMTP_PORT; - } else { - usage4 (_("Set either -s/--ssl/--tls or -S/--starttls")); - } - } - - if (server_port_option != 0) { - server_port = server_port_option; - } - return validate_arguments (); } @@ -885,18 +819,11 @@ print_help (void) printf (" %s\n", _("FROM-address to include in MAIL command, required by Exchange 2000")), printf (" %s\n", "-F, --fqdn=STRING"); printf (" %s\n", _("FQDN used for HELO")); - printf (" %s\n", "-r, --proxy"); - printf (" %s\n", _("Use PROXY protocol prefix for the connection.")); #ifdef HAVE_SSL printf (" %s\n", "-D, --certificate=INTEGER[,INTEGER]"); printf (" %s\n", _("Minimum number of days a certificate has to be valid.")); - printf (" %s\n", "-s, --ssl, --tls"); - printf (" %s\n", _("Use SSL/TLS for the connection.")); - printf (_(" Sets default port to %d.\n"), SMTPS_PORT); printf (" %s\n", "-S, --starttls"); printf (" %s\n", _("Use STARTTLS for the connection.")); - printf (" %s\n", "--sni"); - printf (" %s\n", _("Enable SSL/TLS hostname extension support (SNI)")); #endif printf (" %s\n", "-A, --authtype=STRING"); @@ -917,7 +844,7 @@ print_help (void) printf (UT_VERBOSE); printf("\n"); - printf ("%s\n", _("Successful connects return STATE_OK, refusals and timeouts return")); + printf ("%s\n", _("Successul connects return STATE_OK, refusals and timeouts return")); printf ("%s\n", _("STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful")); printf ("%s\n", _("connects, but incorrect response messages from the host result in")); printf ("%s\n", _("STATE_WARNING return values.")); @@ -933,6 +860,6 @@ print_usage (void) printf ("%s\n", _("Usage:")); printf ("%s -H host [-p port] [-4|-6] [-e expect] [-C command] [-R response] [-f from addr]\n", progname); printf ("[-A authtype -U authuser -P authpass] [-w warn] [-c crit] [-t timeout] [-q]\n"); - printf ("[-F fqdn] [-S] [-L] [-D warn days cert expire[,crit days cert expire]] [-r] [--sni] [-v] \n"); + printf ("[-F fqdn] [-S] [-L] [-D warn days cert expire[,crit days cert expire]] [-v] \n"); } diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 295aa9b..d3968a2 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -46,7 +46,6 @@ const char *email = "devel@monitoring-plugins.org"; #define DEFAULT_PRIV_PROTOCOL "DES" #define DEFAULT_DELIMITER "=" #define DEFAULT_OUTPUT_DELIMITER " " -#define DEFAULT_BUFFER_SIZE 100 #define mark(a) ((a)!=0?"*":"") @@ -65,7 +64,6 @@ const char *email = "devel@monitoring-plugins.org"; #define L_RATE_MULTIPLIER CHAR_MAX+2 #define L_INVERT_SEARCH CHAR_MAX+3 #define L_OFFSET CHAR_MAX+4 -#define L_IGNORE_MIB_PARSING_ERRORS CHAR_MAX+5 /* Gobble to string - stop incrementing c when c[0] match one of the * characters in s */ @@ -131,11 +129,11 @@ size_t nlabels = 0; size_t labels_size = OID_COUNT_STEP; size_t nunits = 0; size_t unitv_size = OID_COUNT_STEP; -size_t numoids = 0; +int numoids = 0; int numauthpriv = 0; int numcontext = 0; int verbose = 0; -bool usesnmpgetnext = false; +int usesnmpgetnext = FALSE; char *warning_thresholds = NULL; char *critical_thresholds = NULL; thresholds **thlds; @@ -148,7 +146,7 @@ size_t eval_size = OID_COUNT_STEP; char *delimiter; char *output_delim; char *miblist = NULL; -bool needmibs = false; +int needmibs = FALSE; int calculate_rate = 0; double offset = 0.0; int rate_multiplier = 1; @@ -159,9 +157,6 @@ int perf_labels = 1; char* ip_version = ""; double multiplier = 1.0; char *fmtstr = ""; -bool fmtstr_set = false; -char buffer[DEFAULT_BUFFER_SIZE]; -bool ignore_mib_parsing_errors = false; static char *fix_snmp_range(char *th) { @@ -187,8 +182,7 @@ static char *fix_snmp_range(char *th) int main (int argc, char **argv) { - int len, total_oids; - size_t line; + int i, len, line, total_oids; unsigned int bk_count = 0, dq_count = 0; int iresult = STATE_UNKNOWN; int result = STATE_UNKNOWN; @@ -254,16 +248,14 @@ main (int argc, char **argv) if(calculate_rate) { if (!strcmp(label, "SNMP")) label = strdup("SNMP RATE"); - - size_t i = 0; - + i=0; previous_state = np_state_read(); if(previous_state!=NULL) { /* Split colon separated values */ previous_string = strdup((char *) previous_state->data); while((ap = strsep(&previous_string, ":")) != NULL) { if(verbose>2) - printf("State for %zd=%s\n", i, ap); + printf("State for %d=%s\n", i, ap); while (i >= previous_size) { previous_size += OID_COUNT_STEP; previous_value = realloc(previous_value, previous_size * sizeof(*previous_value)); @@ -276,7 +268,7 @@ main (int argc, char **argv) /* Populate the thresholds */ th_warn=warning_thresholds; th_crit=critical_thresholds; - for (size_t i = 0; i < numoids; i++) { + for (i=0; i 0) { printf (_("External command error: %s\n"), chld_err.line[0]); - for (size_t i = 1; i < chld_err.lines; i++) { + for (i = 1; i < chld_err.lines; i++) { printf ("%s\n", chld_err.line[i]); } } else { @@ -395,14 +374,12 @@ main (int argc, char **argv) } if (verbose) { - for (size_t i = 0; i < chld_out.lines; i++) { + for (i = 0; i < chld_out.lines; i++) { printf ("%s\n", chld_out.line[i]); } } - line = 0; - total_oids = 0; - for (size_t i = 0; line < chld_out.lines && i < numoids ; line++, i++, total_oids++) { + for (line=0, i=0; line < chld_out.lines && i < numoids ; line++, i++) { if(calculate_rate) conv = "%.10g"; else @@ -415,7 +392,7 @@ main (int argc, char **argv) break; if (verbose > 2) { - printf("Processing oid %zi (line %zi)\n oidname: %s\n response: %s\n", i+1, line+1, oidname, response); + printf("Processing oid %i (line %i)\n oidname: %s\n response: %s\n", i+1, line+1, oidname, response); } /* Clean up type array - Sol10 does not necessarily zero it out */ @@ -443,8 +420,7 @@ main (int argc, char **argv) } else if (strstr (response, "INTEGER: ")) { show = multiply (strstr (response, "INTEGER: ") + 9); - - if (fmtstr_set) { + if (fmtstr != "") { conv = fmtstr; } } @@ -618,9 +594,8 @@ main (int argc, char **argv) len = sizeof(perfstr)-strlen(perfstr)-1; strncat(perfstr, show, len>ptr-show ? ptr-show : len); - if (strcmp(type, "") != 0) { + if (type) strncat(perfstr, type, sizeof(perfstr)-strlen(perfstr)-1); - } if (warning_thresholds) { strncat(perfstr, ";", sizeof(perfstr)-strlen(perfstr)-1); @@ -639,6 +614,7 @@ main (int argc, char **argv) strncat(perfstr, " ", sizeof(perfstr)-strlen(perfstr)-1); } } + total_oids=i; /* Save state data, as all data collected now */ if(calculate_rate) { @@ -648,7 +624,7 @@ main (int argc, char **argv) die(STATE_UNKNOWN, _("Cannot malloc")); current_length=0; - for(int i = 0; i < total_oids; i++) { + for(i=0; i= oids_size) { @@ -847,6 +822,7 @@ process_arguments (int argc, char **argv) numoids = j; if (c == 'E' || c == 'e') { jj++; + ii++; while (j+1 >= eval_size) { eval_size += OID_COUNT_STEP; eval_method = realloc(eval_method, eval_size * sizeof(*eval_method)); @@ -873,10 +849,10 @@ process_arguments (int argc, char **argv) memset(eval_method + eval_size - OID_COUNT_STEP, 0, 8); } eval_method[jj++] = CRIT_STRING; + ii++; break; case 'R': /* regex */ cflags = REG_ICASE; - // fall through case 'r': /* regex */ cflags |= REG_EXTENDED | REG_NOSUB | REG_NEWLINE; strncpy (regex_expect, optarg, sizeof (regex_expect) - 1); @@ -893,6 +869,7 @@ process_arguments (int argc, char **argv) memset(eval_method + eval_size - OID_COUNT_STEP, 0, 8); } eval_method[jj++] = CRIT_REGEX; + ii++; break; /* Format */ @@ -992,11 +969,8 @@ process_arguments (int argc, char **argv) case 'f': if (multiplier != 1.0) { fmtstr=optarg; - fmtstr_set = true; } break; - case L_IGNORE_MIB_PARSING_ERRORS: - ignore_mib_parsing_errors = true; } } @@ -1035,7 +1009,7 @@ validate_arguments () { /* check whether to load locally installed MIBS (CPU/disk intensive) */ if (miblist == NULL) { - if (needmibs) { + if ( needmibs == TRUE ) { miblist = strdup (DEFAULT_MIBLIST); }else{ miblist = ""; /* don't read any mib files for numeric oids */ @@ -1195,33 +1169,33 @@ multiply (char *str) double val; char *conv = "%f"; - if(multiplier == 1) - return(str); - if(verbose>2) printf(" multiply input: %s\n", str); val = strtod (str, &endptr); if ((val == 0.0) && (endptr == str)) { - die(STATE_UNKNOWN, _("multiplier set (%.1f), but input is not a number: %s"), multiplier, str); + if(multiplier != 1) { + die(STATE_UNKNOWN, _("multiplier set (%.1f), but input is not a number: %s"), multiplier, str); + } + return str; } if(verbose>2) printf(" multiply extracted double: %f\n", val); val *= multiplier; - if (fmtstr_set) { + if (fmtstr != "") { conv = fmtstr; } if (val == (int)val) { - snprintf(buffer, DEFAULT_BUFFER_SIZE, "%.0f", val); + sprintf(str, "%.0f", val); } else { if(verbose>2) printf(" multiply using format: %s\n", conv); - snprintf(buffer, DEFAULT_BUFFER_SIZE, conv, val); + sprintf(str, conv, val); } if(verbose>2) - printf(" multiply result: %s\n", buffer); - return buffer; + printf(" multiply result: %s\n", str); + return str; } @@ -1298,7 +1272,7 @@ print_help (void) printf (" %s\n", "--rate-multiplier"); printf (" %s\n", _("Converts rate per second. For example, set to 60 to convert to per minute")); printf (" %s\n", "--offset=OFFSET"); - printf (" %s\n", _("Add/subtract the specified OFFSET to numeric sensor data")); + printf (" %s\n", _("Add/substract the specified OFFSET to numeric sensor data")); /* Tests Against Strings */ printf (" %s\n", "-s, --string=STRING"); @@ -1330,9 +1304,6 @@ print_help (void) printf (" %s\n", "-O, --perf-oids"); printf (" %s\n", _("Label performance data with OIDs instead of --label's")); - printf (" %s\n", "--ignore-mib-parsing-errors"); - printf (" %s\n", _("Tell snmpget to not print errors encountered when parsing MIB files")); - printf (UT_VERBOSE); printf ("\n"); diff --git a/plugins/check_ssh.c b/plugins/check_ssh.c index 34ef37b..8ccbd5a 100644 --- a/plugins/check_ssh.c +++ b/plugins/check_ssh.c @@ -1,39 +1,39 @@ /***************************************************************************** -* +* * Monitoring check_ssh plugin -* +* * License: GPL * Copyright (c) 2000-2007 Monitoring Plugins Development Team -* +* * Description: -* +* * This file contains the check_ssh plugin -* +* * Try to connect to an SSH server at specified server and port -* -* +* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ const char *progname = "check_ssh"; const char *copyright = "2000-2007"; const char *email = "devel@monitoring-plugins.org"; -#include "./common.h" -#include "./netutils.h" +#include "common.h" +#include "netutils.h" #include "utils.h" #ifndef MSG_DONTWAIT @@ -47,7 +47,7 @@ int port = -1; char *server_name = NULL; char *remote_version = NULL; char *remote_protocol = NULL; -bool verbose = false; +int verbose = FALSE; int process_arguments (int, char **); int validate_arguments (void); @@ -57,6 +57,7 @@ void print_usage (void); int ssh_connect (char *haddr, int hport, char *remote_version, char *remote_protocol); + int main (int argc, char **argv) { @@ -105,7 +106,7 @@ process_arguments (int argc, char **argv) {"timeout", required_argument, 0, 't'}, {"verbose", no_argument, 0, 'v'}, {"remote-version", required_argument, 0, 'r'}, - {"remote-protocol", required_argument, 0, 'P'}, + {"remote-protcol", required_argument, 0, 'P'}, {0, 0, 0, 0} }; @@ -132,7 +133,7 @@ process_arguments (int argc, char **argv) print_help (); exit (STATE_UNKNOWN); case 'v': /* verbose */ - verbose = true; + verbose = TRUE; break; case 't': /* timeout period */ if (!is_integer (optarg)) @@ -157,7 +158,7 @@ process_arguments (int argc, char **argv) remote_protocol = optarg; break; case 'H': /* host */ - if (!is_host (optarg)) + if (is_host (optarg) == FALSE) usage2 (_("Invalid hostname/address"), optarg); server_name = optarg; break; @@ -214,9 +215,7 @@ ssh_connect (char *haddr, int hport, char *remote_version, char *remote_protocol { int sd; int result; - int len = 0; - ssize_t recv_ret = 0; - char *version_control_string = NULL; + char *output = NULL; char *buffer = NULL; char *ssh_proto = NULL; char *ssh_server = NULL; @@ -231,126 +230,52 @@ ssh_connect (char *haddr, int hport, char *remote_version, char *remote_protocol if (result != STATE_OK) return result; - char *output = (char *) calloc (BUFF_SZ + 1, sizeof(char)); + output = (char *) malloc (BUFF_SZ + 1); + memset (output, 0, BUFF_SZ + 1); + recv (sd, output, BUFF_SZ, 0); + if (strncmp (output, "SSH", 3)) { + printf (_("Server answer: %s"), output); + close(sd); + exit (STATE_CRITICAL); + } + else { + strip (output); + if (verbose) + printf ("%s\n", output); + ssh_proto = output + 4; + ssh_server = ssh_proto + strspn (ssh_proto, "-0123456789. "); + ssh_proto[strspn (ssh_proto, "0123456789. ")] = 0; - unsigned int iteration = 0; - ssize_t byte_offset = 0; + xasprintf (&buffer, "SSH-%s-check_ssh_%s\r\n", ssh_proto, rev_no); + send (sd, buffer, strlen (buffer), MSG_DONTWAIT); + if (verbose) + printf ("%s\n", buffer); - while ((version_control_string == NULL) && (recv_ret = recv(sd, output+byte_offset, BUFF_SZ - byte_offset, 0) > 0)) { - - if (strchr(output, '\n')) { /* we've got at least one full line, start parsing*/ - byte_offset = 0; - - char *index = NULL; - while ((index = strchr(output+byte_offset, '\n')) != NULL) { - /*Partition the buffer so that this line is a separate string, - * by replacing the newline with NUL*/ - output[(index - output)] = '\0'; - len = strlen(output + byte_offset); - - if ((len >= 4) && (strncmp (output+byte_offset, "SSH-", 4) == 0)) { - /*if the string starts with SSH-, this _should_ be a valid version control string*/ - version_control_string = output+byte_offset; - break; - } - - /*the start of the next line (if one exists) will be after the current one (+ NUL)*/ - byte_offset += (len + 1); - } - - if(version_control_string == NULL) { - /* move unconsumed data to beginning of buffer, null rest */ - memmove((void *)output, (void *)output+byte_offset+1, BUFF_SZ - len+1); - memset(output+byte_offset+1, 0, BUFF_SZ-byte_offset+1); - - /*start reading from end of current line chunk on next recv*/ - byte_offset = strlen(output); - } - } else { - byte_offset += recv_ret; + if (remote_version && strcmp(remote_version, ssh_server)) { + printf + (_("SSH CRITICAL - %s (protocol %s) version mismatch, expected '%s'\n"), + ssh_server, ssh_proto, remote_version); + close(sd); + exit (STATE_CRITICAL); } - } - if (recv_ret < 0) { - printf("SSH CRITICAL - %s", strerror(errno)); - exit(STATE_CRITICAL); - } + if (remote_protocol && strcmp(remote_protocol, ssh_proto)) { + printf + (_("SSH CRITICAL - %s (protocol %s) protocol version mismatch, expected '%s'\n"), + ssh_server, ssh_proto, remote_protocol); + close(sd); + exit (STATE_CRITICAL); + } - if (version_control_string == NULL) { - printf("SSH CRITICAL - No version control string received"); - exit(STATE_CRITICAL); - } - /* - * "When the connection has been established, both sides MUST send an - * identification string. This identification string MUST be - * - * SSH-protoversion-softwareversion SP comments CR LF" - * - RFC 4253:4.2 - */ - strip (version_control_string); - if (verbose) - printf ("%s\n", version_control_string); - ssh_proto = version_control_string + 4; + elapsed_time = (double)deltime(tv) / 1.0e6; - /* - * We assume the protoversion is of the form Major.Minor, although - * this is not _strictly_ required. See - * - * "Both the 'protoversion' and 'softwareversion' strings MUST consist of - * printable US-ASCII characters, with the exception of whitespace - * characters and the minus sign (-)" - * - RFC 4253:4.2 - * and, - * - * "As stated earlier, the 'protoversion' specified for this protocol is - * "2.0". Earlier versions of this protocol have not been formally - * documented, but it is widely known that they use 'protoversion' of - * "1.x" (e.g., "1.5" or "1.3")." - * - RFC 4253:5 - */ - ssh_server = ssh_proto + strspn (ssh_proto, "0123456789.") + 1; /* (+1 for the '-' separating protoversion from softwareversion) */ - - /* If there's a space in the version string, whatever's after the space is a comment - * (which is NOT part of the server name/version)*/ - char *tmp = strchr(ssh_server, ' '); - if (tmp) { - ssh_server[tmp - ssh_server] = '\0'; - } - if (strlen(ssh_proto) == 0 || strlen(ssh_server) == 0) { - printf(_("SSH CRITICAL - Invalid protocol version control string %s\n"), version_control_string); - exit (STATE_CRITICAL); - } - ssh_proto[strspn (ssh_proto, "0123456789. ")] = 0; - - xasprintf (&buffer, "SSH-%s-check_ssh_%s\r\n", ssh_proto, rev_no); - send (sd, buffer, strlen (buffer), MSG_DONTWAIT); - if (verbose) - printf ("%s\n", buffer); - - if (remote_version && strcmp(remote_version, ssh_server)) { printf - (_("SSH CRITICAL - %s (protocol %s) version mismatch, expected '%s'\n"), - ssh_server, ssh_proto, remote_version); + (_("SSH OK - %s (protocol %s) | %s\n"), + ssh_server, ssh_proto, fperfdata("time", elapsed_time, "s", + FALSE, 0, FALSE, 0, TRUE, 0, TRUE, (int)socket_timeout)); close(sd); - exit (STATE_CRITICAL); + exit (STATE_OK); } - - if (remote_protocol && strcmp(remote_protocol, ssh_proto)) { - printf - (_("SSH CRITICAL - %s (protocol %s) protocol version mismatch, expected '%s' | %s\n"), - ssh_server, ssh_proto, remote_protocol, fperfdata("time", elapsed_time, "s", - false, 0, false, 0, true, 0, true, (int)socket_timeout)); - close(sd); - exit (STATE_CRITICAL); - } - elapsed_time = (double)deltime(tv) / 1.0e6; - - printf - (_("SSH OK - %s (protocol %s) | %s\n"), - ssh_server, ssh_proto, fperfdata("time", elapsed_time, "s", - false, 0, false, 0, true, 0, true, (int)socket_timeout)); - close(sd); - exit (STATE_OK); } @@ -368,7 +293,7 @@ print_help (void) printf ("%s\n", _("Try to connect to an SSH server at specified server and port")); - printf ("\n\n"); + printf ("\n\n"); print_usage (); @@ -382,10 +307,10 @@ print_help (void) printf (UT_CONN_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); printf (" %s\n", "-r, --remote-version=STRING"); - printf (" %s\n", _("Alert if string doesn't match expected server version (ex: OpenSSH_3.9p1)")); + printf (" %s\n", _("Alert if string doesn't match expected server version (ex: OpenSSH_3.9p1)")); printf (" %s\n", "-P, --remote-protocol=STRING"); - printf (" %s\n", _("Alert if protocol doesn't match expected protocol version (ex: 2.0)")); + printf (" %s\n", _("Alert if protocol doesn't match expected protocol version (ex: 2.0)")); printf (UT_VERBOSE); @@ -397,7 +322,7 @@ print_help (void) void print_usage (void) { - printf ("%s\n", _("Usage:")); + printf ("%s\n", _("Usage:")); printf ("%s [-4|-6] [-t ] [-r ] [-p ] \n", progname); } diff --git a/plugins/check_swap.c b/plugins/check_swap.c index e7ee785..a607da1 100644 --- a/plugins/check_swap.c +++ b/plugins/check_swap.c @@ -4,7 +4,7 @@ * * License: GPL * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net) -* Copyright (c) 2000-2024 Monitoring Plugins Development Team +* Copyright (c) 2000-2007 Monitoring Plugins Development Team * * Description: * @@ -28,12 +28,15 @@ *****************************************************************************/ const char *progname = "check_swap"; -const char *copyright = "2000-2024"; +const char *copyright = "2000-2007"; const char *email = "devel@monitoring-plugins.org"; #include "common.h" #include "popen.h" #include "utils.h" +#include +#include +#include #ifdef HAVE_DECL_SWAPCTL # ifdef HAVE_SYS_PARAM_H @@ -52,9 +55,9 @@ const char *email = "devel@monitoring-plugins.org"; #endif typedef struct { - bool is_percentage; + int is_percentage; uint64_t value; -} threshold; +} threshold_t; int check_swap (float free_swap_mb, float total_swap_mb); int process_arguments (int argc, char **argv); @@ -62,10 +65,10 @@ int validate_arguments (void); void print_usage (void); void print_help (void); -threshold warn; -threshold crit; +threshold_t warn; +threshold_t crit; int verbose; -bool allswaps = false; +int allswaps; int no_swap_state = STATE_CRITICAL; int @@ -178,7 +181,7 @@ main (int argc, char **argv) # ifdef _AIX if (!allswaps) { xasprintf(&swap_command, "%s", "/usr/sbin/lsps -s"); - xasprintf(&swap_format, "%s", "%lu%*s %lu"); + xasprintf(&swap_format, "%s", "%f%*s %f"); conv_factor = 1; } # endif @@ -205,9 +208,9 @@ main (int argc, char **argv) temp_buffer = strtok (input_buffer, " \n"); while (temp_buffer) { if (strstr (temp_buffer, "blocks")) - sprintf (str, "%s %s", str, "%lu"); + sprintf (str, "%s %s", str, "%f"); else if (strstr (temp_buffer, "dskfree")) - sprintf (str, "%s %s", str, "%lu"); + sprintf (str, "%s %s", str, "%f"); else sprintf (str, "%s %s", str, "%*s"); temp_buffer = strtok (NULL, " \n"); @@ -383,10 +386,10 @@ main (int argc, char **argv) if (crit.is_percentage) crit_print = crit.value * (total_swap_mb *1024 *1024/100); puts (perfdata_uint64 ("swap", free_swap_mb *1024 *1024, "B", - true, warn_print, - true, crit_print, - true, 0, - true, (long) total_swap_mb * 1024 * 1024)); + TRUE, warn_print, + TRUE, crit_print, + TRUE, 0, + TRUE, (long) total_swap_mb * 1024 * 1024)); return result; } @@ -399,30 +402,28 @@ check_swap(float free_swap_mb, float total_swap_mb) if (!total_swap_mb) return no_swap_state; uint64_t free_swap = free_swap_mb * (1024 * 1024); /* Convert back to bytes as warn and crit specified in bytes */ + + if (!crit.is_percentage && crit.value >= free_swap) return STATE_CRITICAL; + if (!warn.is_percentage && warn.value >= free_swap) return STATE_WARNING; + + uint64_t usage_percentage = ((total_swap_mb - free_swap_mb) / total_swap_mb) * 100; - if (warn.value || crit.value) { /* Thresholds defined */ - if (!crit.is_percentage && crit.value >= free_swap) return STATE_CRITICAL; - if (!warn.is_percentage && warn.value >= free_swap) return STATE_WARNING; + if (crit.is_percentage && + crit.value != 0 && + usage_percentage >= (100 - crit.value)) + { + return STATE_CRITICAL; + } - if (crit.is_percentage && - crit.value != 0 && - usage_percentage >= (100 - crit.value)) - { - return STATE_CRITICAL; - } + if (warn.is_percentage && + warn.value != 0 && + usage_percentage >= (100 - warn.value)) + { + return STATE_WARNING; + } - if (warn.is_percentage && - warn.value != 0 && - usage_percentage >= (100 - warn.value)) - { - return STATE_WARNING; - } - - return STATE_OK; - } else { /* Without thresholds */ - return STATE_OK; - } + return STATE_OK; } @@ -445,6 +446,9 @@ process_arguments (int argc, char **argv) {0, 0, 0, 0} }; + if (argc < 2) + return ERROR; + while (1) { c = getopt_long (argc, argv, "+?Vvhac:w:n:", longopts, &option); @@ -464,7 +468,7 @@ process_arguments (int argc, char **argv) if (optarg[length - 1] == '%') { /* It's percentage */ - warn.is_percentage = true; + warn.is_percentage = 1; optarg[length - 1] = '\0'; if (is_uint64(optarg, &warn.value)) { if (warn.value > 100) { @@ -474,7 +478,7 @@ process_arguments (int argc, char **argv) break; } else { /* It's Bytes */ - warn.is_percentage = false; + warn.is_percentage = 0; if (is_uint64(optarg, &warn.value)) { break; } else { @@ -494,7 +498,7 @@ process_arguments (int argc, char **argv) if (optarg[length - 1] == '%') { /* It's percentage */ - crit.is_percentage = true; + crit.is_percentage = 1; optarg[length - 1] = '\0'; if (is_uint64(optarg, &crit.value)) { if (crit.value> 100) { @@ -504,7 +508,7 @@ process_arguments (int argc, char **argv) break; } else { /* It's Bytes */ - crit.is_percentage = false; + crit.is_percentage = 0; if (is_uint64(optarg, &crit.value)) { break; } else { @@ -513,7 +517,7 @@ process_arguments (int argc, char **argv) } } case 'a': /* all swap */ - allswaps = true; + allswaps = TRUE; break; case 'n': if ((no_swap_state = mp_translate_state(optarg)) == ERROR) { @@ -546,9 +550,12 @@ process_arguments (int argc, char **argv) int validate_arguments (void) { - if ((warn.is_percentage == crit.is_percentage) && (warn.value < crit.value)) { + if (warn.value == 0 && crit.value == 0) { + return ERROR; + } + else if ((warn.is_percentage == crit.is_percentage) && (warn.value < crit.value)) { /* This is NOT triggered if warn and crit are different units, e.g warn is percentage - * and crit is absolute. We cannot determine the condition at this point since we + * and crit is absolut. We cannot determine the condition at this point since we * dont know the value of total swap yet */ usage4(_("Warning should be more than critical")); @@ -591,7 +598,6 @@ print_help (void) printf ("\n"); printf ("%s\n", _("Notes:")); printf (" %s\n", _("Both INTEGER and PERCENT thresholds can be specified, they are all checked.")); - printf (" %s\n", _("Without thresholds, the plugin shows free swap space and performance data, but always returns OK.")); printf (" %s\n", _("On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s.")); printf (UT_SUPPORT); @@ -602,6 +608,6 @@ void print_usage (void) { printf ("%s\n", _("Usage:")); - printf (" %s [-av] [-w %%] [-c %%]\n",progname); - printf (" [-w ] [-c ] [-n ]\n"); + printf (" %s [-av] -w %% -c %%\n",progname); + printf (" -w -c [-n ]\n"); } diff --git a/plugins/check_tcp.c b/plugins/check_tcp.c index 01dd35e..1365b9c 100644 --- a/plugins/check_tcp.c +++ b/plugins/check_tcp.c @@ -41,7 +41,7 @@ const char *email = "devel@monitoring-plugins.org"; #include #ifdef HAVE_SSL -static bool check_cert = false; +static int check_cert = FALSE; static int days_till_exp_warn, days_till_exp_crit; # define my_recv(buf, len) ((flags & FLAG_SSL) ? np_net_ssl_read(buf, len) : read(sd, buf, len)) # define my_send(buf, len) ((flags & FLAG_SSL) ? np_net_ssl_write(buf, len) : send(sd, buf, len, 0)) @@ -65,12 +65,12 @@ static int READ_TIMEOUT = 2; static int server_port = 0; static char *server_address = NULL; -static bool host_specified = false; +static int host_specified = FALSE; static char *server_send = NULL; static char *server_quit = NULL; static char **server_expect; static size_t server_expect_count = 0; -static ssize_t maxbytes = 0; +static size_t maxbytes = 0; static char **warn_codes = NULL; static size_t warn_codes_count = 0; static char **crit_codes = NULL; @@ -88,7 +88,7 @@ static int match_flags = NP_MATCH_EXACT; #ifdef HAVE_SSL static char *sni = NULL; -static bool sni_specified = false; +static int sni_specified = FALSE; #endif #define FLAG_SSL 0x01 @@ -102,9 +102,11 @@ int main (int argc, char **argv) { int result = STATE_UNKNOWN; + int i; char *status = NULL; struct timeval tv; struct timeval timeout; + size_t len; int match = -1; fd_set rfds; @@ -119,14 +121,14 @@ main (int argc, char **argv) if(progname != NULL) progname++; else progname = argv[0]; - size_t prog_name_len = strlen(progname); - if(prog_name_len > 6 && !memcmp(progname, "check_", 6)) { + len = strlen(progname); + if(len > 6 && !memcmp(progname, "check_", 6)) { SERVICE = strdup(progname + 6); - for(size_t i = 0; i < prog_name_len - 6; i++) + for(i = 0; i < len - 6; i++) SERVICE[i] = toupper(SERVICE[i]); } - /* set up a reasonable buffer at first (will be realloc()'ed if + /* set up a resonable buffer at first (will be realloc()'ed if * user specifies other options) */ server_expect = calloc(sizeof(char *), 2); @@ -245,7 +247,7 @@ main (int argc, char **argv) #ifdef HAVE_SSL if (flags & FLAG_SSL){ result = np_net_ssl_init_with_hostname(sd, (sni_specified ? sni : NULL)); - if (result == STATE_OK && check_cert) { + if (result == STATE_OK && check_cert == TRUE) { result = np_net_ssl_check_cert(days_till_exp_warn, days_till_exp_crit); } } @@ -273,21 +275,19 @@ main (int argc, char **argv) printf("Quit string: %s\n", server_quit); } printf("server_expect_count: %d\n", (int)server_expect_count); - for(size_t i = 0; i < server_expect_count; i++) - printf("\t%zd: %s\n", i, server_expect[i]); + for(i = 0; i < server_expect_count; i++) + printf("\t%d: %s\n", i, server_expect[i]); } /* if(len) later on, we know we have a non-NULL response */ - ssize_t len = 0; - + len = 0; if (server_expect_count) { - ssize_t received = 0; /* watch for the expect string */ - while ((received = my_recv(buffer, sizeof(buffer))) > 0) { - status = realloc(status, len + received + 1); - memcpy(&status[len], buffer, received); - len += received; + while ((i = my_recv(buffer, sizeof(buffer))) > 0) { + status = realloc(status, len + i + 1); + memcpy(&status[len], buffer, i); + len += i; status[len] = '\0'; /* stop reading if user-forced */ @@ -307,7 +307,6 @@ main (int argc, char **argv) if(select(sd + 1, &rfds, NULL, NULL, &timeout) <= 0) break; } - if (match == NP_MATCH_RETRY) match = NP_MATCH_FAILURE; @@ -379,18 +378,18 @@ main (int argc, char **argv) if(match == NP_MATCH_FAILURE) printf ("|%s", fperfdata ("time", elapsed_time, "s", - (flags & FLAG_TIME_WARN ? true : false), 0, - (flags & FLAG_TIME_CRIT ? true : false), 0, - true, 0, - true, socket_timeout) + (flags & FLAG_TIME_WARN ? TRUE : FALSE), 0, + (flags & FLAG_TIME_CRIT ? TRUE : FALSE), 0, + TRUE, 0, + TRUE, socket_timeout) ); else printf("|%s", fperfdata ("time", elapsed_time, "s", - (flags & FLAG_TIME_WARN ? true : false), warning_time, - (flags & FLAG_TIME_CRIT ? true : false), critical_time, - true, 0, - true, socket_timeout) + (flags & FLAG_TIME_WARN ? TRUE : FALSE), warning_time, + (flags & FLAG_TIME_CRIT ? TRUE : FALSE), critical_time, + TRUE, 0, + TRUE, socket_timeout) ); putchar('\n'); @@ -400,9 +399,11 @@ main (int argc, char **argv) /* process command-line arguments */ -static int process_arguments (int argc, char **argv) { +static int +process_arguments (int argc, char **argv) +{ int c; - bool escape = false; + int escape = 0; char *temp; enum { @@ -491,7 +492,7 @@ static int process_arguments (int argc, char **argv) { #endif break; case 'H': /* hostname */ - host_specified = true; + host_specified = TRUE; server_address = optarg; break; case 'c': /* critical */ @@ -526,7 +527,7 @@ static int process_arguments (int argc, char **argv) { server_port = atoi (optarg); break; case 'E': - escape = true; + escape = 1; break; case 's': if (escape) @@ -600,7 +601,7 @@ static int process_arguments (int argc, char **argv) { usage2 (_("Invalid certificate expiration period"), optarg); days_till_exp_warn = atoi (optarg); } - check_cert = true; + check_cert = TRUE; flags |= FLAG_SSL; break; # endif /* USE_OPENSSL */ @@ -616,7 +617,7 @@ static int process_arguments (int argc, char **argv) { case SNI_OPTION: #ifdef HAVE_SSL flags |= FLAG_SSL; - sni_specified = true; + sni_specified = TRUE; sni = optarg; #else die (STATE_UNKNOWN, _("Invalid option - SSL is not available")); @@ -629,15 +630,15 @@ static int process_arguments (int argc, char **argv) { } c = optind; - if(!host_specified && c < argc) + if(host_specified == FALSE && c < argc) server_address = strdup (argv[c++]); if (server_address == NULL) usage4 (_("You must provide a server address")); - else if (server_address[0] != '/' && !is_host(server_address)) + else if (server_address[0] != '/' && is_host (server_address) == FALSE) die (STATE_CRITICAL, "%s %s - %s: %s\n", SERVICE, state_text(STATE_CRITICAL), _("Invalid hostname, address or socket"), server_address); - return OK; + return TRUE; } diff --git a/plugins/check_time.c b/plugins/check_time.c index f50ea42..baf8c59 100644 --- a/plugins/check_time.c +++ b/plugins/check_time.c @@ -45,16 +45,16 @@ enum { uint32_t raw_server_time; unsigned long server_time, diff_time; int warning_time = 0; -bool check_warning_time = false; +int check_warning_time = FALSE; int critical_time = 0; -bool check_critical_time = false; +int check_critical_time = FALSE; unsigned long warning_diff = 0; -bool check_warning_diff = false; +int check_warning_diff = FALSE; unsigned long critical_diff = 0; -bool check_critical_diff = false; +int check_critical_diff = FALSE; int server_port = TIME_PORT; char *server_address = NULL; -bool use_udp = false; +int use_udp = FALSE; int process_arguments (int, char **); void print_help (void); @@ -92,9 +92,9 @@ main (int argc, char **argv) } if (result != STATE_OK) { - if (check_critical_time) + if (check_critical_time == TRUE) result = STATE_CRITICAL; - else if (check_warning_time) + else if (check_warning_time == TRUE) result = STATE_WARNING; else result = STATE_UNKNOWN; @@ -105,9 +105,9 @@ main (int argc, char **argv) if (use_udp) { if (send (sd, "", 0, 0) < 0) { - if (check_critical_time) + if (check_critical_time == TRUE) result = STATE_CRITICAL; - else if (check_warning_time) + else if (check_warning_time == TRUE) result = STATE_WARNING; else result = STATE_UNKNOWN; @@ -129,9 +129,9 @@ main (int argc, char **argv) /* return a WARNING status if we couldn't read any data */ if (result <= 0) { - if (check_critical_time) + if (check_critical_time == TRUE) result = STATE_CRITICAL; - else if (check_warning_time) + else if (check_warning_time == TRUE) result = STATE_WARNING; else result = STATE_UNKNOWN; @@ -143,9 +143,9 @@ main (int argc, char **argv) result = STATE_OK; conntime = (end_time - start_time); - if (check_critical_time&& conntime > critical_time) + if (check_critical_time == TRUE && conntime > critical_time) result = STATE_CRITICAL; - else if (check_warning_time && conntime > warning_time) + else if (check_warning_time == TRUE && conntime > warning_time) result = STATE_WARNING; if (result != STATE_OK) @@ -154,7 +154,7 @@ main (int argc, char **argv) perfdata ("time", (long)conntime, "s", check_warning_time, (long)warning_time, check_critical_time, (long)critical_time, - true, 0, false, 0)); + TRUE, 0, FALSE, 0)); server_time = ntohl (raw_server_time) - UNIX_EPOCH; if (server_time > (unsigned long)end_time) @@ -162,9 +162,9 @@ main (int argc, char **argv) else diff_time = (unsigned long)end_time - server_time; - if (check_critical_diff&& diff_time > critical_diff) + if (check_critical_diff == TRUE && diff_time > critical_diff) result = STATE_CRITICAL; - else if (check_warning_diff&& diff_time > warning_diff) + else if (check_warning_diff == TRUE && diff_time > warning_diff) result = STATE_WARNING; printf (_("TIME %s - %lu second time difference|%s %s\n"), @@ -172,11 +172,11 @@ main (int argc, char **argv) perfdata ("time", (long)conntime, "s", check_warning_time, (long)warning_time, check_critical_time, (long)critical_time, - true, 0, false, 0), + TRUE, 0, FALSE, 0), perfdata ("offset", diff_time, "s", check_warning_diff, warning_diff, check_critical_diff, critical_diff, - true, 0, false, 0)); + TRUE, 0, FALSE, 0)); return result; } @@ -219,7 +219,7 @@ process_arguments (int argc, char **argv) strcpy (argv[c], "-C"); } - while (true) { + while (1) { c = getopt_long (argc, argv, "hVH:w:c:W:C:p:t:u", longopts, &option); @@ -236,19 +236,19 @@ process_arguments (int argc, char **argv) print_revision (progname, NP_VERSION); exit (STATE_UNKNOWN); case 'H': /* hostname */ - if (!is_host (optarg)) + if (is_host (optarg) == FALSE) usage2 (_("Invalid hostname/address"), optarg); server_address = optarg; break; case 'w': /* warning-variance */ if (is_intnonneg (optarg)) { warning_diff = strtoul (optarg, NULL, 10); - check_warning_diff = true; + check_warning_diff = TRUE; } else if (strspn (optarg, "0123456789:,") > 0) { if (sscanf (optarg, "%lu%*[:,]%d", &warning_diff, &warning_time) == 2) { - check_warning_diff = true; - check_warning_time = true; + check_warning_diff = TRUE; + check_warning_time = TRUE; } else { usage4 (_("Warning thresholds must be a positive integer")); @@ -261,13 +261,13 @@ process_arguments (int argc, char **argv) case 'c': /* critical-variance */ if (is_intnonneg (optarg)) { critical_diff = strtoul (optarg, NULL, 10); - check_critical_diff = true; + check_critical_diff = TRUE; } else if (strspn (optarg, "0123456789:,") > 0) { if (sscanf (optarg, "%lu%*[:,]%d", &critical_diff, &critical_time) == 2) { - check_critical_diff = true; - check_critical_time = true; + check_critical_diff = TRUE; + check_critical_time = TRUE; } else { usage4 (_("Critical thresholds must be a positive integer")); @@ -282,14 +282,14 @@ process_arguments (int argc, char **argv) usage4 (_("Warning threshold must be a positive integer")); else warning_time = atoi (optarg); - check_warning_time = true; + check_warning_time = TRUE; break; case 'C': /* critical-connect */ if (!is_intnonneg (optarg)) usage4 (_("Critical threshold must be a positive integer")); else critical_time = atoi (optarg); - check_critical_time = true; + check_critical_time = TRUE; break; case 'p': /* port */ if (!is_intnonneg (optarg)) @@ -304,14 +304,14 @@ process_arguments (int argc, char **argv) socket_timeout = atoi (optarg); break; case 'u': /* udp */ - use_udp = true; + use_udp = TRUE; } } c = optind; if (server_address == NULL) { if (argc > c) { - if (!is_host (argv[c])) + if (is_host (argv[c]) == FALSE) usage2 (_("Invalid hostname/address"), optarg); server_address = argv[c]; } diff --git a/plugins/check_ups.c b/plugins/check_ups.c index 380ff3b..0de37a2 100644 --- a/plugins/check_ups.c +++ b/plugins/check_ups.c @@ -1,746 +1,665 @@ /***************************************************************************** - * - * Monitoring check_ups plugin - * - * License: GPL - * Copyright (c) 2000 Tom Shields - * 2004 Alain Richard - * 2004 Arnaud Quette - * Copyright (c) 2002-2023 Monitoring Plugins Development Team - * - * Description: - * - * This file contains Network UPS Tools plugin for Monitoring - * - * This plugin tests the UPS service on the specified host. Network UPS Tools - * from www.networkupstools.org must be running for this plugin to work. - * - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * - *****************************************************************************/ +* +* Monitoring check_ups plugin +* +* License: GPL +* Copyright (c) 2000 Tom Shields +* 2004 Alain Richard +* 2004 Arnaud Quette +* Copyright (c) 2002-2007 Monitoring Plugins Development Team +* +* Description: +* +* This file contains Network UPS Tools plugin for Monitoring +* +* This plugin tests the UPS service on the specified host. Network UPS Tools +* from www.networkupstools.org must be running for this plugin to work. +* +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* +*****************************************************************************/ const char *progname = "check_ups"; -const char *copyright = "2000-2023"; +const char *copyright = "2000-2007"; const char *email = "devel@monitoring-plugins.org"; #include "common.h" #include "netutils.h" #include "utils.h" -enum { PORT = 3493 }; +enum { + PORT = 3493 +}; -#define UPS_NONE 0 /* no supported options */ -#define UPS_UTILITY 1 /* supports utility line */ -#define UPS_BATTPCT 2 /* supports percent battery remaining */ -#define UPS_STATUS 4 /* supports UPS status */ -#define UPS_TEMP 8 /* supports UPS temperature */ -#define UPS_LOADPCT 16 /* supports load percent */ -#define UPS_REALPOWER 32 /* supports real power */ +#define CHECK_NONE 0 -#define UPSSTATUS_NONE 0 -#define UPSSTATUS_OFF 1 -#define UPSSTATUS_OL 2 -#define UPSSTATUS_OB 4 -#define UPSSTATUS_LB 8 -#define UPSSTATUS_CAL 16 -#define UPSSTATUS_RB 32 /*Replace Battery */ -#define UPSSTATUS_BYPASS 64 -#define UPSSTATUS_OVER 128 -#define UPSSTATUS_TRIM 256 -#define UPSSTATUS_BOOST 512 +#define UPS_NONE 0 /* no supported options */ +#define UPS_UTILITY 1 /* supports utility line voltage */ +#define UPS_BATTPCT 2 /* supports percent battery remaining */ +#define UPS_STATUS 4 /* supports UPS status */ +#define UPS_TEMP 8 /* supports UPS temperature */ +#define UPS_LOADPCT 16 /* supports load percent */ + +#define UPSSTATUS_NONE 0 +#define UPSSTATUS_OFF 1 +#define UPSSTATUS_OL 2 +#define UPSSTATUS_OB 4 +#define UPSSTATUS_LB 8 +#define UPSSTATUS_CAL 16 +#define UPSSTATUS_RB 32 /*Replace Battery */ +#define UPSSTATUS_BYPASS 64 +#define UPSSTATUS_OVER 128 +#define UPSSTATUS_TRIM 256 +#define UPSSTATUS_BOOST 512 #define UPSSTATUS_CHRG 1024 #define UPSSTATUS_DISCHRG 2048 -#define UPSSTATUS_UNKNOWN 4096 -#define UPSSTATUS_ALARM 8192 +#define UPSSTATUS_UNKNOWN 4096 -enum { NOSUCHVAR = ERROR - 1 }; +enum { NOSUCHVAR = ERROR-1 }; -typedef struct ups_config { - unsigned int server_port; - char *server_address; - char *ups_name; - double warning_value; - double critical_value; - bool check_warn; - bool check_crit; - int check_variable; - int status; - bool temp_output_c; -} ups_config; +int server_port = PORT; +char *server_address; +char *ups_name = NULL; +double warning_value = 0.0; +double critical_value = 0.0; +int check_warn = FALSE; +int check_crit = FALSE; +int check_variable = UPS_NONE; +int supported_options = UPS_NONE; +int status = UPSSTATUS_NONE; -ups_config ups_config_init(void) { - ups_config tmp = {0}; - tmp.server_port = PORT; - tmp.server_address = NULL; - tmp.ups_name = NULL; - tmp.check_variable = UPS_NONE; - tmp.status = UPSSTATUS_NONE; +double ups_utility_voltage = 0.0; +double ups_battery_percent = 0.0; +double ups_load_percent = 0.0; +double ups_temperature = 0.0; +char *ups_status; +int temp_output_c = 0; - return tmp; -} +int determine_status (void); +int get_ups_variable (const char *, char *, size_t); -// Forward declarations -int determine_status(ups_config *, int *supported_options); -int get_ups_variable(const char *, char *, const ups_config config); +int process_arguments (int, char **); +int validate_arguments (void); +void print_help (void); +void print_usage (void); -int process_arguments(int, char **, ups_config *); -int validate_arguments(ups_config); -void print_help(void); -void print_usage(void); - -int main(int argc, char **argv) { - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, LOCALEDIR); - textdomain(PACKAGE); - - char *ups_status; - ups_status = strdup("N/A"); - - char *data; - data = strdup(""); - - char *message; - message = strdup(""); - - // Exit result +int +main (int argc, char **argv) +{ int result = STATE_UNKNOWN; + char *message; + char *data; + char *tunits; + char temp_buffer[MAX_INPUT_BUFFER]; + double ups_utility_deviation = 0.0; + int res; + + setlocale (LC_ALL, ""); + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + + ups_status = strdup ("N/A"); + data = strdup (""); + message = strdup (""); /* Parse extra opts if any */ - argv = np_extra_opts(&argc, argv, progname); + argv=np_extra_opts (&argc, argv, progname); - // Config from commandline - ups_config config = ups_config_init(); - - if (process_arguments(argc, argv, &config) == ERROR) { - usage4(_("Could not parse arguments")); - } + if (process_arguments (argc, argv) == ERROR) + usage4 (_("Could not parse arguments")); /* initialize alarm signal handling */ - signal(SIGALRM, socket_timeout_alarm_handler); + signal (SIGALRM, socket_timeout_alarm_handler); /* set socket timeout */ - alarm(socket_timeout); - - int supported_options = UPS_NONE; + alarm (socket_timeout); /* get the ups status if possible */ - if (determine_status(&config, &supported_options) != OK) { + if (determine_status () != OK) return STATE_CRITICAL; - } - - if (supported_options & UPS_STATUS) { - ups_status = strdup(""); - + ups_status = strdup (""); result = STATE_OK; - if (config.status & UPSSTATUS_OFF) { - xasprintf(&ups_status, "Off"); + if (status & UPSSTATUS_OFF) { + xasprintf (&ups_status, "Off"); result = STATE_CRITICAL; - } else if ((config.status & (UPSSTATUS_OB | UPSSTATUS_LB)) == - (UPSSTATUS_OB | UPSSTATUS_LB)) { - xasprintf(&ups_status, _("On Battery, Low Battery")); + } + else if ((status & (UPSSTATUS_OB | UPSSTATUS_LB)) == + (UPSSTATUS_OB | UPSSTATUS_LB)) { + xasprintf (&ups_status, _("On Battery, Low Battery")); result = STATE_CRITICAL; - } else { - if (config.status & UPSSTATUS_OL) { - xasprintf(&ups_status, "%s%s", ups_status, _("Online")); + } + else { + if (status & UPSSTATUS_OL) { + xasprintf (&ups_status, "%s%s", ups_status, _("Online")); } - if (config.status & UPSSTATUS_OB) { - xasprintf(&ups_status, "%s%s", ups_status, _("On Battery")); - result = max_state(result, STATE_WARNING); + if (status & UPSSTATUS_OB) { + xasprintf (&ups_status, "%s%s", ups_status, _("On Battery")); + result = STATE_WARNING; } - if (config.status & UPSSTATUS_LB) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Low Battery")); - result = max_state(result, STATE_WARNING); + if (status & UPSSTATUS_LB) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Low Battery")); + result = STATE_WARNING; } - if (config.status & UPSSTATUS_CAL) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Calibrating")); + if (status & UPSSTATUS_CAL) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Calibrating")); } - if (config.status & UPSSTATUS_RB) { - xasprintf(&ups_status, "%s%s", ups_status, - _(", Replace Battery")); - result = max_state(result, STATE_WARNING); + if (status & UPSSTATUS_RB) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Replace Battery")); + result = STATE_WARNING; } - if (config.status & UPSSTATUS_BYPASS) { - xasprintf(&ups_status, "%s%s", ups_status, _(", On Bypass")); - // Bypassing the battery is likely a bad thing - result = STATE_CRITICAL; + if (status & UPSSTATUS_BYPASS) { + xasprintf (&ups_status, "%s%s", ups_status, _(", On Bypass")); } - if (config.status & UPSSTATUS_OVER) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Overload")); - result = max_state(result, STATE_WARNING); + if (status & UPSSTATUS_OVER) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Overload")); } - if (config.status & UPSSTATUS_TRIM) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Trimming")); + if (status & UPSSTATUS_TRIM) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Trimming")); } - if (config.status & UPSSTATUS_BOOST) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Boosting")); + if (status & UPSSTATUS_BOOST) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Boosting")); } - if (config.status & UPSSTATUS_CHRG) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Charging")); + if (status & UPSSTATUS_CHRG) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Charging")); } - if (config.status & UPSSTATUS_DISCHRG) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Discharging")); - result = max_state(result, STATE_WARNING); + if (status & UPSSTATUS_DISCHRG) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Discharging")); } - if (config.status & UPSSTATUS_ALARM) { - xasprintf(&ups_status, "%s%s", ups_status, _(", ALARM")); - result = STATE_CRITICAL; - } - if (config.status & UPSSTATUS_UNKNOWN) { - xasprintf(&ups_status, "%s%s", ups_status, _(", Unknown")); + if (status & UPSSTATUS_UNKNOWN) { + xasprintf (&ups_status, "%s%s", ups_status, _(", Unknown")); } } - xasprintf(&message, "%sStatus=%s ", message, ups_status); + xasprintf (&message, "%sStatus=%s ", message, ups_status); } - int res; - char temp_buffer[MAX_INPUT_BUFFER]; - /* get the ups utility voltage if possible */ - res = get_ups_variable("input.voltage", temp_buffer, config); - if (res == NOSUCHVAR) { - supported_options &= ~UPS_UTILITY; - } else if (res != OK) { + res=get_ups_variable ("input.voltage", temp_buffer, sizeof (temp_buffer)); + if (res == NOSUCHVAR) supported_options &= ~UPS_UTILITY; + else if (res != OK) return STATE_CRITICAL; - } else { + else { supported_options |= UPS_UTILITY; - double ups_utility_voltage = 0.0; - ups_utility_voltage = atof(temp_buffer); - xasprintf(&message, "%sUtility=%3.1fV ", message, ups_utility_voltage); + ups_utility_voltage = atof (temp_buffer); + xasprintf (&message, "%sUtility=%3.1fV ", message, ups_utility_voltage); - double ups_utility_deviation = 0.0; - - if (ups_utility_voltage > 120.0) { + if (ups_utility_voltage > 120.0) ups_utility_deviation = 120.0 - ups_utility_voltage; - } else { + else ups_utility_deviation = ups_utility_voltage - 120.0; - } - if (config.check_variable == UPS_UTILITY) { - if (config.check_crit && - ups_utility_deviation >= config.critical_value) { + if (check_variable == UPS_UTILITY) { + if (check_crit==TRUE && ups_utility_deviation>=critical_value) { result = STATE_CRITICAL; - } else if (config.check_warn && - ups_utility_deviation >= config.warning_value) { - result = max_state(result, STATE_WARNING); } - xasprintf(&data, "%s", - perfdata("voltage", (long)(1000 * ups_utility_voltage), - "mV", config.check_warn, - (long)(1000 * config.warning_value), - config.check_crit, - (long)(1000 * config.critical_value), true, 0, - false, 0)); + else if (check_warn==TRUE && ups_utility_deviation>=warning_value) { + result = max_state (result, STATE_WARNING); + } + xasprintf (&data, "%s", + perfdata ("voltage", (long)(1000*ups_utility_voltage), "mV", + check_warn, (long)(1000*warning_value), + check_crit, (long)(1000*critical_value), + TRUE, 0, FALSE, 0)); } else { - xasprintf(&data, "%s", - perfdata("voltage", (long)(1000 * ups_utility_voltage), - "mV", false, 0, false, 0, true, 0, false, 0)); + xasprintf (&data, "%s", + perfdata ("voltage", (long)(1000*ups_utility_voltage), "mV", + FALSE, 0, FALSE, 0, TRUE, 0, FALSE, 0)); } } /* get the ups battery percent if possible */ - res = get_ups_variable("battery.charge", temp_buffer, config); - if (res == NOSUCHVAR) { - supported_options &= ~UPS_BATTPCT; - } else if (res != OK) { + res=get_ups_variable ("battery.charge", temp_buffer, sizeof (temp_buffer)); + if (res == NOSUCHVAR) supported_options &= ~UPS_BATTPCT; + else if ( res != OK) return STATE_CRITICAL; - } else { + else { supported_options |= UPS_BATTPCT; + ups_battery_percent = atof (temp_buffer); + xasprintf (&message, "%sBatt=%3.1f%% ", message, ups_battery_percent); - double ups_battery_percent = 0.0; - ups_battery_percent = atof(temp_buffer); - xasprintf(&message, "%sBatt=%3.1f%% ", message, ups_battery_percent); - - if (config.check_variable == UPS_BATTPCT) { - if (config.check_crit && - ups_battery_percent <= config.critical_value) { + if (check_variable == UPS_BATTPCT) { + if (check_crit==TRUE && ups_battery_percent <= critical_value) { result = STATE_CRITICAL; - } else if (config.check_warn && - ups_battery_percent <= config.warning_value) { - result = max_state(result, STATE_WARNING); } - xasprintf(&data, "%s %s", data, - perfdata("battery", (long)ups_battery_percent, "%", - config.check_warn, (long)(config.warning_value), - config.check_crit, (long)(config.critical_value), - true, 0, true, 100)); + else if (check_warn==TRUE && ups_battery_percent<=warning_value) { + result = max_state (result, STATE_WARNING); + } + xasprintf (&data, "%s %s", data, + perfdata ("battery", (long)ups_battery_percent, "%", + check_warn, (long)(warning_value), + check_crit, (long)(critical_value), + TRUE, 0, TRUE, 100)); } else { - xasprintf(&data, "%s %s", data, - perfdata("battery", (long)ups_battery_percent, "%", false, - 0, false, 0, true, 0, true, 100)); + xasprintf (&data, "%s %s", data, + perfdata ("battery", (long)ups_battery_percent, "%", + FALSE, 0, FALSE, 0, TRUE, 0, TRUE, 100)); } } /* get the ups load percent if possible */ - res = get_ups_variable("ups.load", temp_buffer, config); - if (res == NOSUCHVAR) { - supported_options &= ~UPS_LOADPCT; - } else if (res != OK) { + res=get_ups_variable ("ups.load", temp_buffer, sizeof (temp_buffer)); + if ( res == NOSUCHVAR ) supported_options &= ~UPS_LOADPCT; + else if ( res != OK) return STATE_CRITICAL; - } else { + else { supported_options |= UPS_LOADPCT; + ups_load_percent = atof (temp_buffer); + xasprintf (&message, "%sLoad=%3.1f%% ", message, ups_load_percent); - double ups_load_percent = 0.0; - ups_load_percent = atof(temp_buffer); - xasprintf(&message, "%sLoad=%3.1f%% ", message, ups_load_percent); - - if (config.check_variable == UPS_LOADPCT) { - if (config.check_crit && - ups_load_percent >= config.critical_value) { + if (check_variable == UPS_LOADPCT) { + if (check_crit==TRUE && ups_load_percent>=critical_value) { result = STATE_CRITICAL; - } else if (config.check_warn && - ups_load_percent >= config.warning_value) { - result = max_state(result, STATE_WARNING); } - xasprintf(&data, "%s %s", data, - perfdata("load", (long)ups_load_percent, "%", - config.check_warn, (long)(config.warning_value), - config.check_crit, (long)(config.critical_value), - true, 0, true, 100)); + else if (check_warn==TRUE && ups_load_percent>=warning_value) { + result = max_state (result, STATE_WARNING); + } + xasprintf (&data, "%s %s", data, + perfdata ("load", (long)ups_load_percent, "%", + check_warn, (long)(warning_value), + check_crit, (long)(critical_value), + TRUE, 0, TRUE, 100)); } else { - xasprintf(&data, "%s %s", data, - perfdata("load", (long)ups_load_percent, "%", false, 0, - false, 0, true, 0, true, 100)); + xasprintf (&data, "%s %s", data, + perfdata ("load", (long)ups_load_percent, "%", + FALSE, 0, FALSE, 0, TRUE, 0, TRUE, 100)); } } /* get the ups temperature if possible */ - res = get_ups_variable("ups.temperature", temp_buffer, config); - if (res == NOSUCHVAR) { - supported_options &= ~UPS_TEMP; - } else if (res != OK) { + res=get_ups_variable ("ups.temperature", temp_buffer, sizeof (temp_buffer)); + if ( res == NOSUCHVAR ) supported_options &= ~UPS_TEMP; + else if ( res != OK) return STATE_CRITICAL; - } else { - supported_options |= UPS_TEMP; - - double ups_temperature = 0.0; - char *tunits; - - if (config.temp_output_c) { - tunits = "degC"; - ups_temperature = atof(temp_buffer); - xasprintf(&message, "%sTemp=%3.1fC", message, ups_temperature); - } else { - tunits = "degF"; - ups_temperature = (atof(temp_buffer) * 1.8) + 32; - xasprintf(&message, "%sTemp=%3.1fF", message, ups_temperature); + else { + supported_options |= UPS_TEMP; + if (temp_output_c) { + tunits="degC"; + ups_temperature = atof (temp_buffer); + xasprintf (&message, "%sTemp=%3.1fC", message, ups_temperature); + } + else { + tunits="degF"; + ups_temperature = (atof (temp_buffer) * 1.8) + 32; + xasprintf (&message, "%sTemp=%3.1fF", message, ups_temperature); } - if (config.check_variable == UPS_TEMP) { - if (config.check_crit && ups_temperature >= config.critical_value) { + if (check_variable == UPS_TEMP) { + if (check_crit==TRUE && ups_temperature>=critical_value) { result = STATE_CRITICAL; - } else if (config.check_warn && - ups_temperature >= config.warning_value) { - result = max_state(result, STATE_WARNING); } - xasprintf(&data, "%s %s", data, - perfdata("temp", (long)ups_temperature, tunits, - config.check_warn, (long)(config.warning_value), - config.check_crit, (long)(config.critical_value), - true, 0, false, 0)); + else if (check_warn == TRUE && ups_temperature>=warning_value) { + result = max_state (result, STATE_WARNING); + } + xasprintf (&data, "%s %s", data, + perfdata ("temp", (long)ups_temperature, tunits, + check_warn, (long)(warning_value), + check_crit, (long)(critical_value), + TRUE, 0, FALSE, 0)); } else { - xasprintf(&data, "%s %s", data, - perfdata("temp", (long)ups_temperature, tunits, false, 0, - false, 0, true, 0, false, 0)); + xasprintf (&data, "%s %s", data, + perfdata ("temp", (long)ups_temperature, tunits, + FALSE, 0, FALSE, 0, TRUE, 0, FALSE, 0)); } } - /* get the ups real power if possible */ - res = get_ups_variable("ups.realpower", temp_buffer, config); - if (res == NOSUCHVAR) { - supported_options &= ~UPS_REALPOWER; - } else if (res != OK) { - return STATE_CRITICAL; - } else { - supported_options |= UPS_REALPOWER; - double ups_realpower = 0.0; - ups_realpower = atof(temp_buffer); - xasprintf(&message, "%sReal power=%3.1fW ", message, ups_realpower); - - if (config.check_variable == UPS_REALPOWER) { - if (config.check_crit && ups_realpower >= config.critical_value) { - result = STATE_CRITICAL; - } else if (config.check_warn && - ups_realpower >= config.warning_value) { - result = max_state(result, STATE_WARNING); - } - xasprintf(&data, "%s %s", data, - perfdata("realpower", (long)ups_realpower, "W", - config.check_warn, (long)(config.warning_value), - config.check_crit, (long)(config.critical_value), - true, 0, false, 0)); - } else { - xasprintf(&data, "%s %s", data, - perfdata("realpower", (long)ups_realpower, "W", false, 0, - false, 0, true, 0, false, 0)); - } - } - - /* if the UPS does not support any options we are looking for, report an - * error */ + /* if the UPS does not support any options we are looking for, report an error */ if (supported_options == UPS_NONE) { result = STATE_CRITICAL; - xasprintf(&message, _("UPS does not support any available options\n")); + xasprintf (&message, _("UPS does not support any available options\n")); } /* reset timeout */ - alarm(0); + alarm (0); - printf("UPS %s - %s|%s\n", state_text(result), message, data); + printf ("UPS %s - %s|%s\n", state_text(result), message, data); return result; } + + /* determines what options are supported by the UPS */ -int determine_status(ups_config *config, int *supported_options) { +int +determine_status (void) +{ char recv_buffer[MAX_INPUT_BUFFER]; + char temp_buffer[MAX_INPUT_BUFFER]; + char *ptr; + int res; - int res = get_ups_variable("ups.status", recv_buffer, *config); - if (res == NOSUCHVAR) { - return OK; - } - + res=get_ups_variable ("ups.status", recv_buffer, sizeof (recv_buffer)); + if (res == NOSUCHVAR) return OK; if (res != STATE_OK) { - printf("%s\n", _("Invalid response received from host")); + printf ("%s\n", _("Invalid response received from host")); return ERROR; } - *supported_options |= UPS_STATUS; + supported_options |= UPS_STATUS; - char temp_buffer[MAX_INPUT_BUFFER]; - - strcpy(temp_buffer, recv_buffer); - for (char *ptr = (char *)strtok(temp_buffer, " "); ptr != NULL; - ptr = (char *)strtok(NULL, " ")) { - if (!strcmp(ptr, "OFF")) { - config->status |= UPSSTATUS_OFF; - } else if (!strcmp(ptr, "OL")) { - config->status |= UPSSTATUS_OL; - } else if (!strcmp(ptr, "OB")) { - config->status |= UPSSTATUS_OB; - } else if (!strcmp(ptr, "LB")) { - config->status |= UPSSTATUS_LB; - } else if (!strcmp(ptr, "CAL")) { - config->status |= UPSSTATUS_CAL; - } else if (!strcmp(ptr, "RB")) { - config->status |= UPSSTATUS_RB; - } else if (!strcmp(ptr, "BYPASS")) { - config->status |= UPSSTATUS_BYPASS; - } else if (!strcmp(ptr, "OVER")) { - config->status |= UPSSTATUS_OVER; - } else if (!strcmp(ptr, "TRIM")) { - config->status |= UPSSTATUS_TRIM; - } else if (!strcmp(ptr, "BOOST")) { - config->status |= UPSSTATUS_BOOST; - } else if (!strcmp(ptr, "CHRG")) { - config->status |= UPSSTATUS_CHRG; - } else if (!strcmp(ptr, "DISCHRG")) { - config->status |= UPSSTATUS_DISCHRG; - } else if (!strcmp(ptr, "ALARM")) { - config->status |= UPSSTATUS_ALARM; - } else { - config->status |= UPSSTATUS_UNKNOWN; - } + strcpy (temp_buffer, recv_buffer); + for (ptr = (char *) strtok (temp_buffer, " "); ptr != NULL; + ptr = (char *) strtok (NULL, " ")) { + if (!strcmp (ptr, "OFF")) + status |= UPSSTATUS_OFF; + else if (!strcmp (ptr, "OL")) + status |= UPSSTATUS_OL; + else if (!strcmp (ptr, "OB")) + status |= UPSSTATUS_OB; + else if (!strcmp (ptr, "LB")) + status |= UPSSTATUS_LB; + else if (!strcmp (ptr, "CAL")) + status |= UPSSTATUS_CAL; + else if (!strcmp (ptr, "RB")) + status |= UPSSTATUS_RB; + else if (!strcmp (ptr, "BYPASS")) + status |= UPSSTATUS_BYPASS; + else if (!strcmp (ptr, "OVER")) + status |= UPSSTATUS_OVER; + else if (!strcmp (ptr, "TRIM")) + status |= UPSSTATUS_TRIM; + else if (!strcmp (ptr, "BOOST")) + status |= UPSSTATUS_BOOST; + else if (!strcmp (ptr, "CHRG")) + status |= UPSSTATUS_CHRG; + else if (!strcmp (ptr, "DISCHRG")) + status |= UPSSTATUS_DISCHRG; + else + status |= UPSSTATUS_UNKNOWN; } return OK; } + /* gets a variable value for a specific UPS */ -int get_ups_variable(const char *varname, char *buf, const ups_config config) { +int +get_ups_variable (const char *varname, char *buf, size_t buflen) +{ + /* char command[MAX_INPUT_BUFFER]; */ + char temp_buffer[MAX_INPUT_BUFFER]; char send_buffer[MAX_INPUT_BUFFER]; + char *ptr; + char *logout = "OK Goodbye\n"; + int logout_len = strlen(logout); + int len; + + *buf=0; /* create the command string to send to the UPS daemon */ /* Add LOGOUT to avoid read failure logs */ - int res = snprintf(send_buffer, sizeof(send_buffer), - "GET VAR %s %s\nLOGOUT\n", config.ups_name, varname); - if ((res > 0) && ((size_t)res >= sizeof(send_buffer))) { + if (snprintf (send_buffer, sizeof(send_buffer), "GET VAR %s %s\nLOGOUT\n", ups_name, varname) >= sizeof(send_buffer)) { printf("%s\n", _("UPS name to long for buffer")); return ERROR; } - char temp_buffer[MAX_INPUT_BUFFER]; - /* send the command to the daemon and get a response back */ - if (process_tcp_request(config.server_address, config.server_port, - send_buffer, temp_buffer, - sizeof(temp_buffer)) != STATE_OK) { - printf("%s\n", _("Invalid response received from host")); + if (process_tcp_request + (server_address, server_port, send_buffer, temp_buffer, + sizeof (temp_buffer)) != STATE_OK) { + printf ("%s\n", _("Invalid response received from host")); return ERROR; } - char *ptr = temp_buffer; - int len = strlen(ptr); - const char *logout = "OK Goodbye\n"; - const int logout_len = strlen(logout); - - if (len > logout_len && strcmp(ptr + len - logout_len, logout) == 0) { - len -= logout_len; - } - if (len > 0 && ptr[len - 1] == '\n') { - ptr[len - 1] = 0; - } - if (strcmp(ptr, "ERR UNKNOWN-UPS") == 0) { - printf(_("CRITICAL - no such UPS '%s' on that host\n"), - config.ups_name); + ptr = temp_buffer; + len = strlen(ptr); + if (len > logout_len && strcmp (ptr + len - logout_len, logout) == 0) len -= logout_len; + if (len > 0 && ptr[len-1] == '\n') ptr[len-1]=0; + if (strcmp (ptr, "ERR UNKNOWN-UPS") == 0) { + printf (_("CRITICAL - no such UPS '%s' on that host\n"), ups_name); return ERROR; } - if (strcmp(ptr, "ERR VAR-NOT-SUPPORTED") == 0) { + if (strcmp (ptr, "ERR VAR-NOT-SUPPORTED") == 0) { /*printf ("Error: Variable '%s' is not supported\n", varname);*/ return NOSUCHVAR; } - if (strcmp(ptr, "ERR DATA-STALE") == 0) { - printf("%s\n", _("CRITICAL - UPS data is stale")); + if (strcmp (ptr, "ERR DATA-STALE") == 0) { + printf ("%s\n", _("CRITICAL - UPS data is stale")); return ERROR; } - if (strncmp(ptr, "ERR", 3) == 0) { - printf(_("Unknown error: %s\n"), ptr); + if (strncmp (ptr, "ERR", 3) == 0) { + printf (_("Unknown error: %s\n"), ptr); return ERROR; } - ptr = temp_buffer + strlen(varname) + strlen(config.ups_name) + 6; + ptr = temp_buffer + strlen (varname) + strlen (ups_name) + 6; len = strlen(ptr); - if (len < 2 || ptr[0] != '"' || ptr[len - 1] != '"') { - printf("%s\n", _("Error: unable to parse variable")); + if (len < 2 || ptr[0] != '"' || ptr[len-1] != '"') { + printf ("%s\n", _("Error: unable to parse variable")); return ERROR; } - - *buf = 0; - strncpy(buf, ptr + 1, len - 2); + strncpy (buf, ptr+1, len - 2); buf[len - 2] = 0; return OK; } + /* Command line: CHECK_UPS -H -u ups [-p port] [-v variable] [-wv warn_value] [-cv crit_value] [-to to_sec] */ + /* process command-line arguments */ -int process_arguments(int argc, char **argv, ups_config *config) { - - static struct option longopts[] = {{"hostname", required_argument, 0, 'H'}, - {"ups", required_argument, 0, 'u'}, - {"port", required_argument, 0, 'p'}, - {"critical", required_argument, 0, 'c'}, - {"warning", required_argument, 0, 'w'}, - {"timeout", required_argument, 0, 't'}, - {"temperature", no_argument, 0, 'T'}, - {"variable", required_argument, 0, 'v'}, - {"version", no_argument, 0, 'V'}, - {"help", no_argument, 0, 'h'}, - {0, 0, 0, 0}}; - - if (argc < 2) { - return ERROR; - } - +int +process_arguments (int argc, char **argv) +{ int c; - for (c = 1; c < argc; c++) { - if (strcmp("-to", argv[c]) == 0) { - strcpy(argv[c], "-t"); - } else if (strcmp("-wt", argv[c]) == 0) { - strcpy(argv[c], "-w"); - } else if (strcmp("-ct", argv[c]) == 0) { - strcpy(argv[c], "-c"); - } - } int option = 0; - while (1) { - c = getopt_long(argc, argv, "hVTH:u:p:v:c:w:t:", longopts, &option); + static struct option longopts[] = { + {"hostname", required_argument, 0, 'H'}, + {"ups", required_argument, 0, 'u'}, + {"port", required_argument, 0, 'p'}, + {"critical", required_argument, 0, 'c'}, + {"warning", required_argument, 0, 'w'}, + {"timeout", required_argument, 0, 't'}, + {"temperature", no_argument, 0, 'T'}, + {"variable", required_argument, 0, 'v'}, + {"version", no_argument, 0, 'V'}, + {"help", no_argument, 0, 'h'}, + {0, 0, 0, 0} + }; - if (c == -1 || c == EOF) { + if (argc < 2) + return ERROR; + + for (c = 1; c < argc; c++) { + if (strcmp ("-to", argv[c]) == 0) + strcpy (argv[c], "-t"); + else if (strcmp ("-wt", argv[c]) == 0) + strcpy (argv[c], "-w"); + else if (strcmp ("-ct", argv[c]) == 0) + strcpy (argv[c], "-c"); + } + + while (1) { + c = getopt_long (argc, argv, "hVTH:u:p:v:c:w:t:", longopts, + &option); + + if (c == -1 || c == EOF) break; - } switch (c) { - case '?': /* help */ - usage5(); - case 'H': /* hostname */ - if (is_host(optarg)) { - config->server_address = optarg; - } else { - usage2(_("Invalid hostname/address"), optarg); + case '?': /* help */ + usage5 (); + case 'H': /* hostname */ + if (is_host (optarg)) { + server_address = optarg; + } + else { + usage2 (_("Invalid hostname/address"), optarg); } break; - case 'T': /* FIXME: to be improved (ie "-T C" for Celsius or "-T F" for - Fahrenheit) */ - config->temp_output_c = true; + case 'T': /* FIXME: to be improved (ie "-T C" for Celsius or "-T F" for Farenheit) */ + temp_output_c = 1; break; - case 'u': /* ups name */ - config->ups_name = optarg; + case 'u': /* ups name */ + ups_name = optarg; break; - case 'p': /* port */ - if (is_intpos(optarg)) { - config->server_port = atoi(optarg); - } else { - usage2(_("Port must be a positive integer"), optarg); + case 'p': /* port */ + if (is_intpos (optarg)) { + server_port = atoi (optarg); + } + else { + usage2 (_("Port must be a positive integer"), optarg); } break; - case 'c': /* critical time threshold */ - if (is_intnonneg(optarg)) { - config->critical_value = atoi(optarg); - config->check_crit = true; - } else { - usage2(_("Critical time must be a positive integer"), optarg); + case 'c': /* critical time threshold */ + if (is_intnonneg (optarg)) { + critical_value = atoi (optarg); + check_crit = TRUE; + } + else { + usage2 (_("Critical time must be a positive integer"), optarg); } break; - case 'w': /* warning time threshold */ - if (is_intnonneg(optarg)) { - config->warning_value = atoi(optarg); - config->check_warn = true; - } else { - usage2(_("Warning time must be a positive integer"), optarg); + case 'w': /* warning time threshold */ + if (is_intnonneg (optarg)) { + warning_value = atoi (optarg); + check_warn = TRUE; + } + else { + usage2 (_("Warning time must be a positive integer"), optarg); } break; - case 'v': /* variable */ - if (!strcmp(optarg, "LINE")) { - config->check_variable = UPS_UTILITY; - } else if (!strcmp(optarg, "TEMP")) { - config->check_variable = UPS_TEMP; - } else if (!strcmp(optarg, "BATTPCT")) { - config->check_variable = UPS_BATTPCT; - } else if (!strcmp(optarg, "LOADPCT")) { - config->check_variable = UPS_LOADPCT; - } else if (!strcmp(optarg, "REALPOWER")) { - config->check_variable = UPS_REALPOWER; - } else { - usage2(_("Unrecognized UPS variable"), optarg); + case 'v': /* variable */ + if (!strcmp (optarg, "LINE")) + check_variable = UPS_UTILITY; + else if (!strcmp (optarg, "TEMP")) + check_variable = UPS_TEMP; + else if (!strcmp (optarg, "BATTPCT")) + check_variable = UPS_BATTPCT; + else if (!strcmp (optarg, "LOADPCT")) + check_variable = UPS_LOADPCT; + else + usage2 (_("Unrecognized UPS variable"), optarg); + break; + case 't': /* timeout */ + if (is_intnonneg (optarg)) { + socket_timeout = atoi (optarg); + } + else { + usage4 (_("Timeout interval must be a positive integer")); } break; - case 't': /* timeout */ - if (is_intnonneg(optarg)) { - socket_timeout = atoi(optarg); - } else { - usage4(_("Timeout interval must be a positive integer")); - } - break; - case 'V': /* version */ - print_revision(progname, NP_VERSION); - exit(STATE_UNKNOWN); - case 'h': /* help */ - print_help(); - exit(STATE_UNKNOWN); + case 'V': /* version */ + print_revision (progname, NP_VERSION); + exit (STATE_UNKNOWN); + case 'h': /* help */ + print_help (); + exit (STATE_UNKNOWN); } } - if (config->server_address == NULL && argc > optind) { - if (is_host(argv[optind])) { - config->server_address = argv[optind++]; - } else { - usage2(_("Invalid hostname/address"), optarg); - } + + if (server_address == NULL && argc > optind) { + if (is_host (argv[optind])) + server_address = argv[optind++]; + else + usage2 (_("Invalid hostname/address"), optarg); } - if (config->server_address == NULL) { - config->server_address = strdup("127.0.0.1"); - } + if (server_address == NULL) + server_address = strdup("127.0.0.1"); - return validate_arguments(*config); + return validate_arguments(); } -int validate_arguments(ups_config config) { - if (!config.ups_name) { - printf("%s\n", _("Error : no UPS indicated")); + +int +validate_arguments (void) +{ + if (! ups_name) { + printf ("%s\n", _("Error : no UPS indicated")); return ERROR; } return OK; } -void print_help(void) { - print_revision(progname, NP_VERSION); - - printf("Copyright (c) 2000 Tom Shields\n"); - printf("Copyright (c) 2004 Alain Richard \n"); - printf("Copyright (c) 2004 Arnaud Quette \n"); - printf(COPYRIGHT, copyright, email); - - printf("%s\n", _("This plugin tests the UPS service on the specified host. " - "Network UPS Tools")); - printf("%s\n", _("from www.networkupstools.org must be running for this " - "plugin to work.")); - - printf("\n\n"); - - print_usage(); - - printf(UT_HELP_VRSN); - printf(UT_EXTRA_OPTS); +void +print_help (void) +{ char *myport; - xasprintf(&myport, "%d", PORT); - printf(UT_HOST_PORT, 'p', myport); + xasprintf (&myport, "%d", PORT); - printf(" %s\n", "-u, --ups=STRING"); - printf(" %s\n", _("Name of UPS")); - printf(" %s\n", "-T, --temperature"); - printf(" %s\n", _("Output of temperatures in Celsius")); - printf(" %s\n", "-v, --variable=STRING"); - printf(" %s %s\n", _("Valid values for STRING are"), - "LINE, TEMP, BATTPCT, LOADPCT or REALPOWER"); + print_revision (progname, NP_VERSION); - printf(UT_WARN_CRIT); + printf ("Copyright (c) 2000 Tom Shields\n"); + printf ("Copyright (c) 2004 Alain Richard \n"); + printf ("Copyright (c) 2004 Arnaud Quette \n"); + printf (COPYRIGHT, copyright, email); - printf(UT_CONN_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); + printf ("%s\n", _("This plugin tests the UPS service on the specified host. Network UPS Tools")); + printf ("%s\n", _("from www.networkupstools.org must be running for this plugin to work.")); - /* TODO: -v clashing with -v/-variable. Commenting out help text since - verbose is unused up to now */ - /* printf (UT_VERBOSE); */ + printf ("\n\n"); - printf("\n"); - printf("%s\n", _("This plugin attempts to determine the status of a UPS " - "(Uninterruptible Power")); - printf("%s\n", _("Supply) on a local or remote host. If the UPS is online " - "or calibrating, the")); - printf("%s\n", _("plugin will return an OK state. If the battery is on it " - "will return a WARNING")); - printf("%s\n", _("state. If the UPS is off or has a low battery the plugin " - "will return a CRITICAL")); - printf("%s\n", _("state.")); + print_usage (); - printf("\n"); - printf("%s\n", _("Notes:")); - printf(" %s\n", _("You may also specify a variable to check (such as " - "temperature, utility voltage,")); - printf(" %s\n", _("battery load, etc.) as well as warning and critical " - "thresholds for the value")); - printf(" %s\n", _("of that variable. If the remote host has multiple UPS " - "that are being monitored")); - printf(" %s\n", _("you will have to use the --ups option to specify which " - "UPS to check.")); - printf("\n"); - printf(" %s\n", _("This plugin requires that the UPSD daemon distributed " - "with Russell Kroll's")); - printf(" %s\n", _("Network UPS Tools be installed on the remote host. If " - "you do not have the")); - printf(" %s\n", - _("package installed on your system, you can download it from")); - printf(" %s\n", _("http://www.networkupstools.org")); + printf (UT_HELP_VRSN); + printf (UT_EXTRA_OPTS); - printf(UT_SUPPORT); + printf (UT_HOST_PORT, 'p', myport); + + printf (" %s\n", "-u, --ups=STRING"); + printf (" %s\n", _("Name of UPS")); + printf (" %s\n", "-T, --temperature"); + printf (" %s\n", _("Output of temperatures in Celsius")); + printf (" %s\n", "-v, --variable=STRING"); + printf (" %s %s\n", _("Valid values for STRING are"), "LINE, TEMP, BATTPCT or LOADPCT"); + + printf (UT_WARN_CRIT); + + printf (UT_CONN_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); + +/* TODO: -v clashing with -v/-variable. Commenting out help text since verbose + is unused up to now */ +/* printf (UT_VERBOSE); */ + + printf ("\n"); + printf ("%s\n", _("This plugin attempts to determine the status of a UPS (Uninterruptible Power")); + printf ("%s\n", _("Supply) on a local or remote host. If the UPS is online or calibrating, the")); + printf ("%s\n", _("plugin will return an OK state. If the battery is on it will return a WARNING")); + printf ("%s\n", _("state. If the UPS is off or has a low battery the plugin will return a CRITICAL")); + printf ("%s\n", _("state.")); + + printf ("\n"); + printf ("%s\n", _("Notes:")); + printf (" %s\n", _("You may also specify a variable to check (such as temperature, utility voltage,")); + printf (" %s\n", _("battery load, etc.) as well as warning and critical thresholds for the value")); + printf (" %s\n", _("of that variable. If the remote host has multiple UPS that are being monitored")); + printf (" %s\n", _("you will have to use the --ups option to specify which UPS to check.")); + printf ("\n"); + printf (" %s\n", _("This plugin requires that the UPSD daemon distributed with Russell Kroll's")); + printf (" %s\n", _("Network UPS Tools be installed on the remote host. If you do not have the")); + printf (" %s\n", _("package installed on your system, you can download it from")); + printf (" %s\n", _("http://www.networkupstools.org")); + + printf (UT_SUPPORT); } -void print_usage(void) { - printf("%s\n", _("Usage:")); - printf("%s -H host -u ups [-p port] [-v variable] [-w warn_value] [-c " - "crit_value] [-to to_sec] [-T]\n", - progname); + +void +print_usage (void) +{ + printf ("%s\n", _("Usage:")); + printf ("%s -H host -u ups [-p port] [-v variable] [-w warn_value] [-c crit_value] [-to to_sec] [-T]\n", progname); } diff --git a/plugins/check_users.c b/plugins/check_users.c index 89b9536..f6f4b36 100644 --- a/plugins/check_users.c +++ b/plugins/check_users.c @@ -1,33 +1,33 @@ /***************************************************************************** -* +* * Monitoring check_users plugin -* +* * License: GPL * Copyright (c) 2000-2012 Monitoring Plugins Development Team -* +* * Description: -* +* * This file contains the check_users plugin -* +* * This plugin checks the number of users currently logged in on the local * system and generates an error if the number exceeds the thresholds * specified. -* -* +* +* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with this program. If not, see . -* -* +* +* *****************************************************************************/ const char *progname = "check_users"; @@ -48,11 +48,6 @@ const char *email = "devel@monitoring-plugins.org"; # include "popen.h" #endif -#ifdef HAVE_LIBSYSTEMD -#include -#include -#endif - #define possibly_set(a,b) ((a) == 0 ? (b) : 0) int process_arguments (int, char **); @@ -90,11 +85,6 @@ main (int argc, char **argv) users = 0; -#ifdef HAVE_LIBSYSTEMD - if (sd_booted () > 0) - users = sd_get_sessions (NULL); - else { -#endif #if HAVE_WTSAPI32_H if (!WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, &wtsinfo, &wtscount)) { @@ -166,9 +156,6 @@ main (int argc, char **argv) if (spclose (child_process)) result = possibly_set (result, STATE_UNKNOWN); #endif -#ifdef HAVE_LIBSYSTEMD - } -#endif /* check the user count against warning and critical thresholds */ result = get_status((double)users, thlds); @@ -176,10 +163,10 @@ main (int argc, char **argv) if (result == STATE_UNKNOWN) printf ("%s\n", _("Unable to read output")); else { - printf (_("USERS %s - %d users currently logged in |%s\n"), + printf (_("USERS %s - %d users currently logged in |%s\n"), state_text(result), users, sperfdata_int("users", users, "", warning_range, - critical_range, true, 0, false, 0)); + critical_range, TRUE, 0, FALSE, 0)); } return result; @@ -202,7 +189,7 @@ process_arguments (int argc, char **argv) if (argc < 2) usage ("\n"); - while (true) { + while (1) { c = getopt_long (argc, argv, "+hVvc:w:", longopts, &option); if (c == -1 || c == EOF || c == 1) @@ -227,23 +214,18 @@ process_arguments (int argc, char **argv) } c = optind; - if (warning_range == NULL && argc > c) warning_range = argv[c++]; - if (critical_range == NULL && argc > c) critical_range = argv[c++]; /* this will abort in case of invalid ranges */ set_thresholds (&thlds, warning_range, critical_range); - if (!thlds->warning) { - usage4 (_("Warning threshold must be a valid range expression")); - } - - if (!thlds->critical) { - usage4 (_("Critical threshold must be a valid range expression")); - } + if (thlds->warning->end < 0) + usage4 (_("Warning threshold must be a positive integer")); + if (thlds->critical->end < 0) + usage4 (_("Critical threshold must be a positive integer")); return OK; } @@ -266,10 +248,10 @@ print_help (void) printf (UT_HELP_VRSN); printf (UT_EXTRA_OPTS); - printf (" %s\n", "-w, --warning=RANGE_EXPRESSION"); - printf (" %s\n", _("Set WARNING status if number of logged in users violates RANGE_EXPRESSION")); - printf (" %s\n", "-c, --critical=RANGE_EXPRESSION"); - printf (" %s\n", _("Set CRITICAL status if number of logged in users violates RANGE_EXPRESSION")); + printf (" %s\n", "-w, --warning=INTEGER"); + printf (" %s\n", _("Set WARNING status if more than INTEGER users are logged in")); + printf (" %s\n", "-c, --critical=INTEGER"); + printf (" %s\n", _("Set CRITICAL status if more than INTEGER users are logged in")); printf (UT_SUPPORT); } diff --git a/plugins/common.h b/plugins/common.h index 833479c..0f08e2f 100644 --- a/plugins/common.h +++ b/plugins/common.h @@ -184,6 +184,14 @@ enum { ERROR = -1 }; +/* AIX seems to have this defined somewhere else */ +#ifndef FALSE +enum { + FALSE, + TRUE +}; +#endif + enum { STATE_OK, STATE_WARNING, @@ -217,4 +225,18 @@ enum { # define __attribute__(x) /* do nothing */ #endif +/* Try sysconf(_SC_OPEN_MAX) first, as it can be higher than OPEN_MAX. + * If that fails and the macro isn't defined, we fall back to an educated + * guess. There's no guarantee that our guess is adequate and the program + * will die with SIGSEGV if it isn't and the upper boundary is breached. */ +#define DEFAULT_MAXFD 256 /* fallback value if no max open files value is set */ +#define MAXFD_LIMIT 8192 /* upper limit of open files */ +#ifdef _SC_OPEN_MAX +static long maxfd = 0; +#elif defined(OPEN_MAX) +# define maxfd OPEN_MAX +#else /* sysconf macro unavailable, so guess (may be wildly inaccurate) */ +# define maxfd DEFAULT_MAXFD +#endif + #endif /* _COMMON_H_ */ diff --git a/plugins/negate.c b/plugins/negate.c index c5fe7e1..50f62d3 100644 --- a/plugins/negate.c +++ b/plugins/negate.c @@ -47,7 +47,7 @@ static const char **process_arguments (int, char **); void validate_arguments (char **); void print_help (void); void print_usage (void); -bool subst_text = false; +int subst_text = FALSE; static int state[4] = { STATE_OK, @@ -63,6 +63,7 @@ main (int argc, char **argv) char *sub; char **command_line; output chld_out, chld_err; + int i; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); @@ -85,7 +86,7 @@ main (int argc, char **argv) result = cmd_run_array (command_line, &chld_out, &chld_err, 0); } if (chld_err.lines > 0) { - for (size_t i = 0; i < chld_err.lines; i++) { + for (i = 0; i < chld_err.lines; i++) { fprintf (stderr, "%s\n", chld_err.line[i]); } } @@ -94,7 +95,7 @@ main (int argc, char **argv) if (chld_out.lines == 0) die (max_state_alt (result, STATE_UNKNOWN), _("No data returned from command\n")); - for (size_t i = 0; i < chld_out.lines; i++) { + for (i = 0; i < chld_out.lines; i++) { if (subst_text && result >= 0 && result <= 4 && result != state[result]) { /* Loop over each match found */ while ((sub = strstr (chld_out.line[i], state_text (result)))) { @@ -121,7 +122,7 @@ static const char ** process_arguments (int argc, char **argv) { int c; - bool permute = true; + int permute = TRUE; int option = 0; static struct option longopts[] = { @@ -167,26 +168,26 @@ process_arguments (int argc, char **argv) case 'o': /* replacement for OK */ if ((state[STATE_OK] = mp_translate_state(optarg)) == ERROR) usage4 (_("Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3).")); - permute = false; + permute = FALSE; break; case 'w': /* replacement for WARNING */ if ((state[STATE_WARNING] = mp_translate_state(optarg)) == ERROR) usage4 (_("Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3).")); - permute = false; + permute = FALSE; break; case 'c': /* replacement for CRITICAL */ if ((state[STATE_CRITICAL] = mp_translate_state(optarg)) == ERROR) usage4 (_("Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3).")); - permute = false; + permute = FALSE; break; case 'u': /* replacement for UNKNOWN */ if ((state[STATE_UNKNOWN] = mp_translate_state(optarg)) == ERROR) usage4 (_("Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer (0-3).")); - permute = false; + permute = FALSE; break; case 's': /* Substitute status text */ - subst_text = true; + subst_text = TRUE; break; } } @@ -220,10 +221,8 @@ print_help (void) printf (COPYRIGHT, copyright, email); - printf ("%s\n", _("Negates only the return code of a plugin (returns OK for CRITICAL and vice-versa) by default.")); - printf ("%s\n", _("Additional switches can be used to control:\n")); - printf ("\t - which state becomes what\n"); - printf ("\t - changing the plugin output text to match the return code"); + printf ("%s\n", _("Negates the status of a plugin (returns OK for CRITICAL and vice-versa).")); + printf ("%s\n", _("Additional switches can be used to control which state becomes what.")); printf ("\n\n"); diff --git a/plugins/netutils.c b/plugins/netutils.c index c6af248..1bb4f07 100644 --- a/plugins/netutils.c +++ b/plugins/netutils.c @@ -34,7 +34,7 @@ unsigned int socket_timeout = DEFAULT_SOCKET_TIMEOUT; unsigned int socket_timeout_state = STATE_CRITICAL; int econn_refuse_state = STATE_CRITICAL; -bool was_refused = false; +int was_refused = FALSE; #if USE_IPV6 int address_family = AF_UNSPEC; #else @@ -215,14 +215,14 @@ np_net_connect (const char *host_name, int port, int *sd, int proto) result = connect (*sd, r->ai_addr, r->ai_addrlen); if (result == 0) { - was_refused = false; + was_refused = FALSE; break; } if (result < 0) { switch (errno) { case ECONNREFUSED: - was_refused = true; + was_refused = TRUE; break; } } @@ -246,7 +246,7 @@ np_net_connect (const char *host_name, int port, int *sd, int proto) } result = connect(*sd, (struct sockaddr *)&su, sizeof(su)); if (result < 0 && errno == ECONNREFUSED) - was_refused = true; + was_refused = TRUE; } if (result == 0) @@ -326,11 +326,13 @@ send_request (int sd, int proto, const char *send_buffer, char *recv_buffer, int } -bool is_host (const char *address) { +int +is_host (const char *address) +{ if (is_addr (address) || is_hostname (address)) - return (true); + return (TRUE); - return (false); + return (FALSE); } void @@ -340,18 +342,20 @@ host_or_die(const char *str) usage_va(_("Invalid hostname/address - %s"), str); } -bool is_addr (const char *address) { +int +is_addr (const char *address) +{ #ifdef USE_IPV6 if (address_family == AF_INET && is_inet_addr (address)) - return true; + return TRUE; else if (address_family == AF_INET6 && is_inet6_addr (address)) - return true; + return TRUE; #else if (is_inet_addr (address)) - return (true); + return (TRUE); #endif - return (false); + return (FALSE); } int @@ -366,10 +370,10 @@ dns_lookup (const char *in, struct sockaddr_storage *ss, int family) retval = getaddrinfo (in, NULL, &hints, &res); if (retval != 0) - return false; + return FALSE; if (ss != NULL) memcpy (ss, res->ai_addr, res->ai_addrlen); freeaddrinfo (res); - return true; + return TRUE; } diff --git a/plugins/netutils.h b/plugins/netutils.h index a95057e..d7ee0dd 100644 --- a/plugins/netutils.h +++ b/plugins/netutils.h @@ -73,8 +73,8 @@ int send_request (int sd, int proto, const char *send_buffer, char *recv_buffer, /* "is_*" wrapper macros and functions */ -bool is_host (const char *); -bool is_addr (const char *); +int is_host (const char *); +int is_addr (const char *); int dns_lookup (const char *, struct sockaddr_storage *, int); void host_or_die(const char *str); #define resolve_host_or_addr(addr, family) dns_lookup(addr, NULL, family) @@ -89,10 +89,10 @@ void host_or_die(const char *str); extern unsigned int socket_timeout; extern unsigned int socket_timeout_state; extern int econn_refuse_state; -extern bool was_refused; +extern int was_refused; extern int address_family; -void socket_timeout_alarm_handler (int) __attribute__((noreturn)); +RETSIGTYPE socket_timeout_alarm_handler (int) __attribute__((noreturn)); /* SSL-Related functionality */ #ifdef HAVE_SSL diff --git a/plugins/picohttpparser/Makefile.in b/plugins/picohttpparser/Makefile.in index fd1dc34..e6ecccc 100644 --- a/plugins/picohttpparser/Makefile.in +++ b/plugins/picohttpparser/Makefile.in @@ -73,7 +73,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -93,58 +92,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -152,57 +143,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -287,6 +271,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp \ $(top_srcdir)/build-aux/mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -295,7 +280,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -306,11 +290,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -346,476 +328,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -824,7 +683,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -832,11 +690,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -846,17 +702,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -866,22 +718,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -901,7 +748,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -911,37 +757,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -952,24 +791,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -977,21 +810,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1005,23 +834,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1032,29 +854,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1066,9 +883,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1084,16 +898,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1103,7 +913,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1114,17 +923,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1138,7 +943,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1163,10 +967,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1178,8 +982,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1198,24 +1000,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1224,6 +1017,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1231,23 +1025,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1259,7 +1048,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1267,12 +1055,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1284,7 +1069,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1342,63 +1126,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1409,61 +1165,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1481,9 +1221,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1493,11 +1231,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1505,30 +1238,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1536,24 +1260,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1561,42 +1279,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -1604,10 +1307,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -1626,21 +1327,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -1653,9 +1347,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -1687,10 +1378,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -1705,9 +1394,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = @localedir@ -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ diff --git a/plugins/picohttpparser/picohttpparser.c b/plugins/picohttpparser/picohttpparser.c index d0bfac6..d9680b7 100644 --- a/plugins/picohttpparser/picohttpparser.c +++ b/plugins/picohttpparser/picohttpparser.c @@ -400,7 +400,7 @@ int phr_parse_request(const char *buf_start, size_t len, const char **method, si *num_headers = 0; /* if last_len != 0, check if the request is complete (a fast countermeasure - against slowloris */ + againt slowloris */ if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) { return r; } @@ -435,7 +435,7 @@ static const char *parse_response(const char *buf, const char *buf_end, int *maj } PARSE_INT_3(status); - /* get message including preceding space */ + /* get message includig preceding space */ if ((buf = get_token_to_eol(buf, buf_end, msg, msg_len, ret)) == NULL) { return NULL; } diff --git a/plugins/popen.c b/plugins/popen.c index 54e63bc..9eb49b6 100644 --- a/plugins/popen.c +++ b/plugins/popen.c @@ -14,7 +14,7 @@ * FILE * spopen(const char *); * int spclose(FILE *); * -* Code taken with little modification from "Advanced Programming for the Unix +* Code taken with liitle modification from "Advanced Programming for the Unix * Environment" by W. Richard Stevens * * This is considered safe in that no shell is spawned, and the environment @@ -38,9 +38,8 @@ * *****************************************************************************/ -#include "./common.h" -#include "./utils.h" -#include "../lib/maxfd.h" +#include "common.h" +#include "utils.h" /* extern so plugin has pid to kill exec'd process on timeouts */ extern pid_t *childpid; @@ -50,9 +49,9 @@ extern FILE *child_process; FILE *spopen (const char *); int spclose (FILE *); #ifdef REDHAT_SPOPEN_ERROR -void popen_sigchld_handler (int); +RETSIGTYPE popen_sigchld_handler (int); #endif -void popen_timeout_alarm_handler (int); +RETSIGTYPE popen_timeout_alarm_handler (int); #include /* ANSI C header file */ #include @@ -105,7 +104,7 @@ spopen (const char *cmdstring) #endif env[0] = strdup("LC_ALL=C"); - env[1] = NULL; + env[1] = '\0'; /* if no command was passed, return with no error */ if (cmdstring == NULL) @@ -178,7 +177,8 @@ spopen (const char *cmdstring) } argv[i] = NULL; - long maxfd = mp_open_max(); + if(maxfd == 0) + maxfd = open_max(); if (childpid == NULL) { /* first time through */ if ((childpid = calloc ((size_t)maxfd, sizeof (pid_t))) == NULL) @@ -266,7 +266,7 @@ spclose (FILE * fp) } #ifdef REDHAT_SPOPEN_ERROR -void +RETSIGTYPE popen_sigchld_handler (int signo) { if (signo == SIGCHLD) @@ -274,7 +274,7 @@ popen_sigchld_handler (int signo) } #endif -void +RETSIGTYPE popen_timeout_alarm_handler (int signo) { int fh; diff --git a/plugins/popen.h b/plugins/popen.h index 1ea6963..a5dd8fa 100644 --- a/plugins/popen.h +++ b/plugins/popen.h @@ -5,7 +5,7 @@ FILE *spopen (const char *); int spclose (FILE *); -void popen_timeout_alarm_handler (int); +RETSIGTYPE popen_timeout_alarm_handler (int); pid_t *childpid=NULL; int *child_stderr_array=NULL; diff --git a/plugins/runcmd.c b/plugins/runcmd.c index ed49bb9..a7155d2 100644 --- a/plugins/runcmd.c +++ b/plugins/runcmd.c @@ -44,8 +44,6 @@ # include #endif -#include "./utils.h" - /** macros **/ #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) @@ -60,8 +58,6 @@ # define SIG_ERR ((Sigfunc *)-1) #endif -#include "../lib/maxfd.h" - /* This variable must be global, since there's no way the caller * can forcibly slay a dead or ungainly running program otherwise. * Multithreading apps and plugins can initialize it (via NP_RUNCMD_INIT) @@ -90,7 +86,8 @@ extern void die (int, const char *, ...) * through this api and thus achieve async-safeness throughout the api */ void np_runcmd_init(void) { - long maxfd = mp_open_max(); + if(maxfd == 0) + maxfd = open_max(); if(!np_pids) np_pids = calloc(maxfd, sizeof(pid_t)); } @@ -115,7 +112,11 @@ np_runcmd_open(const char *cmdstring, int *pfd, int *pfderr) if(!np_pids) NP_RUNCMD_INIT; env[0] = strdup("LC_ALL=C"); - env[1] = NULL; + env[1] = '\0'; + + /* if no command was passed, return with no error */ + if (cmdstring == NULL) + return -1; /* make copy of command string so strtok() doesn't silently modify it */ /* (the calling program may want to access it later) */ @@ -193,7 +194,6 @@ np_runcmd_open(const char *cmdstring, int *pfd, int *pfderr) /* close all descriptors in np_pids[] * This is executed in a separate address space (pure child), * so we don't have to worry about async safety */ - long maxfd = mp_open_max(); for (i = 0; i < maxfd; i++) if(np_pids[i] > 0) close (i); @@ -203,7 +203,7 @@ np_runcmd_open(const char *cmdstring, int *pfd, int *pfderr) } /* parent picks up execution here */ - /* close children descriptors in our address space */ + /* close childs descriptors in our address space */ close(pfd[1]); close(pfderr[1]); @@ -221,7 +221,6 @@ np_runcmd_close(int fd) pid_t pid; /* make sure this fd was opened by popen() */ - long maxfd = mp_open_max(); if(fd < 0 || fd > maxfd || !np_pids || (pid = np_pids[fd]) == 0) return -1; @@ -240,12 +239,12 @@ np_runcmd_close(int fd) void runcmd_timeout_alarm_handler (int signo) { + size_t i; if (signo == SIGALRM) puts(_("CRITICAL - Plugin timed out while executing system call")); - long maxfd = mp_open_max(); - if(np_pids) for(long int i = 0; i < maxfd; i++) { + if(np_pids) for(i = 0; i < maxfd; i++) { if(np_pids[i] != 0) kill(np_pids[i], SIGKILL); } diff --git a/plugins/sslutils.c b/plugins/sslutils.c index 6bc0ba8..286273f 100644 --- a/plugins/sslutils.c +++ b/plugins/sslutils.c @@ -31,8 +31,9 @@ #include "netutils.h" #ifdef HAVE_SSL -static SSL_CTX *ctx=NULL; +static SSL_CTX *c=NULL; static SSL *s=NULL; +static int initialized=0; int np_net_ssl_init(int sd) { return np_net_ssl_init_with_hostname(sd, NULL); @@ -47,24 +48,24 @@ int np_net_ssl_init_with_hostname_and_version(int sd, char *host_name, int versi } int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int version, char *cert, char *privkey) { + const SSL_METHOD *method = NULL; long options = 0; - if ((ctx = SSL_CTX_new(TLS_client_method())) == NULL) { - printf("%s\n", _("CRITICAL - Cannot create SSL context.")); - return STATE_CRITICAL; - } - switch (version) { case MP_SSLv2: /* SSLv2 protocol */ +#if defined(USE_GNUTLS) || defined(OPENSSL_NO_SSL2) printf("%s\n", _("UNKNOWN - SSL protocol version 2 is not supported by your SSL library.")); return STATE_UNKNOWN; +#else + method = SSLv2_client_method(); + break; +#endif case MP_SSLv3: /* SSLv3 protocol */ #if defined(OPENSSL_NO_SSL3) printf("%s\n", _("UNKNOWN - SSL protocol version 3 is not supported by your SSL library.")); return STATE_UNKNOWN; #else - SSL_CTX_set_min_proto_version(ctx, SSL3_VERSION); - SSL_CTX_set_max_proto_version(ctx, SSL3_VERSION); + method = SSLv3_client_method(); break; #endif case MP_TLSv1: /* TLSv1 protocol */ @@ -72,8 +73,7 @@ int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int printf("%s\n", _("UNKNOWN - TLS protocol version 1 is not supported by your SSL library.")); return STATE_UNKNOWN; #else - SSL_CTX_set_min_proto_version(ctx, TLS1_VERSION); - SSL_CTX_set_max_proto_version(ctx, TLS1_VERSION); + method = TLSv1_client_method(); break; #endif case MP_TLSv1_1: /* TLSv1.1 protocol */ @@ -81,8 +81,7 @@ int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int printf("%s\n", _("UNKNOWN - TLS protocol version 1.1 is not supported by your SSL library.")); return STATE_UNKNOWN; #else - SSL_CTX_set_min_proto_version(ctx, TLS1_1_VERSION); - SSL_CTX_set_max_proto_version(ctx, TLS1_1_VERSION); + method = TLSv1_1_client_method(); break; #endif case MP_TLSv1_2: /* TLSv1.2 protocol */ @@ -90,8 +89,7 @@ int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int printf("%s\n", _("UNKNOWN - TLS protocol version 1.2 is not supported by your SSL library.")); return STATE_UNKNOWN; #else - SSL_CTX_set_min_proto_version(ctx, TLS1_2_VERSION); - SSL_CTX_set_max_proto_version(ctx, TLS1_2_VERSION); + method = TLSv1_2_client_method(); break; #endif case MP_TLSv1_2_OR_NEWER: @@ -99,43 +97,47 @@ int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int printf("%s\n", _("UNKNOWN - Disabling TLSv1.1 is not supported by your SSL library.")); return STATE_UNKNOWN; #else - SSL_CTX_set_min_proto_version(ctx, TLS1_2_VERSION); - break; + options |= SSL_OP_NO_TLSv1_1; #endif + /* FALLTHROUGH */ case MP_TLSv1_1_OR_NEWER: #if !defined(SSL_OP_NO_TLSv1) printf("%s\n", _("UNKNOWN - Disabling TLSv1 is not supported by your SSL library.")); return STATE_UNKNOWN; #else - SSL_CTX_set_min_proto_version(ctx, TLS1_1_VERSION); - break; + options |= SSL_OP_NO_TLSv1; #endif + /* FALLTHROUGH */ case MP_TLSv1_OR_NEWER: #if defined(SSL_OP_NO_SSLv3) - SSL_CTX_set_min_proto_version(ctx, TLS1_VERSION); - break; + options |= SSL_OP_NO_SSLv3; #endif + /* FALLTHROUGH */ case MP_SSLv3_OR_NEWER: #if defined(SSL_OP_NO_SSLv2) - SSL_CTX_set_min_proto_version(ctx, SSL3_VERSION); - break; + options |= SSL_OP_NO_SSLv2; #endif + case MP_SSLv2_OR_NEWER: + /* FALLTHROUGH */ + default: /* Default to auto negotiation */ + method = SSLv23_client_method(); + } + if (!initialized) { + /* Initialize SSL context */ + SSLeay_add_ssl_algorithms(); + SSL_load_error_strings(); + OpenSSL_add_all_algorithms(); + initialized = 1; + } + if ((c = SSL_CTX_new(method)) == NULL) { + printf("%s\n", _("CRITICAL - Cannot create SSL context.")); + return STATE_CRITICAL; } - if (cert && privkey) { + SSL_CTX_use_certificate_chain_file(c, cert); + SSL_CTX_use_PrivateKey_file(c, privkey, SSL_FILETYPE_PEM); #ifdef USE_OPENSSL - if (!SSL_CTX_use_certificate_chain_file(ctx, cert)) { -#elif USE_GNUTLS - if (!SSL_CTX_use_certificate_file(ctx, cert, SSL_FILETYPE_PEM)) { -#else -#error Unported for unknown SSL library -#endif - printf ("%s\n", _("CRITICAL - Unable to open certificate chain file!\n")); - return STATE_CRITICAL; - } - SSL_CTX_use_PrivateKey_file(ctx, privkey, SSL_FILETYPE_PEM); -#ifdef USE_OPENSSL - if (!SSL_CTX_check_private_key(ctx)) { + if (!SSL_CTX_check_private_key(c)) { printf ("%s\n", _("CRITICAL - Private key does not seem to match certificate!\n")); return STATE_CRITICAL; } @@ -144,9 +146,9 @@ int np_net_ssl_init_with_hostname_version_and_cert(int sd, char *host_name, int #ifdef SSL_OP_NO_TICKET options |= SSL_OP_NO_TICKET; #endif - SSL_CTX_set_options(ctx, options); - SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY); - if ((s = SSL_new(ctx)) != NULL) { + SSL_CTX_set_options(c, options); + SSL_CTX_set_mode(c, SSL_MODE_AUTO_RETRY); + if ((s = SSL_new(c)) != NULL) { #ifdef SSL_set_tlsext_host_name if (host_name != NULL) SSL_set_tlsext_host_name(s, host_name); @@ -173,9 +175,9 @@ void np_net_ssl_cleanup() { #endif SSL_shutdown(s); SSL_free(s); - if (ctx) { - SSL_CTX_free(ctx); - ctx=NULL; + if (c) { + SSL_CTX_free(c); + c=NULL; } s=NULL; } @@ -189,6 +191,17 @@ int np_net_ssl_read(void *buf, int num) { return SSL_read(s, buf, num); } +int np_net_ssl_check_cert(int days_till_exp_warn, int days_till_exp_crit){ +# ifdef USE_OPENSSL + X509 *certificate = NULL; + certificate=SSL_get_peer_certificate(s); + return(np_net_ssl_check_certificate(certificate, days_till_exp_warn, days_till_exp_crit)); +# else /* ifndef USE_OPENSSL */ + printf("%s\n", _("WARNING - Plugin does not support checking certificates.")); + return STATE_WARNING; +# endif /* USE_OPENSSL */ +} + int np_net_ssl_check_certificate(X509 *certificate, int days_till_exp_warn, int days_till_exp_crit){ # ifdef USE_OPENSSL X509_NAME *subj=NULL; @@ -315,16 +328,4 @@ int np_net_ssl_check_certificate(X509 *certificate, int days_till_exp_warn, int # endif /* USE_OPENSSL */ } -int np_net_ssl_check_cert(int days_till_exp_warn, int days_till_exp_crit){ -# ifdef USE_OPENSSL - X509 *certificate = NULL; - certificate=SSL_get_peer_certificate(s); - return(np_net_ssl_check_certificate(certificate, days_till_exp_warn, days_till_exp_crit)); -# else /* ifndef USE_OPENSSL */ - printf("%s\n", _("WARNING - Plugin does not support checking certificates.")); - return STATE_WARNING; -# endif /* USE_OPENSSL */ -} - - #endif /* HAVE_SSL */ diff --git a/plugins/t/check_by_ssh.t b/plugins/t/check_by_ssh.t index b6479f1..1d2939e 100644 --- a/plugins/t/check_by_ssh.t +++ b/plugins/t/check_by_ssh.t @@ -19,19 +19,19 @@ plan skip_all => "SSH_HOST and SSH_IDENTITY must be defined" unless ($ssh_servic plan tests => 42; # Some random check strings/response -my @response = ('OK: Everything is fine', +my @responce = ('OK: Everything is fine', 'WARNING: Hey, pick me, pick me', 'CRITICAL: Shit happens', 'UNKNOWN: What can I do for ya', 'WOOPS: What did I smoke', ); -my @response_re; +my @responce_re; my @check; -for (@response) { +for (@responce) { push(@check, "echo $_"); my $re_str = $_; $re_str =~ s{(.)} { "\Q$1" }ge; - push(@response_re, $re_str); + push(@responce_re, $re_str); } my $result; @@ -47,7 +47,7 @@ for (my $i=0; $i<4; $i++) { "./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[$i]; exit $i'" ); cmp_ok($result->return_code, '==', $i, "Exit with return code $i"); - is($result->output, $response[$i], "Status text is correct for check $i"); + is($result->output, $responce[$i], "Status text is correct for check $i"); } $result = NPTest->testCmd( @@ -84,7 +84,7 @@ $result = NPTest->testCmd( "./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[4]; exit 8'" ); cmp_ok($result->return_code, '==', 8, "Exit with return code 8 (out of bounds)"); -is($result->output, $response[4], "Return proper status text even with unknown status codes"); +is($result->output, $responce[4], "Return proper status text even with unknown status codes"); $result = NPTest->testCmd( "./check_by_ssh -i $ssh_key -H $ssh_service -F $ssh_conf -C 'exit 0'" @@ -108,7 +108,7 @@ my %linemap = ( foreach my $line (0, 2, 4, 6) { my $code = $linemap{$line}; my $statline = $line+1; - is($lines[$line], "$response[$code]", "multiple checks status text is correct for line $line"); + is($lines[$line], "$responce[$code]", "multiple checks status text is correct for line $line"); is($lines[$statline], "STATUS CODE: $code", "multiple check status code is correct for line $line"); } @@ -124,7 +124,7 @@ close(PASV) or die("Unable to close '/tmp/check_by_ssh.$$': $!"); cmp_ok(scalar(@pasv), '==', 1, 'One passive result for one check performed'); for (0) { if ($pasv[$_]) { - like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;serv;2;' . $response_re[2] . '$/', 'proper result for passive check'); + like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;serv;2;' . $responce_re[2] . '$/', 'proper result for passive check'); } else { fail('proper result for passive check'); } @@ -144,7 +144,7 @@ for (0, 1, 2, 3, 4) { if ($pasv[$_]) { my $ret = $_; $ret = 9 if ($_ == 4); - like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;c' . $_ . ';' . $ret . ';' . $response_re[$_] . '$/', "proper result for passive check $_"); + like($pasv[$_], '/^\[\d+\] PROCESS_SERVICE_CHECK_RESULT;flint;c' . $_ . ';' . $ret . ';' . $responce_re[$_] . '$/', "proper result for passive check $_"); } else { fail("proper result for passive check $_"); } diff --git a/plugins/t/check_curl.t b/plugins/t/check_curl.t index 7a930a4..eae98cc 100644 --- a/plugins/t/check_curl.t +++ b/plugins/t/check_curl.t @@ -205,9 +205,9 @@ SKIP: { like ( $res->output, '/time_connect=[\d\.]+/', 'Extended Performance Data Output OK' ); like ( $res->output, '/time_ssl=[\d\.]+/', 'Extended Performance Data SSL Output OK' ); - $res = NPTest->testCmd( "./$plugin -H monitoring-plugins.org -u /download.html -f follow" ); + $res = NPTest->testCmd( "./$plugin -H www.mozilla.com -u /firefox -f curl" ); is( $res->return_code, 0, "Redirection based on location is okay"); - $res = NPTest->testCmd( "./$plugin -H monitoring-plugins.org --extended-perfdata" ); + $res = NPTest->testCmd( "./$plugin -H www.mozilla.com --extended-perfdata" ); like ( $res->output, '/time_connect=[\d\.]+/', 'Extended Performance Data Output OK' ); } diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t index 9eb77ce..ec527e7 100644 --- a/plugins/t/check_disk.t +++ b/plugins/t/check_disk.t @@ -23,11 +23,11 @@ my $mountpoint2_valid = getTestParameter( "NP_MOUNTPOINT2_VALID", "Path to anoth if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { plan skip_all => "Need 2 mountpoints to test"; } else { - plan tests => 94; + plan tests => 78; } -$result = NPTest->testCmd( - "./check_disk -w 1% -c 1% -p $mountpoint_valid -w 1% -c 1% -p $mountpoint2_valid" +$result = NPTest->testCmd( + "./check_disk -w 1% -c 1% -p $mountpoint_valid -w 1% -c 1% -p $mountpoint2_valid" ); cmp_ok( $result->return_code, "==", 0, "Checking two mountpoints (must have at least 1% free in space and inodes)"); my $c = 0; @@ -44,7 +44,7 @@ my @perf_data = sort(split(/ /, $result->perf_output)); # Calculate avg_free free on mountpoint1 and mountpoint2 # because if you check in the middle, you should get different errors $_ = $result->output; -my ($free_on_mp1, $free_on_mp2) = (m/\((\d+\.\d+)%.*\((\d+\.\d+)%/); +my ($free_on_mp1, $free_on_mp2) = (m/\((\d+)%.*\((\d+)%/); die "Cannot parse output: $_" unless ($free_on_mp1 && $free_on_mp2); my $avg_free = ceil(($free_on_mp1+$free_on_mp2)/2); my ($more_free, $less_free); @@ -103,8 +103,8 @@ is ($crit_percth_data, int((1-10/100)*$total_percth_data), "Wrong critical in pe # Check when order of mount points are reversed, that perf data remains same -$result = NPTest->testCmd( - "./check_disk -w 1% -c 1% -p $mountpoint2_valid -w 1% -c 1% -p $mountpoint_valid" +$result = NPTest->testCmd( + "./check_disk -w 1% -c 1% -p $mountpoint2_valid -w 1% -c 1% -p $mountpoint_valid" ); @_ = sort(split(/ /, $result->perf_output)); is_deeply( \@perf_data, \@_, "perf data for both filesystems same when reversed"); @@ -119,12 +119,8 @@ like ( $result->only_output, qr/$more_free/, "Have disk name in text"); $result = NPTest->testCmd( "./check_disk -w 1 -c 1 -p $more_free -p $less_free" ); cmp_ok( $result->return_code, '==', 0, "At least 1 MB available on $more_free and $less_free"); - $_ = $result->output; - my ($free_mb_on_mp1, $free_mb_on_mp2) = (m/(\d+)MiB .* (\d+)MiB /g); -die "Cannot parse output: $_" unless ($free_mb_on_mp1 && $free_mb_on_mp2); - my $free_mb_on_all = $free_mb_on_mp1 + $free_mb_on_mp2; @@ -138,8 +134,8 @@ cmp_ok( $result->return_code, '==', 0, "Old syntax okay" ); $result = NPTest->testCmd( "./check_disk -w 1% -c 1% -p $more_free" ); cmp_ok( $result->return_code, "==", 0, "At least 1% free" ); -$result = NPTest->testCmd( - "./check_disk -w 1% -c 1% -p $more_free -w 100% -c 100% -p $less_free" +$result = NPTest->testCmd( + "./check_disk -w 1% -c 1% -p $more_free -w 100% -c 100% -p $less_free" ); cmp_ok( $result->return_code, "==", 2, "Get critical on less_free mountpoint $less_free" ); like( $result->output, $failureOutput, "Right output" ); @@ -155,14 +151,14 @@ $result = NPTest->testCmd( ); cmp_ok( $result->return_code, '==', 0, "Get ok on more_free mountpoint, when checking avg_free"); -$result = NPTest->testCmd( - "./check_disk -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free" +$result = NPTest->testCmd( + "./check_disk -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free" ); cmp_ok( $result->return_code, "==", 1, "Combining above two tests, get warning"); my $all_disks = $result->output; $result = NPTest->testCmd( - "./check_disk -e -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free" + "./check_disk -e -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free" ); isnt( $result->output, $all_disks, "-e gives different output"); @@ -244,7 +240,7 @@ TODO: { cmp_ok( $result->return_code, '==', 3, "Invalid command line options" ); } -$result = NPTest->testCmd( +$result = NPTest->testCmd( "./check_disk -p $mountpoint_valid -w 10% -c 15%" ); cmp_ok( $result->return_code, "==", 3, "Invalid options: -p must come after thresholds" ); @@ -315,8 +311,8 @@ $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -C -w 0% -c 0% -p $mountpoi like( $result->output, '/;.*;\|/', "-C selects partitions if -p is not given"); # grouping: exit crit if the sum of free megs on mp1+mp2 is less than warn/crit -$result = NPTest->testCmd( "./check_disk -w ". ($free_mb_on_all + 1) ." -c ". ($free_mb_on_all + 1) ." -g group -p $mountpoint_valid -p $mountpoint2_valid" ); -cmp_ok( $result->return_code, '==', 2, "grouping: exit crit if the sum of free megs on mp1+mp2 is less than warn/crit\nInstead received: " . $result->output); +$result = NPTest->testCmd( "./check_disk -w ". ($free_mb_on_all + 1) ." -c ". ($free_mb_on_all + 1) ."-g group -p $mountpoint_valid -p $mountpoint2_valid" ); +cmp_ok( $result->return_code, '==', 2, "grouping: exit crit if the sum of free megs on mp1+mp2 is less than warn/crit"); # grouping: exit warning if the sum of free megs on mp1+mp2 is between -w and -c $result = NPTest->testCmd( "./check_disk -w ". ($free_mb_on_all + 1) ." -c ". ($free_mb_on_all - 1) ." -g group -p $mountpoint_valid -p $mountpoint2_valid" ); @@ -326,23 +322,23 @@ cmp_ok( $result->return_code, '==', 1, "grouping: exit warning if the sum of fre $result = NPTest->testCmd( "./check_disk -w ". ($free_mb_on_all - 1) ." -c ". ($free_mb_on_all - 1) ." -g group -p $mountpoint_valid -p $mountpoint2_valid" ); cmp_ok( $result->return_code, '==', 0, "grouping: exit ok if the sum of free megs on mp1+mp2 is more than warn/crit"); -# grouping: exit unknown if group name is given after -p +# grouping: exit unknown if group name is given after -p $result = NPTest->testCmd( "./check_disk -w ". ($free_mb_on_all - 1) ." -c ". ($free_mb_on_all - 1) ." -p $mountpoint_valid -g group -p $mountpoint2_valid" ); cmp_ok( $result->return_code, '==', 3, "Invalid options: -p must come after groupname"); -# regex: exit unknown if given regex is not compilable +# regex: exit unknown if given regex is not compileable $result = NPTest->testCmd( "./check_disk -w 1 -c 1 -r '('" ); -cmp_ok( $result->return_code, '==', 3, "Exit UNKNOWN if regex is not compilable"); +cmp_ok( $result->return_code, '==', 3, "Exit UNKNOWN if regex is not compileable"); -# ignore: exit unknown, if all paths are deselected using -i +# ignore: exit unknown, if all pathes are deselected using -i $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p $mountpoint_valid -p $mountpoint2_valid -i '$mountpoint_valid' -i '$mountpoint2_valid'" ); cmp_ok( $result->return_code, '==', 3, "ignore-ereg: Unknown if all fs are ignored (case sensitive)"); -# ignore: exit unknown, if all paths are deselected using -I +# ignore: exit unknown, if all pathes are deselected using -I $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p $mountpoint_valid -p $mountpoint2_valid -I '".uc($mountpoint_valid)."' -I '".uc($mountpoint2_valid)."'" ); cmp_ok( $result->return_code, '==', 3, "ignore-ereg: Unknown if all fs are ignored (case insensitive)"); -# ignore: exit unknown, if all paths are deselected using -i +# ignore: exit unknown, if all pathes are deselected using -i $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p $mountpoint_valid -p $mountpoint2_valid -i '.*'" ); cmp_ok( $result->return_code, '==', 3, "ignore-ereg: Unknown if all fs are ignored using -i '.*'"); @@ -351,47 +347,7 @@ $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p $mountpoint_valid -p $mo like( $result->output, qr/$mountpoint_valid/, "output data does have $mountpoint_valid in it"); unlike( $result->output, qr/$mountpoint2_valid/, "output data does not have $mountpoint2_valid in it"); -# ignore: test if all paths are listed when ignore regex doesn't match +# ignore: test if all pathes are listed when ignore regex doesn't match $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p $mountpoint_valid -p $mountpoint2_valid -i '^barbazJodsf\$'"); like( $result->output, qr/$mountpoint_valid/, "ignore: output data does have $mountpoint_valid when regex doesn't match"); like( $result->output, qr/$mountpoint2_valid/,"ignore: output data does have $mountpoint2_valid when regex doesn't match"); - -# ignore-missing: exit okay, when fs is not accessible -$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p /bob"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for not existing filesystem /bob"); -like( $result->output, '/^DISK OK - No disks were found for provided parameters - ignored paths: /bob;.*$/', 'Output OK'); - -# ignore-missing: exit okay, when regex does not match -$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r /bob"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); -like( $result->output, '/^DISK OK - No disks were found for provided parameters.*$/', 'Output OK'); - -# ignore-missing: exit okay, when fs with exact match (-E) is not found -$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -E -p /etc"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay when exact match does not find fs"); -like( $result->output, '/^DISK OK - No disks were found for provided parameters - ignored paths: /etc;.*$/', 'Output OK'); - -# ignore-missing: exit okay, when checking one existing fs and one non-existing fs (regex) -$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -r '/bob' -r '^/\$'"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); -like( $result->output, '/^DISK OK - free space: \/ .*$/', 'Output OK'); - -# ignore-missing: exit okay, when checking one existing fs and one non-existing fs (path) -$result = NPTest->testCmd( "./check_disk --ignore-missing -w 0% -c 0% -p '/bob' -p '/'"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); -like( $result->output, '/^DISK OK - free space: / .*; - ignored paths: /bob;.*$/', 'Output OK'); - -# ignore-missing: exit okay, when checking one non-existing fs (path) and one ignored -$result = NPTest->testCmd( "./check_disk -n -w 0% -c 0% -r /dummy -i /dummy2"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); -like( $result->output, '/^DISK OK - No disks were found for provided parameters\|$/', 'Output OK'); - -# ignore-missing: exit okay, when regex match does not find anything -$result = NPTest->testCmd( "./check_disk -n -e -l -w 10% -c 5% -W 10% -K 5% -r /dummy"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); -like( $result->output, '/^DISK OK\|$/', 'Output OK'); - -# ignore-missing: exit okay, when regex match does not find anything -$result = NPTest->testCmd( "./check_disk -n -l -w 10% -c 5% -W 10% -K 5% -r /dummy"); -cmp_ok( $result->return_code, '==', 0, "ignore-missing: return okay for regular expression not matching"); -like( $result->output, '/^DISK OK - No disks were found for provided parameters\|$/', 'Output OK'); diff --git a/plugins/t/check_http.t b/plugins/t/check_http.t index 6ab4a5b..1ca52f6 100644 --- a/plugins/t/check_http.t +++ b/plugins/t/check_http.t @@ -166,10 +166,10 @@ SKIP: { like ( $res->output, '/time_connect=[\d\.]+/', 'Extended Performance Data Output OK' ); like ( $res->output, '/time_ssl=[\d\.]+/', 'Extended Performance Data SSL Output OK' ); - $res = NPTest->testCmd( "./$plugin -H monitoring-plugins.org -u /download.html -f follow" ); + $res = NPTest->testCmd( "./$plugin -H www.mozilla.com -u /firefox -f follow" ); is( $res->return_code, 0, "Redirection based on location is okay"); - $res = NPTest->testCmd( "./$plugin -H monitoring-plugins.org --extended-perfdata" ); + $res = NPTest->testCmd( "./$plugin -H www.mozilla.com --extended-perfdata" ); like ( $res->output, '/time_connect=[\d\.]+/', 'Extended Performance Data Output OK' ); } @@ -178,13 +178,13 @@ SKIP: { $res = NPTest->testCmd( "./$plugin -I $host_tcp_proxy -p $port_tcp_proxy -u http://$host_tcp_http -e 200,301,302"); is( $res->return_code, 0, "Proxy HTTP works"); - like($res->output, qr/OK: Status line output matched/, "Proxy HTTP Output is sufficient"); + like($res->output, qr/OK: Status line output matched/, "Proxy HTTP Output is sufficent"); $res = NPTest->testCmd( "./$plugin -I $host_tcp_proxy -p $port_tcp_proxy -H $host_tls_http -S -j CONNECT"); is( $res->return_code, 0, "Proxy HTTP CONNECT works"); - like($res->output, qr/HTTP OK:/, "Proxy HTTP CONNECT output sufficient"); + like($res->output, qr/HTTP OK:/, "Proxy HTTP CONNECT output sufficent"); $res = NPTest->testCmd( "./$plugin -I $host_tcp_proxy -p $port_tcp_proxy -H $host_tls_http -S -j CONNECT:HEAD"); is( $res->return_code, 0, "Proxy HTTP CONNECT works with override method"); - like($res->output, qr/HTTP OK:/, "Proxy HTTP CONNECT output sufficient"); + like($res->output, qr/HTTP OK:/, "Proxy HTTP CONNECT output sufficent"); } diff --git a/plugins/t/check_imap.t b/plugins/t/check_imap.t index cf2f81c..7c74e56 100644 --- a/plugins/t/check_imap.t +++ b/plugins/t/check_imap.t @@ -25,7 +25,7 @@ $t = NPTest->testCmd( "./check_imap $host_tcp_imap -p 143 -wt 9 -ct 9 -to 10 -e cmp_ok( $t->return_code, '==', 0, "Check old parameter options" ); $t = NPTest->testCmd( "./check_imap $host_nonresponsive" ); -cmp_ok( $t->return_code, '==', 2, "Get error with non responsive host" ); +cmp_ok( $t->return_code, '==', 2, "Get error with non reponsive host" ); $t = NPTest->testCmd( "./check_imap $hostname_invalid" ); cmp_ok( $t->return_code, '==', 2, "Invalid hostname" ); diff --git a/plugins/t/check_mysql.t b/plugins/t/check_mysql.t index baf3acc..e426bf5 100644 --- a/plugins/t/check_mysql.t +++ b/plugins/t/check_mysql.t @@ -5,7 +5,7 @@ # # # These are the database permissions required for this test: -# GRANT SELECT ON $db.* TO $user@$host IDENTIFIED BY '$password'; +# GRANT SELECT ON $db.* TO $user@$host INDENTIFIED BY '$password'; # GRANT SUPER, REPLICATION CLIENT ON *.* TO $user@$host; # Check with: # mysql -u$user -p$password -h$host $db @@ -23,9 +23,9 @@ plan tests => 15; my $bad_login_output = '/Access denied for user /'; my $mysqlserver = getTestParameter("NP_MYSQL_SERVER", "A MySQL Server hostname or IP with no slaves setup"); my $mysqlsocket = getTestParameter("NP_MYSQL_SOCKET", "Full path to a MySQL Server socket with no slaves setup"); -my $mysql_login_details = getTestParameter("NP_MYSQL_LOGIN_DETAILS", "Command line parameters to specify login access (requires REPLICATION CLIENT privileges)", "-u test -ptest"); +my $mysql_login_details = getTestParameter("NP_MYSQL_LOGIN_DETAILS", "Command line parameters to specify login access (requires REPLICATION CLIENT privleges)", "-u test -ptest"); my $with_slave = getTestParameter("NP_MYSQL_WITH_SLAVE", "MySQL server with slaves setup"); -my $with_slave_login = getTestParameter("NP_MYSQL_WITH_SLAVE_LOGIN", "Login details for server with slave (requires REPLICATION CLIENT privileges)", $mysql_login_details || "-u test -ptest"); +my $with_slave_login = getTestParameter("NP_MYSQL_WITH_SLAVE_LOGIN", "Login details for server with slave (requires REPLICATION CLIENT privleges)", $mysql_login_details || "-u test -ptest"); my $result; diff --git a/plugins/t/check_mysql_query.t b/plugins/t/check_mysql_query.t index c30245b..96899ac 100644 --- a/plugins/t/check_mysql_query.t +++ b/plugins/t/check_mysql_query.t @@ -31,7 +31,7 @@ $result = NPTest->testCmd("./check_mysql_query -q 'SELECT 1+1' -H $mysqlserver $ cmp_ok( $result->return_code, '==', 0, "Can run query"); $result = NPTest->testCmd("./check_mysql_query -H $mysqlserver $mysql_login_details"); -cmp_ok( $result->return_code, '==', 3, "Missing query parameter"); +cmp_ok( $result->return_code, '==', 3, "Missing query parmeter"); like( $result->output, "/Must specify a SQL query to run/", "Missing query error message"); $result = NPTest->testCmd("./check_mysql_query -q 'SELECT 1+1' -H $mysqlserver -u dummy -d mysql"); diff --git a/plugins/t/check_nagios.t b/plugins/t/check_nagios.t index f38f5e9..81fc24d 100644 --- a/plugins/t/check_nagios.t +++ b/plugins/t/check_nagios.t @@ -36,7 +36,7 @@ cmp_ok( $result->return_code, '==', 1, "Log over 5 minutes old" ); like ( $result->output, $warningOutput, "Output for warning correct" ); my $now = time; -# This substitution is dependent on the testcase +# This substitution is dependant on the testcase system( "perl -pe 's/1133537544/$now/' $nagios1 > $nagios1.tmp" ) == 0 or die "Problem with munging $nagios1"; $result = NPTest->testCmd( diff --git a/plugins/t/check_smtp.t b/plugins/t/check_smtp.t index 1a1ebe3..aa6dae4 100644 --- a/plugins/t/check_smtp.t +++ b/plugins/t/check_smtp.t @@ -8,14 +8,12 @@ use strict; use Test::More; use NPTest; -my $host_tcp_smtp = getTestParameter( "NP_HOST_TCP_SMTP", +my $host_tcp_smtp = getTestParameter( "NP_HOST_TCP_SMTP", "A host providing an SMTP Service (a mail server)", "mailhost"); -my $host_tcp_smtp_starttls = getTestParameter( "NP_HOST_TCP_SMTP_STARTTLS", - "A host providing SMTP with STARTTLS", $host_tcp_smtp); -my $host_tcp_smtp_nostarttls = getTestParameter( "NP_HOST_TCP_SMTP_NOSTARTTLS", - "A host providing SMTP without STARTTLS", ""); -my $host_tcp_smtp_tls = getTestParameter( "NP_HOST_TCP_SMTP_TLS", +my $host_tcp_smtp_tls = getTestParameter( "NP_HOST_TCP_SMTP_TLS", "A host providing SMTP with TLS", $host_tcp_smtp); +my $host_tcp_smtp_notls = getTestParameter( "NP_HOST_TCP_SMTP_NOTLS", + "A host providing SMTP without TLS", ""); my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1" ); @@ -24,7 +22,7 @@ my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost" ); my $res; -plan tests => 16; +plan tests => 10; SKIP: { skip "No SMTP server defined", 4 unless $host_tcp_smtp; @@ -44,36 +42,20 @@ SKIP: { local $TODO = "Output is over two lines"; like ( $res->output, qr/^SMTP WARNING/, "Correct error message" ); } - - $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp --ssl -p 25" ); - is ($res->return_code, 2, "Check rc of connecting to $host_tcp_smtp with TLS on standard SMTP port" ); - like ($res->output, qr/^CRITICAL - Cannot make SSL connection\./, "Check output of connecting to $host_tcp_smtp with TLS on standard SMTP port"); -} - -SKIP: { - skip "No SMTP server with STARTTLS defined", 1 unless $host_tcp_smtp_starttls; - # SSL connection for STARTTLS - $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_starttls -p 25 -S" ); - is ($res->return_code, 0, "OK, with STARTTLS" ); -} - -SKIP: { - skip "No SMTP server without STARTTLS defined", 2 unless $host_tcp_smtp_nostarttls; - $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_nostarttls -p 25 -S" ); - is ($res->return_code, 1, "OK, got warning from server without STARTTLS"); - is ($res->output, "WARNING - TLS not supported by server", "Right error message" ); } SKIP: { skip "No SMTP server with TLS defined", 1 unless $host_tcp_smtp_tls; - $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_tls --ssl" ); - is ($res->return_code, 0, "Check rc of connecting to $host_tcp_smtp_tls with TLS" ); - like ($res->output, qr/^SMTP OK - /, "Check output of connecting to $host_tcp_smtp_tls with TLS" ); + # SSL connection for TLS + $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_tls -p 25 -S" ); + is ($res->return_code, 0, "OK, with STARTTLS" ); +} - my $unused_port = 4465; - $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_tls -p $unused_port --ssl" ); - is ($res->return_code, 2, "Check rc of connecting to $host_tcp_smtp_tls with TLS on unused port $unused_port" ); - like ($res->output, qr/^connect to address $host_tcp_smtp_tls and port $unused_port: Connection refused/, "Check output of connecting to $host_tcp_smtp_tls with TLS on unused port $unused_port"); +SKIP: { + skip "No SMTP server without TLS defined", 2 unless $host_tcp_smtp_notls; + $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_notls -p 25 -S" ); + is ($res->return_code, 1, "OK, got warning from server without TLS"); + is ($res->output, "WARNING - TLS not supported by server", "Right error message" ); } $res = NPTest->testCmd( "./check_smtp $host_nonresponsive" ); diff --git a/plugins/t/check_snmp.t b/plugins/t/check_snmp.t index 576cc50..f2f218f 100644 --- a/plugins/t/check_snmp.t +++ b/plugins/t/check_snmp.t @@ -26,22 +26,22 @@ $res = NPTest->testCmd( "./check_snmp -t 1" ); is( $res->return_code, 3, "No host name" ); is( $res->output, "No host specified" ); -$res = NPTest->testCmd( "./check_snmp -H fakehostname --ignore-mib-parsing-errors" ); +$res = NPTest->testCmd( "./check_snmp -H fakehostname" ); is( $res->return_code, 3, "No OIDs specified" ); is( $res->output, "No OIDs specified" ); -$res = NPTest->testCmd( "./check_snmp -H fakehost --ignore-mib-parsing-errors -o oids -P 3 -U not_a_user --seclevel=rubbish" ); +$res = NPTest->testCmd( "./check_snmp -H fakehost -o oids -P 3 -U not_a_user --seclevel=rubbish" ); is( $res->return_code, 3, "Invalid seclevel" ); like( $res->output, "/check_snmp: Invalid seclevel - rubbish/" ); -$res = NPTest->testCmd( "./check_snmp -H fakehost --ignore-mib-parsing-errors -o oids -P 3c" ); +$res = NPTest->testCmd( "./check_snmp -H fakehost -o oids -P 3c" ); is( $res->return_code, 3, "Invalid protocol" ); like( $res->output, "/check_snmp: Invalid SNMP version - 3c/" ); SKIP: { skip "no snmp host defined", 50 if ( ! $host_snmp ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -w 1: -c 1:"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -w 1: -c 1:"); cmp_ok( $res->return_code, '==', 0, "Exit OK when querying uptime" ); like($res->output, '/^SNMP OK - (\d+)/', "String contains SNMP OK"); $res->output =~ /^SNMP OK - (\d+)/; @@ -51,111 +51,111 @@ SKIP: { # some more threshold tests - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -c 1"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c 1"); cmp_ok( $res->return_code, '==', 2, "Threshold test -c 1" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -c 1:"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c 1:"); cmp_ok( $res->return_code, '==', 0, "Threshold test -c 1:" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -c ~:1"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c ~:1"); cmp_ok( $res->return_code, '==', 2, "Threshold test -c ~:1" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -c 1:10"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c 1:10"); cmp_ok( $res->return_code, '==', 2, "Threshold test -c 1:10" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -c \@1:10"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c \@1:10"); cmp_ok( $res->return_code, '==', 0, "Threshold test -c \@1:10" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -c 10:1"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c 10:1"); cmp_ok( $res->return_code, '==', 0, "Threshold test -c 10:1" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o .1.3.6.1.2.1.1.3.0 -w 1: -c 1:"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o .1.3.6.1.2.1.1.3.0 -w 1: -c 1:"); cmp_ok( $res->return_code, '==', 0, "Test with numeric OID (no mibs loaded)" ); like($res->output, '/^SNMP OK - \d+/', "String contains SNMP OK"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysDescr.0"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysDescr.0"); cmp_ok( $res->return_code, '==', 0, "Exit OK when querying sysDescr" ); unlike($res->perf_output, '/sysDescr/', "Perfdata doesn't contain string values"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysDescr.0,system.sysDescr.0"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysDescr.0,system.sysDescr.0"); cmp_ok( $res->return_code, '==', 0, "Exit OK when querying two string OIDs, comma-separated" ); like($res->output, '/^SNMP OK - /', "String contains SNMP OK"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysDescr.0 -o system.sysDescr.0"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysDescr.0 -o system.sysDescr.0"); cmp_ok( $res->return_code, '==', 0, "Exit OK when querying two string OIDs, repeated option" ); like($res->output, '/^SNMP OK - /', "String contains SNMP OK"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w 1:1 -c 1:1"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w 1:1 -c 1:1"); cmp_ok( $res->return_code, '==', 0, "Exit OK when querying hrSWRunIndex.1" ); like($res->output, '/^SNMP OK - 1\s.*$/', "String fits SNMP OK and output format"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w 0 -c 1:"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w 0 -c 1:"); cmp_ok( $res->return_code, '==', 1, "Exit WARNING when querying hrSWRunIndex.1 and warn-th doesn't apply " ); like($res->output, '/^SNMP WARNING - \*1\*\s.*$/', "String matches SNMP WARNING and output format"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w :0 -c 0"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w :0 -c 0"); cmp_ok( $res->return_code, '==', 2, "Exit CRITICAL when querying hrSWRunIndex.1 and crit-th doesn't apply" ); like($res->output, '/^SNMP CRITICAL - \*1\*\s.*$/', "String matches SNMP CRITICAL and output format"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o ifIndex.2,ifIndex.1 -w 1:2 -c 1:2"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o ifIndex.2,ifIndex.1 -w 1:2 -c 1:2"); cmp_ok( $res->return_code, '==', 0, "Checking two OIDs at once" ); like($res->output, "/^SNMP OK - 2 1/", "Got two values back" ); like( $res->perf_output, "/ifIndex.2=2/", "Got 1st perf data" ); like( $res->perf_output, "/ifIndex.1=1/", "Got 2nd perf data" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o ifIndex.2,ifIndex.1 -w 1:2,1:2 -c 2:2,2:2"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o ifIndex.2,ifIndex.1 -w 1:2,1:2 -c 2:2,2:2"); cmp_ok( $res->return_code, '==', 2, "Checking critical threshold is passed if any one value crosses" ); like($res->output, "/^SNMP CRITICAL - 2 *1*/", "Got two values back" ); like( $res->perf_output, "/ifIndex.2=2/", "Got 1st perf data" ); like( $res->perf_output, "/ifIndex.1=1/", "Got 2nd perf data" ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrStorage.hrMemorySize.0,host.hrSystem.hrSystemProcesses.0 -w 1:,1: -c 1:,1:"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrStorage.hrMemorySize.0,host.hrSystem.hrSystemProcesses.0 -w 1:,1: -c 1:,1:"); cmp_ok( $res->return_code, '==', 0, "Exit OK when querying hrMemorySize and hrSystemProcesses"); like($res->output, '/^SNMP OK - \d+ \d+/', "String contains hrMemorySize and hrSystemProcesses"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w \@:0 -c \@0"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w \@:0 -c \@0"); cmp_ok( $res->return_code, '==', 0, "Exit OK with inside-range thresholds"); like($res->output, '/^SNMP OK - 1\s.*$/', "String matches SNMP OK and output format"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o enterprises.ucdavis.laTable.laEntry.laLoad.3"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o enterprises.ucdavis.laTable.laEntry.laLoad.3"); $res->output =~ m/^SNMP OK - (\d+\.\d{2})\s.*$/; my $lower = $1 - 0.05; my $higher = $1 + 0.05; - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o enterprises.ucdavis.laTable.laEntry.laLoad.3 -w $lower -c $higher"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o enterprises.ucdavis.laTable.laEntry.laLoad.3 -w $lower -c $higher"); cmp_ok( $res->return_code, '==', 1, "Exit WARNING with fractionnal arguments"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0,host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w ,:0 -c ,:2"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0,host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w ,:0 -c ,:2"); cmp_ok( $res->return_code, '==', 1, "Exit WARNING on 2nd threshold"); like($res->output, '/^SNMP WARNING - Timeticks:\s\(\d+\)\s+(?:\d+ days?,\s+)?\d+:\d+:\d+\.\d+\s+\*1\*\s.*$/', "First OID returned as string, 2nd checked for thresholds"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w '' -c ''"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w '' -c ''"); cmp_ok( $res->return_code, '==', 0, "Empty thresholds doesn't crash"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrStorage.hrMemorySize.0,host.hrSystem.hrSystemProcesses.0 -w ,,1 -c ,,2"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrStorage.hrMemorySize.0,host.hrSystem.hrSystemProcesses.0 -w ,,1 -c ,,2"); cmp_ok( $res->return_code, '==', 0, "Skipping first two thresholds on 2 OID check"); like($res->output, '/^SNMP OK - \d+ \w+ \d+\s.*$/', "Skipping first two thresholds, result printed rather than parsed"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o host.hrStorage.hrMemorySize.0,host.hrSystem.hrSystemProcesses.0 -w ,, -c ,,"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrStorage.hrMemorySize.0,host.hrSystem.hrSystemProcesses.0 -w ,, -c ,,"); cmp_ok( $res->return_code, '==', 0, "Skipping all thresholds"); like($res->output, '/^SNMP OK - \d+ \w+ \d+\s.*$/', "Skipping all thresholds, result printed rather than parsed"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0 -c 1000000000000: -u '1/100 sec'"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c 1000000000000: -u '1/100 sec'"); cmp_ok( $res->return_code, '==', 2, "Timetick used as a threshold"); like($res->output, '/^SNMP CRITICAL - \*\d+\* 1\/100 sec.*$/', "Timetick used as a threshold, parsed as numeric"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o system.sysUpTime.0"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0"); cmp_ok( $res->return_code, '==', 0, "Timetick used as a string"); like($res->output, '/^SNMP OK - Timeticks:\s\(\d+\)\s+(?:\d+ days?,\s+)?\d+:\d+:\d+\.\d+\s.*$/', "Timetick used as a string, result printed rather than parsed"); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -C $snmp_community -o HOST-RESOURCES-MIB::hrSWRunName.1"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o HOST-RESOURCES-MIB::hrSWRunName.1"); cmp_ok( $res->return_code, '==', 0, "snmp response without datatype"); like( $res->output, '/^SNMP OK - "(systemd|init)" \| $/', "snmp response without datatype" ); } SKIP: { skip "no SNMP user defined", 1 if ( ! $user_snmp ); - $res = NPTest->testCmd( "./check_snmp -H $host_snmp --ignore-mib-parsing-errors -o HOST-RESOURCES-MIB::hrSystemUptime.0 -P 3 -U $user_snmp -L noAuthNoPriv"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -o HOST-RESOURCES-MIB::hrSystemUptime.0 -P 3 -U $user_snmp -L noAuthNoPriv"); like( $res->output, '/^SNMP OK - Timeticks:\s\(\d+\)\s+(?:\d+ days?,\s+)?\d+:\d+:\d+\.\d+\s.*$/', "noAuthNoPriv security level works properly" ); } @@ -163,14 +163,14 @@ SKIP: { # the tests can run on hosts w/o snmp host/community in NPTest.cache. Execution will fail anyway SKIP: { skip "no non responsive host defined", 2 if ( ! $host_nonresponsive ); - $res = NPTest->testCmd( "./check_snmp -H $host_nonresponsive --ignore-mib-parsing-errors -C np_foobar -o system.sysUpTime.0 -w 1: -c 1:"); + $res = NPTest->testCmd( "./check_snmp -H $host_nonresponsive -C np_foobar -o system.sysUpTime.0 -w 1: -c 1:"); cmp_ok( $res->return_code, '==', 2, "Exit CRITICAL with non responsive host" ); like($res->output, '/Plugin timed out while executing system call/', "String matches timeout problem"); } SKIP: { skip "no non invalid host defined", 2 if ( ! $hostname_invalid ); - $res = NPTest->testCmd( "./check_snmp -H $hostname_invalid --ignore-mib-parsing-errors -C np_foobar -o system.sysUpTime.0 -w 1: -c 1:"); + $res = NPTest->testCmd( "./check_snmp -H $hostname_invalid -C np_foobar -o system.sysUpTime.0 -w 1: -c 1:"); cmp_ok( $res->return_code, '==', 3, "Exit UNKNOWN with non responsive host" ); - like($res->output, '/External command error: .*(nosuchhost|Name or service not known|Unknown host).*/s', "String matches invalid host"); + like($res->output, '/External command error: .*(nosuchhost|Name or service not known|Unknown host)/', "String matches invalid host"); } diff --git a/plugins/t/check_ssh.t b/plugins/t/check_ssh.t index 907d33a..a5cd23c 100644 --- a/plugins/t/check_ssh.t +++ b/plugins/t/check_ssh.t @@ -8,116 +8,34 @@ use strict; use Test::More; use NPTest; -my $res; - # Required parameters -my $ssh_host = getTestParameter("NP_SSH_HOST", - "A host providing SSH service", - "localhost"); - -my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", - "The hostname of system not responsive to network requests", - "10.0.0.1" ); - -my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", - "An invalid (not known to DNS) hostname", - "nosuchhost" ); +my $ssh_host = getTestParameter("NP_SSH_HOST", "A host providing SSH service", "localhost"); +my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1" ); +my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost" ); -plan tests => 14 + 6; - -SKIP: { - skip "SSH_HOST must be defined", 6 unless $ssh_host; - my $result = NPTest->testCmd( - "./check_ssh -H $ssh_host" - ); - cmp_ok($result->return_code, '==', 0, "Exit with return code 0 (OK)"); - like($result->output, '/^SSH OK - /', "Status text if command returned none (OK)"); +plan skip_all => "SSH_HOST must be defined" unless $ssh_host; +plan tests => 6; - $result = NPTest->testCmd( - "./check_ssh -H $host_nonresponsive -t 2" - ); - cmp_ok($result->return_code, '==', 2, "Exit with return code 0 (OK)"); - like($result->output, '/^CRITICAL - Socket timeout after 2 seconds/', "Status text if command returned none (OK)"); +my $result = NPTest->testCmd( + "./check_ssh -H $ssh_host" + ); +cmp_ok($result->return_code, '==', 0, "Exit with return code 0 (OK)"); +like($result->output, '/^SSH OK - /', "Status text if command returned none (OK)"); + + +$result = NPTest->testCmd( + "./check_ssh -H $host_nonresponsive -t 2" + ); +cmp_ok($result->return_code, '==', 2, "Exit with return code 0 (OK)"); +like($result->output, '/^CRITICAL - Socket timeout after 2 seconds/', "Status text if command returned none (OK)"); - $result = NPTest->testCmd( - "./check_ssh -H $hostname_invalid -t 2" - ); - cmp_ok($result->return_code, '==', 3, "Exit with return code 0 (OK)"); - like($result->output, '/^check_ssh: Invalid hostname/', "Status text if command returned none (OK)"); +$result = NPTest->testCmd( + "./check_ssh -H $hostname_invalid -t 2" + ); +cmp_ok($result->return_code, '==', 3, "Exit with return code 0 (OK)"); +like($result->output, '/^check_ssh: Invalid hostname/', "Status text if command returned none (OK)"); - -} -SKIP: { - - skip "No netcat available", 14 unless (system("which nc > /dev/null") == 0); - - # netcat on linux (on debian) will just keep the socket open if not advised otherwise - # therefore we add -q to close it after two seconds after receiving the EOF from input - my $nc_flags = "-l 5003 -N"; - #A valid protocol version control string has the form - # SSH-protoversion-softwareversion SP comments CR LF - # - # where `comments` is optional, protoversion is the SSH protocol version and - # softwareversion is an arbitrary string representing the server software version - open(NC, "echo 'SSH-2.0-nagiosplug.ssh.0.1' | nc ${nc_flags}|"); - sleep 0.1; - $res = NPTest->testCmd( "./check_ssh -H localhost -p 5003" ); - cmp_ok( $res->return_code, '==', 0, "Got SSH protocol version control string"); - like( $res->output, '/^SSH OK - nagiosplug.ssh.0.1 \(protocol 2.0\)/', "Output OK"); - close NC; - - open(NC, "echo 'SSH-2.0-3.2.9.1' | nc ${nc_flags}|"); - sleep 0.1; - $res = NPTest->testCmd( "./check_ssh -H localhost -p 5003" ); - cmp_ok( $res->return_code, "==", 0, "Got SSH protocol version control string with non-alpha softwareversion string"); - like( $res->output, '/^SSH OK - 3.2.9.1 \(protocol 2.0\)/', "Output OK for non-alpha softwareversion string"); - close NC; - - open(NC, "echo 'SSH-2.0-nagiosplug.ssh.0.1 this is a comment' | nc ${nc_flags} |"); - sleep 0.1; - $res = NPTest->testCmd( "./check_ssh -H localhost -p 5003 -r nagiosplug.ssh.0.1" ); - cmp_ok( $res->return_code, '==', 0, "Got SSH protocol version control string, and parsed comment appropriately"); - like( $res->output, '/^SSH OK - nagiosplug.ssh.0.1 \(protocol 2.0\)/', "Output OK"); - close NC; - - open(NC, "echo 'SSH-' | nc ${nc_flags}|"); - sleep 0.1; - $res = NPTest->testCmd( "./check_ssh -H localhost -p 5003" ); - cmp_ok( $res->return_code, '==', 2, "Got invalid SSH protocol version control string"); - like( $res->output, '/^SSH CRITICAL/', "Output OK"); - close NC; - - open(NC, "echo '' | nc ${nc_flags}|"); - sleep 0.1; - $res = NPTest->testCmd( "./check_ssh -H localhost -p 5003" ); - cmp_ok( $res->return_code, '==', 2, "No version control string received"); - like( $res->output, '/^SSH CRITICAL - No version control string received/', "Output OK"); - close NC; - - open(NC, "echo 'Not a version control string' | nc ${nc_flags}|"); - sleep 0.1; - $res = NPTest->testCmd( "./check_ssh -H localhost -p 5003" ); - cmp_ok( $res->return_code, '==', 2, "No version control string received"); - like( $res->output, '/^SSH CRITICAL - No version control string received/', "Output OK"); - close NC; - - - #RFC 4253 permits servers to send any number of data lines prior to sending the protocol version control string - open(NC, "{ echo 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'; sleep 0.5; - echo 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB'; sleep 0.5; - echo 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'; sleep 0.2; - echo 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD'; sleep 0.3; - printf 'EEEEEEEEEEEEEEEEEE'; sleep 0.2; - printf 'EEEEEEEEEEEEEEEEEE\n'; sleep 0.2; - echo 'Some\nPrepended\nData\nLines\n'; sleep 0.2; - echo 'SSH-2.0-nagiosplug.ssh.0.2';} | nc ${nc_flags}|"); - sleep 0.1; - $res = NPTest->testCmd( "./check_ssh -H localhost -p 5003" ); - cmp_ok( $res->return_code, '==', 0, "Got delayed SSH protocol version control string"); - like( $res->output, '/^SSH OK - nagiosplug.ssh.0.2 \(protocol 2.0\)/', "Output OK"); - close NC; -} diff --git a/plugins/t/check_swap.t b/plugins/t/check_swap.t index 1878038..de9e0f0 100644 --- a/plugins/t/check_swap.t +++ b/plugins/t/check_swap.t @@ -5,7 +5,7 @@ # use strict; -use Test::More tests => 14; +use Test::More tests => 8; use NPTest; my $successOutput = '/^SWAP OK - [0-9]+\% free \([0-9]+MB out of [0-9]+MB\)/'; @@ -14,10 +14,6 @@ my $warnOutput = '/^SWAP WARNING - [0-9]+\% free \([0-9]+MB out of [0-9]+MB\) my $result; -$result = NPTest->testCmd( "./check_swap" ); # Always OK -cmp_ok( $result->return_code, "==", 0, "Always OK" ); -like( $result->output, $successOutput, "Right output" ); - $result = NPTest->testCmd( "./check_swap -w 1048576 -c 1048576" ); # 1 MB free cmp_ok( $result->return_code, "==", 0, "At least 1MB free" ); like( $result->output, $successOutput, "Right output" ); @@ -33,11 +29,3 @@ like( $result->output, $failureOutput, "Right output" ); $result = NPTest->testCmd( "./check_swap -w 100% -c 1%" ); # 100% (always warn) cmp_ok( $result->return_code, "==", 1, 'Get warning because not 100% free' ); like( $result->output, $warnOutput, "Right output" ); - -$result = NPTest->testCmd( "./check_swap -w 100%" ); # 100% (single threshold, always warn) -cmp_ok( $result->return_code, "==", 1, 'Get warning because not 100% free' ); -like( $result->output, $warnOutput, "Right output" ); - -$result = NPTest->testCmd( "./check_swap -c 100%" ); # 100% (single threshold, always critical) -cmp_ok( $result->return_code, "==", 2, 'Get critical because not 100% free' ); -like( $result->output, $failureOutput, "Right output" ); diff --git a/plugins/t/check_users.t b/plugins/t/check_users.t index 21c3e53..088f3b5 100644 --- a/plugins/t/check_users.t +++ b/plugins/t/check_users.t @@ -2,7 +2,7 @@ # # Logged in Users Tests via check_users # -# Trick: This check requires at least 1 user logged in. These commands should +# Trick: This ckeck requires at least 1 user logged in. These commands should # leave a session open forever in the background: # # $ ssh -tt localhost /dev/null 2>/dev/null & @@ -13,11 +13,10 @@ use Test; use NPTest; use vars qw($tests); -BEGIN {$tests = 12; plan tests => $tests} +BEGIN {$tests = 8; plan tests => $tests} my $successOutput = '/^USERS OK - [0-9]+ users currently logged in/'; my $failureOutput = '/^USERS CRITICAL - [0-9]+ users currently logged in/'; -my $wrongOptionOutput = '/Usage:/'; my $t; @@ -25,8 +24,6 @@ $t += checkCmd( "./check_users 1000 1000", 0, $successOutput ); $t += checkCmd( "./check_users 0 0", 2, $failureOutput ); $t += checkCmd( "./check_users -w 0:1000 -c 0:1000", 0, $successOutput ); $t += checkCmd( "./check_users -w 0:0 -c 0:0", 2, $failureOutput ); -$t += checkCmd( "./check_users -w 0:1000", 3, $wrongOptionOutput); -$t += checkCmd( "./check_users", 3, $wrongOptionOutput); exit(0) if defined($Test::Harness::VERSION); exit($tests - $t); diff --git a/plugins/t/negate.t b/plugins/t/negate.t index 5ec1c84..d96a109 100644 --- a/plugins/t/negate.t +++ b/plugins/t/negate.t @@ -84,7 +84,7 @@ foreach my $current_state (keys(%state)) { foreach my $new_state (keys(%state)) { $res = NPTest->testCmd( "./negate -s --$current_state=$new_state ./check_dummy ".$state{$current_state}." 'Fake $new_state'" ); is( $res->return_code, $state{$new_state}, "Got fake $new_state (with substitute)" ); - is( $res->output, uc($new_state).": Fake $new_state", "Substituted fake $new_state output"); + is( $res->output, uc($new_state).": Fake $new_state", "Substitued fake $new_state output"); } } diff --git a/plugins/tests/check_curl.t b/plugins/tests/check_curl.t index 3c91483..72f2b7c 100755 --- a/plugins/tests/check_curl.t +++ b/plugins/tests/check_curl.t @@ -9,7 +9,7 @@ # Country Name (2 letter code) [AU]:DE # State or Province Name (full name) [Some-State]:Bavaria # Locality Name (eg, city) []:Munich -# Organization Name (eg, company) [Internet Widgets Pty Ltd]:Monitoring Plugins +# Organization Name (eg, company) [Internet Widgits Pty Ltd]:Monitoring Plugins # Organizational Unit Name (eg, section) []: # Common Name (e.g. server FQDN or YOUR name) []:Monitoring Plugins # Email Address []:devel@monitoring-plugins.org diff --git a/plugins/tests/check_http.t b/plugins/tests/check_http.t index 6078b27..d766ac3 100755 --- a/plugins/tests/check_http.t +++ b/plugins/tests/check_http.t @@ -9,14 +9,12 @@ use strict; use Test::More; use NPTest; use FindBin qw($Bin); -use IO::Socket::INET; $ENV{'LC_TIME'} = "C"; my $common_tests = 71; my $virtual_port_tests = 8; my $ssl_only_tests = 12; -my $chunked_encoding_special_tests = 1; # Check that all dependent modules are available eval "use HTTP::Daemon 6.01;"; plan skip_all => 'HTTP::Daemon >= 6.01 required' if $@; @@ -32,7 +30,7 @@ if ($@) { plan skip_all => "Missing required module for test: $@"; } else { if (-x "./$plugin") { - plan tests => $common_tests * 2 + $ssl_only_tests + $virtual_port_tests + $chunked_encoding_special_tests; + plan tests => $common_tests * 2 + $ssl_only_tests + $virtual_port_tests; } else { plan skip_all => "No $plugin compiled"; } @@ -53,7 +51,6 @@ my $port_http = 50000 + int(rand(1000)); my $port_https = $port_http + 1; my $port_https_expired = $port_http + 2; my $port_https_clientcert = $port_http + 3; -my $port_hacked_http = $port_http + 4; # This array keeps sockets around for implementing timeouts my @persist; @@ -75,28 +72,6 @@ if (!$pid) { } push @pids, $pid; -# Fork the hacked HTTP server -undef $pid; -$pid = fork; -defined $pid or die "Failed to fork"; -if (!$pid) { - # this is the fork - undef @pids; - my $socket = new IO::Socket::INET ( - LocalHost => '0.0.0.0', - LocalPort => $port_hacked_http, - Proto => 'tcp', - Listen => 5, - Reuse => 1 - ); - die "cannot create socket $!n" unless $socket; - my $local_sock = $socket->sockport(); - print "server waiting for client connection on port $local_sock\n"; - run_hacked_http_server ( $socket ); - die "hacked http server stopped"; -} -push @pids, $pid; - if (exists $servers->{https}) { # Fork a normal HTTPS server $pid = fork; @@ -232,37 +207,6 @@ sub run_server { } } -sub run_hacked_http_server { - my $socket = shift; - - # auto-flush on socket - $| = 1; - - - while(1) - { - # waiting for a new client connection - my $client_socket = $socket->accept(); - - # get information about a newly connected client - my $client_address = $client_socket->peerhost(); - my $client_portn = $client_socket->peerport(); - print "connection from $client_address:$client_portn"; - - # read up to 1024 characters from the connected client - my $data = ""; - $client_socket->recv($data, 1024); - print "received data: $data"; - - # write response data to the connected client - $data = "HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\n"; - $client_socket->send($data); - - # notify client that response has been sent - shutdown($client_socket, 1); - } -} - END { foreach my $pid (@pids) { if ($pid) { print "Killing $pid\n"; kill "INT", $pid } @@ -278,7 +222,6 @@ if ($ARGV[0] && $ARGV[0] eq "-d") { my $result; my $command = "./$plugin -H 127.0.0.1"; -run_chunked_encoding_special_test( {command => "$command -p $port_hacked_http"}); run_common_tests( { command => "$command -p $port_http" } ); SKIP: { skip "HTTP::Daemon::SSL not installed", $common_tests + $ssl_only_tests if ! exists $servers->{https}; @@ -568,14 +511,3 @@ sub run_common_tests { }; is( $@, "", $cmd ); } - -sub run_chunked_encoding_special_test { - my ($opts) = @_; - my $command = $opts->{command}; - - $cmd = "$command -u / -s 'ChunkedEncodingSpecialTest'"; - eval { - $result = NPTest->testCmd( $cmd, 5 ); - }; - is( $@, "", $cmd ); -} diff --git a/plugins/tests/check_procs.t b/plugins/tests/check_procs.t index b3a0a30..3af218f 100755 --- a/plugins/tests/check_procs.t +++ b/plugins/tests/check_procs.t @@ -8,7 +8,7 @@ use Test::More; use NPTest; if (-x "./check_procs") { - plan tests => 54; + plan tests => 52; } else { plan skip_all => "No check_procs compiled"; } @@ -34,13 +34,9 @@ is( $result->return_code, 0, "Checking no threshold breeched" ); is( $result->output, "PROCS OK: 95 processes | procs=95;100;200;0;", "Output correct" ); $result = NPTest->testCmd( "$command -C launchd -c 5" ); -is( $result->return_code, 2, "Checking processes matched by command name" ); +is( $result->return_code, 2, "Checking processes filtered by command name" ); is( $result->output, "PROCS CRITICAL: 6 processes with command name 'launchd' | procs=6;;5;0;", "Output correct" ); -$result = NPTest->testCmd( "$command -X bash -c 5" ); -is( $result->return_code, 2, "Checking processes excluded by command name" ); -is( $result->output, "PROCS CRITICAL: 95 processes with exclude progs 'bash' | procs=95;;5;0;", "Output correct" ); - SKIP: { skip 'user with uid 501 required', 4 unless getpwuid(501); diff --git a/plugins/tests/check_snmp.t b/plugins/tests/check_snmp.t index bfe42e1..bc03ec6 100755 --- a/plugins/tests/check_snmp.t +++ b/plugins/tests/check_snmp.t @@ -53,7 +53,7 @@ if ($pid) { #print "child\n"; print "Please contact SNMP at: $port_snmp\n"; - close(STDERR); # Comment out to debug snmpd problems (most errors sent there are OK) + close(STDERR); # Coment out to debug snmpd problems (most errors sent there are OK) exec("snmpd -c tests/conf/snmpd.conf -C -f -r udp:$port_snmp"); } @@ -227,7 +227,7 @@ is($res->output, 'SNMP OK - "555\"I said\"" | ', "Check string with a double quo $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.15 -r 'CUSTOM CHECK OK'" ); is($res->return_code, 0, "String check should check whole string, not a parsed number" ); -is($res->output, 'SNMP OK - "CUSTOM CHECK OK: foo is 12345" | ', "String check with numbers returns whole string"); +is($res->output, 'SNMP OK - "CUSTOM CHECK OK: foo is 12345" | ', "String check witn numbers returns whole string"); $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.16 -w -2: -c -3:" ); is($res->return_code, 0, "Negative integer check OK" ); diff --git a/plugins/utils.c b/plugins/utils.c index 77d6a6f..b4214c6 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -23,15 +23,13 @@ *****************************************************************************/ #include "common.h" -#include "./utils.h" +#include "utils.h" #include "utils_base.h" #include #include #include #include -#include - #include extern void print_usage (void); @@ -149,107 +147,98 @@ print_revision (const char *command_name, const char *revision) command_name, revision, PACKAGE, VERSION); } -bool is_numeric (char *number) { +int +is_numeric (char *number) +{ char tmp[1]; float x; if (!number) - return false; + return FALSE; else if (sscanf (number, "%f%c", &x, tmp) == 1) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_positive (char *number) { +int +is_positive (char *number) +{ if (is_numeric (number) && atof (number) > 0.0) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_negative (char *number) { +int +is_negative (char *number) +{ if (is_numeric (number) && atof (number) < 0.0) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_nonnegative (char *number) { +int +is_nonnegative (char *number) +{ if (is_numeric (number) && atof (number) >= 0.0) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_percentage (char *number) { +int +is_percentage (char *number) +{ int x; if (is_numeric (number) && (x = atof (number)) >= 0 && x <= 100) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_percentage_expression (const char str[]) { - if (!str) { - return false; - } - - size_t len = strlen(str); - - if (str[len-1] != '%') { - return false; - } - - char *foo = calloc(sizeof(char), len + 1); - - if (!foo) { - die (STATE_UNKNOWN, _("calloc failed \n")); - } - - strcpy(foo, str); - foo[len-1] = '\0'; - - bool result = is_numeric(foo); - - free(foo); - - return result; -} - -bool is_integer (char *number) { +int +is_integer (char *number) +{ long int n; if (!number || (strspn (number, "-0123456789 ") != strlen (number))) - return false; + return FALSE; n = strtol (number, NULL, 10); if (errno != ERANGE && n >= INT_MIN && n <= INT_MAX) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_intpos (char *number) { +int +is_intpos (char *number) +{ if (is_integer (number) && atoi (number) > 0) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_intneg (char *number) { +int +is_intneg (char *number) +{ if (is_integer (number) && atoi (number) < 0) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_intnonneg (char *number) { +int +is_intnonneg (char *number) +{ if (is_integer (number) && atoi (number) >= 0) - return true; + return TRUE; else - return false; + return FALSE; } /* @@ -257,27 +246,19 @@ bool is_intnonneg (char *number) { * On success the number will be written to the _target_ address, if _target_ is not set * to NULL. */ -bool is_int64(char *number, int64_t *target) { +int is_int64(char *number, int64_t *target) { errno = 0; - char *endptr = { 0 }; - - int64_t tmp = strtoll(number, &endptr, 10); + uint64_t tmp = strtoll(number, NULL, 10); if (errno != 0) { - return false; - } - - if (*endptr == '\0') { return 0; } - if (tmp < INT64_MIN || tmp > INT64_MAX) { - return false; + return 0; } - if (target != NULL) { *target = tmp; } - return true; + return 1; } /* @@ -285,45 +266,40 @@ bool is_int64(char *number, int64_t *target) { * On success the number will be written to the _target_ address, if _target_ is not set * to NULL. */ -bool is_uint64(char *number, uint64_t *target) { +int is_uint64(char *number, uint64_t *target) { errno = 0; - char *endptr = { 0 }; - unsigned long long tmp = strtoull(number, &endptr, 10); - + uint64_t tmp = strtoll(number, NULL, 10); if (errno != 0) { - return false; + return 0; } - - if (*endptr != '\0') { - return false; + if (tmp < 0 || tmp > UINT64_MAX) { + return 0; } - - if (tmp > UINT64_MAX) { - return false; - } - if (target != NULL) { - *target = (uint64_t)tmp; + *target = tmp; } - - return true; + return 1; } -bool is_intpercent (char *number) { +int +is_intpercent (char *number) +{ int i; if (is_integer (number) && (i = atoi (number)) >= 0 && i <= 100) - return true; + return TRUE; else - return false; + return FALSE; } -bool is_option (char *str) { +int +is_option (char *str) +{ if (!str) - return false; + return FALSE; else if (strspn (str, "-") == 1 || strspn (str, "-") == 2) - return true; + return TRUE; else - return false; + return FALSE; } #ifdef NEED_GETTIMEOFDAY @@ -828,3 +804,19 @@ char *sperfdata_int (const char *label, return data; } + +int +open_max (void) +{ + errno = 0; + if (maxfd > 0) + return(maxfd); + + if ((maxfd = sysconf (_SC_OPEN_MAX)) < 0) { + if (errno == 0) + maxfd = DEFAULT_MAXFD; /* it's indeterminate */ + else + die (STATE_UNKNOWN, _("sysconf error for _SC_OPEN_MAX\n")); + } + return(maxfd); +} diff --git a/plugins/utils.h b/plugins/utils.h index f939e33..5b54da3 100644 --- a/plugins/utils.h +++ b/plugins/utils.h @@ -7,7 +7,7 @@ /* The purpose of this package is to provide safer alternatives to C functions that might otherwise be vulnerable to hacking. This currently includes a standard suite of validation routines to be sure -that an string argument actually converts to its intended type and a +that an string argument acually converts to its intended type and a suite of string handling routine that do their own memory management in order to resist overflow attacks. In addition, a few functions are provided to standardize version and error reporting across the entire @@ -16,8 +16,6 @@ suite of plugins. */ /* now some functions etc are being defined in ../lib/utils_base.c */ #include "utils_base.h" -#include - #ifdef NP_EXTRA_OPTS /* Include extra-opts functions if compiled in */ @@ -36,22 +34,21 @@ extern time_t start_time, end_time; /* Test input types */ -bool is_integer (char *); -bool is_intpos (char *); -bool is_intneg (char *); -bool is_intnonneg (char *); -bool is_intpercent (char *); -bool is_uint64(char *number, uint64_t *target); -bool is_int64(char *number, int64_t *target); +int is_integer (char *); +int is_intpos (char *); +int is_intneg (char *); +int is_intnonneg (char *); +int is_intpercent (char *); +int is_uint64(char *number, uint64_t *target); +int is_int64(char *number, int64_t *target); -bool is_numeric (char *); -bool is_positive (char *); -bool is_negative (char *); -bool is_nonnegative (char *); -bool is_percentage (char *); -bool is_percentage_expression (const char[]); +int is_numeric (char *); +int is_positive (char *); +int is_negative (char *); +int is_nonnegative (char *); +int is_percentage (char *); -bool is_option (char *); +int is_option (char *); /* Generalized timer that will do milliseconds if available */ #ifndef HAVE_STRUCT_TIMEVAL @@ -109,6 +106,8 @@ char *sperfdata (const char *, double, const char *, char *, char *, char *sperfdata_int (const char *, int, const char *, char *, char *, int, int, int, int); +int open_max (void); + /* The idea here is that, although not every plugin will use all of these, most will or should. Therefore, for consistency, these very common options should have only these meanings throughout the overall suite */ diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 0000000..1074102 --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,11 @@ +2003-07-02 gettextize + + * Makefile.in.in: New file, from gettext-0.11.4. + * boldquot.sed: New file, from gettext-0.11.4. + * en@boldquot.header: New file, from gettext-0.11.4. + * en@quot.header: New file, from gettext-0.11.4. + * insert-header.sin: New file, from gettext-0.11.4. + * quot.sed: New file, from gettext-0.11.4. + * remove-potcdate.sin: New file, from gettext-0.11.4. + * Rules-quot: New file, from gettext-0.11.4. + diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..1ce0c39 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,2 @@ +fr de + diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..82864b2 --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,395 @@ +# -*- buffer-read-only: t -*- vi: set ro: +# DO NOT EDIT! GENERATED AUTOMATICALLY! +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.15 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +mkinstalldirs = $(SHELL) @install_sh@ -d +mkdir_p = @MKDIR_P@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && $(SHELL) ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 0000000..1bf1e0d --- /dev/null +++ b/po/Makevars @@ -0,0 +1,29 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --flag=error:3:c-format --flag=error_at_line:5:c-format --flag=asprintf:2:c-format --flag=vasprintf:2:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Monitoring Plugins Development Team + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# Email address were to send bug report for the .po translation files +PACKAGE_BUGREPORT = devel@monitoring-plugins.org + diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..6e491d7 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,44 @@ +plugins/check_by_ssh.c +plugins/check_cluster.c +plugins/check_dig.c +plugins/check_disk.c +plugins/check_dns.c +plugins/check_dummy.c +plugins/check_fping.c +plugins/check_game.c +plugins/check_hpjd.c +plugins/check_http.c +plugins/check_ldap.c +plugins/check_load.c +plugins/check_mrtg.c +plugins/check_mrtgtraf.c +plugins/check_mysql.c +plugins/check_nagios.c +plugins/check_nt.c +plugins/check_ntp.c +plugins/check_ntp_peer.c +plugins/check_ntp_time.c +plugins/check_nwstat.c +plugins/check_overcr.c +plugins/check_pgsql.c +plugins/check_ping.c +plugins/check_procs.c +plugins/check_radius.c +plugins/check_real.c +plugins/check_smtp.c +plugins/check_snmp.c +plugins/check_ssh.c +plugins/check_swap.c +plugins/check_tcp.c +plugins/check_time.c +plugins/check_ups.c +plugins/check_users.c +plugins/check_ide_smart.c +plugins/negate.c +plugins/netutils.c +plugins/popen.c +plugins/urlize.c +plugins/utils.c +plugins/utils.h +plugins-root/check_dhcp.c +plugins-root/check_icmp.c diff --git a/po/de.gmo b/po/de.gmo new file mode 100644 index 0000000..102d1fc Binary files /dev/null and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..23854f9 --- /dev/null +++ b/po/de.po @@ -0,0 +1,6857 @@ +# translation of de.po to +# German Language Translation File. +# This file is distributed under the same license as the nagios-plugins package. +# Copyright (C) 2004 Nagios Plugin Development Group. +# Karl DeBisschop , 2003, 2004. +# +# +msgid "" +msgstr "" +"Project-Id-Version: nagiosplug\n" +"Report-Msgid-Bugs-To: devel@monitoring-plugins.org\n" +"POT-Creation-Date: 2023-02-01 13:48+0000\n" +"PO-Revision-Date: 2004-12-23 17:46+0100\n" +"Last-Translator: <>\n" +"Language-Team: English \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);X-Generator: KBabel 1.3.1\n" + +#: plugins/check_by_ssh.c:88 plugins/check_cluster.c:76 plugins/check_dig.c:91 +#: plugins/check_disk.c:201 plugins/check_dns.c:106 plugins/check_dummy.c:52 +#: plugins/check_fping.c:95 plugins/check_game.c:82 plugins/check_hpjd.c:105 +#: plugins/check_http.c:174 plugins/check_ldap.c:118 plugins/check_load.c:128 +#: plugins/check_mrtgtraf.c:83 plugins/check_mysql.c:124 +#: plugins/check_nagios.c:91 plugins/check_nt.c:127 plugins/check_ntp.c:780 +#: plugins/check_ntp_peer.c:575 plugins/check_ntp_time.c:557 +#: plugins/check_nwstat.c:173 plugins/check_overcr.c:102 +#: plugins/check_pgsql.c:174 plugins/check_ping.c:97 plugins/check_procs.c:172 +#: plugins/check_radius.c:172 plugins/check_real.c:80 plugins/check_smtp.c:143 +#: plugins/check_snmp.c:246 plugins/check_ssh.c:74 plugins/check_swap.c:118 +#: plugins/check_tcp.c:222 plugins/check_time.c:78 plugins/check_ups.c:122 +#: plugins/check_users.c:84 plugins/negate.c:210 plugins-root/check_dhcp.c:270 +msgid "Could not parse arguments" +msgstr "Argumente konnten nicht ausgewertet werden" + +#: plugins/check_by_ssh.c:92 plugins/check_dig.c:85 plugins/check_dns.c:99 +#: plugins/check_nagios.c:95 plugins/check_pgsql.c:180 plugins/check_ping.c:101 +#: plugins/check_procs.c:188 plugins/check_snmp.c:346 plugins/negate.c:78 +msgid "Cannot catch SIGALRM" +msgstr "Konnte SIGALRM nicht erhalten" + +#: plugins/check_by_ssh.c:107 +#, c-format +msgid "SSH connection failed: %s\n" +msgstr "" + +#: plugins/check_by_ssh.c:126 +#, c-format +msgid "Remote command execution failed: %s\n" +msgstr "" + +#: plugins/check_by_ssh.c:141 +#, c-format +msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n" +msgstr "" + +#: plugins/check_by_ssh.c:153 +#, c-format +msgid "SSH WARNING: could not open %s\n" +msgstr "SSH WARNING: Konnte %s nicht öffnen\n" + +#: plugins/check_by_ssh.c:162 +#, c-format +msgid "%s: Error parsing output\n" +msgstr "" + +#: plugins/check_by_ssh.c:242 plugins/check_disk.c:521 plugins/check_http.c:292 +#: plugins/check_ldap.c:334 plugins/check_pgsql.c:314 plugins/check_procs.c:437 +#: plugins/check_radius.c:319 plugins/check_real.c:357 plugins/check_smtp.c:591 +#: plugins/check_snmp.c:787 plugins/check_ssh.c:140 plugins/check_tcp.c:519 +#: plugins/check_time.c:302 plugins/check_ups.c:559 plugins/negate.c:160 +msgid "Timeout interval must be a positive integer" +msgstr "Timeout interval muss ein positiver Integer sein" + +#: plugins/check_by_ssh.c:254 plugins/check_pgsql.c:344 +#: plugins/check_radius.c:283 plugins/check_real.c:328 plugins/check_smtp.c:516 +#: plugins/check_tcp.c:525 plugins/check_time.c:296 plugins/check_ups.c:521 +msgid "Port must be a positive integer" +msgstr "Port muss ein positiver Integer sein" + +#: plugins/check_by_ssh.c:315 +#, fuzzy +msgid "skip-stdout argument must be an integer" +msgstr "skip-stdout argument muss ein Integer sein" + +#: plugins/check_by_ssh.c:323 +#, fuzzy +msgid "skip-stderr argument must be an integer" +msgstr "skip-stderr argument muss ein Integer sein" + +#: plugins/check_by_ssh.c:349 +#, c-format +msgid "%s: You must provide a host name\n" +msgstr "%s: Hostname muss angegeben werden\n" + +#: plugins/check_by_ssh.c:366 +msgid "No remotecmd" +msgstr "Kein remotecm" + +#: plugins/check_by_ssh.c:380 +#, c-format +msgid "%s: Argument limit of %d exceeded\n" +msgstr "" + +#: plugins/check_by_ssh.c:383 +#, fuzzy +msgid "Can not (re)allocate 'commargv' buffer\n" +msgstr "Konnte·url·nicht·zuweisen\n" + +#: plugins/check_by_ssh.c:397 +#, c-format +msgid "" +"%s: In passive mode, you must provide a service name for each command.\n" +msgstr "" +"%s: Im passive mode muss ein Servicename für jeden Befehl angegeben werden.\n" + +#: plugins/check_by_ssh.c:400 +#, fuzzy, c-format +msgid "" +"%s: In passive mode, you must provide the host short name from the " +"monitoring configs.\n" +msgstr "" +"%s: Im passive mode muss der \"host short name\" aus der Nagios " +"Konfiguration angegeben werden\n" + +#: plugins/check_by_ssh.c:414 +#, fuzzy, c-format +msgid "This plugin uses SSH to execute commands on a remote host" +msgstr "" +"Dieses Plugin nutzt SSH um Befehle auf dem entfernten Rechner auszuführen\n" +"\n" + +#: plugins/check_by_ssh.c:429 +msgid "tell ssh to use Protocol 1 [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:431 +msgid "tell ssh to use Protocol 2 [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:433 +msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:435 +msgid "Ignore all or (if specified) first n lines on STDERR [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:437 +msgid "Exit with an warning, if there is an output on STDERR" +msgstr "" + +#: plugins/check_by_ssh.c:439 +msgid "" +"tells ssh to fork rather than create a tty [optional]. This will always " +"return OK if ssh is executed" +msgstr "" + +#: plugins/check_by_ssh.c:441 +msgid "command to execute on the remote machine" +msgstr "" + +#: plugins/check_by_ssh.c:443 +msgid "SSH user name on remote host [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:445 +msgid "identity of an authorized key [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:447 +msgid "external command file for monitoring [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:449 +msgid "list of monitoring service names, separated by ':' [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:451 +msgid "short name of host in the monitoring configuration [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:453 +msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:455 +msgid "Tell ssh to use this configfile [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:457 +msgid "Tell ssh to suppress warning and diagnostic messages [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:461 +msgid "Make connection problems return UNKNOWN instead of CRITICAL" +msgstr "" + +#: plugins/check_by_ssh.c:464 +msgid "The most common mode of use is to refer to a local identity file with" +msgstr "" + +#: plugins/check_by_ssh.c:465 +msgid "the '-i' option. In this mode, the identity pair should have a null" +msgstr "" + +#: plugins/check_by_ssh.c:466 +msgid "passphrase and the public key should be listed in the authorized_keys" +msgstr "" + +#: plugins/check_by_ssh.c:467 +msgid "file of the remote host. Usually the key will be restricted to running" +msgstr "" + +#: plugins/check_by_ssh.c:468 +msgid "only one command on the remote server. If the remote SSH server tracks" +msgstr "" + +#: plugins/check_by_ssh.c:469 +msgid "invocation arguments, the one remote program may be an agent that can" +msgstr "" + +#: plugins/check_by_ssh.c:470 +msgid "execute additional commands as proxy" +msgstr "" + +#: plugins/check_by_ssh.c:472 +msgid "To use passive mode, provide multiple '-C' options, and provide" +msgstr "" + +#: plugins/check_by_ssh.c:473 +msgid "" +"all of -O, -s, and -n options (servicelist order must match '-C'options)" +msgstr "" + +#: plugins/check_by_ssh.c:475 plugins/check_cluster.c:271 +#: plugins/check_dig.c:364 plugins/check_disk.c:936 plugins/check_http.c:1840 +#: plugins/check_nagios.c:312 plugins/check_ntp.c:879 +#: plugins/check_ntp_peer.c:733 plugins/check_ntp_time.c:642 +#: plugins/check_procs.c:763 plugins/negate.c:249 plugins/urlize.c:179 +msgid "Examples:" +msgstr "" + +#: plugins/check_by_ssh.c:490 plugins/check_cluster.c:284 +#: plugins/check_dig.c:376 plugins/check_disk.c:953 plugins/check_dns.c:617 +#: plugins/check_dummy.c:122 plugins/check_fping.c:524 plugins/check_game.c:331 +#: plugins/check_hpjd.c:439 plugins/check_http.c:1878 plugins/check_ldap.c:511 +#: plugins/check_load.c:372 plugins/check_mrtg.c:382 plugins/check_mysql.c:584 +#: plugins/check_nagios.c:323 plugins/check_nt.c:797 plugins/check_ntp.c:898 +#: plugins/check_ntp_peer.c:753 plugins/check_ntp_time.c:651 +#: plugins/check_nwstat.c:1685 plugins/check_overcr.c:467 +#: plugins/check_pgsql.c:548 plugins/check_ping.c:617 plugins/check_procs.c:786 +#: plugins/check_radius.c:396 plugins/check_real.c:452 plugins/check_smtp.c:860 +#: plugins/check_snmp.c:1344 plugins/check_ssh.c:325 plugins/check_swap.c:610 +#: plugins/check_tcp.c:710 plugins/check_time.c:371 plugins/check_ups.c:663 +#: plugins/check_users.c:262 plugins/check_ide_smart.c:606 plugins/negate.c:273 +#: plugins/urlize.c:196 plugins-root/check_dhcp.c:1394 +#: plugins-root/check_icmp.c:1630 +msgid "Usage:" +msgstr "" + +#: plugins/check_cluster.c:240 +#, c-format +msgid "Host/Service Cluster Plugin for Monitoring" +msgstr "" + +#: plugins/check_cluster.c:246 plugins/check_nt.c:697 +msgid "Options:" +msgstr "" + +#: plugins/check_cluster.c:249 +msgid "Check service cluster status" +msgstr "" + +#: plugins/check_cluster.c:251 +msgid "Check host cluster status" +msgstr "" + +#: plugins/check_cluster.c:253 +msgid "Optional prepended text output (i.e. \"Host cluster\")" +msgstr "" + +#: plugins/check_cluster.c:255 plugins/check_cluster.c:258 +msgid "Specifies the range of hosts or services in cluster that must be in a" +msgstr "" + +#: plugins/check_cluster.c:256 +msgid "non-OK state in order to return a WARNING status level" +msgstr "" + +#: plugins/check_cluster.c:259 +msgid "non-OK state in order to return a CRITICAL status level" +msgstr "" + +#: plugins/check_cluster.c:261 +msgid "The status codes of the hosts or services in the cluster, separated by" +msgstr "" + +#: plugins/check_cluster.c:262 +msgid "commas" +msgstr "" + +#: plugins/check_cluster.c:267 plugins/check_game.c:318 +#: plugins/check_http.c:1822 plugins/check_ldap.c:497 plugins/check_mrtg.c:363 +#: plugins/check_mrtgtraf.c:361 plugins/check_mysql.c:573 +#: plugins/check_nt.c:781 plugins/check_ntp.c:875 plugins/check_ntp_peer.c:724 +#: plugins/check_ntp_time.c:633 plugins/check_nwstat.c:1670 +#: plugins/check_overcr.c:456 plugins/check_snmp.c:1315 +#: plugins/check_swap.c:599 plugins/check_ups.c:645 +#: plugins/check_ide_smart.c:580 plugins/negate.c:255 +#: plugins-root/check_icmp.c:1605 +msgid "Notes:" +msgstr "" + +#: plugins/check_cluster.c:273 +msgid "" +"Will alert critical if there are 3 or more service data points in a non-OK" +msgstr "" + +#: plugins/check_cluster.c:274 plugins/check_ups.c:642 +msgid "state." +msgstr "" + +#: plugins/check_dig.c:106 plugins/check_dig.c:108 +#, c-format +msgid "Looking for: '%s'\n" +msgstr "" + +#: plugins/check_dig.c:115 +msgid "dig returned an error status" +msgstr "dig hat einen Fehler zurückgegeben" + +#: plugins/check_dig.c:140 +msgid "Server not found in ANSWER SECTION" +msgstr "Server nicht gefunden in ANSWER SECTION" + +#: plugins/check_dig.c:150 +msgid "No ANSWER SECTION found" +msgstr "Keine ANSWER SECTION gefunden" + +#: plugins/check_dig.c:177 +#, fuzzy +msgid "Probably a non-existent host/domain" +msgstr "nicht existierender Host/Domain" + +#: plugins/check_dig.c:239 +#, fuzzy, c-format +msgid "Port must be a positive integer - %s" +msgstr "Port muss ein positiver Integer sein - %s" + +#: plugins/check_dig.c:250 +#, fuzzy, c-format +msgid "Warning interval must be a positive integer - %s" +msgstr "Warning interval muss ein positiver Integer sein - %s" + +#: plugins/check_dig.c:258 +#, fuzzy, c-format +msgid "Critical interval must be a positive integer - %s" +msgstr "Critical interval muss ein positiver Integer sein - %s" + +#: plugins/check_dig.c:266 +#, fuzzy, c-format +msgid "Timeout interval must be a positive integer - %s" +msgstr "Timeout interval muss ein positiver Integer sein - %s" + +#: plugins/check_dig.c:334 +#, fuzzy, c-format +msgid "This plugin tests the DNS service on the specified host using dig" +msgstr "Testet den DNS Dienst auf dem angegebenen Host mit dig" + +#: plugins/check_dig.c:347 +msgid "Force dig to only use IPv4 query transport" +msgstr "" + +#: plugins/check_dig.c:349 +msgid "Force dig to only use IPv6 query transport" +msgstr "" + +#: plugins/check_dig.c:351 +#, fuzzy +msgid "Machine name to lookup" +msgstr "zu prüfender Hostname" + +#: plugins/check_dig.c:353 +#, fuzzy +msgid "Record type to lookup (default: A)" +msgstr "abzufragender Datensatztyp (Default: A)" + +#: plugins/check_dig.c:355 +#, fuzzy +msgid "" +"An address expected to be in the answer section. If not set, uses whatever" +msgstr "" +"Adresse die in der ANSWER SECTION erwartet wird.wenn nicht gesetzt, " +"ubernommen aus -l" + +#: plugins/check_dig.c:356 +msgid "was in -l" +msgstr "" + +#: plugins/check_dig.c:358 +msgid "Pass STRING as argument(s) to dig" +msgstr "" + +#: plugins/check_disk.c:223 +#, fuzzy, c-format +msgid "DISK %s: %s not found\n" +msgstr "%s [%s nicht gefunden]" + +#: plugins/check_disk.c:223 plugins/check_disk.c:968 plugins/check_dns.c:295 +#: plugins/check_dummy.c:74 plugins/check_mysql.c:310 +#: plugins/check_nagios.c:104 plugins/check_nagios.c:168 +#: plugins/check_nagios.c:172 plugins/check_pgsql.c:571 +#: plugins/check_pgsql.c:588 plugins/check_pgsql.c:597 +#: plugins/check_pgsql.c:612 plugins/check_procs.c:351 +#, c-format +msgid "CRITICAL" +msgstr "CRITICAL" + +#: plugins/check_disk.c:598 +#, c-format +msgid "unit type %s not known\n" +msgstr "unbekannter unit type: %s\n" + +#: plugins/check_disk.c:601 +#, c-format +msgid "failed allocating storage for '%s'\n" +msgstr "konnte keinen Speicher für '%s' reservieren\n" + +#: plugins/check_disk.c:629 plugins/check_disk.c:670 plugins/check_disk.c:678 +#: plugins/check_disk.c:686 plugins/check_disk.c:690 plugins/check_disk.c:732 +#: plugins/check_disk.c:738 plugins/check_disk.c:757 plugins/check_dummy.c:77 +#: plugins/check_dummy.c:80 plugins/check_pgsql.c:613 plugins/check_procs.c:506 +#, c-format +msgid "UNKNOWN" +msgstr "UNKNOWN" + +#: plugins/check_disk.c:629 +msgid "Must set a threshold value before using -p\n" +msgstr "" + +#: plugins/check_disk.c:670 +msgid "Must set -E before selecting paths\n" +msgstr "" + +#: plugins/check_disk.c:678 +msgid "Must set group value before selecting paths\n" +msgstr "" + +#: plugins/check_disk.c:686 +msgid "" +"Paths need to be selected before using -i/-I. Use -A to select all paths " +"explicitly" +msgstr "" + +#: plugins/check_disk.c:690 plugins/check_disk.c:738 plugins/check_procs.c:506 +msgid "Could not compile regular expression" +msgstr "" + +#: plugins/check_disk.c:732 +msgid "Must set a threshold value before using -r/-R\n" +msgstr "" + +#: plugins/check_disk.c:758 +msgid "Regular expression did not match any path or disk" +msgstr "" + +#: plugins/check_disk.c:804 +#, fuzzy +msgid "Unknown argument" +msgstr "Unbekanntes Argument" + +#: plugins/check_disk.c:838 +#, c-format +msgid " for %s\n" +msgstr "" + +#: plugins/check_disk.c:867 +#, fuzzy +msgid "" +"This plugin checks the amount of used disk space on a mounted file system" +msgstr "" +"Dieses Plugin prüft den freien Speicher auf einem gemounteten Filesystem" + +#: plugins/check_disk.c:868 +#, fuzzy +msgid "" +"and generates an alert if free space is less than one of the threshold values" +msgstr "" +"und erzeugt einen Alarm wenn einer der angegebenen Schwellwerte " +"unterschritten wird." + +#: plugins/check_disk.c:878 +msgid "Exit with WARNING status if less than INTEGER units of disk are free" +msgstr "" + +#: plugins/check_disk.c:880 +msgid "Exit with WARNING status if less than PERCENT of disk space is free" +msgstr "" + +#: plugins/check_disk.c:882 +msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" +msgstr "" + +#: plugins/check_disk.c:884 +msgid "Exit with CRITICAL status if less than PERCENT of disk space is free" +msgstr "" + +#: plugins/check_disk.c:886 +msgid "Exit with WARNING status if less than PERCENT of inode space is free" +msgstr "" + +#: plugins/check_disk.c:888 +msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" +msgstr "" + +#: plugins/check_disk.c:890 +msgid "" +"Mount point or block device as emitted by the mount(8) command (may be " +"repeated)" +msgstr "" + +#: plugins/check_disk.c:892 +msgid "Ignore device (only works if -p unspecified)" +msgstr "" + +#: plugins/check_disk.c:894 +msgid "Clear thresholds" +msgstr "" + +#: plugins/check_disk.c:896 +msgid "For paths or partitions specified with -p, only check for exact paths" +msgstr "" + +#: plugins/check_disk.c:898 +msgid "Display only devices/mountpoints with errors" +msgstr "" + +#: plugins/check_disk.c:900 +msgid "Don't account root-reserved blocks into freespace in perfdata" +msgstr "" + +#: plugins/check_disk.c:902 +msgid "Display inode usage in perfdata" +msgstr "" + +#: plugins/check_disk.c:904 +msgid "" +"Group paths. Thresholds apply to (free-)space of all partitions together" +msgstr "" + +#: plugins/check_disk.c:906 +msgid "Same as '--units kB'" +msgstr "" + +#: plugins/check_disk.c:908 +msgid "Only check local filesystems" +msgstr "" + +#: plugins/check_disk.c:910 +msgid "" +"Only check local filesystems against thresholds. Yet call stat on remote " +"filesystems" +msgstr "" + +#: plugins/check_disk.c:911 +msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" +msgstr "" + +#: plugins/check_disk.c:913 +msgid "Display the (block) device instead of the mount point" +msgstr "" + +#: plugins/check_disk.c:915 +msgid "Same as '--units MB'" +msgstr "" + +#: plugins/check_disk.c:917 +msgid "Explicitly select all paths. This is equivalent to -R '.*'" +msgstr "" + +#: plugins/check_disk.c:919 +msgid "" +"Case insensitive regular expression for path/partition (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:921 +msgid "Regular expression for path or partition (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:923 +msgid "" +"Regular expression to ignore selected path/partition (case insensitive) (may " +"be repeated)" +msgstr "" + +#: plugins/check_disk.c:925 +msgid "" +"Regular expression to ignore selected path or partition (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:928 +msgid "Choose bytes, kB, MB, GB, TB (default: MB)" +msgstr "" + +#: plugins/check_disk.c:931 +msgid "Ignore all filesystems of indicated type (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:933 +msgid "Check only filesystems of indicated type (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:938 +msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" +msgstr "" + +#: plugins/check_disk.c:940 +msgid "" +"Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" +"r regex" +msgstr "" + +#: plugins/check_disk.c:941 +msgid "" +"are grouped which means the freespace thresholds are applied to all disks " +"together" +msgstr "" + +#: plugins/check_disk.c:943 +msgid "" +"Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " +"100M/50M" +msgstr "" + +#: plugins/check_disk.c:969 +#, c-format +msgid "%s %s: %s\n" +msgstr "" + +#: plugins/check_disk.c:969 +msgid "is not accessible" +msgstr "" + +#: plugins/check_dns.c:120 +#, fuzzy +msgid "nslookup returned an error status" +msgstr "nslookup hat einen Fehler zurückgegeben" + +#: plugins/check_dns.c:138 +msgid "Warning plugin error" +msgstr "Warnung Plugin Fehler" + +#: plugins/check_dns.c:156 +#, fuzzy, c-format +msgid "DNS CRITICAL - '%s' returned empty server string\n" +msgstr "DNS CRITICAL - '%s' hat einen leeren Hostnamen zurückgegeben\n" + +#: plugins/check_dns.c:161 +#, fuzzy, c-format +msgid "DNS CRITICAL - No response from DNS %s\n" +msgstr "Keine Antwort von DNS %s\n" + +#: plugins/check_dns.c:180 +#, c-format +msgid "DNS CRITICAL - '%s' returned empty host name string\n" +msgstr "DNS CRITICAL - '%s' hat einen leeren Hostnamen zurückgegeben\n" + +#: plugins/check_dns.c:186 +msgid "Non-authoritative answer:" +msgstr "" + +#: plugins/check_dns.c:215 +#, fuzzy, c-format +msgid "Domain '%s' was not found by the server\n" +msgstr "Domäne %s wurde vom Server nicht gefunden\n" + +#: plugins/check_dns.c:234 +#, fuzzy, c-format +msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n" +msgstr "DNS CRITICAL - '%s' Ausgabeverarbeitung hat keine Adresse ergeben\n" + +#: plugins/check_dns.c:265 +#, fuzzy, c-format +msgid "expected '%s' but got '%s'" +msgstr "Erwartet: %s aber: %s erhalten" + +#: plugins/check_dns.c:272 +#, fuzzy, c-format +msgid "Domain '%s' was found by the server: '%s'\n" +msgstr "Domäne %s wurde vom Server nicht gefunden\n" + +#: plugins/check_dns.c:282 +#, c-format +msgid "server %s is not authoritative for %s" +msgstr "Server %s ist nicht autoritativ für %s" + +#: plugins/check_dns.c:291 plugins/check_dummy.c:68 plugins/check_nagios.c:182 +#: plugins/check_pgsql.c:608 plugins/check_procs.c:344 +#, c-format +msgid "OK" +msgstr "OK" + +#: plugins/check_dns.c:293 plugins/check_dummy.c:71 plugins/check_mysql.c:307 +#: plugins/check_nagios.c:182 plugins/check_pgsql.c:577 +#: plugins/check_pgsql.c:582 plugins/check_pgsql.c:610 +#: plugins/check_procs.c:346 +#, c-format +msgid "WARNING" +msgstr "WARNING" + +#: plugins/check_dns.c:297 +#, fuzzy, c-format +msgid "%.3f second response time" +msgid_plural "%.3f seconds response time" +msgstr[0] "%.3f Sekunden Antwortzeit " +msgstr[1] "%.3f Sekunden Antwortzeit " + +#: plugins/check_dns.c:298 +#, fuzzy, c-format +msgid ". %s returns %s" +msgstr "%s hat %s zurückgegeben" + +#: plugins/check_dns.c:318 +#, c-format +msgid "DNS WARNING - %s\n" +msgstr "DNS WARNING - %s\n" + +#: plugins/check_dns.c:319 plugins/check_dns.c:322 plugins/check_dns.c:325 +msgid " Probably a non-existent host/domain" +msgstr "nicht existierender Host/Domain" + +#: plugins/check_dns.c:321 +#, c-format +msgid "DNS CRITICAL - %s\n" +msgstr "DNS CRITICAL - %s\n" + +#: plugins/check_dns.c:324 +#, fuzzy, c-format +msgid "DNS UNKNOWN - %s\n" +msgstr "DNS UNKNOWN - %s\n" + +#: plugins/check_dns.c:368 +msgid "Note: nslookup is deprecated and may be removed from future releases." +msgstr "" + +#: plugins/check_dns.c:369 +msgid "Consider using the `dig' or `host' programs instead. Run nslookup with" +msgstr "" + +#: plugins/check_dns.c:370 +msgid "the `-sil[ent]' option to prevent this message from appearing." +msgstr "" + +#: plugins/check_dns.c:375 plugins/check_dns.c:377 +#, c-format +msgid "No response from DNS %s\n" +msgstr "Keine Antwort von DNS %s\n" + +#: plugins/check_dns.c:381 +#, c-format +msgid "DNS %s has no records\n" +msgstr "Nameserver %s hat keine Datensätze\n" + +#: plugins/check_dns.c:389 +#, c-format +msgid "Connection to DNS %s was refused\n" +msgstr "Verbindung zum Nameserver %s wurde verweigert\n" + +#: plugins/check_dns.c:393 +#, c-format +msgid "Query was refused by DNS server at %s\n" +msgstr "" + +#: plugins/check_dns.c:397 +#, c-format +msgid "No information returned by DNS server at %s\n" +msgstr "" + +#: plugins/check_dns.c:401 +msgid "Network is unreachable\n" +msgstr "Netzwerk nicht erreichbar\n" + +#: plugins/check_dns.c:405 +#, c-format +msgid "DNS failure for %s\n" +msgstr "DNS Fehler für %s\n" + +#: plugins/check_dns.c:471 plugins/check_dns.c:479 plugins/check_dns.c:486 +#: plugins/check_dns.c:491 plugins/check_dns.c:533 plugins/check_dns.c:541 +#: plugins/check_game.c:211 plugins/check_game.c:219 +msgid "Input buffer overflow\n" +msgstr "Eingabe-Pufferüberlauf\n" + +#: plugins/check_dns.c:576 +msgid "" +"This plugin uses the nslookup program to obtain the IP address for the given " +"host/domain query." +msgstr "" + +#: plugins/check_dns.c:577 +msgid "An optional DNS server to use may be specified." +msgstr "" + +#: plugins/check_dns.c:578 +msgid "" +"If no DNS server is specified, the default server(s) specified in /etc/" +"resolv.conf will be used." +msgstr "" + +#: plugins/check_dns.c:588 +msgid "The name or address you want to query" +msgstr "" + +#: plugins/check_dns.c:590 +msgid "Optional DNS server you want to use for the lookup" +msgstr "" + +#: plugins/check_dns.c:592 +msgid "" +"Optional IP-ADDRESS/CIDR you expect the DNS server to return. HOST must end" +msgstr "" + +#: plugins/check_dns.c:593 +msgid "" +"with a dot (.). This option can be repeated multiple times (Returns OK if any" +msgstr "" + +#: plugins/check_dns.c:594 +msgid "value matches)." +msgstr "" + +#: plugins/check_dns.c:596 +msgid "" +"Expect the DNS server to return NXDOMAIN (i.e. the domain was not found)" +msgstr "" + +#: plugins/check_dns.c:597 +msgid "Cannot be used together with -a" +msgstr "" + +#: plugins/check_dns.c:599 +msgid "Optionally expect the DNS server to be authoritative for the lookup" +msgstr "" + +#: plugins/check_dns.c:601 +msgid "Return warning if elapsed time exceeds value. Default off" +msgstr "" + +#: plugins/check_dns.c:603 +msgid "Return critical if elapsed time exceeds value. Default off" +msgstr "" + +#: plugins/check_dns.c:605 +msgid "" +"Return critical if the list of expected addresses does not match all " +"addresses" +msgstr "" + +#: plugins/check_dns.c:606 +msgid "returned. Default off" +msgstr "" + +#: plugins/check_dummy.c:62 +msgid "Arguments to check_dummy must be an integer" +msgstr "Argument für check_dummy muss ein Integer sein" + +#: plugins/check_dummy.c:82 +#, c-format +msgid "Status %d is not a supported error state\n" +msgstr "Status %d ist kein bekannter Fehlerstatus\n" + +#: plugins/check_dummy.c:104 +msgid "" +"This plugin will simply return the state corresponding to the numeric value" +msgstr "" + +#: plugins/check_dummy.c:106 +msgid "of the argument with optional text" +msgstr "" + +#: plugins/check_fping.c:127 plugins/check_hpjd.c:134 plugins/check_ping.c:444 +#: plugins/check_swap.c:196 plugins/check_users.c:130 plugins/urlize.c:109 +#, c-format +msgid "Could not open pipe: %s\n" +msgstr "Pipe: %s konnte nicht geöffnet werden\n" + +#: plugins/check_fping.c:133 plugins/check_hpjd.c:140 plugins/check_load.c:159 +#: plugins/check_swap.c:202 plugins/check_users.c:136 plugins/urlize.c:115 +#, c-format +msgid "Could not open stderr for %s\n" +msgstr "Konnte stderr nicht öffnen für: %s\n" + +#: plugins/check_fping.c:161 +#, fuzzy +msgid "FPING UNKNOWN - IP address not found\n" +msgstr "FPING UNKNOWN - %s nicht gefunden\n" + +#: plugins/check_fping.c:164 +msgid "FPING UNKNOWN - invalid commandline argument\n" +msgstr "" + +#: plugins/check_fping.c:167 +#, fuzzy +msgid "FPING UNKNOWN - failed system call\n" +msgstr "FPING UNKNOWN - %s nicht gefunden\n" + +#: plugins/check_fping.c:194 +#, fuzzy, c-format +msgid "FPING %s - %s (rta=%f ms)|%s\n" +msgstr "FPING %s - %s (verloren=%.0f%% )|%s\n" + +#: plugins/check_fping.c:202 +#, c-format +msgid "FPING UNKNOWN - %s not found\n" +msgstr "FPING UNKNOWN - %s nicht gefunden\n" + +#: plugins/check_fping.c:206 +#, c-format +msgid "FPING CRITICAL - %s is unreachable\n" +msgstr "FPING CRITICAL - %s ist nicht erreichbar\n" + +#: plugins/check_fping.c:211 +#, fuzzy, c-format +msgid "FPING UNKNOWN - %s parameter error\n" +msgstr "FPING UNKNOWN - %s nicht gefunden\n" + +#: plugins/check_fping.c:215 plugins/check_fping.c:255 +#, c-format +msgid "FPING CRITICAL - %s is down\n" +msgstr "FPING CRITICAL - %s ist down\n" + +#: plugins/check_fping.c:242 +#, c-format +msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n" +msgstr "FPING %s - %s (verloren=%.0f%%, rta=%f ms)|%s %s\n" + +#: plugins/check_fping.c:268 +#, c-format +msgid "FPING %s - %s (loss=%.0f%% )|%s\n" +msgstr "FPING %s - %s (verloren=%.0f%% )|%s\n" + +#: plugins/check_fping.c:345 plugins/check_fping.c:351 plugins/check_hpjd.c:345 +#: plugins/check_hpjd.c:376 plugins/check_mysql.c:386 plugins/check_mysql.c:473 +#: plugins/check_ntp.c:719 plugins/check_ntp_peer.c:497 +#: plugins/check_ntp_time.c:498 plugins/check_pgsql.c:338 +#: plugins/check_ping.c:301 plugins/check_ping.c:424 plugins/check_radius.c:275 +#: plugins/check_real.c:315 plugins/check_real.c:377 plugins/check_smtp.c:509 +#: plugins/check_smtp.c:654 plugins/check_ssh.c:162 plugins/check_time.c:240 +#: plugins/check_time.c:315 plugins/check_ups.c:507 plugins/check_ups.c:576 +msgid "Invalid hostname/address" +msgstr "Ungültige(r) Hostname/Adresse" + +#: plugins/check_fping.c:364 plugins/check_ldap.c:400 plugins/check_ping.c:252 +#: plugins-root/check_icmp.c:477 +msgid "IPv6 support not available\n" +msgstr "" + +#: plugins/check_fping.c:397 +msgid "Packet size must be a positive integer" +msgstr "Paketgröße muss ein positiver Integer sein" + +#: plugins/check_fping.c:403 +msgid "Packet count must be a positive integer" +msgstr "Paketanzahl muss ein positiver Integer sein" + +#: plugins/check_fping.c:409 +#, fuzzy +msgid "Target timeout must be a positive integer" +msgstr "Warnung time muss ein positiver Integer sein" + +#: plugins/check_fping.c:415 +#, fuzzy +msgid "Interval must be a positive integer" +msgstr "Timeout interval muss ein positiver Integer sein" + +#: plugins/check_fping.c:421 plugins/check_ntp.c:743 +#: plugins/check_ntp_peer.c:524 plugins/check_ntp_time.c:528 +#: plugins/check_radius.c:325 plugins/check_time.c:319 +msgid "Hostname was not supplied" +msgstr "" + +#: plugins/check_fping.c:441 +#, c-format +msgid "%s: Only one threshold may be packet loss (%s)\n" +msgstr "%s: Nur ein Wert darf für paket loss angegeben werden (%s)\n" + +#: plugins/check_fping.c:445 +#, c-format +msgid "%s: Only one threshold must be packet loss (%s)\n" +msgstr "%s: Nur ein Wert darf für paket loss angegeben werden (%s)\n" + +#: plugins/check_fping.c:475 +msgid "" +"This plugin will use the fping command to ping the specified host for a fast " +"check" +msgstr "" + +#: plugins/check_fping.c:477 +msgid "Note that it is necessary to set the suid flag on fping." +msgstr "" + +#: plugins/check_fping.c:489 +msgid "" +"name or IP Address of host to ping (IP Address bypasses name lookup, " +"reducing system load)" +msgstr "" + +#: plugins/check_fping.c:491 plugins/check_ping.c:589 +#, fuzzy +msgid "warning threshold pair" +msgstr "Warning threshold Integer sein" + +#: plugins/check_fping.c:493 plugins/check_ping.c:591 +#, fuzzy +msgid "critical threshold pair" +msgstr "Critical threshold muss ein Integer sein" + +#: plugins/check_fping.c:495 +msgid "Return OK after first successful reply" +msgstr "" + +#: plugins/check_fping.c:497 +msgid "size of ICMP packet" +msgstr "" + +#: plugins/check_fping.c:499 +msgid "number of ICMP packets to send" +msgstr "" + +#: plugins/check_fping.c:501 +msgid "Target timeout (ms)" +msgstr "" + +#: plugins/check_fping.c:503 +msgid "Interval (ms) between sending packets" +msgstr "" + +#: plugins/check_fping.c:505 +msgid "name or IP Address of sourceip" +msgstr "" + +#: plugins/check_fping.c:507 +msgid "source interface name" +msgstr "" + +#: plugins/check_fping.c:510 +#, c-format +msgid "" +"THRESHOLD is ,%% where is the round trip average travel time " +"(ms)" +msgstr "" + +#: plugins/check_fping.c:511 +msgid "" +"which triggers a WARNING or CRITICAL state, and is the percentage of" +msgstr "" + +#: plugins/check_fping.c:512 +msgid "packet loss to trigger an alarm state." +msgstr "" + +#: plugins/check_fping.c:515 +msgid "IPv4 is used by default. Specify -6 to use IPv6." +msgstr "" + +#: plugins/check_game.c:111 +#, c-format +msgid "CRITICAL - Host type parameter incorrect!\n" +msgstr "CRITICAL - Host type parameter unkorrekt!\n" + +#: plugins/check_game.c:126 +#, fuzzy, c-format +msgid "CRITICAL - Host not found\n" +msgstr "CRITICAL - Text nicht gefunden%s|%s %s\n" + +#: plugins/check_game.c:130 +#, fuzzy, c-format +msgid "CRITICAL - Game server down or unavailable\n" +msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" + +#: plugins/check_game.c:134 +#, fuzzy, c-format +msgid "CRITICAL - Game server timeout\n" +msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" + +#: plugins/check_game.c:297 +#, c-format +msgid "This plugin tests game server connections with the specified host." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_game.c:307 +msgid "Optional port of which to connect" +msgstr "" + +#: plugins/check_game.c:309 +msgid "Field number in raw qstat output that contains game name" +msgstr "" + +#: plugins/check_game.c:311 +msgid "Field number in raw qstat output that contains map name" +msgstr "" + +#: plugins/check_game.c:313 +msgid "Field number in raw qstat output that contains ping time" +msgstr "" + +#: plugins/check_game.c:319 +#, fuzzy +msgid "" +"This plugin uses the 'qstat' command, the popular game server status query " +"tool." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_game.c:320 +msgid "" +"If you don't have the package installed, you will need to download it from" +msgstr "" + +#: plugins/check_game.c:321 +msgid "https://github.com/multiplay/qstat before you can use this plugin." +msgstr "" + +#: plugins/check_hpjd.c:245 +msgid "Paper Jam" +msgstr "Papierstau" + +#: plugins/check_hpjd.c:250 +msgid "Out of Paper" +msgstr "Kein Papier" + +#: plugins/check_hpjd.c:255 +msgid "Printer Offline" +msgstr "Drucker ausgeschaltet" + +#: plugins/check_hpjd.c:260 +msgid "Peripheral Error" +msgstr "Peripheriefehler" + +#: plugins/check_hpjd.c:264 +msgid "Intervention Required" +msgstr "Eingriff benötigt" + +#: plugins/check_hpjd.c:268 +msgid "Toner Low" +msgstr "Wenig Toner" + +#: plugins/check_hpjd.c:272 +msgid "Insufficient Memory" +msgstr "Nicht genügend Speicher" + +#: plugins/check_hpjd.c:276 +msgid "A Door is Open" +msgstr "Eine Abdeckung ist offen" + +#: plugins/check_hpjd.c:280 +msgid "Output Tray is Full" +msgstr "Ausgabeschacht ist voll" + +#: plugins/check_hpjd.c:284 +msgid "Data too Slow for Engine" +msgstr "" + +#: plugins/check_hpjd.c:288 +msgid "Unknown Paper Error" +msgstr "Papierfehler" + +#: plugins/check_hpjd.c:293 +#, c-format +msgid "Printer ok - (%s)\n" +msgstr "Printer ok - (%s)\n" + +#: plugins/check_hpjd.c:353 +#, fuzzy +msgid "Port must be a positive short integer" +msgstr "Port muss ein positiver Integer sein" + +#: plugins/check_hpjd.c:410 +#, fuzzy +msgid "This plugin tests the STATUS of an HP printer with a JetDirect card." +msgstr "" +"Dieses Plugin testet den STATUS eines HP Druckers mit einer JetDirect " +"Karte.\n" +"Net-snmp muss auf dem ausführenden Computer installiert sein.\n" +"\n" + +#: plugins/check_hpjd.c:411 +#, fuzzy +msgid "Net-snmp must be installed on the computer running the plugin." +msgstr "" +"Dieses Plugin testet den STATUS eines HP Druckers mit einer JetDirect " +"Karte.\n" +"Net-snmp muss auf dem ausführenden Computer installiert sein.\n" +"\n" + +#: plugins/check_hpjd.c:421 +msgid "The SNMP community name " +msgstr "" + +#: plugins/check_hpjd.c:422 plugins/check_hpjd.c:426 +#, c-format +msgid "(default=%s)" +msgstr "" + +#: plugins/check_hpjd.c:425 +msgid "Specify the port to check " +msgstr "" + +#: plugins/check_hpjd.c:429 +msgid "Disable paper check " +msgstr "" + +#: plugins/check_http.c:196 +msgid "file does not exist or is not readable" +msgstr "" + +#: plugins/check_http.c:324 plugins/check_http.c:329 plugins/check_http.c:335 +#: plugins/check_smtp.c:605 plugins/check_tcp.c:590 plugins/check_tcp.c:595 +#: plugins/check_tcp.c:601 +msgid "Invalid certificate expiration period" +msgstr "Ungültiger Zertifikatsablauftermin" + +#: plugins/check_http.c:378 +msgid "" +"Invalid option - Valid SSL/TLS versions: 2, 3, 1, 1.1, 1.2 (with optional " +"'+' suffix)" +msgstr "" + +#: plugins/check_http.c:384 plugins/check_tcp.c:614 plugins/check_tcp.c:623 +#, fuzzy +msgid "Invalid option - SSL is not available" +msgstr "Ungültige Option - SSL ist nicht verfügbar\n" + +#: plugins/check_http.c:392 +msgid "Invalid max_redirs count" +msgstr "" + +#: plugins/check_http.c:412 +msgid "Invalid onredirect option" +msgstr "" + +#: plugins/check_http.c:414 +#, c-format +msgid "option f:%d \n" +msgstr "Option f:%d \n" + +#: plugins/check_http.c:449 +msgid "Invalid port number" +msgstr "Ungültige Portnummer" + +#: plugins/check_http.c:507 +#, c-format +msgid "Could Not Compile Regular Expression: %s" +msgstr "" + +#: plugins/check_http.c:521 plugins/check_ntp.c:732 +#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:517 +#: plugins/check_smtp.c:634 plugins/check_ssh.c:151 plugins/check_tcp.c:491 +msgid "IPv6 support not available" +msgstr "IPv6 Unterstützung nicht vorhanden" + +#: plugins/check_http.c:589 plugins/check_ping.c:428 +msgid "You must specify a server address or host name" +msgstr "Hostname oder Serveradresse muss angegeben werden" + +#: plugins/check_http.c:606 +msgid "" +"If you use a client certificate you must also specify a private key file" +msgstr "" + +#: plugins/check_http.c:733 plugins/check_http.c:901 +#, fuzzy +msgid "HTTP UNKNOWN - Memory allocation error\n" +msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" + +#: plugins/check_http.c:805 +#, fuzzy, c-format +msgid "%sServer date unknown, " +msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n" + +#: plugins/check_http.c:808 +#, fuzzy, c-format +msgid "%sDocument modification date unknown, " +msgstr "HTTP CRITICAL - Datum der letzten Änderung unbekannt\n" + +#: plugins/check_http.c:815 +#, fuzzy, c-format +msgid "%sServer date \"%100s\" unparsable, " +msgstr "HTTP CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" + +#: plugins/check_http.c:818 +#, fuzzy, c-format +msgid "%sDocument date \"%100s\" unparsable, " +msgstr "" +"HTTP CRITICAL - Dokumentendatum \"%100s\" konnte nicht verarbeitet werden" + +#: plugins/check_http.c:821 +#, fuzzy, c-format +msgid "%sDocument is %d seconds in the future, " +msgstr "HTTP CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" + +#: plugins/check_http.c:826 +#, fuzzy, c-format +msgid "%sLast modified %.1f days ago, " +msgstr "HTTP CRITICAL - Letzte Änderung vor %.1f Tagen\n" + +#: plugins/check_http.c:829 +#, fuzzy, c-format +msgid "%sLast modified %d:%02d:%02d ago, " +msgstr "HTTP CRITICAL - Letzte Änderung vor %d:%02d:%02d \n" + +#: plugins/check_http.c:943 +msgid "HTTP CRITICAL - Unable to open TCP socket\n" +msgstr "HTTP CRITICAL - Konnte TCP socket nicht öffnen\n" + +#: plugins/check_http.c:1103 +#, fuzzy +msgid "HTTP UNKNOWN - Could not allocate memory for full_page\n" +msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" + +#: plugins/check_http.c:1120 +msgid "HTTP CRITICAL - Error on receive\n" +msgstr "HTTP CRITICAL - Fehler beim Empfangen\n" + +#: plugins/check_http.c:1125 +#, fuzzy +msgid "HTTP CRITICAL - No data received from host\n" +msgstr "HTTP CRITICAL - Keine Daten empfangen\n" + +#: plugins/check_http.c:1176 +#, fuzzy, c-format +msgid "Invalid HTTP response received from host: %s\n" +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_http.c:1180 +#, fuzzy, c-format +msgid "Invalid HTTP response received from host on port %d: %s\n" +msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" + +#: plugins/check_http.c:1183 plugins/check_http.c:1376 +#, c-format +msgid "" +"%s\n" +"%s" +msgstr "" + +#: plugins/check_http.c:1191 +#, fuzzy, c-format +msgid "Status line output matched \"%s\" - " +msgstr "HTTP OK: Statusausgabe passt auf \"%s\"\n" + +#: plugins/check_http.c:1202 +#, c-format +msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" +msgstr "HTTP CRITICAL: Ungültige Statusmeldung (%s)\n" + +#: plugins/check_http.c:1209 +#, c-format +msgid "HTTP CRITICAL: Invalid Status (%s)\n" +msgstr "HTTP CRITICAL: Ungültiger Status (%s)\n" + +#: plugins/check_http.c:1213 plugins/check_http.c:1218 +#: plugins/check_http.c:1228 plugins/check_http.c:1232 +#, c-format +msgid "%s - " +msgstr "" + +#: plugins/check_http.c:1260 +#, fuzzy, c-format +msgid "%sheader '%s' not found on '%s://%s:%d%s', " +msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" + +#: plugins/check_http.c:1303 +#, fuzzy, c-format +msgid "%sstring '%s' not found on '%s://%s:%d%s', " +msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" + +#: plugins/check_http.c:1317 +#, fuzzy, c-format +msgid "%spattern not found, " +msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" + +#: plugins/check_http.c:1319 +#, fuzzy, c-format +msgid "%spattern found, " +msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" + +#: plugins/check_http.c:1325 +#, fuzzy, c-format +msgid "%sExecute Error: %s, " +msgstr "HTTP CRITICAL - Fehler: %s\n" + +#: plugins/check_http.c:1341 +#, fuzzy, c-format +msgid "%spage size %d too large, " +msgstr "HTTP WARNING: Seitengröße %d zu klein%s|%s\n" + +#: plugins/check_http.c:1344 +#, fuzzy, c-format +msgid "%spage size %d too small, " +msgstr "HTTP WARNING: Seitengröße %d zu klein%s|%s\n" + +#: plugins/check_http.c:1357 +#, fuzzy, c-format +msgid "%s - %d bytes in %.3f second response time %s|%s %s %s %s %s %s %s" +msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" + +#: plugins/check_http.c:1369 +#, fuzzy, c-format +msgid "%s - %d bytes in %.3f second response time %s|%s %s" +msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" + +#: plugins/check_http.c:1494 +msgid "HTTP UNKNOWN - Could not allocate addr\n" +msgstr "HTTP UNKNOWN - Konnte addr nicht zuweisen\n" + +#: plugins/check_http.c:1499 plugins/check_http.c:1530 +#, fuzzy +msgid "HTTP UNKNOWN - Could not allocate URL\n" +msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" + +#: plugins/check_http.c:1508 +#, c-format +msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" +msgstr "" + +#: plugins/check_http.c:1523 +#, fuzzy, c-format +msgid "HTTP UNKNOWN - Empty redirect location%s\n" +msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n" + +#: plugins/check_http.c:1585 +#, c-format +msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" +msgstr "" + +#: plugins/check_http.c:1595 +#, fuzzy, c-format +msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" +msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" + +#: plugins/check_http.c:1603 +#, fuzzy, c-format +msgid "HTTP CRITICAL - redirection creates an infinite loop - %s://%s:%d%s%s\n" +msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" + +#: plugins/check_http.c:1624 +#, fuzzy, c-format +msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" +msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" + +#: plugins/check_http.c:1632 +#, c-format +msgid "Redirection to %s://%s:%d%s\n" +msgstr "" + +#: plugins/check_http.c:1707 +#, fuzzy +msgid "This plugin tests the HTTP service on the specified host. It can test" +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_http.c:1708 +msgid "normal (http) and secure (https) servers, follow redirects, search for" +msgstr "" + +#: plugins/check_http.c:1709 +msgid "strings and regular expressions, check connection times, and report on" +msgstr "" + +#: plugins/check_http.c:1710 +#, fuzzy +msgid "certificate expiration times." +msgstr "Clientzertifikat benötigt\n" + +#: plugins/check_http.c:1717 +#, c-format +msgid "In the first form, make an HTTP request." +msgstr "" + +#: plugins/check_http.c:1718 +#, c-format +msgid "" +"In the second form, connect to the server and check the TLS certificate." +msgstr "" + +#: plugins/check_http.c:1720 +#, c-format +msgid "NOTE: One or both of -H and -I must be specified" +msgstr "" + +#: plugins/check_http.c:1728 +msgid "Host name argument for servers using host headers (virtual host)" +msgstr "" + +#: plugins/check_http.c:1729 +msgid "Append a port to include it in the header (eg: example.com:5000)" +msgstr "" + +#: plugins/check_http.c:1731 +msgid "" +"IP address or name (use numeric address if possible to bypass DNS lookup)." +msgstr "" + +#: plugins/check_http.c:1733 +msgid "Port number (default: " +msgstr "" + +#: plugins/check_http.c:1740 +msgid "" +"Connect via SSL. Port defaults to 443. VERSION is optional, and prevents" +msgstr "" + +#: plugins/check_http.c:1741 +msgid "auto-negotiation (2 = SSLv2, 3 = SSLv3, 1 = TLSv1, 1.1 = TLSv1.1," +msgstr "" + +#: plugins/check_http.c:1742 +msgid "1.2 = TLSv1.2). With a '+' suffix, newer versions are also accepted." +msgstr "" + +#: plugins/check_http.c:1744 +msgid "Enable SSL/TLS hostname extension support (SNI)" +msgstr "" + +#: plugins/check_http.c:1746 +msgid "" +"Minimum number of days a certificate has to be valid. Port defaults to 443" +msgstr "" + +#: plugins/check_http.c:1747 +msgid "" +"(when this option is used the URL is not checked by default. You can use" +msgstr "" + +#: plugins/check_http.c:1748 +msgid " --continue-after-certificate to override this behavior)" +msgstr "" + +#: plugins/check_http.c:1750 +msgid "" +"Allows the HTTP check to continue after performing the certificate check." +msgstr "" + +#: plugins/check_http.c:1751 +msgid "Does nothing unless -C is used." +msgstr "" + +#: plugins/check_http.c:1753 +msgid "Name of file that contains the client certificate (PEM format)" +msgstr "" + +#: plugins/check_http.c:1754 +msgid "to be used in establishing the SSL session" +msgstr "" + +#: plugins/check_http.c:1756 +msgid "Name of file containing the private key (PEM format)" +msgstr "" + +#: plugins/check_http.c:1757 +msgid "matching the client certificate" +msgstr "" + +#: plugins/check_http.c:1761 +msgid "Comma-delimited list of strings, at least one of them is expected in" +msgstr "" + +#: plugins/check_http.c:1762 +msgid "the first (status) line of the server response (default: " +msgstr "" + +#: plugins/check_http.c:1764 +msgid "" +"If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" +msgstr "" + +#: plugins/check_http.c:1766 +msgid "String to expect in the response headers" +msgstr "" + +#: plugins/check_http.c:1768 +msgid "String to expect in the content" +msgstr "" + +#: plugins/check_http.c:1770 +msgid "URL to GET or POST (default: /)" +msgstr "" + +#: plugins/check_http.c:1772 +msgid "URL encoded http POST data" +msgstr "" + +#: plugins/check_http.c:1774 +msgid "Set HTTP method." +msgstr "" + +#: plugins/check_http.c:1776 +msgid "Don't wait for document body: stop reading after headers." +msgstr "" + +#: plugins/check_http.c:1777 +msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" +msgstr "" + +#: plugins/check_http.c:1779 +msgid "Warn if document is more than SECONDS old. the number can also be of" +msgstr "" + +#: plugins/check_http.c:1780 +msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." +msgstr "" + +#: plugins/check_http.c:1782 +msgid "specify Content-Type header media type when POSTing\n" +msgstr "" + +#: plugins/check_http.c:1785 +msgid "Allow regex to span newlines (must precede -r or -R)" +msgstr "" + +#: plugins/check_http.c:1787 +msgid "Search page for regex STRING" +msgstr "" + +#: plugins/check_http.c:1789 +msgid "Search page for case-insensitive regex STRING" +msgstr "" + +#: plugins/check_http.c:1791 +msgid "Return CRITICAL if found, OK if not\n" +msgstr "" + +#: plugins/check_http.c:1794 +msgid "Username:password on sites with basic authentication" +msgstr "" + +#: plugins/check_http.c:1796 +msgid "Username:password on proxy-servers with basic authentication" +msgstr "" + +#: plugins/check_http.c:1798 +msgid "String to be sent in http header as \"User Agent\"" +msgstr "" + +#: plugins/check_http.c:1800 +msgid "" +"Any other tags to be sent in http header. Use multiple times for additional " +"headers" +msgstr "" + +#: plugins/check_http.c:1802 +msgid "Print additional performance data" +msgstr "" + +#: plugins/check_http.c:1804 +msgid "Print body content below status line" +msgstr "" + +#: plugins/check_http.c:1806 +msgid "Wrap output in HTML link (obsoleted by urlize)" +msgstr "" + +#: plugins/check_http.c:1808 +msgid "How to handle redirected pages. sticky is like follow but stick to the" +msgstr "" + +#: plugins/check_http.c:1809 +msgid "specified IP address. stickyport also ensures port stays the same." +msgstr "" + +#: plugins/check_http.c:1811 +#, fuzzy +msgid "Maximal number of redirects (default: " +msgstr "Ungültige Portnummer" + +#: plugins/check_http.c:1814 +msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" +msgstr "" + +#: plugins/check_http.c:1823 +#, fuzzy +msgid "This plugin will attempt to open an HTTP connection with the host." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_http.c:1824 +msgid "" +"Successful connects return STATE_OK, refusals and timeouts return " +"STATE_CRITICAL" +msgstr "" + +#: plugins/check_http.c:1825 +msgid "" +"other errors return STATE_UNKNOWN. Successful connects, but incorrect " +"response" +msgstr "" + +#: plugins/check_http.c:1826 +msgid "" +"messages from the host result in STATE_WARNING return values. If you are" +msgstr "" + +#: plugins/check_http.c:1827 +msgid "" +"checking a virtual server that uses 'host headers' you must supply the FQDN" +msgstr "" + +#: plugins/check_http.c:1828 +msgid "(fully qualified domain name) as the [host_name] argument." +msgstr "" + +#: plugins/check_http.c:1832 +msgid "This plugin can also check whether an SSL enabled web server is able to" +msgstr "" + +#: plugins/check_http.c:1833 +msgid "serve content (optionally within a specified time) or whether the X509 " +msgstr "" + +#: plugins/check_http.c:1834 +msgid "certificate is still valid for the specified number of days." +msgstr "" + +#: plugins/check_http.c:1836 +#, fuzzy +msgid "Please note that this plugin does not check if the presented server" +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_http.c:1837 +msgid "certificate matches the hostname of the server, or if the certificate" +msgstr "" + +#: plugins/check_http.c:1838 +msgid "has a valid chain of trust to one of the locally installed CAs." +msgstr "" + +#: plugins/check_http.c:1842 +msgid "" +"When the 'www.verisign.com' server returns its content within 5 seconds," +msgstr "" + +#: plugins/check_http.c:1843 plugins/check_http.c:1862 +msgid "" +"a STATE_OK will be returned. When the server returns its content but exceeds" +msgstr "" + +#: plugins/check_http.c:1844 plugins/check_http.c:1863 +msgid "" +"the 5-second threshold, a STATE_WARNING will be returned. When an error " +"occurs," +msgstr "" + +#: plugins/check_http.c:1845 +msgid "a STATE_CRITICAL will be returned." +msgstr "" + +#: plugins/check_http.c:1848 +msgid "" +"When the certificate of 'www.verisign.com' is valid for more than 14 days," +msgstr "" + +#: plugins/check_http.c:1849 plugins/check_http.c:1855 +msgid "" +"a STATE_OK is returned. When the certificate is still valid, but for less " +"than" +msgstr "" + +#: plugins/check_http.c:1850 +msgid "" +"14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" +msgstr "" + +#: plugins/check_http.c:1851 +#, fuzzy +msgid "the certificate is expired." +msgstr "Clientzertifikat benötigt\n" + +#: plugins/check_http.c:1854 +msgid "" +"When the certificate of 'www.verisign.com' is valid for more than 30 days," +msgstr "" + +#: plugins/check_http.c:1856 +msgid "30 days, but more than 14 days, a STATE_WARNING is returned." +msgstr "" + +#: plugins/check_http.c:1857 +msgid "" +"A STATE_CRITICAL will be returned when certificate expires in less than 14 " +"days" +msgstr "" + +#: plugins/check_http.c:1860 +msgid "" +"check_http -I 192.168.100.35 -p 80 -u https://www.verisign.com/ -S -j " +"CONNECT -H www.verisign.com " +msgstr "" + +#: plugins/check_http.c:1861 +msgid "" +"all these options are needed: -I -p -u -" +"S(sl) -j CONNECT -H " +msgstr "" + +#: plugins/check_http.c:1864 +msgid "" +"a STATE_CRITICAL will be returned. By adding a colon to the method you can " +"set the method used" +msgstr "" + +#: plugins/check_http.c:1865 +msgid "inside the proxied connection: -j CONNECT:POST" +msgstr "" + +#: plugins/check_ldap.c:142 +#, c-format +msgid "Could not connect to the server at port %i\n" +msgstr "" + +#: plugins/check_ldap.c:151 +#, c-format +msgid "Could not set protocol version %d\n" +msgstr "" + +#: plugins/check_ldap.c:166 +#, fuzzy, c-format +msgid "Could not init TLS at port %i!\n" +msgstr "Konnte stderr nicht öffnen für: %s\n" + +#: plugins/check_ldap.c:170 +#, c-format +msgid "TLS not supported by the libraries!\n" +msgstr "" + +#: plugins/check_ldap.c:190 +#, fuzzy, c-format +msgid "Could not init startTLS at port %i!\n" +msgstr "Konnte stderr nicht öffnen für: %s\n" + +#: plugins/check_ldap.c:194 +#, c-format +msgid "startTLS not supported by the library, needs LDAPv3!\n" +msgstr "" + +#: plugins/check_ldap.c:204 +#, c-format +msgid "Could not bind to the LDAP server\n" +msgstr "" + +#: plugins/check_ldap.c:213 +#, c-format +msgid "Could not search/find objectclasses in %s\n" +msgstr "" + +#: plugins/check_ldap.c:252 +#, fuzzy, c-format +msgid "LDAP %s - found %d entries in %.3f seconds|%s %s\n" +msgstr "HTTP OK %s - %.3f Sekunde Antwortzeit %s%s|%s %s\n" + +#: plugins/check_ldap.c:265 +#, c-format +msgid "LDAP %s - %.3f seconds response time|%s\n" +msgstr "" + +#: plugins/check_ldap.c:386 plugins/check_ldap.c:394 +#, c-format +msgid "%s cannot be combined with %s" +msgstr "" + +#: plugins/check_ldap.c:426 +msgid "Please specify the host name\n" +msgstr "" + +#: plugins/check_ldap.c:429 +msgid "Please specify the LDAP base\n" +msgstr "" + +#: plugins/check_ldap.c:465 +msgid "ldap attribute to search (default: \"(objectclass=*)\"" +msgstr "" + +#: plugins/check_ldap.c:467 +msgid "ldap base (eg. ou=my unit, o=my org, c=at" +msgstr "" + +#: plugins/check_ldap.c:469 +msgid "ldap bind DN (if required)" +msgstr "" + +#: plugins/check_ldap.c:471 +msgid "" +"ldap password (if required, or set the password through environment variable " +"'LDAP_PASSWORD')" +msgstr "" + +#: plugins/check_ldap.c:473 +msgid "use starttls mechanism introduced in protocol version 3" +msgstr "" + +#: plugins/check_ldap.c:475 +msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" +msgstr "" + +#: plugins/check_ldap.c:479 +msgid "use ldap protocol version 2" +msgstr "" + +#: plugins/check_ldap.c:481 +msgid "use ldap protocol version 3" +msgstr "" + +#: plugins/check_ldap.c:482 +msgid "default protocol version:" +msgstr "" + +#: plugins/check_ldap.c:488 +msgid "Number of found entries to result in warning status" +msgstr "" + +#: plugins/check_ldap.c:490 +msgid "Number of found entries to result in critical status" +msgstr "" + +#: plugins/check_ldap.c:498 +msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" +msgstr "" + +#: plugins/check_ldap.c:499 +#, c-format +msgid "" +" implied (using default port %i) unless --port=636 is specified. In that " +"case\n" +msgstr "" + +#: plugins/check_ldap.c:500 +msgid "'SSL on connect' will be used no matter how the plugin was called." +msgstr "" + +#: plugins/check_ldap.c:501 +msgid "" +"This detection is deprecated, please use 'check_ldap' with the '--starttls' " +"or '--ssl' flags" +msgstr "" + +#: plugins/check_ldap.c:502 +msgid "to define the behaviour explicitly instead." +msgstr "" + +#: plugins/check_ldap.c:503 +msgid "The parameters --warn-entries and --crit-entries are optional." +msgstr "" + +#: plugins/check_load.c:93 +msgid "Warning threshold must be float or float triplet!\n" +msgstr "" + +#: plugins/check_load.c:138 plugins/check_load.c:154 +#, c-format +msgid "Error opening %s\n" +msgstr "" + +#: plugins/check_load.c:169 +#, fuzzy, c-format +msgid "could not parse load from uptime %s: %d\n" +msgstr "Argumente konnten nicht ausgewertet werden" + +#: plugins/check_load.c:175 +#, c-format +msgid "Error code %d returned in %s\n" +msgstr "" + +#: plugins/check_load.c:183 +#, c-format +msgid "Error in getloadavg()\n" +msgstr "" + +#: plugins/check_load.c:186 plugins/check_load.c:188 +#, c-format +msgid "Error processing %s\n" +msgstr "" + +#: plugins/check_load.c:197 plugins/check_load.c:212 +#, c-format +msgid "load average: %.2f, %.2f, %.2f" +msgstr "" + +#: plugins/check_load.c:327 +#, fuzzy, c-format +msgid "Critical threshold for %d-minute load average is not specified\n" +msgstr "Critical threshold muss ein positiver Integer sein\n" + +#: plugins/check_load.c:329 +#, fuzzy, c-format +msgid "Warning threshold for %d-minute load average is not specified\n" +msgstr "Warning threshold muss ein positiver Integer sein\n" + +#: plugins/check_load.c:331 +#, c-format +msgid "" +"Parameter inconsistency: %d-minute \"warning load\" is greater than " +"\"critical load\"\n" +msgstr "" + +#: plugins/check_load.c:346 +#, c-format +msgid "This plugin tests the current system load average." +msgstr "" + +#: plugins/check_load.c:356 +msgid "Exit with WARNING status if load average exceeds WLOADn" +msgstr "" + +#: plugins/check_load.c:358 +msgid "Exit with CRITICAL status if load average exceed CLOADn" +msgstr "" + +#: plugins/check_load.c:359 +msgid "the load average format is the same used by \"uptime\" and \"w\"" +msgstr "" + +#: plugins/check_load.c:361 +msgid "Divide the load averages by the number of CPUs (when possible)" +msgstr "" + +#: plugins/check_load.c:363 +msgid "Number of processes to show when printing the top consuming processes." +msgstr "" + +#: plugins/check_load.c:364 +msgid "NUMBER_OF_PROCS=0 disables this feature. Default value is 0" +msgstr "" + +#: plugins/check_load.c:401 +#, c-format +msgid "'%s' exited with non-zero status.\n" +msgstr "" + +#: plugins/check_load.c:405 +#, c-format +msgid "some error occurred getting procs list.\n" +msgstr "" + +#: plugins/check_mrtg.c:75 +msgid "Could not parse arguments\n" +msgstr "" + +#: plugins/check_mrtg.c:80 +#, c-format +msgid "Unable to open MRTG log file\n" +msgstr "" + +#: plugins/check_mrtg.c:127 +#, c-format +msgid "Unable to process MRTG log file\n" +msgstr "" + +#: plugins/check_mrtg.c:135 plugins/check_mrtgtraf.c:136 +#, c-format +msgid "MRTG data has expired (%d minutes old)\n" +msgstr "" + +#: plugins/check_mrtg.c:152 plugins/check_mrtgtraf.c:195 +#: plugins/check_mrtgtraf.c:196 +msgid "Avg" +msgstr "" + +#: plugins/check_mrtg.c:152 plugins/check_mrtgtraf.c:195 +#: plugins/check_mrtgtraf.c:196 +msgid "Max" +msgstr "" + +#: plugins/check_mrtg.c:221 +msgid "Invalid variable number" +msgstr "" + +#: plugins/check_mrtg.c:256 +#, c-format +msgid "" +"%s is not a valid expiration time\n" +"Use '%s -h' for additional help\n" +msgstr "" + +#: plugins/check_mrtg.c:273 +msgid "Invalid variable number\n" +msgstr "" + +#: plugins/check_mrtg.c:300 +msgid "You must supply the variable number" +msgstr "" + +#: plugins/check_mrtg.c:321 +msgid "" +"This plugin will check either the average or maximum value of one of the" +msgstr "" + +#: plugins/check_mrtg.c:322 +#, fuzzy +msgid "two variables recorded in an MRTG log file." +msgstr "Konnte MRTG Logfile nicht öffnen" + +#: plugins/check_mrtg.c:332 +msgid "The MRTG log file containing the data you want to monitor" +msgstr "" + +#: plugins/check_mrtg.c:334 +msgid "Minutes before MRTG data is considered to be too old" +msgstr "" + +#: plugins/check_mrtg.c:336 +msgid "Should we check average or maximum values?" +msgstr "" + +#: plugins/check_mrtg.c:338 +msgid "Which variable set should we inspect? (1 or 2)" +msgstr "" + +#: plugins/check_mrtg.c:340 +msgid "Threshold value for data to result in WARNING status" +msgstr "" + +#: plugins/check_mrtg.c:342 +msgid "Threshold value for data to result in CRITICAL status" +msgstr "" + +#: plugins/check_mrtg.c:344 +msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)" +msgstr "" + +#: plugins/check_mrtg.c:346 +msgid "Option units label for data (Example: Packets/Sec, Errors/Sec," +msgstr "" + +#: plugins/check_mrtg.c:347 +#, c-format +msgid "\"Bytes Per Second\", \"%% Utilization\")" +msgstr "" + +#: plugins/check_mrtg.c:350 +msgid "" +"If the value exceeds the threshold, a WARNING status is returned. If" +msgstr "" + +#: plugins/check_mrtg.c:351 +msgid "" +"the value exceeds the threshold, a CRITICAL status is returned. If" +msgstr "" + +#: plugins/check_mrtg.c:352 +msgid "the data in the log file is older than old, a WARNING" +msgstr "" + +#: plugins/check_mrtg.c:353 +msgid "status is returned and a warning message is printed." +msgstr "" + +#: plugins/check_mrtg.c:356 +msgid "" +"This plugin is useful for monitoring MRTG data that does not correspond to" +msgstr "" + +#: plugins/check_mrtg.c:357 +msgid "" +"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." +msgstr "" + +#: plugins/check_mrtg.c:358 +msgid "" +"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgstr "" + +#: plugins/check_mrtg.c:359 +msgid "" +"packets/sec, etc. I use MRTG in conjunction with the Novell NLM that allows" +msgstr "" + +#: plugins/check_mrtg.c:360 +msgid "" +"me to track processor utilization, user connections, drive space, etc and" +msgstr "" + +#: plugins/check_mrtg.c:361 +msgid "this plugin works well for monitoring that kind of data as well." +msgstr "" + +#: plugins/check_mrtg.c:364 +msgid "" +"- This plugin only monitors one of the two variables stored in the MRTG log" +msgstr "" + +#: plugins/check_mrtg.c:365 +msgid "file. If you want to monitor both values you will have to define two" +msgstr "" + +#: plugins/check_mrtg.c:366 +msgid "commands with different values for the argument. Of course," +msgstr "" + +#: plugins/check_mrtg.c:367 +msgid "you can always hack the code to make this plugin work for you..." +msgstr "" + +#: plugins/check_mrtg.c:368 +msgid "" +"- MRTG stands for the Multi Router Traffic Grapher. It can be downloaded " +"from" +msgstr "" + +#: plugins/check_mrtgtraf.c:88 +msgid "Unable to open MRTG log file" +msgstr "Konnte MRTG Logfile nicht öffnen" + +#: plugins/check_mrtgtraf.c:130 +msgid "Unable to process MRTG log file" +msgstr "" + +#: plugins/check_mrtgtraf.c:194 +#, c-format +msgid "%s. In = %0.1f %s/s, %s. Out = %0.1f %s/s|%s %s\n" +msgstr "" + +#: plugins/check_mrtgtraf.c:207 +#, c-format +msgid "Traffic %s - %s\n" +msgstr "" + +#: plugins/check_mrtgtraf.c:335 +msgid "" +"This plugin will check the incoming/outgoing transfer rates of a router," +msgstr "" + +#: plugins/check_mrtgtraf.c:336 +msgid "switch, etc recorded in an MRTG log. If the newest log entry is older" +msgstr "" + +#: plugins/check_mrtgtraf.c:337 +msgid "than , a WARNING status is returned. If either the" +msgstr "" + +#: plugins/check_mrtgtraf.c:338 +msgid "incoming or outgoing rates exceed the or thresholds (in" +msgstr "" + +#: plugins/check_mrtgtraf.c:339 +msgid "Bytes/sec), a CRITICAL status results. If either of the rates exceed" +msgstr "" + +#: plugins/check_mrtgtraf.c:340 +msgid "the or thresholds (in Bytes/sec), a WARNING status results." +msgstr "" + +#: plugins/check_mrtgtraf.c:350 +msgid "File to read log from" +msgstr "" + +#: plugins/check_mrtgtraf.c:352 +msgid "Minutes after which log expires" +msgstr "" + +#: plugins/check_mrtgtraf.c:354 +msgid "Test average or maximum" +msgstr "" + +#: plugins/check_mrtgtraf.c:356 +#, fuzzy +msgid "Warning threshold pair ," +msgstr "Warning threshold Integer sein" + +#: plugins/check_mrtgtraf.c:358 +#, fuzzy +msgid "Critical threshold pair ," +msgstr "Critical threshold muss ein Integer sein" + +#: plugins/check_mrtgtraf.c:362 +msgid "" +"- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from" +msgstr "" + +#: plugins/check_mrtgtraf.c:364 +msgid "- While MRTG can monitor things other than traffic rates, this" +msgstr "" + +#: plugins/check_mrtgtraf.c:365 +msgid " plugin probably won't work with much else without modification." +msgstr "" + +#: plugins/check_mrtgtraf.c:366 +msgid "- The calculated i/o rates are a little off from what MRTG actually" +msgstr "" + +#: plugins/check_mrtgtraf.c:367 +msgid " reports. I'm not sure why this is right now, but will look into it" +msgstr "" + +#: plugins/check_mrtgtraf.c:368 +msgid " for future enhancements of this plugin." +msgstr "" + +#: plugins/check_mrtgtraf.c:378 +#, c-format +msgid "Usage" +msgstr "" + +#: plugins/check_mysql.c:182 +#, c-format +msgid "status store_result error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:213 +#, c-format +msgid "slave query error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:220 +#, c-format +msgid "slave store_result error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:226 +msgid "No slaves defined" +msgstr "" + +#: plugins/check_mysql.c:234 +#, c-format +msgid "slave fetch row error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:239 +#, c-format +msgid "Slave running: %s" +msgstr "" + +#: plugins/check_mysql.c:517 +msgid "This program tests connections to a MySQL server" +msgstr "" + +#: plugins/check_mysql.c:528 +msgid "Ignore authentication failure and check for mysql connectivity only" +msgstr "" + +#: plugins/check_mysql.c:531 +msgid "Use the specified socket (has no effect if -H is used)" +msgstr "" + +#: plugins/check_mysql.c:534 +msgid "Check database with indicated name" +msgstr "" + +#: plugins/check_mysql.c:536 +msgid "Read from the specified client options file" +msgstr "" + +#: plugins/check_mysql.c:538 +msgid "Use a client options group" +msgstr "" + +#: plugins/check_mysql.c:540 +msgid "Connect using the indicated username" +msgstr "" + +#: plugins/check_mysql.c:542 +msgid "Use the indicated password to authenticate the connection" +msgstr "" + +#: plugins/check_mysql.c:543 +msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!" +msgstr "" + +#: plugins/check_mysql.c:544 +msgid "Your clear-text password could be visible as a process table entry" +msgstr "" + +#: plugins/check_mysql.c:546 +msgid "Check if the slave thread is running properly." +msgstr "" + +#: plugins/check_mysql.c:548 +msgid "Exit with WARNING status if slave server is more than INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:549 plugins/check_mysql.c:552 +msgid "behind master" +msgstr "" + +#: plugins/check_mysql.c:551 +msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:554 +msgid "Use ssl encryptation" +msgstr "" + +#: plugins/check_mysql.c:556 +msgid "Path to CA signing the cert" +msgstr "" + +#: plugins/check_mysql.c:558 +msgid "Path to SSL certificate" +msgstr "" + +#: plugins/check_mysql.c:560 +msgid "Path to private SSL key" +msgstr "" + +#: plugins/check_mysql.c:562 +msgid "Path to CA directory" +msgstr "" + +#: plugins/check_mysql.c:564 +msgid "List of valid SSL ciphers" +msgstr "" + +#: plugins/check_mysql.c:568 +msgid "" +"There are no required arguments. By default, the local database is checked" +msgstr "" + +#: plugins/check_mysql.c:569 +msgid "" +"using the default unix socket. You can force TCP on localhost by using an" +msgstr "" + +#: plugins/check_mysql.c:570 +msgid "IP address or FQDN ('localhost' will use the socket as well)." +msgstr "" + +#: plugins/check_mysql.c:574 +msgid "You must specify -p with an empty string to force an empty password," +msgstr "" + +#: plugins/check_mysql.c:575 +msgid "overriding any my.cnf settings." +msgstr "" + +#: plugins/check_nagios.c:104 +msgid "Cannot open status log for reading!" +msgstr "" + +#: plugins/check_nagios.c:154 +#, c-format +msgid "Found process: %s %s\n" +msgstr "" + +#: plugins/check_nagios.c:168 +msgid "Could not locate a running Nagios process!" +msgstr "" + +#: plugins/check_nagios.c:172 +msgid "Cannot parse Nagios log file for valid time" +msgstr "" + +#: plugins/check_nagios.c:183 plugins/check_procs.c:356 +#, c-format +msgid "%d process" +msgid_plural "%d processes" +msgstr[0] "" +msgstr[1] "" + +#: plugins/check_nagios.c:186 +#, c-format +msgid "status log updated %d second ago" +msgid_plural "status log updated %d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: plugins/check_nagios.c:224 plugins/check_nagios.c:253 +#, fuzzy +msgid "Expiration time must be an integer (seconds)\n" +msgstr "skip lines muss ein Integer sein" + +#: plugins/check_nagios.c:260 +#, fuzzy +msgid "Timeout must be an integer (seconds)\n" +msgstr "skip lines muss ein Integer sein" + +#: plugins/check_nagios.c:272 +#, fuzzy +msgid "You must provide the status_log\n" +msgstr "%s: Hostname muss angegeben werden\n" + +#: plugins/check_nagios.c:275 +#, fuzzy +msgid "You must provide a process string\n" +msgstr "%s: Hostname muss angegeben werden\n" + +#: plugins/check_nagios.c:289 +#, fuzzy +msgid "" +"This plugin checks the status of the Nagios process on the local machine" +msgstr "" +"Dieses Plugin prüft den freien Speicher auf einem gemounteten Filesystem\n" +"und erzeugt einen Alarm wenn einer der angegebenen Schwellwerte " +"unterschritten wird.\n" +"\n" + +#: plugins/check_nagios.c:290 +msgid "" +"The plugin will check to make sure the Nagios status log is no older than" +msgstr "" + +#: plugins/check_nagios.c:291 +msgid "the number of minutes specified by the expires option." +msgstr "" + +#: plugins/check_nagios.c:292 +msgid "" +"It also checks the process table for a process matching the command argument." +msgstr "" + +#: plugins/check_nagios.c:302 +msgid "Name of the log file to check" +msgstr "" + +#: plugins/check_nagios.c:304 +msgid "Minutes aging after which logfile is considered stale" +msgstr "" + +#: plugins/check_nagios.c:306 +msgid "Substring to search for in process arguments" +msgstr "" + +#: plugins/check_nagios.c:308 +msgid "Timeout for the plugin in seconds" +msgstr "" + +#: plugins/check_nt.c:142 +#, c-format +msgid "Wrong client version - running: %s, required: %s" +msgstr "" + +#: plugins/check_nt.c:153 plugins/check_nt.c:239 +msgid "missing -l parameters" +msgstr "" + +#: plugins/check_nt.c:155 +msgid "wrong -l parameter." +msgstr "" + +#: plugins/check_nt.c:159 +msgid "CPU Load" +msgstr "" + +#: plugins/check_nt.c:182 +#, c-format +msgid " %lu%% (%lu min average)" +msgstr "" + +#: plugins/check_nt.c:184 +#, c-format +msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nt.c:194 +msgid "not enough values for -l parameters" +msgstr "" + +#: plugins/check_nt.c:208 plugins/check_nt.c:241 +msgid "wrong -l argument" +msgstr "" + +#: plugins/check_nt.c:225 +#, c-format +msgid "System Uptime - %u day(s) %u hour(s) %u minute(s) |uptime=%lu" +msgstr "" + +#: plugins/check_nt.c:257 +#, c-format +msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" +msgstr "" + +#: plugins/check_nt.c:260 +#, c-format +msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" +msgstr "" + +#: plugins/check_nt.c:274 +msgid "Free disk space : Invalid drive" +msgstr "" + +#: plugins/check_nt.c:284 +msgid "No service/process specified" +msgstr "" + +#: plugins/check_nt.c:292 plugins/check_nt.c:305 plugins/check_nt.c:309 +#: plugins/check_nt.c:643 +msgid "could not fetch information from server\n" +msgstr "" + +#: plugins/check_nt.c:317 +#, c-format +msgid "" +"Memory usage: total:%.2f MB - used: %.2f MB (%.0f%%) - free: %.2f MB (%.0f%%)" +msgstr "" + +#: plugins/check_nt.c:320 +#, c-format +msgid "'Memory usage'=%.2fMB;%.2f;%.2f;0.00;%.2f" +msgstr "" + +#: plugins/check_nt.c:356 plugins/check_nt.c:441 plugins/check_nt.c:471 +msgid "No counter specified" +msgstr "" + +#: plugins/check_nt.c:388 +msgid "Minimum value contains non-numbers" +msgstr "" + +#: plugins/check_nt.c:392 +msgid "Maximum value contains non-numbers" +msgstr "" + +#: plugins/check_nt.c:399 +msgid "No unit counter specified" +msgstr "" + +#: plugins/check_nt.c:486 +msgid "Please specify a variable to check" +msgstr "" + +#: plugins/check_nt.c:570 +#, fuzzy +msgid "Server port must be an integer\n" +msgstr "skip lines muss ein Integer sein" + +#: plugins/check_nt.c:624 +#, fuzzy +msgid "You must provide a server address or host name" +msgstr "Hostname oder Serveradresse muss angegeben werden" + +#: plugins/check_nt.c:630 +msgid "None" +msgstr "" + +#: plugins/check_nt.c:687 +msgid "This plugin collects data from the NSClient service running on a" +msgstr "" + +#: plugins/check_nt.c:688 +msgid "Windows NT/2000/XP/2003 server." +msgstr "" + +#: plugins/check_nt.c:699 +msgid "Name of the host to check" +msgstr "" + +#: plugins/check_nt.c:701 +#, fuzzy +msgid "Optional port number (default: " +msgstr "Ungültige Portnummer" + +#: plugins/check_nt.c:704 +msgid "Password needed for the request" +msgstr "" + +#: plugins/check_nt.c:706 plugins/check_nwstat.c:1661 +#: plugins/check_overcr.c:432 +msgid "Threshold which will result in a warning status" +msgstr "" + +#: plugins/check_nt.c:708 plugins/check_nwstat.c:1663 +#: plugins/check_overcr.c:434 +msgid "Threshold which will result in a critical status" +msgstr "" + +#: plugins/check_nt.c:710 +msgid "Seconds before connection attempt times out (default: " +msgstr "" + +#: plugins/check_nt.c:712 +msgid "Parameters passed to specified check (see below)" +msgstr "" + +#: plugins/check_nt.c:714 +msgid "Display options (currently only SHOWALL works)" +msgstr "" + +#: plugins/check_nt.c:716 +msgid "Return UNKNOWN on timeouts" +msgstr "" + +#: plugins/check_nt.c:719 +msgid "Print this help screen" +msgstr "" + +#: plugins/check_nt.c:721 +msgid "Print version information" +msgstr "" + +#: plugins/check_nt.c:723 +msgid "Variable to check" +msgstr "" + +#: plugins/check_nt.c:724 +msgid "Valid variables are:" +msgstr "" + +#: plugins/check_nt.c:726 +msgid "Get the NSClient version" +msgstr "" + +#: plugins/check_nt.c:727 +msgid "If -l is specified, will return warning if versions differ." +msgstr "" + +#: plugins/check_nt.c:729 +msgid "Average CPU load on last x minutes." +msgstr "" + +#: plugins/check_nt.c:730 +msgid "Request a -l parameter with the following syntax:" +msgstr "" + +#: plugins/check_nt.c:731 +msgid "-l ,,." +msgstr "" + +#: plugins/check_nt.c:732 +msgid " should be less than 24*60." +msgstr "" + +#: plugins/check_nt.c:733 +msgid "" +"Thresholds are percentage and up to 10 requests can be done in one shot." +msgstr "" + +#: plugins/check_nt.c:736 +msgid "Get the uptime of the machine." +msgstr "" + +#: plugins/check_nt.c:737 +msgid "-l " +msgstr "" + +#: plugins/check_nt.c:738 +msgid " = seconds, minutes, hours, or days. (default: minutes)" +msgstr "" + +#: plugins/check_nt.c:739 +#, fuzzy +msgid "Thresholds will use the unit specified above." +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_nt.c:741 +msgid "Size and percentage of disk use." +msgstr "" + +#: plugins/check_nt.c:742 +msgid "Request a -l parameter containing the drive letter only." +msgstr "" + +#: plugins/check_nt.c:743 plugins/check_nt.c:746 +msgid "Warning and critical thresholds can be specified with -w and -c." +msgstr "" + +#: plugins/check_nt.c:745 +msgid "Memory use." +msgstr "" + +#: plugins/check_nt.c:748 +msgid "Check the state of one or several services." +msgstr "" + +#: plugins/check_nt.c:749 plugins/check_nt.c:758 +msgid "Request a -l parameters with the following syntax:" +msgstr "" + +#: plugins/check_nt.c:750 +msgid "-l ,,,..." +msgstr "" + +#: plugins/check_nt.c:751 +msgid "You can specify -d SHOWALL in case you want to see working services" +msgstr "" + +#: plugins/check_nt.c:752 +msgid "in the returned string." +msgstr "" + +#: plugins/check_nt.c:754 +msgid "Check if one or several process are running." +msgstr "" + +#: plugins/check_nt.c:755 +msgid "Same syntax as SERVICESTATE." +msgstr "" + +#: plugins/check_nt.c:757 +msgid "Check any performance counter of Windows NT/2000." +msgstr "" + +#: plugins/check_nt.c:759 +msgid "-l \"\\\\\\\\counter\",\"" +msgstr "" + +#: plugins/check_nt.c:760 +msgid "The parameter is optional and is given to a printf " +msgstr "" + +#: plugins/check_nt.c:761 +msgid "output command which requires a float parameter." +msgstr "" + +#: plugins/check_nt.c:762 +#, c-format +msgid "If does not include \"%%\", it is used as a label." +msgstr "" + +#: plugins/check_nt.c:763 plugins/check_nt.c:778 +msgid "Some examples:" +msgstr "" + +#: plugins/check_nt.c:767 +msgid "Check any performance counter object of Windows NT/2000." +msgstr "" + +#: plugins/check_nt.c:768 +msgid "" +"Syntax: check_nt -H -p -v INSTANCES -l " +msgstr "" + +#: plugins/check_nt.c:769 +msgid " is a Windows Perfmon Counter object (eg. Process)," +msgstr "" + +#: plugins/check_nt.c:770 +msgid "if it is two words, it should be enclosed in quotes" +msgstr "" + +#: plugins/check_nt.c:771 +msgid "The returned results will be a comma-separated list of instances on " +msgstr "" + +#: plugins/check_nt.c:772 +msgid " the selected computer for that object." +msgstr "" + +#: plugins/check_nt.c:773 +msgid "" +"The purpose of this is to be run from command line to determine what " +"instances" +msgstr "" + +#: plugins/check_nt.c:774 +msgid "" +" are available for monitoring without having to log onto the Windows server" +msgstr "" + +#: plugins/check_nt.c:775 +msgid " to run Perfmon directly." +msgstr "" + +#: plugins/check_nt.c:776 +msgid "" +"It can also be used in scripts that automatically create the monitoring " +"service" +msgstr "" + +#: plugins/check_nt.c:777 +msgid " configuration files." +msgstr "" + +#: plugins/check_nt.c:779 +msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" +msgstr "" + +#: plugins/check_nt.c:782 +msgid "" +"- The NSClient service should be running on the server to get any information" +msgstr "" + +#: plugins/check_nt.c:784 +msgid "- Critical thresholds should be lower than warning thresholds" +msgstr "" + +#: plugins/check_nt.c:785 +msgid "- Default port 1248 is sometimes in use by other services. The error" +msgstr "" + +#: plugins/check_nt.c:786 +msgid "" +"output when this happens contains \"Cannot map xxxxx to protocol number\"." +msgstr "" + +#: plugins/check_nt.c:787 +msgid "One fix for this is to change the port to something else on check_nt " +msgstr "" + +#: plugins/check_nt.c:788 +msgid "and on the client service it's connecting to." +msgstr "" + +#: plugins/check_ntp.c:629 +#, c-format +msgid "jitter response too large (%lu bytes)\n" +msgstr "" + +#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:619 +#: plugins/check_ntp_time.c:576 +msgid "NTP CRITICAL:" +msgstr "NTP CRITICAL:" + +#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:622 +#: plugins/check_ntp_time.c:579 +msgid "NTP WARNING:" +msgstr "NTP WARNING:" + +#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:625 +#: plugins/check_ntp_time.c:582 +msgid "NTP OK:" +msgstr "NTP OK:" + +#: plugins/check_ntp.c:826 plugins/check_ntp_peer.c:628 +#: plugins/check_ntp_time.c:585 +msgid "NTP UNKNOWN:" +msgstr "NTP UNKNOWN:" + +#: plugins/check_ntp.c:830 plugins/check_ntp_peer.c:637 +#: plugins/check_ntp_time.c:589 +msgid "Offset unknown" +msgstr "" + +#: plugins/check_ntp.c:833 plugins/check_ntp_peer.c:640 +#: plugins/check_ntp_peer.c:642 plugins/check_ntp_peer.c:644 +#: plugins/check_ntp_time.c:592 +msgid "Offset" +msgstr "" + +#: plugins/check_ntp.c:854 plugins/check_ntp_peer.c:690 +#, fuzzy +msgid "This plugin checks the selected ntp server" +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:702 +#: plugins/check_ntp_time.c:619 +msgid "Offset to result in warning status (seconds)" +msgstr "" + +#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:704 +#: plugins/check_ntp_time.c:621 +msgid "Offset to result in critical status (seconds)" +msgstr "" + +#: plugins/check_ntp.c:868 plugins/check_ntp_peer.c:710 +#, fuzzy +msgid "Warning threshold for jitter" +msgstr "Warning threshold Integer sein" + +#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:712 +#, fuzzy +msgid "Critical threshold for jitter" +msgstr "Critical threshold muss ein Integer sein" + +#: plugins/check_ntp.c:880 +msgid "Normal offset check:" +msgstr "" + +#: plugins/check_ntp.c:883 plugins/check_ntp_peer.c:737 +msgid "" +"Check jitter too, avoiding critical notifications if jitter isn't available" +msgstr "" + +#: plugins/check_ntp.c:884 plugins/check_ntp_peer.c:738 +msgid "(See Notes above for more details on thresholds formats):" +msgstr "" + +#: plugins/check_ntp.c:889 plugins/check_ntp.c:896 +msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" +msgstr "" + +#: plugins/check_ntp.c:890 plugins/check_ntp.c:897 +msgid "check_ntp_time instead." +msgstr "" + +#: plugins/check_ntp_peer.c:632 +msgid "Server not synchronized" +msgstr "" + +#: plugins/check_ntp_peer.c:634 +msgid "Server has the LI_ALARM bit set" +msgstr "" + +#: plugins/check_ntp_peer.c:700 +msgid "" +"Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized" +msgstr "" + +#: plugins/check_ntp_peer.c:706 +#, fuzzy +msgid "Warning threshold for stratum of server's synchronization peer" +msgstr "Warning threshold Integer sein" + +#: plugins/check_ntp_peer.c:708 +#, fuzzy +msgid "Critical threshold for stratum of server's synchronization peer" +msgstr "Critical threshold muss ein Integer sein" + +#: plugins/check_ntp_peer.c:714 +#, fuzzy +msgid "Warning threshold for number of usable time sources (\"truechimers\")" +msgstr "Warning threshold muss ein positiver Integer sein\n" + +#: plugins/check_ntp_peer.c:716 +#, fuzzy +msgid "Critical threshold for number of usable time sources (\"truechimers\")" +msgstr "Critical threshold muss ein positiver Integer sein\n" + +#: plugins/check_ntp_peer.c:721 +msgid "This plugin checks an NTP server independent of any commandline" +msgstr "" + +#: plugins/check_ntp_peer.c:722 +msgid "programs or external libraries." +msgstr "" + +#: plugins/check_ntp_peer.c:725 +#, fuzzy +msgid "Use this plugin to check the health of an NTP server. It supports" +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_ntp_peer.c:726 +msgid "checking the offset with the sync peer, the jitter and stratum. This" +msgstr "" + +#: plugins/check_ntp_peer.c:727 +msgid "plugin will not check the clock offset between the local host and NTP" +msgstr "" + +#: plugins/check_ntp_peer.c:728 +msgid "server; please use check_ntp_time for that purpose." +msgstr "" + +#: plugins/check_ntp_peer.c:734 +msgid "Simple NTP server check:" +msgstr "" + +#: plugins/check_ntp_peer.c:741 +msgid "Only check the number of usable time sources (\"truechimers\"):" +msgstr "" + +#: plugins/check_ntp_peer.c:744 +msgid "Check only stratum:" +msgstr "" + +#: plugins/check_ntp_time.c:607 +#, fuzzy +msgid "This plugin checks the clock offset with the ntp server" +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_ntp_time.c:617 +msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found" +msgstr "" + +#: plugins/check_ntp_time.c:623 +msgid "Expected offset of the ntp server relative to local server (seconds)" +msgstr "" + +#: plugins/check_ntp_time.c:628 +#, fuzzy +msgid "This plugin checks the clock offset between the local host and a" +msgstr "" +"Dieses Plugin prüft den freien Speicher auf einem gemounteten Filesystem\n" +"und erzeugt einen Alarm wenn einer der angegebenen Schwellwerte " +"unterschritten wird.\n" +"\n" + +#: plugins/check_ntp_time.c:629 +msgid "remote NTP server. It is independent of any commandline programs or" +msgstr "" + +#: plugins/check_ntp_time.c:630 +msgid "external libraries." +msgstr "" + +#: plugins/check_ntp_time.c:634 +msgid "If you'd rather want to monitor an NTP server, please use" +msgstr "" + +#: plugins/check_ntp_time.c:635 +msgid "check_ntp_peer." +msgstr "" + +#: plugins/check_ntp_time.c:636 +msgid "--time-offset is useful for compensating for servers with known" +msgstr "" + +#: plugins/check_ntp_time.c:637 +msgid "and expected clock skew." +msgstr "" + +#: plugins/check_nwstat.c:194 +#, c-format +msgid "NetWare %s: " +msgstr "" + +#: plugins/check_nwstat.c:232 +#, c-format +msgid "Up %s," +msgstr "" + +#: plugins/check_nwstat.c:240 +#, c-format +msgid "Load %s - %s %s-min load average = %lu%%|load%s=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:268 +#, c-format +msgid "Conns %s - %lu current connections|Conns=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:293 +#, c-format +msgid "%s: Long term cache hits = %lu%%" +msgstr "" + +#: plugins/check_nwstat.c:315 +#, c-format +msgid "%s: Total cache buffers = %lu|Cachebuffers=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:340 +#, c-format +msgid "%s: Dirty cache buffers = %lu|Dirty-Cache-Buffers=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:365 +#, c-format +msgid "%s: LRU sitting time = %lu minutes" +msgstr "" + +#: plugins/check_nwstat.c:382 plugins/check_nwstat.c:410 +#: plugins/check_nwstat.c:437 plugins/check_nwstat.c:470 +#: plugins/check_nwstat.c:650 plugins/check_nwstat.c:676 +#: plugins/check_nwstat.c:707 plugins/check_nwstat.c:753 +#: plugins/check_nwstat.c:777 +#, c-format +msgid "CRITICAL - Volume '%s' does not exist!" +msgstr "" + +#: plugins/check_nwstat.c:391 +#, c-format +msgid "%s%lu KB free on volume %s|KBFree%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:392 plugins/check_nwstat.c:420 +#: plugins/check_nwstat.c:447 plugins/check_nwstat.c:659 +#: plugins/check_nwstat.c:685 plugins/check_nwstat.c:761 +msgid "Only " +msgstr "" + +#: plugins/check_nwstat.c:419 +#, c-format +msgid "%s%lu MB free on volume %s|MBFree%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:446 +#, c-format +msgid "%s%lu MB used on volume %s|MBUsed%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:494 +#, c-format +msgid "" +"%lu MB (%lu%%) free on volume %s - total %lu MB|FreeMB%s=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:528 +#, c-format +msgid "Directory Services Database is %s (DS version %s)" +msgstr "" + +#: plugins/check_nwstat.c:545 +#, c-format +msgid "Logins are %s" +msgstr "" + +#: plugins/check_nwstat.c:545 +msgid "enabled" +msgstr "" + +#: plugins/check_nwstat.c:545 +msgid "disabled" +msgstr "" + +#: plugins/check_nwstat.c:560 +#, fuzzy +msgid "CRITICAL - NRM Status is bad!" +msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" + +#: plugins/check_nwstat.c:565 +msgid "Warning - NRM Status is suspect!" +msgstr "" + +#: plugins/check_nwstat.c:568 +msgid "OK - NRM Status is good!" +msgstr "" + +#: plugins/check_nwstat.c:610 +#, c-format +msgid "%lu of %lu (%lu%%) packet receive buffers used" +msgstr "" + +#: plugins/check_nwstat.c:634 +#, c-format +msgid "%lu entries in SAP table" +msgstr "" + +#: plugins/check_nwstat.c:636 +#, c-format +msgid "%lu entries in SAP table for SAP type %d" +msgstr "" + +#: plugins/check_nwstat.c:658 +#, c-format +msgid "%s%lu KB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:684 +#, c-format +msgid "%s%lu MB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:730 +#, c-format +msgid "%lu MB (%lu%%) purgeable on volume %s|Purgeable%s=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:761 +#, c-format +msgid "%s%lu KB not yet purgeable on volume %s" +msgstr "" + +#: plugins/check_nwstat.c:800 +#, c-format +msgid "%lu MB (%lu%%) not yet purgeable on volume %s" +msgstr "" + +#: plugins/check_nwstat.c:821 +#, c-format +msgid "%lu open files|Openfiles=%lu;%lu;%lu;0,0" +msgstr "" + +#: plugins/check_nwstat.c:846 +#, c-format +msgid "%lu abended threads|Abends=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:881 +#, c-format +msgid "%lu current service processes (%lu max)|Processes=%lu;%lu;%lu;0;%lu" +msgstr "" + +#: plugins/check_nwstat.c:904 +msgid "CRITICAL - Time not in sync with network!" +msgstr "" + +#: plugins/check_nwstat.c:907 +msgid "OK - Time in sync with network!" +msgstr "" + +#: plugins/check_nwstat.c:930 +#, c-format +msgid "LRU sitting time = %lu seconds" +msgstr "" + +#: plugins/check_nwstat.c:949 +#, c-format +msgid "Dirty cache buffers = %lu%% of the total|DCB=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:971 +#, c-format +msgid "Total cache buffers = %lu%% of the original|TCB=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:989 +#, c-format +msgid "NDS Version %s" +msgstr "" + +#: plugins/check_nwstat.c:1005 +#, c-format +msgid "Up %s" +msgstr "" + +#: plugins/check_nwstat.c:1019 +#, c-format +msgid "Module %s version %s is loaded" +msgstr "" + +#: plugins/check_nwstat.c:1022 +#, c-format +msgid "Module %s is not loaded" +msgstr "" + +#: plugins/check_nwstat.c:1033 plugins/check_nwstat.c:1059 +#: plugins/check_nwstat.c:1085 plugins/check_nwstat.c:1111 +#: plugins/check_nwstat.c:1137 plugins/check_nwstat.c:1163 +#: plugins/check_nwstat.c:1189 plugins/check_nwstat.c:1215 +#: plugins/check_nwstat.c:1241 plugins/check_nwstat.c:1267 +#, fuzzy, c-format +msgid "CRITICAL - Value '%s' does not exist!" +msgstr "%s [%s nicht gefunden]" + +#: plugins/check_nwstat.c:1042 plugins/check_nwstat.c:1068 +#: plugins/check_nwstat.c:1094 plugins/check_nwstat.c:1120 +#: plugins/check_nwstat.c:1146 plugins/check_nwstat.c:1172 +#: plugins/check_nwstat.c:1198 plugins/check_nwstat.c:1224 +#: plugins/check_nwstat.c:1250 plugins/check_nwstat.c:1276 +#, c-format +msgid "%s is %lu|%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:1289 plugins/check_overcr.c:285 +msgid "Nothing to check!\n" +msgstr "" + +#: plugins/check_nwstat.c:1371 plugins/check_overcr.c:355 +#, fuzzy +msgid "Server port an integer\n" +msgstr "skip lines muss ein Integer sein" + +#: plugins/check_nwstat.c:1601 +msgid "This plugin attempts to contact the MRTGEXT NLM running on a" +msgstr "" + +#: plugins/check_nwstat.c:1602 +msgid "Novell server to gather the requested system information." +msgstr "" + +#: plugins/check_nwstat.c:1614 plugins/check_overcr.c:436 +msgid "Variable to check. Valid variables include:" +msgstr "" + +#: plugins/check_nwstat.c:1615 +msgid "LOAD1 = 1 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1616 +msgid "LOAD5 = 5 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1617 +msgid "LOAD15 = 15 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1618 +msgid "CSPROCS = number of current service processes (NW 5.x only)" +msgstr "" + +#: plugins/check_nwstat.c:1619 +msgid "ABENDS = number of abended threads (NW 5.x only)" +msgstr "" + +#: plugins/check_nwstat.c:1620 +msgid "UPTIME = server uptime" +msgstr "" + +#: plugins/check_nwstat.c:1621 +msgid "LTCH = percent long term cache hits" +msgstr "" + +#: plugins/check_nwstat.c:1622 +msgid "CBUFF = current number of cache buffers" +msgstr "" + +#: plugins/check_nwstat.c:1623 +msgid "CDBUFF = current number of dirty cache buffers" +msgstr "" + +#: plugins/check_nwstat.c:1624 +msgid "DCB = dirty cache buffers as a percentage of the total" +msgstr "" + +#: plugins/check_nwstat.c:1625 +msgid "TCB = dirty cache buffers as a percentage of the original" +msgstr "" + +#: plugins/check_nwstat.c:1626 +msgid "OFILES = number of open files" +msgstr "" + +#: plugins/check_nwstat.c:1627 +msgid " VMF = MB of free space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1628 +msgid " VMU = MB used space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1629 +msgid " VMP = MB of purgeable space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1630 +msgid " VPF = percent free space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1631 +msgid " VKF = KB of free space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1632 +msgid " VPP = percent purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1633 +msgid " VKP = KB of purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1634 +msgid " VPNP = percent not yet purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1635 +msgid " VKNP = KB of not yet purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1636 +msgid " LRUM = LRU sitting time in minutes" +msgstr "" + +#: plugins/check_nwstat.c:1637 +msgid " LRUS = LRU sitting time in seconds" +msgstr "" + +#: plugins/check_nwstat.c:1638 +msgid " DSDB = check to see if DS Database is open" +msgstr "" + +#: plugins/check_nwstat.c:1639 +msgid " DSVER = NDS version" +msgstr "" + +#: plugins/check_nwstat.c:1640 +msgid " UPRB = used packet receive buffers" +msgstr "" + +#: plugins/check_nwstat.c:1641 +msgid " PUPRB = percent (of max) used packet receive buffers" +msgstr "" + +#: plugins/check_nwstat.c:1642 +msgid " SAPENTRIES = number of entries in the SAP table" +msgstr "" + +#: plugins/check_nwstat.c:1643 +msgid " SAPENTRIES = number of entries in the SAP table for SAP type " +msgstr "" + +#: plugins/check_nwstat.c:1644 +msgid " TSYNC = timesync status" +msgstr "" + +#: plugins/check_nwstat.c:1645 +msgid " LOGINS = check to see if logins are enabled" +msgstr "" + +#: plugins/check_nwstat.c:1646 +msgid " CONNS = number of currently licensed connections" +msgstr "" + +#: plugins/check_nwstat.c:1647 +msgid " NRMH\t= NRM Summary Status" +msgstr "" + +#: plugins/check_nwstat.c:1648 +msgid " NRMP = Returns the current value for a NRM health item" +msgstr "" + +#: plugins/check_nwstat.c:1649 +msgid " NRMM = Returns the current memory stats from NRM" +msgstr "" + +#: plugins/check_nwstat.c:1650 +msgid " NRMS = Returns the current Swapfile stats from NRM" +msgstr "" + +#: plugins/check_nwstat.c:1651 +msgid " NSS1 = Statistics from _Admin:Manage_NSS\\GeneralStats.xml" +msgstr "" + +#: plugins/check_nwstat.c:1652 +msgid " NSS3 = Statistics from _Admin:Manage_NSS\\NameCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1653 +msgid " NSS4 = Statistics from _Admin:Manage_NSS\\FileStats.xml" +msgstr "" + +#: plugins/check_nwstat.c:1654 +msgid " NSS5 = Statistics from _Admin:Manage_NSS\\ObjectCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1655 +msgid " NSS6 = Statistics from _Admin:Manage_NSS\\Thread.xml" +msgstr "" + +#: plugins/check_nwstat.c:1656 +msgid "" +" NSS7 = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1657 +msgid " NLM: = check if NLM is loaded and report version" +msgstr "" + +#: plugins/check_nwstat.c:1658 +msgid " (e.g. NLM:TSANDS.NLM)" +msgstr "" + +#: plugins/check_nwstat.c:1665 +msgid "Include server version string in results" +msgstr "" + +#: plugins/check_nwstat.c:1671 +msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" +msgstr "" + +#: plugins/check_nwstat.c:1672 +msgid "" +" extension for NetWare be loaded on the Novell servers you wish to check." +msgstr "" + +#: plugins/check_nwstat.c:1673 +msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" +msgstr "" + +#: plugins/check_nwstat.c:1674 +msgid "" +"- Values for critical thresholds should be lower than warning thresholds" +msgstr "" + +#: plugins/check_nwstat.c:1675 +msgid "" +" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " +msgstr "" + +#: plugins/check_nwstat.c:1676 +msgid " TCB, LRUS and LRUM." +msgstr "" + +#: plugins/check_overcr.c:123 +msgid "Unknown error fetching load data\n" +msgstr "" + +#: plugins/check_overcr.c:127 +msgid "Invalid response from server - no load information\n" +msgstr "" + +#: plugins/check_overcr.c:133 +msgid "Invalid response from server after load 1\n" +msgstr "" + +#: plugins/check_overcr.c:139 +msgid "Invalid response from server after load 5\n" +msgstr "" + +#: plugins/check_overcr.c:164 +#, c-format +msgid "Load %s - %s-min load average = %0.2f" +msgstr "" + +#: plugins/check_overcr.c:174 +msgid "Unknown error fetching disk data\n" +msgstr "" + +#: plugins/check_overcr.c:184 plugins/check_overcr.c:236 +#: plugins/check_overcr.c:240 +msgid "Invalid response from server\n" +msgstr "" + +#: plugins/check_overcr.c:211 +msgid "Unknown error fetching network status\n" +msgstr "" + +#: plugins/check_overcr.c:221 +#, c-format +msgid "Net %s - %d connection%s on port %d" +msgstr "" + +#: plugins/check_overcr.c:232 +msgid "Unknown error fetching process status\n" +msgstr "" + +#: plugins/check_overcr.c:250 +#, c-format +msgid "Process %s - %d instance%s of %s running" +msgstr "" + +#: plugins/check_overcr.c:277 +#, c-format +msgid "Uptime %s - Up %d days %d hours %d minutes" +msgstr "" + +#: plugins/check_overcr.c:419 +msgid "" +"This plugin attempts to contact the Over-CR collector daemon running on the" +msgstr "" + +#: plugins/check_overcr.c:420 +msgid "remote UNIX server in order to gather the requested system information." +msgstr "" + +#: plugins/check_overcr.c:437 +msgid "LOAD1 = 1 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:438 +msgid "LOAD5 = 5 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:439 +msgid "LOAD15 = 15 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:440 +msgid "DPU = percent used disk space on filesystem " +msgstr "" + +#: plugins/check_overcr.c:441 +msgid "PROC = number of running processes with name " +msgstr "" + +#: plugins/check_overcr.c:442 +msgid "NET = number of active connections on TCP port " +msgstr "" + +#: plugins/check_overcr.c:443 +msgid "UPTIME = system uptime in seconds" +msgstr "" + +#: plugins/check_overcr.c:450 +msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be" +msgstr "" + +#: plugins/check_overcr.c:451 +msgid "running on the remote server." +msgstr "" + +#: plugins/check_overcr.c:452 +msgid "Over-CR can be downloaded from http://www.molitor.org/overcr" +msgstr "" + +#: plugins/check_overcr.c:453 +msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" +msgstr "" + +#: plugins/check_overcr.c:457 +msgid "" +"For the available options, the critical threshold value should always be" +msgstr "" + +#: plugins/check_overcr.c:458 +msgid "" +"higher than the warning threshold value, EXCEPT with the uptime variable" +msgstr "" + +#: plugins/check_pgsql.c:224 +#, c-format +msgid "CRITICAL - no connection to '%s' (%s).\n" +msgstr "" + +#: plugins/check_pgsql.c:252 +#, c-format +msgid " %s - database %s (%f sec.)|%s\n" +msgstr "" + +#: plugins/check_pgsql.c:320 plugins/check_time.c:277 plugins/check_time.c:289 +#: plugins/check_users.c:228 +msgid "Critical threshold must be a positive integer" +msgstr "Critical threshold muss ein positiver Integer sein" + +#: plugins/check_pgsql.c:326 plugins/check_time.c:258 plugins/check_time.c:282 +#: plugins/check_users.c:226 +msgid "Warning threshold must be a positive integer" +msgstr "Warning threshold muss ein positiver Integer sein" + +#: plugins/check_pgsql.c:350 +msgid "Database name exceeds the maximum length" +msgstr "" + +#: plugins/check_pgsql.c:356 +msgid "User name is not valid" +msgstr "" + +#: plugins/check_pgsql.c:471 +#, c-format +msgid "Test whether a PostgreSQL Database is accepting connections." +msgstr "" + +#: plugins/check_pgsql.c:483 +msgid "Database to check " +msgstr "" + +#: plugins/check_pgsql.c:484 +#, c-format +msgid "(default: %s)\n" +msgstr "" + +#: plugins/check_pgsql.c:486 +msgid "Login name of user" +msgstr "" + +#: plugins/check_pgsql.c:488 +msgid "Password (BIG SECURITY ISSUE)" +msgstr "" + +#: plugins/check_pgsql.c:490 +msgid "Connection parameters (keyword = value), see below" +msgstr "" + +#: plugins/check_pgsql.c:497 +msgid "SQL query to run. Only first column in first row will be read" +msgstr "" + +#: plugins/check_pgsql.c:499 +msgid "A name for the query, this string is used instead of the query" +msgstr "" + +#: plugins/check_pgsql.c:500 +msgid "in the long output of the plugin" +msgstr "" + +#: plugins/check_pgsql.c:502 +msgid "SQL query value to result in warning status (double)" +msgstr "" + +#: plugins/check_pgsql.c:504 +msgid "SQL query value to result in critical status (double)" +msgstr "" + +#: plugins/check_pgsql.c:509 +msgid "All parameters are optional." +msgstr "" + +#: plugins/check_pgsql.c:510 +msgid "" +"This plugin tests a PostgreSQL DBMS to determine whether it is active and" +msgstr "" + +#: plugins/check_pgsql.c:511 +msgid "accepting queries. In its current operation, it simply connects to the" +msgstr "" + +#: plugins/check_pgsql.c:512 +msgid "" +"specified database, and then disconnects. If no database is specified, it" +msgstr "" + +#: plugins/check_pgsql.c:513 +msgid "" +"connects to the template1 database, which is present in every functioning" +msgstr "" + +#: plugins/check_pgsql.c:514 +msgid "PostgreSQL DBMS." +msgstr "" + +#: plugins/check_pgsql.c:516 +msgid "If a query is specified using the -q option, it will be executed after" +msgstr "" + +#: plugins/check_pgsql.c:517 +msgid "connecting to the server. The result from the query has to be numeric." +msgstr "" + +#: plugins/check_pgsql.c:518 +msgid "" +"Multiple SQL commands, separated by semicolon, are allowed but the result " +msgstr "" + +#: plugins/check_pgsql.c:519 +msgid "of the last command is taken into account only. The value of the first" +msgstr "" + +#: plugins/check_pgsql.c:520 +msgid "column in the first row is used as the check result." +msgstr "" + +#: plugins/check_pgsql.c:522 +msgid "" +"See the chapter \"Monitoring Database Activity\" of the PostgreSQL manual" +msgstr "" + +#: plugins/check_pgsql.c:523 +msgid "" +"for details about how to access internal statistics of the database server." +msgstr "" + +#: plugins/check_pgsql.c:525 +msgid "" +"For a list of available connection parameters which may be used with the -o" +msgstr "" + +#: plugins/check_pgsql.c:526 +msgid "" +"command line option, see the documentation for PQconnectdb() in the chapter" +msgstr "" + +#: plugins/check_pgsql.c:527 +msgid "" +"\"libpq - C Library\" of the PostgreSQL manual. For example, this may be" +msgstr "" + +#: plugins/check_pgsql.c:528 +msgid "" +"used to specify a service name in pg_service.conf to be used for additional" +msgstr "" + +#: plugins/check_pgsql.c:529 +msgid "connection parameters: -o 'service=' or to specify the SSL mode:" +msgstr "" + +#: plugins/check_pgsql.c:530 +msgid "-o 'sslmode=require'." +msgstr "" + +#: plugins/check_pgsql.c:532 +msgid "" +"The plugin will connect to a local postmaster if no host is specified. To" +msgstr "" + +#: plugins/check_pgsql.c:533 +msgid "" +"connect to a remote host, be sure that the remote postmaster accepts TCP/IP" +msgstr "" + +#: plugins/check_pgsql.c:534 +msgid "connections (start the postmaster with the -i option)." +msgstr "" + +#: plugins/check_pgsql.c:536 +msgid "" +"Typically, the monitoring user (unless the --logname option is used) should " +"be" +msgstr "" + +#: plugins/check_pgsql.c:537 +msgid "" +"able to connect to the database without a password. The plugin can also send" +msgstr "" + +#: plugins/check_pgsql.c:538 +msgid "a password, but no effort is made to obscure or encrypt the password." +msgstr "" + +#: plugins/check_pgsql.c:571 +#, c-format +msgid "QUERY %s - %s: %s.\n" +msgstr "" + +#: plugins/check_pgsql.c:571 +msgid "Error with query" +msgstr "" + +#: plugins/check_pgsql.c:577 +msgid "No rows returned" +msgstr "" + +#: plugins/check_pgsql.c:582 +msgid "No columns returned" +msgstr "" + +#: plugins/check_pgsql.c:588 +#, fuzzy +msgid "No data returned" +msgstr "Keine Daten empfangen %s\n" + +#: plugins/check_pgsql.c:597 +msgid "Is not a numeric" +msgstr "" + +#: plugins/check_pgsql.c:615 +#, fuzzy, c-format +msgid "%s returned %f" +msgstr "%s hat %s zurückgegeben" + +#: plugins/check_pgsql.c:618 +#, fuzzy, c-format +msgid "'%s' returned %f" +msgstr "%s hat %s zurückgegeben" + +#: plugins/check_ping.c:143 +msgid "CRITICAL - Could not interpret output from ping command\n" +msgstr "" + +#: plugins/check_ping.c:159 +#, c-format +msgid "PING %s - %sPacket loss = %d%%" +msgstr "" + +#: plugins/check_ping.c:162 +#, c-format +msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms" +msgstr "" + +#: plugins/check_ping.c:263 +msgid "Could not realloc() addresses\n" +msgstr "" + +#: plugins/check_ping.c:278 plugins/check_ping.c:358 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr "" + +#: plugins/check_ping.c:312 +#, c-format +msgid " (%s) must be an integer percentage\n" +msgstr "" + +#: plugins/check_ping.c:323 +#, c-format +msgid " (%s) must be an integer percentage\n" +msgstr "" + +#: plugins/check_ping.c:334 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr "" + +#: plugins/check_ping.c:345 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr "" + +#: plugins/check_ping.c:378 +#, c-format +msgid "" +"%s: Warning threshold must be integer or percentage!\n" +"\n" +msgstr "" + +#: plugins/check_ping.c:391 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:395 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:399 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:403 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:407 +#, c-format +msgid " (%f) cannot be larger than (%f)\n" +msgstr "" + +#: plugins/check_ping.c:411 +#, c-format +msgid " (%d) cannot be larger than (%d)\n" +msgstr "" + +#: plugins/check_ping.c:448 +#, c-format +msgid "Cannot open stderr for %s\n" +msgstr "" + +#: plugins/check_ping.c:505 plugins/check_ping.c:507 +msgid "System call sent warnings to stderr " +msgstr "" + +#: plugins/check_ping.c:533 +#, fuzzy, c-format +msgid "CRITICAL - Network Unreachable (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:535 +#, fuzzy, c-format +msgid "CRITICAL - Host Unreachable (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:537 +#, fuzzy, c-format +msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:539 +#, fuzzy, c-format +msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:541 +#, fuzzy, c-format +msgid "CRITICAL - Network Prohibited (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:543 +#, fuzzy, c-format +msgid "CRITICAL - Host Prohibited (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:545 +#, fuzzy, c-format +msgid "CRITICAL - Packet Filtered (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:547 +#, fuzzy, c-format +msgid "CRITICAL - Host not found (%s)\n" +msgstr "CRITICAL - Text nicht gefunden%s|%s %s\n" + +#: plugins/check_ping.c:549 +#, fuzzy, c-format +msgid "CRITICAL - Time to live exceeded (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:551 +#, fuzzy, c-format +msgid "CRITICAL - Destination Unreachable (%s)\n" +msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" + +#: plugins/check_ping.c:558 +msgid "Unable to realloc warn_text\n" +msgstr "" + +#: plugins/check_ping.c:575 +#, c-format +msgid "Use ping to check connection statistics for a remote host." +msgstr "" + +#: plugins/check_ping.c:587 +msgid "host to ping" +msgstr "" + +#: plugins/check_ping.c:593 +msgid "number of ICMP ECHO packets to send" +msgstr "" + +#: plugins/check_ping.c:594 +#, c-format +msgid "(Default: %d)\n" +msgstr "" + +#: plugins/check_ping.c:596 +msgid "show HTML in the plugin output (obsoleted by urlize)" +msgstr "" + +#: plugins/check_ping.c:601 +msgid "THRESHOLD is ,% where is the round trip average travel" +msgstr "" + +#: plugins/check_ping.c:602 +msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" +msgstr "" + +#: plugins/check_ping.c:603 +msgid "percentage of packet loss to trigger an alarm state." +msgstr "" + +#: plugins/check_ping.c:606 +#, fuzzy +msgid "" +"This plugin uses the ping command to probe the specified host for packet loss" +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_ping.c:607 +msgid "" +"(percentage) and round trip average (milliseconds). It can produce HTML " +"output" +msgstr "" + +#: plugins/check_ping.c:608 +msgid "" +"linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" +msgstr "" + +#: plugins/check_ping.c:609 +msgid "the contrib area of the downloads section at http://www.nagios.org/" +msgstr "" + +#: plugins/check_procs.c:193 +#, c-format +msgid "CMD: %s\n" +msgstr "" + +#: plugins/check_procs.c:198 +msgid "System call sent warnings to stderr" +msgstr "" + +#: plugins/check_procs.c:326 +#, c-format +msgid "Not parseable: %s" +msgstr "" + +#: plugins/check_procs.c:331 +#, c-format +msgid "Unable to read output\n" +msgstr "" + +#: plugins/check_procs.c:348 +#, c-format +msgid "%d warn out of " +msgstr "" + +#: plugins/check_procs.c:353 +#, c-format +msgid "%d crit, %d warn out of " +msgstr "" + +#: plugins/check_procs.c:359 +#, c-format +msgid " with %s" +msgstr "" + +#: plugins/check_procs.c:453 +#, fuzzy +msgid "Parent Process ID must be an integer!" +msgstr "Argument für check_dummy muss ein Integer sein" + +#: plugins/check_procs.c:459 plugins/check_procs.c:586 +#, c-format +msgid "%s%sSTATE = %s" +msgstr "" + +#: plugins/check_procs.c:468 +#, fuzzy +msgid "UID was not found" +msgstr "%s [%s nicht gefunden]" + +#: plugins/check_procs.c:474 +#, fuzzy +msgid "User name was not found" +msgstr "%s [%s nicht gefunden]" + +#: plugins/check_procs.c:489 +#, c-format +msgid "%s%scommand name '%s'" +msgstr "" + +#: plugins/check_procs.c:524 +#, fuzzy +msgid "RSS must be an integer!" +msgstr "skip lines muss ein Integer sein" + +#: plugins/check_procs.c:531 +#, fuzzy +msgid "VSZ must be an integer!" +msgstr "skip lines muss ein Integer sein" + +#: plugins/check_procs.c:539 +msgid "PCPU must be a float!" +msgstr "" + +#: plugins/check_procs.c:563 +msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" +msgstr "" + +#: plugins/check_procs.c:694 +msgid "" +"Checks all processes and generates WARNING or CRITICAL states if the " +"specified" +msgstr "" + +#: plugins/check_procs.c:695 +msgid "" +"metric is outside the required threshold ranges. The metric defaults to " +"number" +msgstr "" + +#: plugins/check_procs.c:696 +msgid "" +"of processes. Search filters can be applied to limit the processes to check." +msgstr "" + +#: plugins/check_procs.c:705 +msgid "Generate warning state if metric is outside this range" +msgstr "" + +#: plugins/check_procs.c:707 +msgid "Generate critical state if metric is outside this range" +msgstr "" + +#: plugins/check_procs.c:709 +msgid "Check thresholds against metric. Valid types:" +msgstr "" + +#: plugins/check_procs.c:710 +msgid "PROCS - number of processes (default)" +msgstr "" + +#: plugins/check_procs.c:711 +msgid "VSZ - virtual memory size" +msgstr "" + +#: plugins/check_procs.c:712 +msgid "RSS - resident set memory size" +msgstr "" + +#: plugins/check_procs.c:713 +msgid "CPU - percentage CPU" +msgstr "" + +#: plugins/check_procs.c:716 +msgid "ELAPSED - time elapsed in seconds" +msgstr "" + +#: plugins/check_procs.c:721 +msgid "Extra information. Up to 3 verbosity levels" +msgstr "" + +#: plugins/check_procs.c:724 +msgid "Filter own process the traditional way by PID instead of /proc/pid/exe" +msgstr "" + +#: plugins/check_procs.c:729 +msgid "Only scan for processes that have, in the output of `ps`, one or" +msgstr "" + +#: plugins/check_procs.c:730 +msgid "more of the status flags you specify (for example R, Z, S, RS," +msgstr "" + +#: plugins/check_procs.c:731 +msgid "RSZDT, plus others based on the output of your 'ps' command)." +msgstr "" + +#: plugins/check_procs.c:733 +msgid "Only scan for children of the parent process ID indicated." +msgstr "" + +#: plugins/check_procs.c:735 +msgid "Only scan for processes with VSZ higher than indicated." +msgstr "" + +#: plugins/check_procs.c:737 +msgid "Only scan for processes with RSS higher than indicated." +msgstr "" + +#: plugins/check_procs.c:739 +msgid "Only scan for processes with PCPU higher than indicated." +msgstr "" + +#: plugins/check_procs.c:741 +msgid "Only scan for processes with user name or ID indicated." +msgstr "" + +#: plugins/check_procs.c:743 +msgid "Only scan for processes with args that contain STRING." +msgstr "" + +#: plugins/check_procs.c:745 +msgid "Only scan for processes with args that contain the regex STRING." +msgstr "" + +#: plugins/check_procs.c:747 +msgid "Only scan for exact matches of COMMAND (without path)." +msgstr "" + +#: plugins/check_procs.c:749 +msgid "Only scan for non kernel threads (works on Linux only)." +msgstr "" + +#: plugins/check_procs.c:751 +#, c-format +msgid "" +"\n" +"RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n" +"specified 'max:min', a warning status will be generated if the\n" +"count is inside the specified range\n" +"\n" +msgstr "" + +#: plugins/check_procs.c:756 +#, c-format +msgid "" +"This plugin checks the number of currently running processes and\n" +"generates WARNING or CRITICAL states if the process count is outside\n" +"the specified threshold ranges. The process count can be filtered by\n" +"process owner, parent process PID, current state (e.g., 'Z'), or may\n" +"be the total number of running processes\n" +"\n" +msgstr "" + +#: plugins/check_procs.c:765 +msgid "Warning if not two processes with command name portsentry." +msgstr "" + +#: plugins/check_procs.c:766 +msgid "Critical if < 2 or > 1024 processes" +msgstr "" + +#: plugins/check_procs.c:768 +msgid "Critical if not at least 1 process with command sshd" +msgstr "" + +#: plugins/check_procs.c:770 +msgid "Warning if > 1024 processes with command name sshd." +msgstr "" + +#: plugins/check_procs.c:771 +msgid "Critical if < 1 processes with command name sshd." +msgstr "" + +#: plugins/check_procs.c:773 +msgid "Warning alert if > 10 processes with command arguments containing" +msgstr "" + +#: plugins/check_procs.c:774 +msgid "'/usr/local/bin/perl' and owned by root" +msgstr "" + +#: plugins/check_procs.c:776 +msgid "Alert if VSZ of any processes over 50K or 100K" +msgstr "" + +#: plugins/check_procs.c:778 +msgid "Alert if CPU of any processes over 10% or 20%" +msgstr "" + +#: plugins/check_radius.c:177 +msgid "Config file error\n" +msgstr "" + +#: plugins/check_radius.c:186 +#, fuzzy +msgid "Out of Memory?\n" +msgstr "Kein Papier" + +#: plugins/check_radius.c:190 +#, fuzzy +msgid "Invalid NAS-Identifier\n" +msgstr "Ungültige(r) Hostname/Adresse" + +#: plugins/check_radius.c:195 plugins/check_smtp.c:153 +#, c-format +msgid "gethostname() failed!\n" +msgstr "" + +#: plugins/check_radius.c:199 plugins/check_radius.c:202 +#, fuzzy +msgid "Invalid NAS-IP-Address\n" +msgstr "Ungültige(r) Hostname/Adresse" + +#: plugins/check_radius.c:213 +msgid "Timeout\n" +msgstr "" + +#: plugins/check_radius.c:215 +msgid "Auth Error\n" +msgstr "" + +#: plugins/check_radius.c:217 +#, fuzzy +msgid "Auth Failed\n" +msgstr "Fehlgeschlagen" + +#: plugins/check_radius.c:219 +msgid "Bad Response\n" +msgstr "" + +#: plugins/check_radius.c:223 +msgid "Auth OK\n" +msgstr "" + +#: plugins/check_radius.c:224 +#, fuzzy, c-format +msgid "Unexpected result code %d" +msgstr "Erwartet: %s aber: %s erhalten" + +#: plugins/check_radius.c:313 +msgid "Number of retries must be a positive integer" +msgstr "" + +#: plugins/check_radius.c:327 +msgid "User not specified" +msgstr "" + +#: plugins/check_radius.c:329 +msgid "Password not specified" +msgstr "" + +#: plugins/check_radius.c:331 +msgid "Configuration file not specified" +msgstr "" + +#: plugins/check_radius.c:349 +#, fuzzy +msgid "Tests to see if a RADIUS server is accepting connections." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_radius.c:361 +msgid "The user to authenticate" +msgstr "" + +#: plugins/check_radius.c:363 +msgid "Password for authentication (SECURITY RISK)" +msgstr "" + +#: plugins/check_radius.c:365 +msgid "NAS identifier" +msgstr "" + +#: plugins/check_radius.c:367 +msgid "NAS IP Address" +msgstr "" + +#: plugins/check_radius.c:369 +msgid "Configuration file" +msgstr "" + +#: plugins/check_radius.c:371 +msgid "Response string to expect from the server" +msgstr "" + +#: plugins/check_radius.c:373 +msgid "Number of times to retry a failed connection" +msgstr "" + +#: plugins/check_radius.c:378 +#, fuzzy +msgid "" +"This plugin tests a RADIUS server to see if it is accepting connections." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_radius.c:379 +msgid "" +"The server to test must be specified in the invocation, as well as a user" +msgstr "" + +#: plugins/check_radius.c:380 +msgid "" +"name and password. A configuration file may also be present. The format of" +msgstr "" + +#: plugins/check_radius.c:381 +msgid "" +"the configuration file is described in the radiusclient library sources." +msgstr "" + +#: plugins/check_radius.c:382 +msgid "The password option presents a substantial security issue because the" +msgstr "" + +#: plugins/check_radius.c:383 +msgid "" +"password can possibly be determined by careful watching of the command line" +msgstr "" + +#: plugins/check_radius.c:384 +msgid "in a process listing. This risk is exacerbated because the plugin will" +msgstr "" + +#: plugins/check_radius.c:385 +msgid "" +"typically be executed at regular predictable intervals. Please be sure that" +msgstr "" + +#: plugins/check_radius.c:386 +msgid "the password used does not allow access to sensitive system resources." +msgstr "" + +#: plugins/check_real.c:91 +#, c-format +msgid "Unable to connect to %s on port %d\n" +msgstr "" + +#: plugins/check_real.c:113 +#, c-format +msgid "No data received from %s\n" +msgstr "" + +#: plugins/check_real.c:118 plugins/check_real.c:192 +#, fuzzy +msgid "Invalid REAL response received from host" +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_real.c:120 plugins/check_real.c:194 +#, c-format +msgid "Invalid REAL response received from host on port %d\n" +msgstr "" + +#: plugins/check_real.c:185 plugins/check_tcp.c:315 +#, c-format +msgid "No data received from host\n" +msgstr "" + +#: plugins/check_real.c:248 +#, c-format +msgid "REAL %s - %d second response time\n" +msgstr "" + +#: plugins/check_real.c:337 plugins/check_ups.c:539 +msgid "Warning time must be a positive integer" +msgstr "Warnung time muss ein positiver Integer sein" + +#: plugins/check_real.c:346 plugins/check_ups.c:530 +msgid "Critical time must be a positive integer" +msgstr "Critical time muss ein positiver Integer sein" + +#: plugins/check_real.c:382 +#, fuzzy +msgid "You must provide a server to check" +msgstr "%s: Hostname muss angegeben werden\n" + +#: plugins/check_real.c:414 +#, fuzzy +msgid "This plugin tests the REAL service on the specified host." +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_real.c:426 +msgid "Connect to this url" +msgstr "" + +#: plugins/check_real.c:428 +#, c-format +msgid "String to expect in first line of server response (default: %s)\n" +msgstr "" + +#: plugins/check_real.c:438 +#, fuzzy +msgid "This plugin will attempt to open an RTSP connection with the host." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_real.c:439 plugins/check_smtp.c:847 +msgid "Successul connects return STATE_OK, refusals and timeouts return" +msgstr "" + +#: plugins/check_real.c:440 +msgid "" +"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," +msgstr "" + +#: plugins/check_real.c:441 +msgid "" +"but incorrect response messages from the host result in STATE_WARNING return" +msgstr "" + +#: plugins/check_real.c:442 +msgid "values." +msgstr "" + +#: plugins/check_smtp.c:149 plugins/check_swap.c:286 plugins/check_swap.c:292 +#, c-format +msgid "malloc() failed!\n" +msgstr "" + +#: plugins/check_smtp.c:190 plugins/check_smtp.c:202 +#, c-format +msgid "recv() failed\n" +msgstr "" + +#: plugins/check_smtp.c:212 +#, c-format +msgid "WARNING - TLS not supported by server\n" +msgstr "" + +#: plugins/check_smtp.c:224 +#, c-format +msgid "Server does not support STARTTLS\n" +msgstr "" + +#: plugins/check_smtp.c:230 +#, c-format +msgid "CRITICAL - Cannot create SSL context.\n" +msgstr "" + +#: plugins/check_smtp.c:250 +msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." +msgstr "" + +#: plugins/check_smtp.c:255 +#, c-format +msgid "sent %s" +msgstr "" + +#: plugins/check_smtp.c:257 +msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." +msgstr "" + +#: plugins/check_smtp.c:287 +#, fuzzy, c-format +msgid "Invalid SMTP response received from host: %s\n" +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_smtp.c:289 +#, fuzzy, c-format +msgid "Invalid SMTP response received from host on port %d: %s\n" +msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" + +#: plugins/check_smtp.c:312 plugins/check_snmp.c:863 +#, c-format +msgid "Could Not Compile Regular Expression" +msgstr "" + +#: plugins/check_smtp.c:321 +#, c-format +msgid "SMTP %s - Invalid response '%s' to command '%s'\n" +msgstr "" + +#: plugins/check_smtp.c:325 plugins/check_snmp.c:538 +#, c-format +msgid "Execute Error: %s\n" +msgstr "" + +#: plugins/check_smtp.c:339 +msgid "no authuser specified, " +msgstr "" + +#: plugins/check_smtp.c:344 +msgid "no authpass specified, " +msgstr "" + +#: plugins/check_smtp.c:351 plugins/check_smtp.c:372 plugins/check_smtp.c:392 +#: plugins/check_smtp.c:701 +#, c-format +msgid "sent %s\n" +msgstr "" + +#: plugins/check_smtp.c:354 +#, fuzzy +msgid "recv() failed after AUTH LOGIN, " +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_smtp.c:359 plugins/check_smtp.c:380 plugins/check_smtp.c:400 +#: plugins/check_smtp.c:712 +#, fuzzy, c-format +msgid "received %s\n" +msgstr "Keine Daten empfangen %s\n" + +#: plugins/check_smtp.c:363 +#, fuzzy +msgid "invalid response received after AUTH LOGIN, " +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_smtp.c:376 +msgid "recv() failed after sending authuser, " +msgstr "" + +#: plugins/check_smtp.c:384 +#, fuzzy +msgid "invalid response received after authuser, " +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_smtp.c:396 +msgid "recv() failed after sending authpass, " +msgstr "" + +#: plugins/check_smtp.c:404 +#, fuzzy +msgid "invalid response received after authpass, " +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_smtp.c:411 +msgid "only authtype LOGIN is supported, " +msgstr "" + +#: plugins/check_smtp.c:435 +#, fuzzy, c-format +msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" +msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" + +#: plugins/check_smtp.c:546 plugins/check_smtp.c:558 +#, c-format +msgid "Could not realloc() units [%d]\n" +msgstr "" + +#: plugins/check_smtp.c:566 +#, fuzzy +msgid "Critical time must be a positive" +msgstr "Critical time muss ein positiver Integer sein" + +#: plugins/check_smtp.c:574 +#, fuzzy +msgid "Warning time must be a positive" +msgstr "Warnung time muss ein positiver Integer sein" + +#: plugins/check_smtp.c:617 +msgid "SSL support not available - install OpenSSL and recompile" +msgstr "" + +#: plugins/check_smtp.c:692 plugins/check_smtp.c:697 +#, c-format +msgid "Connection closed by server before sending QUIT command\n" +msgstr "" + +#: plugins/check_smtp.c:707 +#, fuzzy, c-format +msgid "recv() failed after QUIT." +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_smtp.c:709 +#, c-format +msgid "Connection reset by peer." +msgstr "" + +#: plugins/check_smtp.c:799 +#, fuzzy +msgid "This plugin will attempt to open an SMTP connection with the host." +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_smtp.c:813 +#, c-format +msgid " String to expect in first line of server response (default: '%s')\n" +msgstr "" + +#: plugins/check_smtp.c:815 +msgid "SMTP command (may be used repeatedly)" +msgstr "" + +#: plugins/check_smtp.c:817 +msgid "Expected response to command (may be used repeatedly)" +msgstr "" + +#: plugins/check_smtp.c:819 +msgid "FROM-address to include in MAIL command, required by Exchange 2000" +msgstr "" + +#: plugins/check_smtp.c:821 +msgid "FQDN used for HELO" +msgstr "" + +#: plugins/check_smtp.c:824 plugins/check_tcp.c:689 +msgid "Minimum number of days a certificate has to be valid." +msgstr "" + +#: plugins/check_smtp.c:826 +msgid "Use STARTTLS for the connection." +msgstr "" + +#: plugins/check_smtp.c:830 +msgid "SMTP AUTH type to check (default none, only LOGIN supported)" +msgstr "" + +#: plugins/check_smtp.c:832 +msgid "SMTP AUTH username" +msgstr "" + +#: plugins/check_smtp.c:834 +msgid "SMTP AUTH password" +msgstr "" + +#: plugins/check_smtp.c:836 +msgid "Send LHLO instead of HELO/EHLO" +msgstr "" + +#: plugins/check_smtp.c:838 +msgid "Ignore failure when sending QUIT command to server" +msgstr "" + +#: plugins/check_smtp.c:848 +msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" +msgstr "" + +#: plugins/check_smtp.c:849 +msgid "connects, but incorrect response messages from the host result in" +msgstr "" + +#: plugins/check_smtp.c:850 +msgid "STATE_WARNING return values." +msgstr "" + +#: plugins/check_snmp.c:175 plugins/check_snmp.c:624 +msgid "Cannot malloc" +msgstr "" + +#: plugins/check_snmp.c:366 +#, fuzzy, c-format +msgid "External command error: %s\n" +msgstr "Papierfehler" + +#: plugins/check_snmp.c:371 +#, c-format +msgid "External command error with no output (return code: %d)\n" +msgstr "" + +#: plugins/check_snmp.c:484 plugins/check_snmp.c:486 plugins/check_snmp.c:488 +#: plugins/check_snmp.c:490 +#, fuzzy, c-format +msgid "No valid data returned (%s)\n" +msgstr "Keine Daten empfangen %s\n" + +#: plugins/check_snmp.c:502 +msgid "Time duration between plugin calls is invalid" +msgstr "" + +#: plugins/check_snmp.c:630 +msgid "Cannot asprintf()" +msgstr "" + +#: plugins/check_snmp.c:636 +msgid "Cannot realloc()" +msgstr "" + +#: plugins/check_snmp.c:652 +msgid "No previous data to calculate rate - assume okay" +msgstr "" + +#: plugins/check_snmp.c:802 +#, fuzzy +msgid "Retries interval must be a positive integer" +msgstr "Time interval muss ein positiver Integer sein" + +#: plugins/check_snmp.c:839 +#, fuzzy +msgid "Exit status must be a positive integer" +msgstr "Maxbytes muss ein positiver Integer sein" + +#: plugins/check_snmp.c:888 +#, fuzzy, c-format +msgid "Could not reallocate labels[%d]" +msgstr "Konnte addr nicht zuweisen\n" + +#: plugins/check_snmp.c:901 +#, fuzzy +msgid "Could not reallocate labels\n" +msgstr "Konnte·url·nicht·zuweisen\n" + +#: plugins/check_snmp.c:917 +#, fuzzy, c-format +msgid "Could not reallocate units [%d]\n" +msgstr "Konnte·url·nicht·zuweisen\n" + +#: plugins/check_snmp.c:929 +msgid "Could not realloc() units\n" +msgstr "" + +#: plugins/check_snmp.c:946 +#, fuzzy +msgid "Rate multiplier must be a positive integer" +msgstr "Paketgröße muss ein positiver Integer sein" + +#: plugins/check_snmp.c:1021 +#, fuzzy +msgid "No host specified\n" +msgstr "" +"Kein Hostname angegeben\n" +"\n" + +#: plugins/check_snmp.c:1025 +#, fuzzy +msgid "No OIDs specified\n" +msgstr "" +"Kein Hostname angegeben\n" +"\n" + +#: plugins/check_snmp.c:1048 plugins/check_snmp.c:1066 +#: plugins/check_snmp.c:1084 +#, c-format +msgid "Required parameter: %s\n" +msgstr "" + +#: plugins/check_snmp.c:1059 +msgid "Invalid seclevel" +msgstr "" + +#: plugins/check_snmp.c:1105 +msgid "Invalid SNMP version" +msgstr "" + +#: plugins/check_snmp.c:1122 +msgid "Unbalanced quotes\n" +msgstr "" + +#: plugins/check_snmp.c:1178 +#, c-format +msgid "multiplier set (%.1f), but input is not a number: %s" +msgstr "" + +#: plugins/check_snmp.c:1209 +msgid "Check status of remote machines and obtain system information via SNMP" +msgstr "" + +#: plugins/check_snmp.c:1223 +msgid "Use SNMP GETNEXT instead of SNMP GET" +msgstr "" + +#: plugins/check_snmp.c:1225 +msgid "SNMP protocol version" +msgstr "" + +#: plugins/check_snmp.c:1227 +msgid "SNMPv3 context" +msgstr "" + +#: plugins/check_snmp.c:1229 +msgid "SNMPv3 securityLevel" +msgstr "" + +#: plugins/check_snmp.c:1231 +msgid "SNMPv3 auth proto" +msgstr "" + +#: plugins/check_snmp.c:1233 +msgid "SNMPv3 priv proto (default DES)" +msgstr "" + +#: plugins/check_snmp.c:1237 +msgid "Optional community string for SNMP communication" +msgstr "" + +#: plugins/check_snmp.c:1238 +msgid "default is" +msgstr "" + +#: plugins/check_snmp.c:1240 +msgid "SNMPv3 username" +msgstr "" + +#: plugins/check_snmp.c:1242 +msgid "SNMPv3 authentication password" +msgstr "" + +#: plugins/check_snmp.c:1244 +msgid "SNMPv3 privacy password" +msgstr "" + +#: plugins/check_snmp.c:1248 +msgid "Object identifier(s) or SNMP variables whose value you wish to query" +msgstr "" + +#: plugins/check_snmp.c:1250 +msgid "" +"List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL'" +msgstr "" + +#: plugins/check_snmp.c:1251 +msgid "for symbolic OIDs.)" +msgstr "" + +#: plugins/check_snmp.c:1253 +msgid "Delimiter to use when parsing returned data. Default is" +msgstr "" + +#: plugins/check_snmp.c:1254 +msgid "Any data on the right hand side of the delimiter is considered" +msgstr "" + +#: plugins/check_snmp.c:1255 +msgid "to be the data that should be used in the evaluation." +msgstr "" + +#: plugins/check_snmp.c:1257 +msgid "If the check returns a 0 length string or NULL value" +msgstr "" + +#: plugins/check_snmp.c:1258 +msgid "This option allows you to choose what status you want it to exit" +msgstr "" + +#: plugins/check_snmp.c:1259 +msgid "Excluding this option renders the default exit of 3(STATE_UNKNOWN)" +msgstr "" + +#: plugins/check_snmp.c:1260 +msgid "0 = OK" +msgstr "" + +#: plugins/check_snmp.c:1261 +#, fuzzy +msgid "1 = WARNING" +msgstr "WARNING" + +#: plugins/check_snmp.c:1262 +#, fuzzy +msgid "2 = CRITICAL" +msgstr "CRITICAL" + +#: plugins/check_snmp.c:1263 +#, fuzzy +msgid "3 = UNKNOWN" +msgstr "UNKNOWN" + +#: plugins/check_snmp.c:1267 +#, fuzzy +msgid "Warning threshold range(s)" +msgstr "Warning threshold Integer sein" + +#: plugins/check_snmp.c:1269 +#, fuzzy +msgid "Critical threshold range(s)" +msgstr "Critical threshold muss ein Integer sein" + +#: plugins/check_snmp.c:1271 +msgid "Enable rate calculation. See 'Rate Calculation' below" +msgstr "" + +#: plugins/check_snmp.c:1273 +msgid "" +"Converts rate per second. For example, set to 60 to convert to per minute" +msgstr "" + +#: plugins/check_snmp.c:1275 +msgid "Add/substract the specified OFFSET to numeric sensor data" +msgstr "" + +#: plugins/check_snmp.c:1279 +msgid "Return OK state (for that OID) if STRING is an exact match" +msgstr "" + +#: plugins/check_snmp.c:1281 +msgid "" +"Return OK state (for that OID) if extended regular expression REGEX matches" +msgstr "" + +#: plugins/check_snmp.c:1283 +msgid "" +"Return OK state (for that OID) if case-insensitive extended REGEX matches" +msgstr "" + +#: plugins/check_snmp.c:1285 +msgid "Invert search result (CRITICAL if found)" +msgstr "" + +#: plugins/check_snmp.c:1289 +msgid "Prefix label for output from plugin" +msgstr "" + +#: plugins/check_snmp.c:1291 +msgid "Units label(s) for output data (e.g., 'sec.')." +msgstr "" + +#: plugins/check_snmp.c:1293 +msgid "Separates output on multiple OID requests" +msgstr "" + +#: plugins/check_snmp.c:1295 +msgid "Multiplies current value, 0 < n < 1 works as divider, defaults to 1" +msgstr "" + +#: plugins/check_snmp.c:1297 +msgid "C-style format string for float values (see option -M)" +msgstr "" + +#: plugins/check_snmp.c:1300 +msgid "" +"NOTE the final timeout value is calculated using this formula: " +"timeout_interval * retries + 5" +msgstr "" + +#: plugins/check_snmp.c:1302 +msgid "Number of retries to be used in the requests, default: " +msgstr "" + +#: plugins/check_snmp.c:1305 +msgid "Label performance data with OIDs instead of --label's" +msgstr "" + +#: plugins/check_snmp.c:1310 +msgid "" +"This plugin uses the 'snmpget' command included with the NET-SNMP package." +msgstr "" + +#: plugins/check_snmp.c:1311 +msgid "" +"if you don't have the package installed, you will need to download it from" +msgstr "" + +#: plugins/check_snmp.c:1312 +msgid "http://net-snmp.sourceforge.net before you can use this plugin." +msgstr "" + +#: plugins/check_snmp.c:1316 +msgid "" +"- Multiple OIDs (and labels) may be indicated by a comma or space-delimited " +msgstr "" + +#: plugins/check_snmp.c:1317 +msgid "list (lists with internal spaces must be quoted)." +msgstr "" + +#: plugins/check_snmp.c:1321 +msgid "" +"- When checking multiple OIDs, separate ranges by commas like '-w " +"1:10,1:,:20'" +msgstr "" + +#: plugins/check_snmp.c:1322 +msgid "- Note that only one string and one regex may be checked at present" +msgstr "" + +#: plugins/check_snmp.c:1323 +msgid "" +"- All evaluation methods other than PR, STR, and SUBSTR expect that the value" +msgstr "" + +#: plugins/check_snmp.c:1324 +msgid "returned from the SNMP query is an unsigned integer." +msgstr "" + +#: plugins/check_snmp.c:1327 +msgid "Rate Calculation:" +msgstr "" + +#: plugins/check_snmp.c:1328 +msgid "In many places, SNMP returns counters that are only meaningful when" +msgstr "" + +#: plugins/check_snmp.c:1329 +msgid "calculating the counter difference since the last check. check_snmp" +msgstr "" + +#: plugins/check_snmp.c:1330 +msgid "saves the last state information in a file so that the rate per second" +msgstr "" + +#: plugins/check_snmp.c:1331 +msgid "can be calculated. Use the --rate option to save state information." +msgstr "" + +#: plugins/check_snmp.c:1332 +msgid "" +"On the first run, there will be no prior state - this will return with OK." +msgstr "" + +#: plugins/check_snmp.c:1333 +msgid "The state is uniquely determined by the arguments to the plugin, so" +msgstr "" + +#: plugins/check_snmp.c:1334 +msgid "changing the arguments will create a new state file." +msgstr "" + +#: plugins/check_ssh.c:170 +#, fuzzy +msgid "Port number must be a positive integer" +msgstr "Port muss ein positiver Integer sein" + +#: plugins/check_ssh.c:237 +#, c-format +msgid "Server answer: %s" +msgstr "" + +#: plugins/check_ssh.c:256 +#, c-format +msgid "SSH CRITICAL - %s (protocol %s) version mismatch, expected '%s'\n" +msgstr "" + +#: plugins/check_ssh.c:264 +#, c-format +msgid "" +"SSH CRITICAL - %s (protocol %s) protocol version mismatch, expected '%s'\n" +msgstr "" + +#: plugins/check_ssh.c:273 +#, c-format +msgid "SSH OK - %s (protocol %s) | %s\n" +msgstr "" + +#: plugins/check_ssh.c:294 +msgid "Try to connect to an SSH server at specified server and port" +msgstr "" + +#: plugins/check_ssh.c:310 +msgid "" +"Alert if string doesn't match expected server version (ex: OpenSSH_3.9p1)" +msgstr "" + +#: plugins/check_ssh.c:313 +msgid "Alert if protocol doesn't match expected protocol version (ex: 2.0)" +msgstr "" + +#: plugins/check_swap.c:190 +#, c-format +msgid "Command: %s\n" +msgstr "" + +#: plugins/check_swap.c:192 +#, c-format +msgid "Format: %s\n" +msgstr "" + +#: plugins/check_swap.c:228 +#, c-format +msgid "total=%.0f, used=%.0f, free=%.0f\n" +msgstr "" + +#: plugins/check_swap.c:242 +#, c-format +msgid "total=%.0f, free=%.0f\n" +msgstr "" + +#: plugins/check_swap.c:274 +msgid "Error getting swap devices\n" +msgstr "" + +#: plugins/check_swap.c:277 +msgid "SWAP OK: No swap devices defined\n" +msgstr "" + +#: plugins/check_swap.c:298 plugins/check_swap.c:340 +msgid "swapctl failed: " +msgstr "" + +#: plugins/check_swap.c:299 plugins/check_swap.c:341 +msgid "Error in swapctl call\n" +msgstr "" + +#: plugins/check_swap.c:379 +#, c-format +msgid "SWAP %s - %d%% free (%dMB out of %dMB) %s|" +msgstr "" + +#: plugins/check_swap.c:475 +#, fuzzy +msgid "Warning threshold percentage must be <= 100!" +msgstr "Warning threshold Integer sein" + +#: plugins/check_swap.c:485 +#, fuzzy +msgid "Warning threshold be positive integer or percentage!" +msgstr "Warning threshold muss ein Integer oder ein Prozentwert sein" + +#: plugins/check_swap.c:505 +#, fuzzy +msgid "Critical threshold percentage must be <= 100!" +msgstr "Critical threshold muss ein Integer sein" + +#: plugins/check_swap.c:515 +#, fuzzy +msgid "Critical threshold be positive integer or percentage!" +msgstr "Critical threshold muss ein Integer oder ein Prozentwert sein!" + +#: plugins/check_swap.c:524 +msgid "" +"no-swap result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) " +"or integer (0-3)." +msgstr "" + +#: plugins/check_swap.c:561 +#, fuzzy +msgid "Warning should be more than critical" +msgstr "Warning threshold muss ein Integer oder ein Prozentwert sein" + +#: plugins/check_swap.c:575 +msgid "Check swap space on local machine." +msgstr "" + +#: plugins/check_swap.c:585 +msgid "" +"Exit with WARNING status if less than INTEGER bytes of swap space are free" +msgstr "" + +#: plugins/check_swap.c:587 +msgid "Exit with WARNING status if less than PERCENT of swap space is free" +msgstr "" + +#: plugins/check_swap.c:589 +msgid "" +"Exit with CRITICAL status if less than INTEGER bytes of swap space are free" +msgstr "" + +#: plugins/check_swap.c:591 +msgid "Exit with CRITICAL status if less than PERCENT of swap space is free" +msgstr "" + +#: plugins/check_swap.c:593 +msgid "Conduct comparisons for all swap partitions, one by one" +msgstr "" + +#: plugins/check_swap.c:595 +msgid "" +"Resulting state when there is no swap regardless of thresholds. Default:" +msgstr "" + +#: plugins/check_swap.c:600 +msgid "" +"Both INTEGER and PERCENT thresholds can be specified, they are all checked." +msgstr "" + +#: plugins/check_swap.c:601 +msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s." +msgstr "" + +#: plugins/check_tcp.c:210 +msgid "CRITICAL - Generic check_tcp called with unknown service\n" +msgstr "" + +#: plugins/check_tcp.c:234 +msgid "With UDP checks, a send/expect string must be specified." +msgstr "" + +#: plugins/check_tcp.c:445 +msgid "No arguments found" +msgstr "" + +#: plugins/check_tcp.c:548 +msgid "Maxbytes must be a positive integer" +msgstr "Maxbytes muss ein positiver Integer sein" + +#: plugins/check_tcp.c:566 +msgid "Refuse must be one of ok, warn, crit" +msgstr "" + +#: plugins/check_tcp.c:576 +msgid "Mismatch must be one of ok, warn, crit" +msgstr "" + +#: plugins/check_tcp.c:582 +msgid "Delay must be a positive integer" +msgstr "Delay muss ein positiver Integer sein" + +#: plugins/check_tcp.c:637 +#, fuzzy +msgid "You must provide a server address" +msgstr "%s: Hostname muss angegeben werden\n" + +#: plugins/check_tcp.c:639 +#, fuzzy +msgid "Invalid hostname, address or socket" +msgstr "Ungültige(r) Hostname/Adresse" + +#: plugins/check_tcp.c:653 +#, fuzzy, c-format +msgid "" +"This plugin tests %s connections with the specified host (or unix socket).\n" +"\n" +msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." + +#: plugins/check_tcp.c:666 +msgid "" +"Can use \\n, \\r, \\t or \\\\ in send or quit string. Must come before send " +"or quit option" +msgstr "" + +#: plugins/check_tcp.c:667 +msgid "Default: nothing added to send, \\r\\n added to end of quit" +msgstr "" + +#: plugins/check_tcp.c:669 +msgid "String to send to the server" +msgstr "" + +#: plugins/check_tcp.c:671 +msgid "String to expect in server response" +msgstr "" + +#: plugins/check_tcp.c:671 +msgid "(may be repeated)" +msgstr "" + +#: plugins/check_tcp.c:673 +msgid "All expect strings need to occur in server response. Default is any" +msgstr "" + +#: plugins/check_tcp.c:675 +msgid "String to send server to initiate a clean close of the connection" +msgstr "" + +#: plugins/check_tcp.c:677 +msgid "Accept TCP refusals with states ok, warn, crit (default: crit)" +msgstr "" + +#: plugins/check_tcp.c:679 +msgid "" +"Accept expected string mismatches with states ok, warn, crit (default: warn)" +msgstr "" + +#: plugins/check_tcp.c:681 +#, fuzzy +msgid "Hide output from TCP socket" +msgstr "Konnte TCP socket nicht öffnen\n" + +#: plugins/check_tcp.c:683 +msgid "Close connection once more than this number of bytes are received" +msgstr "" + +#: plugins/check_tcp.c:685 +msgid "Seconds to wait between sending string and polling for response" +msgstr "" + +#: plugins/check_tcp.c:690 +msgid "1st is #days for warning, 2nd is critical (if not specified - 0)." +msgstr "" + +#: plugins/check_tcp.c:692 +msgid "Use SSL for the connection." +msgstr "" + +#: plugins/check_tcp.c:694 +msgid "SSL server_name" +msgstr "" + +#: plugins/check_time.c:102 +#, c-format +msgid "TIME UNKNOWN - could not connect to server %s, port %d\n" +msgstr "" + +#: plugins/check_time.c:115 +#, c-format +msgid "TIME UNKNOWN - could not send UDP request to server %s, port %d\n" +msgstr "" + +#: plugins/check_time.c:139 +#, c-format +msgid "TIME UNKNOWN - no data received from server %s, port %d\n" +msgstr "" + +#: plugins/check_time.c:152 +#, c-format +msgid "TIME %s - %d second response time|%s\n" +msgstr "" + +#: plugins/check_time.c:170 +#, c-format +msgid "TIME %s - %lu second time difference|%s %s\n" +msgstr "" + +#: plugins/check_time.c:254 +msgid "Warning thresholds must be a positive integer" +msgstr "Warning thresholds muss ein positiver Integer sein" + +#: plugins/check_time.c:273 +msgid "Critical thresholds must be a positive integer" +msgstr "Critical thresholds muss ein positiver Integer sein" + +#: plugins/check_time.c:339 +#, fuzzy +msgid "This plugin will check the time on the specified host." +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_time.c:351 +msgid "Use UDP to connect, not TCP" +msgstr "" + +#: plugins/check_time.c:353 +msgid "Time difference (sec.) necessary to result in a warning status" +msgstr "" + +#: plugins/check_time.c:355 +msgid "Time difference (sec.) necessary to result in a critical status" +msgstr "" + +#: plugins/check_time.c:357 +msgid "Response time (sec.) necessary to result in warning status" +msgstr "" + +#: plugins/check_time.c:359 +msgid "Response time (sec.) necessary to result in critical status" +msgstr "" + +#: plugins/check_ups.c:144 +msgid "On Battery, Low Battery" +msgstr "" + +#: plugins/check_ups.c:149 +msgid "Online" +msgstr "" + +#: plugins/check_ups.c:152 +msgid "On Battery" +msgstr "" + +#: plugins/check_ups.c:156 +msgid ", Low Battery" +msgstr "" + +#: plugins/check_ups.c:160 +msgid ", Calibrating" +msgstr "" + +#: plugins/check_ups.c:163 +msgid ", Replace Battery" +msgstr "" + +#: plugins/check_ups.c:167 +msgid ", On Bypass" +msgstr "" + +#: plugins/check_ups.c:170 +msgid ", Overload" +msgstr "" + +#: plugins/check_ups.c:173 +msgid ", Trimming" +msgstr "" + +#: plugins/check_ups.c:176 +msgid ", Boosting" +msgstr "" + +#: plugins/check_ups.c:179 +msgid ", Charging" +msgstr "" + +#: plugins/check_ups.c:182 +msgid ", Discharging" +msgstr "" + +#: plugins/check_ups.c:185 +msgid ", Unknown" +msgstr "" + +#: plugins/check_ups.c:324 +#, fuzzy +msgid "UPS does not support any available options\n" +msgstr "IPv6 Unterstützung nicht vorhanden" + +#: plugins/check_ups.c:348 plugins/check_ups.c:414 +#, fuzzy +msgid "Invalid response received from host" +msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#: plugins/check_ups.c:406 +msgid "UPS name to long for buffer" +msgstr "" + +#: plugins/check_ups.c:423 +#, fuzzy, c-format +msgid "CRITICAL - no such UPS '%s' on that host\n" +msgstr "%s [%s nicht gefunden]" + +#: plugins/check_ups.c:433 +#, fuzzy +msgid "CRITICAL - UPS data is stale" +msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" + +#: plugins/check_ups.c:438 +#, fuzzy, c-format +msgid "Unknown error: %s\n" +msgstr "Papierfehler" + +#: plugins/check_ups.c:445 +msgid "Error: unable to parse variable" +msgstr "" + +#: plugins/check_ups.c:552 +msgid "Unrecognized UPS variable" +msgstr "" + +#: plugins/check_ups.c:590 +msgid "Error : no UPS indicated" +msgstr "" + +#: plugins/check_ups.c:610 +#, fuzzy +msgid "" +"This plugin tests the UPS service on the specified host. Network UPS Tools" +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_ups.c:611 +msgid "from www.networkupstools.org must be running for this plugin to work." +msgstr "" + +#: plugins/check_ups.c:623 +msgid "Name of UPS" +msgstr "" + +#: plugins/check_ups.c:625 +msgid "Output of temperatures in Celsius" +msgstr "" + +#: plugins/check_ups.c:627 +msgid "Valid values for STRING are" +msgstr "" + +#: plugins/check_ups.c:638 +msgid "" +"This plugin attempts to determine the status of a UPS (Uninterruptible Power" +msgstr "" + +#: plugins/check_ups.c:639 +msgid "" +"Supply) on a local or remote host. If the UPS is online or calibrating, the" +msgstr "" + +#: plugins/check_ups.c:640 +msgid "" +"plugin will return an OK state. If the battery is on it will return a WARNING" +msgstr "" + +#: plugins/check_ups.c:641 +msgid "" +"state. If the UPS is off or has a low battery the plugin will return a " +"CRITICAL" +msgstr "" + +#: plugins/check_ups.c:646 +msgid "" +"You may also specify a variable to check (such as temperature, utility " +"voltage," +msgstr "" + +#: plugins/check_ups.c:647 +msgid "" +"battery load, etc.) as well as warning and critical thresholds for the value" +msgstr "" + +#: plugins/check_ups.c:648 +msgid "" +"of that variable. If the remote host has multiple UPS that are being " +"monitored" +msgstr "" + +#: plugins/check_ups.c:649 +msgid "you will have to use the --ups option to specify which UPS to check." +msgstr "" + +#: plugins/check_ups.c:651 +msgid "" +"This plugin requires that the UPSD daemon distributed with Russell Kroll's" +msgstr "" + +#: plugins/check_ups.c:652 +msgid "" +"Network UPS Tools be installed on the remote host. If you do not have the" +msgstr "" + +#: plugins/check_ups.c:653 +msgid "package installed on your system, you can download it from" +msgstr "" + +#: plugins/check_ups.c:654 +msgid "http://www.networkupstools.org" +msgstr "" + +#: plugins/check_users.c:91 +#, fuzzy, c-format +msgid "Could not enumerate RD sessions: %d\n" +msgstr "Konnte·url·nicht·zuweisen\n" + +#: plugins/check_users.c:146 +#, c-format +msgid "# users=%d" +msgstr "" + +#: plugins/check_users.c:164 +msgid "Unable to read output" +msgstr "" + +#: plugins/check_users.c:166 +#, c-format +msgid "USERS %s - %d users currently logged in |%s\n" +msgstr "" + +#: plugins/check_users.c:241 +#, fuzzy +msgid "This plugin checks the number of users currently logged in on the local" +msgstr "" +"Dieses Plugin prüft den freien Speicher auf einem gemounteten Filesystem\n" +"und erzeugt einen Alarm wenn einer der angegebenen Schwellwerte " +"unterschritten wird.\n" +"\n" + +#: plugins/check_users.c:242 +msgid "" +"system and generates an error if the number exceeds the thresholds specified." +msgstr "" + +#: plugins/check_users.c:252 +msgid "Set WARNING status if more than INTEGER users are logged in" +msgstr "" + +#: plugins/check_users.c:254 +msgid "Set CRITICAL status if more than INTEGER users are logged in" +msgstr "" + +#: plugins/check_ide_smart.c:218 +msgid "" +"DEPRECATION WARNING: the -q switch (quiet output) is no longer \"quiet\"." +msgstr "" + +#: plugins/check_ide_smart.c:219 +msgid "Nagios-compatible output is now always returned." +msgstr "" + +#: plugins/check_ide_smart.c:224 +msgid "SMART commands are broken and have been disabled (See Notes in --help)." +msgstr "" + +#: plugins/check_ide_smart.c:228 +msgid "" +"DEPRECATION WARNING: the -n switch (Nagios-compatible output) is now the" +msgstr "" + +#: plugins/check_ide_smart.c:229 +msgid "default and will be removed from future releases." +msgstr "" + +#: plugins/check_ide_smart.c:257 +#, fuzzy, c-format +msgid "CRITICAL - Couldn't open device %s: %s\n" +msgstr "CRITICAL - Device konnte nicht geöffnet werden: %s\n" + +#: plugins/check_ide_smart.c:262 +#, c-format +msgid "CRITICAL - SMART_CMD_ENABLE\n" +msgstr "" + +#: plugins/check_ide_smart.c:303 plugins/check_ide_smart.c:330 +#, c-format +msgid "CRITICAL - SMART_READ_VALUES: %s\n" +msgstr "" + +#: plugins/check_ide_smart.c:376 +#, c-format +msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n" +msgstr "" + +#: plugins/check_ide_smart.c:384 +#, c-format +msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n" +msgstr "" + +#: plugins/check_ide_smart.c:392 +#, c-format +msgid "OK - Operational (%d/%d tests passed)\n" +msgstr "" + +#: plugins/check_ide_smart.c:396 +#, c-format +msgid "ERROR - Status '%d' unknown. %d/%d tests passed\n" +msgstr "" + +#: plugins/check_ide_smart.c:429 +#, c-format +msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n" +msgstr "" + +#: plugins/check_ide_smart.c:435 +#, c-format +msgid "OffLineCapability=%d {%s %s %s}\n" +msgstr "" + +#: plugins/check_ide_smart.c:441 +#, c-format +msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n" +msgstr "" + +#: plugins/check_ide_smart.c:463 plugins/check_ide_smart.c:492 +#, c-format +msgid "CRITICAL - %s: %s\n" +msgstr "" + +#: plugins/check_ide_smart.c:467 plugins/check_ide_smart.c:496 +#, c-format +msgid "OK - Command sent (%s)\n" +msgstr "" + +#: plugins/check_ide_smart.c:517 plugins/check_ide_smart.c:544 +#, c-format +msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n" +msgstr "" + +#: plugins/check_ide_smart.c:563 +#, c-format +msgid "" +"This plugin checks a local hard drive with the (Linux specific) SMART " +"interface [http://smartlinux.sourceforge.net/smart/index.php]." +msgstr "" + +#: plugins/check_ide_smart.c:573 +msgid "Select device DEVICE" +msgstr "" + +#: plugins/check_ide_smart.c:574 +msgid "" +"Note: if the device is specified without this option, any further option will" +msgstr "" + +#: plugins/check_ide_smart.c:575 +msgid "be ignored." +msgstr "" + +#: plugins/check_ide_smart.c:581 +msgid "" +"The SMART command modes (-i/--immediate, -0/--auto-off and -1/--auto-on) were" +msgstr "" + +#: plugins/check_ide_smart.c:582 +msgid "" +"broken in an underhand manner and have been disabled. You can use smartctl" +msgstr "" + +#: plugins/check_ide_smart.c:583 +msgid "instead:" +msgstr "" + +#: plugins/check_ide_smart.c:584 +msgid "-0/--auto-off: use \"smartctl --offlineauto=off\"" +msgstr "" + +#: plugins/check_ide_smart.c:585 +msgid "-1/--auto-on: use \"smartctl --offlineauto=on\"" +msgstr "" + +#: plugins/check_ide_smart.c:586 +msgid "-i/--immediate: use \"smartctl --test=offline\"" +msgstr "" + +#: plugins/negate.c:96 +#, fuzzy +msgid "No data returned from command\n" +msgstr "Keine Daten empfangen %s\n" + +#: plugins/negate.c:166 +msgid "" +"Timeout result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) " +"or integer (0-3)." +msgstr "" + +#: plugins/negate.c:170 +msgid "" +"Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer " +"(0-3)." +msgstr "" + +#: plugins/negate.c:176 +msgid "" +"Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" + +#: plugins/negate.c:181 +msgid "" +"Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" + +#: plugins/negate.c:186 +msgid "" +"Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" + +#: plugins/negate.c:213 +msgid "Require path to command" +msgstr "" + +#: plugins/negate.c:224 +msgid "" +"Negates the status of a plugin (returns OK for CRITICAL and vice-versa)." +msgstr "" + +#: plugins/negate.c:225 +msgid "Additional switches can be used to control which state becomes what." +msgstr "" + +#: plugins/negate.c:234 +msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status." +msgstr "" + +#: plugins/negate.c:236 +msgid "Custom result on Negate timeouts; see below for STATUS definition\n" +msgstr "" + +#: plugins/negate.c:242 +#, c-format +msgid "" +" STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n" +msgstr "" + +#: plugins/negate.c:243 +#, c-format +msgid "" +" quotes. Numeric values are accepted. If nothing is specified, permutes\n" +msgstr "" + +#: plugins/negate.c:244 +#, c-format +msgid " OK and CRITICAL.\n" +msgstr "" + +#: plugins/negate.c:246 +#, c-format +msgid "" +" Substitute output text as well. Will only substitute text in CAPITALS\n" +msgstr "" + +#: plugins/negate.c:251 +msgid "Run check_ping and invert result. Must use full path to plugin" +msgstr "" + +#: plugins/negate.c:253 +msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL" +msgstr "" + +#: plugins/negate.c:256 +msgid "" +"This plugin is a wrapper to take the output of another plugin and invert it." +msgstr "" + +#: plugins/negate.c:257 +msgid "The full path of the plugin must be provided." +msgstr "" + +#: plugins/negate.c:258 +msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL." +msgstr "" + +#: plugins/negate.c:259 +msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK." +msgstr "" + +#: plugins/negate.c:260 +msgid "Otherwise, the output state of the wrapped plugin is unchanged." +msgstr "" + +#: plugins/negate.c:262 +msgid "" +"Using timeout-result, it is possible to override the timeout behaviour or a" +msgstr "" + +#: plugins/negate.c:263 +msgid "plugin by setting the negate timeout a bit lower." +msgstr "" + +#: plugins/netutils.c:49 +#, fuzzy, c-format +msgid "%s - Socket timeout after %d seconds\n" +msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" + +#: plugins/netutils.c:51 +#, fuzzy, c-format +msgid "%s - Abnormal timeout after %d seconds\n" +msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" + +#: plugins/netutils.c:79 plugins/netutils.c:292 +msgid "Send failed" +msgstr "" + +#: plugins/netutils.c:96 plugins/netutils.c:307 +#, fuzzy +msgid "No data was received from host!" +msgstr "Keine Daten empfangen %s\n" + +#: plugins/netutils.c:209 plugins/netutils.c:245 +msgid "Socket creation failed" +msgstr "" + +#: plugins/netutils.c:238 +msgid "Supplied path too long unix domain socket" +msgstr "" + +#: plugins/netutils.c:316 +msgid "Receive failed" +msgstr "" + +#: plugins/netutils.c:342 plugins-root/check_dhcp.c:1314 +#, fuzzy, c-format +msgid "Invalid hostname/address - %s" +msgstr "" +"Ungültige(r) Name/Adresse: %s\n" +"\n" + +#: plugins/popen.c:133 +#, fuzzy +msgid "Could not malloc argv array in popen()" +msgstr "Konnte addr nicht zuweisen\n" + +#: plugins/popen.c:143 +#, fuzzy +msgid "CRITICAL - You need more args!!!" +msgstr "CRITICAL - Fehler: %s\n" + +#: plugins/popen.c:201 +#, fuzzy +msgid "Cannot catch SIGCHLD" +msgstr "Konnte SIGALRM nicht erhalten" + +#: plugins/popen.c:287 +#, fuzzy, c-format +msgid "CRITICAL - Plugin timed out after %d seconds\n" +msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" + +#: plugins/popen.c:290 +msgid "CRITICAL - popen timeout received, but no child process" +msgstr "" + +#: plugins/urlize.c:129 +#, c-format +msgid "" +"%s UNKNOWN - No data received from host\n" +"CMD: %s\n" +msgstr "" + +#: plugins/urlize.c:168 +msgid "" +"This plugin wraps the text output of another command (plugin) in HTML " +msgstr "" + +#: plugins/urlize.c:169 +msgid "" +"tags, thus displaying the child plugin's output as a clickable link in " +"compatible" +msgstr "" + +#: plugins/urlize.c:170 +msgid "" +"monitoring status screen. This plugin returns the status of the invoked " +"plugin." +msgstr "" + +#: plugins/urlize.c:180 +msgid "" +"Pay close attention to quoting to ensure that the shell passes the expected" +msgstr "" + +#: plugins/urlize.c:181 +msgid "data to the plugin. For example, in:" +msgstr "" + +#: plugins/urlize.c:182 +msgid "urlize http://example.com/ check_http -H example.com -r 'two words'" +msgstr "" + +#: plugins/urlize.c:183 +msgid "the shell will remove the single quotes and urlize will see:" +msgstr "" + +#: plugins/urlize.c:184 +msgid "urlize http://example.com/ check_http -H example.com -r two words" +msgstr "" + +#: plugins/urlize.c:185 +msgid "You probably want:" +msgstr "" + +#: plugins/urlize.c:186 +msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\"" +msgstr "" + +#: plugins/utils.c:479 +#, fuzzy +msgid "failed realloc in strpcpy\n" +msgstr "konnte keinen Speicher für '%s' reservieren\n" + +#: plugins/utils.c:521 +#, fuzzy +msgid "failed malloc in strscat\n" +msgstr "konnte keinen Speicher für '%s' reservieren\n" + +#: plugins/utils.c:541 +#, fuzzy +msgid "failed malloc in xvasprintf\n" +msgstr "konnte keinen Speicher für '%s' reservieren\n" + +#: plugins/utils.c:819 +msgid "sysconf error for _SC_OPEN_MAX\n" +msgstr "" + +#: plugins/utils.h:127 +#, c-format +msgid "" +" %s (-h | --help) for detailed help\n" +" %s (-V | --version) for version information\n" +msgstr "" + +#: plugins/utils.h:131 +msgid "" +"\n" +"Options:\n" +" -h, --help\n" +" Print detailed help screen\n" +" -V, --version\n" +" Print version information\n" +msgstr "" + +#: plugins/utils.h:138 +#, c-format +msgid "" +" -H, --hostname=ADDRESS\n" +" Host name, IP Address, or unix socket (must be an absolute path)\n" +" -%c, --port=INTEGER\n" +" Port number (default: %s)\n" +msgstr "" + +#: plugins/utils.h:144 +msgid "" +" -4, --use-ipv4\n" +" Use IPv4 connection\n" +" -6, --use-ipv6\n" +" Use IPv6 connection\n" +msgstr "" + +#: plugins/utils.h:150 +msgid "" +" -v, --verbose\n" +" Show details for command-line debugging (output may be truncated by\n" +" the monitoring system)\n" +msgstr "" + +#: plugins/utils.h:155 +msgid "" +" -w, --warning=DOUBLE\n" +" Response time to result in warning status (seconds)\n" +" -c, --critical=DOUBLE\n" +" Response time to result in critical status (seconds)\n" +msgstr "" + +#: plugins/utils.h:161 +msgid "" +" -w, --warning=RANGE\n" +" Warning range (format: start:end). Alert if outside this range\n" +" -c, --critical=RANGE\n" +" Critical range\n" +msgstr "" + +#: plugins/utils.h:167 +#, c-format +msgid "" +" -t, --timeout=INTEGER\n" +" Seconds before connection times out (default: %d)\n" +msgstr "" + +#: plugins/utils.h:171 +#, c-format +msgid "" +" -t, --timeout=INTEGER\n" +" Seconds before plugin times out (default: %d)\n" +msgstr "" + +#: plugins/utils.h:176 +msgid "" +" --extra-opts=[section][@file]\n" +" Read options from an ini file. See\n" +" https://www.monitoring-plugins.org/doc/extra-opts.html\n" +" for usage and examples.\n" +msgstr "" + +#: plugins/utils.h:185 +msgid "" +" See:\n" +" https://www.monitoring-plugins.org/doc/guidelines.html#THRESHOLDFORMAT\n" +" for THRESHOLD format and examples.\n" +msgstr "" + +#: plugins/utils.h:190 +msgid "" +"\n" +"Send email to help@monitoring-plugins.org if you have questions regarding\n" +"use of this software. To submit patches or suggest improvements, send email\n" +"to devel@monitoring-plugins.org\n" +"\n" +msgstr "" + +#: plugins/utils.h:195 +msgid "" +"\n" +"The Monitoring Plugins come with ABSOLUTELY NO WARRANTY. You may " +"redistribute\n" +"copies of the plugins under the terms of the GNU General Public License.\n" +"For more information about these matters, see the file named COPYING.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:317 +#, c-format +msgid "Error: Could not get hardware address of interface '%s'\n" +msgstr "" + +#: plugins-root/check_dhcp.c:340 +#, c-format +msgid "Error: if_nametoindex error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:345 +#, c-format +msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:350 +#, c-format +msgid "" +"Error: Couldn't get hardware address from interface %s. malloc error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:355 +#, c-format +msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:386 +#, c-format +msgid "" +"Error: can't find unit number in interface_name (%s) - expecting TypeNumber " +"eg lnc0.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:391 plugins-root/check_dhcp.c:403 +#, c-format +msgid "" +"Error: can't read MAC address from DLPI streams interface for device %s unit " +"%d.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:409 +#, c-format +msgid "" +"Error: can't get MAC address for this architecture. Use the --mac option.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:428 +#, c-format +msgid "Error: Cannot determine IP address of interface %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:436 +#, c-format +msgid "Error: Cannot get interface IP address on this platform.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:441 +#, c-format +msgid "Pretending to be relay client %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:525 +#, c-format +msgid "DHCPDISCOVER to %s port %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:577 +#, c-format +msgid "Result=ERROR\n" +msgstr "" + +#: plugins-root/check_dhcp.c:583 +#, c-format +msgid "Result=OK\n" +msgstr "" + +#: plugins-root/check_dhcp.c:593 +#, c-format +msgid "DHCPOFFER from IP address %s" +msgstr "" + +#: plugins-root/check_dhcp.c:594 +#, c-format +msgid " via %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:601 +#, c-format +msgid "" +"DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n" +msgstr "" + +#: plugins-root/check_dhcp.c:623 +#, c-format +msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n" +msgstr "" + +#: plugins-root/check_dhcp.c:641 +#, c-format +msgid "Total responses seen on the wire: %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:642 +#, fuzzy, c-format +msgid "Valid responses for this machine: %d\n" +msgstr "Keine Antwort vom Host \n" + +#: plugins-root/check_dhcp.c:657 +#, c-format +msgid "send_dhcp_packet result: %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:690 +#, fuzzy, c-format +msgid "No (more) data received (nfound: %d)\n" +msgstr "Keine Daten empfangen %s\n" + +#: plugins-root/check_dhcp.c:703 +#, c-format +msgid "recvfrom() failed, " +msgstr "" + +#: plugins-root/check_dhcp.c:710 +#, c-format +msgid "receive_dhcp_packet() result: %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:711 +#, c-format +msgid "receive_dhcp_packet() source: %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:741 +#, c-format +msgid "Error: Could not create socket!\n" +msgstr "" + +#: plugins-root/check_dhcp.c:751 +#, c-format +msgid "Error: Could not set reuse address option on DHCP socket!\n" +msgstr "" + +#: plugins-root/check_dhcp.c:757 +#, c-format +msgid "Error: Could not set broadcast option on DHCP socket!\n" +msgstr "" + +#: plugins-root/check_dhcp.c:766 +#, c-format +msgid "" +"Error: Could not bind socket to interface %s. Check your privileges...\n" +msgstr "" + +#: plugins-root/check_dhcp.c:777 +#, c-format +msgid "" +"Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n" +msgstr "" + +#: plugins-root/check_dhcp.c:811 +#, c-format +msgid "Requested server address: %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:873 +#, c-format +msgid "Lease Time: Infinite\n" +msgstr "" + +#: plugins-root/check_dhcp.c:875 +#, c-format +msgid "Lease Time: %lu seconds\n" +msgstr "" + +#: plugins-root/check_dhcp.c:877 +#, c-format +msgid "Renewal Time: Infinite\n" +msgstr "" + +#: plugins-root/check_dhcp.c:879 +#, c-format +msgid "Renewal Time: %lu seconds\n" +msgstr "" + +#: plugins-root/check_dhcp.c:881 +#, c-format +msgid "Rebinding Time: Infinite\n" +msgstr "" + +#: plugins-root/check_dhcp.c:882 +#, c-format +msgid "Rebinding Time: %lu seconds\n" +msgstr "" + +#: plugins-root/check_dhcp.c:910 +#, c-format +msgid "Added offer from server @ %s" +msgstr "" + +#: plugins-root/check_dhcp.c:911 +#, c-format +msgid " of IP address %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:978 +#, c-format +msgid "DHCP Server Match: Offerer=%s" +msgstr "" + +#: plugins-root/check_dhcp.c:979 +#, c-format +msgid " Requested=%s" +msgstr "" + +#: plugins-root/check_dhcp.c:981 +#, c-format +msgid " (duplicate)" +msgstr "" + +#: plugins-root/check_dhcp.c:982 +#, c-format +msgid "\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1030 +#, c-format +msgid "No DHCPOFFERs were received.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1034 +#, c-format +msgid "Received %d DHCPOFFER(s)" +msgstr "" + +#: plugins-root/check_dhcp.c:1037 +#, c-format +msgid ", %s%d of %d requested servers responded" +msgstr "" + +#: plugins-root/check_dhcp.c:1040 +#, c-format +msgid ", requested address (%s) was %soffered" +msgstr "" + +#: plugins-root/check_dhcp.c:1040 +msgid "not " +msgstr "" + +#: plugins-root/check_dhcp.c:1042 +#, c-format +msgid ", max lease time = " +msgstr "" + +#: plugins-root/check_dhcp.c:1044 +#, c-format +msgid "Infinity" +msgstr "" + +#: plugins-root/check_dhcp.c:1164 +msgid "Got unexpected non-option argument" +msgstr "" + +#: plugins-root/check_dhcp.c:1206 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1218 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1231 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1243 +#, c-format +msgid "" +"Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1267 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1346 +#, c-format +msgid "Hardware address: " +msgstr "" + +#: plugins-root/check_dhcp.c:1362 +msgid "This plugin tests the availability of DHCP servers on a network." +msgstr "" + +#: plugins-root/check_dhcp.c:1374 +msgid "IP address of DHCP server that we must hear from" +msgstr "" + +#: plugins-root/check_dhcp.c:1376 +msgid "IP address that should be offered by at least one DHCP server" +msgstr "" + +#: plugins-root/check_dhcp.c:1378 +msgid "Seconds to wait for DHCPOFFER before timeout occurs" +msgstr "" + +#: plugins-root/check_dhcp.c:1380 +msgid "Interface to to use for listening (i.e. eth0)" +msgstr "" + +#: plugins-root/check_dhcp.c:1382 +msgid "MAC address to use in the DHCP request" +msgstr "" + +#: plugins-root/check_dhcp.c:1384 +msgid "Unicast testing: mimic a DHCP relay, requires -s" +msgstr "" + +#: plugins-root/check_icmp.c:1569 +msgid "specify a target" +msgstr "" + +#: plugins-root/check_icmp.c:1571 +msgid "Use IPv4 (default) or IPv6 to communicate with the targets" +msgstr "" + +#: plugins-root/check_icmp.c:1573 +#, fuzzy +msgid "warning threshold (currently " +msgstr "Warning threshold Integer sein" + +#: plugins-root/check_icmp.c:1576 +#, fuzzy +msgid "critical threshold (currently " +msgstr "Critical threshold muss ein Integer sein" + +#: plugins-root/check_icmp.c:1579 +#, fuzzy +msgid "specify a source IP address or device name" +msgstr "Hostname oder Serveradresse muss angegeben werden" + +#: plugins-root/check_icmp.c:1581 +msgid "number of packets to send (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1584 +msgid "max packet interval (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1587 +msgid "max target interval (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1590 +msgid "number of alive hosts required for success" +msgstr "" + +#: plugins-root/check_icmp.c:1593 +msgid "TTL on outgoing packets (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1596 +msgid "timeout value (seconds, currently " +msgstr "" + +#: plugins-root/check_icmp.c:1599 +msgid "Number of icmp data bytes to send" +msgstr "" + +#: plugins-root/check_icmp.c:1600 +msgid "Packet size will be data bytes + icmp header (currently" +msgstr "" + +#: plugins-root/check_icmp.c:1602 +msgid "verbose" +msgstr "" + +#: plugins-root/check_icmp.c:1606 +msgid "The -H switch is optional. Naming a host (or several) to check is not." +msgstr "" + +#: plugins-root/check_icmp.c:1608 +msgid "" +"Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%" +msgstr "" + +#: plugins-root/check_icmp.c:1609 +msgid "packet loss. The default values should work well for most users." +msgstr "" + +#: plugins-root/check_icmp.c:1610 +msgid "" +"You can specify different RTA factors using the standardized abbreviations" +msgstr "" + +#: plugins-root/check_icmp.c:1611 +msgid "" +"us (microseconds), ms (milliseconds, default) or just plain s for seconds." +msgstr "" + +#: plugins-root/check_icmp.c:1617 +msgid "The -v switch can be specified several times for increased verbosity." +msgstr "" + +#, fuzzy, c-format +#~ msgid "%s - Plugin timed out after %d seconds\n" +#~ msgstr "CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" + +#, fuzzy +#~ msgid "Critical Process Count must be an integer!" +#~ msgstr "Critical threshold muss ein Integer sein" + +#, fuzzy +#~ msgid "Warning Process Count must be an integer!" +#~ msgstr "Warning threshold Integer sein" + +#, fuzzy +#~ msgid "CRITICAL - Cannot retrieve server certificate." +#~ msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" + +#~ msgid "CRITICAL - Cannot retrieve server certificate.\n" +#~ msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" + +#~ msgid "Invalid HTTP response received from host\n" +#~ msgstr "Ungültige HTTP Antwort von Host empfangen\n" + +#~ msgid "Invalid HTTP response received from host on port %d\n" +#~ msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" + +#~ msgid "HTTP CRITICAL: %s\n" +#~ msgstr "HTTP CRITICAL: %s\n" + +#~ msgid "HTTP WARNING: %s\n" +#~ msgstr "HTTP WARNING: %s\n" + +#~ msgid "HTTP UNKNOWN" +#~ msgstr "HTTP UNKNOWN" + +#~ msgid "HTTP OK" +#~ msgstr "HTTP OK" + +#~ msgid "HTTP WARNING" +#~ msgstr "HTTP WARNING" + +#~ msgid "HTTP CRITICAL" +#~ msgstr "HTTP CRITICAL" + +#, fuzzy +#~ msgid "HTTP OK %s - %.3f second response time %s|%s %s\n" +#~ msgstr "HTTP OK %s - %.3f Sekunde Antwortzeit %s%s|%s %s\n" + +#~ msgid "HTTP CRITICAL - string not found%s|%s %s\n" +#~ msgstr "HTTP CRITICAL - Text nicht gefunden%s|%s %s\n" + +#, fuzzy +#~ msgid "HTTP UNKNOWN - could not allocate url\n" +#~ msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" + +#, fuzzy +#~ msgid "snmpget returned an error status" +#~ msgstr "dig hat einen Fehler zurückgegeben" + +#, fuzzy +#~ msgid "Invalid critical threshold" +#~ msgstr "Critical threshold muss ein Integer sein" + +#, fuzzy +#~ msgid "Invalid warning threshold" +#~ msgstr "Warning threshold Integer sein" + +#, fuzzy +#~ msgid "HTTP WARNING: %s - %.3f second response time %s|%s %s\n" +#~ msgstr "HTTP WARNING: %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" + +#, fuzzy +#~ msgid "%s does not exist\n" +#~ msgstr "%s [%s nicht gefunden]" + +#, fuzzy +#~ msgid "Unknown error" +#~ msgstr "Papierfehler" + +#, fuzzy +#~ msgid "Unknown argument - %s" +#~ msgstr "" +#~ "%s: Unbekanntes Argument: %s\n" +#~ "\n" + +#~ msgid "" +#~ " -1, --proto1\n" +#~ " tell ssh to use Protocol 1\n" +#~ " -2, --proto2\n" +#~ " tell ssh to use Protocol 2\n" +#~ " -S, --skiplines=n\n" +#~ " Ignore first n lines on STDERR (to suppress a logon banner)\n" +#~ " -f\n" +#~ " tells ssh to fork rather than create a tty\n" +#~ msgstr "" +#~ " -1, --proto1\n" +#~ " ssh anweisen Protokoll 1 zu verwenden\n" +#~ " -2, --proto2\n" +#~ " ssh anweisen Protokoll 2 zu verwenden\n" +#~ " -S, --skiplines=n\n" +#~ " Ignoriere die ersten n Zeilen auf STDERR (um Logon Banner zu " +#~ "unterdrücken)\n" +#~ " -f\n" +#~ " ssh anweisen fork zu nutzen statt ein tty zu erzeugen\n" + +#~ msgid "" +#~ " -C, --command='COMMAND STRING'\n" +#~ " command to execute on the remote machine\n" +#~ " -l, --logname=USERNAME\n" +#~ " SSH user name on remote host [optional]\n" +#~ " -i, --identity=KEYFILE\n" +#~ " identity of an authorized key [optional]\n" +#~ " -O, --output=FILE\n" +#~ " external command file for nagios [optional]\n" +#~ " -s, --services=LIST\n" +#~ " list of nagios service names, separated by ':' [optional]\n" +#~ " -n, --name=NAME\n" +#~ " short name of host in nagios configuration [optional]\n" +#~ msgstr "" +#~ " -C, --command='COMMAND STRING'\n" +#~ " Befehl der auf der entfernten Maschine ausgeführt werden soll\n" +#~ " -l, --logname=USERNAME\n" +#~ " SSH user name auf dem entfernten Host [optional]\n" +#~ " -i, --identity=KEYFILE\n" +#~ " zu verwendende Schlüsseldatei [optional]\n" +#~ " -O, --output=FILE\n" +#~ " externe Befehlsdatei für nagios [optional]\n" +#~ " -s, --services=LIST\n" +#~ " Liste von nagios Servicenamen, getrennt durch ':' [optional]\n" +#~ " -n, --name=NAME\n" +#~ " Shortname des Hosts in der nagios Konfiguration [optional]\n" + +#, fuzzy +#~ msgid "Warning inode threshold must be percentage!\n" +#~ msgstr "Warning threshold muss ein Integer oder ein Prozentwert sein!\n" + +#, fuzzy +#~ msgid "Critical inode threshold must be percentage!\n" +#~ msgstr "Critical threshold muss ein Integer oder ein Prozentwert sein!\n" + +#~ msgid "INPUT ERROR: No thresholds specified" +#~ msgstr "FEHLER: Kein Schwellwert angegeben" + +#~ msgid "" +#~ "INPUT ERROR: C_DFP (%f) should be less than W_DFP (%.1f) and both should " +#~ "be between zero and 100 percent, inclusive" +#~ msgstr "" +#~ "INPUT ERROR: C_DFP (%f) sollte kleiner sein als W_DFP (%.1f) und beide " +#~ "sollten zwischen 0 und 100 Prozent liegen" + +#, fuzzy +#~ msgid "" +#~ "INPUT ERROR: C_IDFP (%f) should be less than W_IDFP (%.1f) and both " +#~ "should be between zero and 100 percent, inclusive" +#~ msgstr "" +#~ "INPUT ERROR: C_DFP (%f) sollte kleiner sein als W_DFP (%.1f) und beide " +#~ "sollten zwischen 0 und 100 Prozent liegen" + +#~ msgid "" +#~ "INPUT ERROR: C_DF (%lu) should be less than W_DF (%lu) and both should be " +#~ "greater than zero" +#~ msgstr "" +#~ "INPUT ERROR: C_DF (%lu) sollte kleiner sein als W_DF (%lu) und beide " +#~ "sollten größer als 0 sein" + +#, fuzzy +#~ msgid "No response from host on port %d\n" +#~ msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" + +#, fuzzy +#~ msgid "Invalid response received from host on port %d\n" +#~ msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" + +#~ msgid "%.3f seconds response time (%s)" +#~ msgstr "%.3f Sekunden Antwortzeit (%s)" + +#~ msgid "" +#~ " -w, --warning=INTEGER\n" +#~ " Exit with WARNING status if less than INTEGER --units of disk are " +#~ "free\n" +#~ " -w, --warning=PERCENT%%\n" +#~ " Exit with WARNING status if less than PERCENT of disk space is free\n" +#~ " -c, --critical=INTEGER\n" +#~ " Exit with CRITICAL status if less than INTEGER --units of disk are " +#~ "free\n" +#~ " -c, --critical=PERCENT%%\n" +#~ " Exit with CRITCAL status if less than PERCENT of disk space is free\n" +#~ " -C, --clear\n" +#~ " Clear thresholds\n" +#~ msgstr "" +#~ " -w, --warning=INTEGER\n" +#~ " meldet Status WARNING, wenn weniger als INTEGER --Einheiten frei\n" +#~ " -w, --warning=PERCENT%%\n" +#~ " meldet Status WARNING, wenn weniger als PERCENT --Plattenplatz frei\n" +#~ " -c, --critical=INTEGER\n" +#~ " meldet Status CRITICAL, wenn weniger als INTEGER --Einheiten frei\n" +#~ " -c, --critical=PERCENT%%\n" +#~ " meldet Status CRITICAL, wenn weniger als PERCENT --Plattenplatz frei\n" +#~ " -C, --clear\n" +#~ " Schwellwerte löschen\n" + +#~ msgid "" +#~ "Examples:\n" +#~ " check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /\n" +#~ " Checks /tmp and /var at 10%,5% and / at 100MB, 50MB\n" +#~ msgstr "" +#~ "Beispiel:\n" +#~ " check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /\n" +#~ " Prüft /tmp und /var mit 10%,5% und / mit 100MB, 50MB\n" + +#~ msgid "" +#~ "This plugin uses the nslookup program to obtain the IP address\n" +#~ "for the given host/domain query. A optional DNS server to use may\n" +#~ "be specified. If no DNS server is specified, the default server(s)\n" +#~ "specified in /etc/resolv.conf will be used.\n" +#~ "\n" +#~ msgstr "" +#~ "Dieses Plugin nutzt nslookup, um die IP-Adresse des angegebenen\n" +#~ "Hosts zu erfragen. Optional kann ein DNS-Server angegeben werden\n" +#~ "Wenn kein DNS-Server angegeben wird, so wird der Standardserver aus\n" +#~ "/etc/resolv.conf genutzt.\n" +#~ "\n" + +#~ msgid "HTTP CRITICAL - Could not make SSL connection\n" +#~ msgstr "HTTP CRITICAL - Konnte keine SSL Verbindung herstellen\n" + +#~ msgid "Client Certificate Required\n" +#~ msgstr "Clientzertifikat benötigt\n" + +#~ msgid "CRITICAL - Cannot create SSL context.\n" +#~ msgstr "CRITICAL - Konnte SSL Kontext nicht erzeugen.\n" + +#~ msgid "CRITICAL - Cannot initiate SSL handshake.\n" +#~ msgstr "CRITICAL - Konnte SSL Handshake nicht starten.\n" + +#, fuzzy +#~ msgid "Failed to allocate memory for hostname" +#~ msgstr "konnte keinen Speicher für '%s' reservieren\n" + +#, fuzzy +#~ msgid "CRITICAL - %d of %d hosts are alive\n" +#~ msgstr "CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" + +#, fuzzy +#~ msgid "%s has no address data\n" +#~ msgstr "Nameserver %s hat keine Datensätze\n" + +#, fuzzy +#~ msgid "CRITICAL - Could not make SSL connection\n" +#~ msgstr "HTTP CRITICAL - Konnte keine SSL Verbindung herstellen\n" + +#, fuzzy +#~ msgid "Unexpected response from host: %s\n" +#~ msgstr "Keine Antwort vom Host \n" + +#, fuzzy +#~ msgid "Certificate expires today (%s).\n" +#~ msgstr "Clientzertifikat benötigt\n" + +#, fuzzy +#~ msgid "ERROR: Cannot create SSL context.\n" +#~ msgstr "CRITICAL - Konnte SSL Kontext nicht erzeugen.\n" + +#, fuzzy +#~ msgid "ERROR: Cannot retrieve server certificate.\n" +#~ msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" + +#, fuzzy +#~ msgid "ERROR: Cannot initiate SSL handshake.\n" +#~ msgstr "CRITICAL - Konnte SSL Handshake nicht starten.\n" + +#~ msgid "" +#~ "%s: Unknown argument: %s\n" +#~ "\n" +#~ msgstr "" +#~ "%s: Unbekanntes Argument: %s\n" +#~ "\n" + +#~ msgid "Critical time must be a nonnegative integer" +#~ msgstr "Critical time muss ein positiver Integer sein" + +#~ msgid "Time interval must be a nonnegative integer" +#~ msgstr "Time interval muss ein positiver Integer sein" + +#~ msgid "check_http: invalid option - SSL is not available\n" +#~ msgstr "check_http: ungültige Option - SSL ist nicht verfügbar\n" + +#~ msgid "invalid hostname/address" +#~ msgstr "Ungültige(r) Hostname/Adresse" diff --git a/po/fr.gmo b/po/fr.gmo new file mode 100644 index 0000000..1fa1222 Binary files /dev/null and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..e6837d0 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,6851 @@ +# translation of fr.po to +# Messages français pour Nagios Plugins +# Copyright (C) 2003-2004 Nagios Plugin Development Group +# This file is distributed under the same license as the nagiosplug package. +# +# Karl DeBisschop , 2003. +# Benoit Mortier , 2004, 2006, 2007. +# Thomas Guyot-Sionnest , 2007. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: devel@monitoring-plugins.org\n" +"POT-Creation-Date: 2023-02-01 13:48+0000\n" +"PO-Revision-Date: 2010-04-21 23:38-0400\n" +"Last-Translator: Thomas Guyot-Sionnest \n" +"Language-Team: Nagios Plugin Development Mailing List \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#: plugins/check_by_ssh.c:88 plugins/check_cluster.c:76 plugins/check_dig.c:91 +#: plugins/check_disk.c:201 plugins/check_dns.c:106 plugins/check_dummy.c:52 +#: plugins/check_fping.c:95 plugins/check_game.c:82 plugins/check_hpjd.c:105 +#: plugins/check_http.c:174 plugins/check_ldap.c:118 plugins/check_load.c:128 +#: plugins/check_mrtgtraf.c:83 plugins/check_mysql.c:124 +#: plugins/check_nagios.c:91 plugins/check_nt.c:127 plugins/check_ntp.c:780 +#: plugins/check_ntp_peer.c:575 plugins/check_ntp_time.c:557 +#: plugins/check_nwstat.c:173 plugins/check_overcr.c:102 +#: plugins/check_pgsql.c:174 plugins/check_ping.c:97 plugins/check_procs.c:172 +#: plugins/check_radius.c:172 plugins/check_real.c:80 plugins/check_smtp.c:143 +#: plugins/check_snmp.c:246 plugins/check_ssh.c:74 plugins/check_swap.c:118 +#: plugins/check_tcp.c:222 plugins/check_time.c:78 plugins/check_ups.c:122 +#: plugins/check_users.c:84 plugins/negate.c:210 plugins-root/check_dhcp.c:270 +msgid "Could not parse arguments" +msgstr "Impossible de décomposer les arguments" + +#: plugins/check_by_ssh.c:92 plugins/check_dig.c:85 plugins/check_dns.c:99 +#: plugins/check_nagios.c:95 plugins/check_pgsql.c:180 plugins/check_ping.c:101 +#: plugins/check_procs.c:188 plugins/check_snmp.c:346 plugins/negate.c:78 +msgid "Cannot catch SIGALRM" +msgstr "Impossible d'obtenir le signal SIGALRM" + +#: plugins/check_by_ssh.c:107 +#, fuzzy, c-format +msgid "SSH connection failed: %s\n" +msgstr "L'exécution de la commande à distance %s à échoué\n" + +#: plugins/check_by_ssh.c:126 +#, c-format +msgid "Remote command execution failed: %s\n" +msgstr "L'exécution de la commande à distance %s à échoué\n" + +#: plugins/check_by_ssh.c:141 +#, c-format +msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n" +msgstr "" + +#: plugins/check_by_ssh.c:153 +#, c-format +msgid "SSH WARNING: could not open %s\n" +msgstr "SSH AVERTISSEMENT: impossible d'ouvrir %s\n" + +#: plugins/check_by_ssh.c:162 +#, c-format +msgid "%s: Error parsing output\n" +msgstr "%s: Erreur d'analyse du résultat\n" + +#: plugins/check_by_ssh.c:242 plugins/check_disk.c:521 plugins/check_http.c:292 +#: plugins/check_ldap.c:334 plugins/check_pgsql.c:314 plugins/check_procs.c:437 +#: plugins/check_radius.c:319 plugins/check_real.c:357 plugins/check_smtp.c:591 +#: plugins/check_snmp.c:787 plugins/check_ssh.c:140 plugins/check_tcp.c:519 +#: plugins/check_time.c:302 plugins/check_ups.c:559 plugins/negate.c:160 +msgid "Timeout interval must be a positive integer" +msgstr "Le délai d'attente doit être un entier positif" + +#: plugins/check_by_ssh.c:254 plugins/check_pgsql.c:344 +#: plugins/check_radius.c:283 plugins/check_real.c:328 plugins/check_smtp.c:516 +#: plugins/check_tcp.c:525 plugins/check_time.c:296 plugins/check_ups.c:521 +msgid "Port must be a positive integer" +msgstr "Le numéro du port doit être un entier positif" + +#: plugins/check_by_ssh.c:315 +msgid "skip-stdout argument must be an integer" +msgstr "Le nombres de lignes à sauter (skip-stdout) doit être un entier" + +#: plugins/check_by_ssh.c:323 +msgid "skip-stderr argument must be an integer" +msgstr "Le nombres de lignes à sauter (skip-stderr) doit être un entier" + +#: plugins/check_by_ssh.c:349 +#, c-format +msgid "%s: You must provide a host name\n" +msgstr "%s: Vous devez fournir un nom d'hôte\n" + +#: plugins/check_by_ssh.c:366 +msgid "No remotecmd" +msgstr "Pas de commande distante" + +#: plugins/check_by_ssh.c:380 +#, c-format +msgid "%s: Argument limit of %d exceeded\n" +msgstr "" + +#: plugins/check_by_ssh.c:383 +msgid "Can not (re)allocate 'commargv' buffer\n" +msgstr "Impossible de réallouer le tampon 'commargv'\n" + +#: plugins/check_by_ssh.c:397 +#, c-format +msgid "" +"%s: In passive mode, you must provide a service name for each command.\n" +msgstr "" +"%s: En mode passif, vous devez fournir un service pour chaque commande.\n" + +#: plugins/check_by_ssh.c:400 +#, fuzzy, c-format +msgid "" +"%s: In passive mode, you must provide the host short name from the " +"monitoring configs.\n" +msgstr "" +"%s: En mode passif, vous devez fournir le nom court du hôte mentionné dans " +"la configuration de nagios.\n" + +#: plugins/check_by_ssh.c:414 +#, c-format +msgid "This plugin uses SSH to execute commands on a remote host" +msgstr "Ce plugin utilise SSH pour exécuter des commandes sur un hôte distant" + +#: plugins/check_by_ssh.c:429 +msgid "tell ssh to use Protocol 1 [optional]" +msgstr "dire à ssh d'utiliser le protocole version 1 [optionnel]" + +#: plugins/check_by_ssh.c:431 +msgid "tell ssh to use Protocol 2 [optional]" +msgstr "dire à ssh d'utiliser le protocole 2 [optionnel]" + +#: plugins/check_by_ssh.c:433 +msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:435 +msgid "Ignore all or (if specified) first n lines on STDERR [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:437 +msgid "Exit with an warning, if there is an output on STDERR" +msgstr "" + +#: plugins/check_by_ssh.c:439 +msgid "" +"tells ssh to fork rather than create a tty [optional]. This will always " +"return OK if ssh is executed" +msgstr "" + +#: plugins/check_by_ssh.c:441 +msgid "command to execute on the remote machine" +msgstr "commande à exécuter sur la machine distante" + +#: plugins/check_by_ssh.c:443 +msgid "SSH user name on remote host [optional]" +msgstr "Nom d'utilisateur ssh sur la machine distante [optionnel]" + +#: plugins/check_by_ssh.c:445 +msgid "identity of an authorized key [optional]" +msgstr "Identité de la clé autorisée [optionnel]" + +#: plugins/check_by_ssh.c:447 +#, fuzzy +msgid "external command file for monitoring [optional]" +msgstr "commande externe pour nagios [optionnel]" + +#: plugins/check_by_ssh.c:449 +#, fuzzy +msgid "list of monitoring service names, separated by ':' [optional]" +msgstr "liste des services nagios, séparés par ':' [optionnel] " + +#: plugins/check_by_ssh.c:451 +#, fuzzy +msgid "short name of host in the monitoring configuration [optional]" +msgstr "nom court de l'hôte dans la configuration nagios [optionnel]" + +#: plugins/check_by_ssh.c:453 +msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" +msgstr "" +"appelle ssh avec '-o OPTION' (peut être utilisé plusieurs fois) [optionnel]" + +#: plugins/check_by_ssh.c:455 +#, fuzzy +msgid "Tell ssh to use this configfile [optional]" +msgstr "dire à ssh d'utiliser le protocole version 1 [optionnel]" + +#: plugins/check_by_ssh.c:457 +msgid "Tell ssh to suppress warning and diagnostic messages [optional]" +msgstr "" +"dire à ssh de supprimer les messages d'erreurs et de diagnostic [optionnel]" + +#: plugins/check_by_ssh.c:461 +msgid "Make connection problems return UNKNOWN instead of CRITICAL" +msgstr "" + +#: plugins/check_by_ssh.c:464 +msgid "The most common mode of use is to refer to a local identity file with" +msgstr "" + +#: plugins/check_by_ssh.c:465 +msgid "the '-i' option. In this mode, the identity pair should have a null" +msgstr "" + +#: plugins/check_by_ssh.c:466 +msgid "passphrase and the public key should be listed in the authorized_keys" +msgstr "" + +#: plugins/check_by_ssh.c:467 +msgid "file of the remote host. Usually the key will be restricted to running" +msgstr "" + +#: plugins/check_by_ssh.c:468 +msgid "only one command on the remote server. If the remote SSH server tracks" +msgstr "" + +#: plugins/check_by_ssh.c:469 +msgid "invocation arguments, the one remote program may be an agent that can" +msgstr "" + +#: plugins/check_by_ssh.c:470 +msgid "execute additional commands as proxy" +msgstr "" + +#: plugins/check_by_ssh.c:472 +msgid "To use passive mode, provide multiple '-C' options, and provide" +msgstr "Pour utiliser le mode passif, utilisez plusieurs fois l'option '-C',et" + +#: plugins/check_by_ssh.c:473 +msgid "" +"all of -O, -s, and -n options (servicelist order must match '-C'options)" +msgstr "" +"et les options -O, -s, n (l'ordre des services doit correspondre aux " +"multiples options '-C)" + +#: plugins/check_by_ssh.c:475 plugins/check_cluster.c:271 +#: plugins/check_dig.c:364 plugins/check_disk.c:936 plugins/check_http.c:1840 +#: plugins/check_nagios.c:312 plugins/check_ntp.c:879 +#: plugins/check_ntp_peer.c:733 plugins/check_ntp_time.c:642 +#: plugins/check_procs.c:763 plugins/negate.c:249 plugins/urlize.c:179 +msgid "Examples:" +msgstr "Exemples:" + +#: plugins/check_by_ssh.c:490 plugins/check_cluster.c:284 +#: plugins/check_dig.c:376 plugins/check_disk.c:953 plugins/check_dns.c:617 +#: plugins/check_dummy.c:122 plugins/check_fping.c:524 plugins/check_game.c:331 +#: plugins/check_hpjd.c:439 plugins/check_http.c:1878 plugins/check_ldap.c:511 +#: plugins/check_load.c:372 plugins/check_mrtg.c:382 plugins/check_mysql.c:584 +#: plugins/check_nagios.c:323 plugins/check_nt.c:797 plugins/check_ntp.c:898 +#: plugins/check_ntp_peer.c:753 plugins/check_ntp_time.c:651 +#: plugins/check_nwstat.c:1685 plugins/check_overcr.c:467 +#: plugins/check_pgsql.c:548 plugins/check_ping.c:617 plugins/check_procs.c:786 +#: plugins/check_radius.c:396 plugins/check_real.c:452 plugins/check_smtp.c:860 +#: plugins/check_snmp.c:1344 plugins/check_ssh.c:325 plugins/check_swap.c:610 +#: plugins/check_tcp.c:710 plugins/check_time.c:371 plugins/check_ups.c:663 +#: plugins/check_users.c:262 plugins/check_ide_smart.c:606 plugins/negate.c:273 +#: plugins/urlize.c:196 plugins-root/check_dhcp.c:1394 +#: plugins-root/check_icmp.c:1630 +msgid "Usage:" +msgstr "Utilisation:" + +#: plugins/check_cluster.c:240 +#, fuzzy, c-format +msgid "Host/Service Cluster Plugin for Monitoring" +msgstr "Plugin de Cluster d'Hôte/Service pour Nagios 2" + +#: plugins/check_cluster.c:246 plugins/check_nt.c:697 +msgid "Options:" +msgstr "Options:" + +#: plugins/check_cluster.c:249 +msgid "Check service cluster status" +msgstr "Vérifie l'état d'un cluster de services" + +#: plugins/check_cluster.c:251 +msgid "Check host cluster status" +msgstr "Vérifie l'état d'un cluster d'hôtes" + +#: plugins/check_cluster.c:253 +msgid "Optional prepended text output (i.e. \"Host cluster\")" +msgstr "Texte optionnel accolé à la sortie (i.e. \"Cluster d'hôtes\")" + +#: plugins/check_cluster.c:255 plugins/check_cluster.c:258 +msgid "Specifies the range of hosts or services in cluster that must be in a" +msgstr "Défini le nombre d'hôtes ou de services du cluster qui doivent être" + +#: plugins/check_cluster.c:256 +msgid "non-OK state in order to return a WARNING status level" +msgstr "dans un état non-OK pour retourner un état AVERTISSEMENT" + +#: plugins/check_cluster.c:259 +msgid "non-OK state in order to return a CRITICAL status level" +msgstr "dans un état non-OK pour retourner un état CRITIQUE" + +#: plugins/check_cluster.c:261 +msgid "The status codes of the hosts or services in the cluster, separated by" +msgstr "Les codes d'état des hôtes ou des services du cluster, séparés par des" + +#: plugins/check_cluster.c:262 +msgid "commas" +msgstr "virgules" + +#: plugins/check_cluster.c:267 plugins/check_game.c:318 +#: plugins/check_http.c:1822 plugins/check_ldap.c:497 plugins/check_mrtg.c:363 +#: plugins/check_mrtgtraf.c:361 plugins/check_mysql.c:573 +#: plugins/check_nt.c:781 plugins/check_ntp.c:875 plugins/check_ntp_peer.c:724 +#: plugins/check_ntp_time.c:633 plugins/check_nwstat.c:1670 +#: plugins/check_overcr.c:456 plugins/check_snmp.c:1315 +#: plugins/check_swap.c:599 plugins/check_ups.c:645 +#: plugins/check_ide_smart.c:580 plugins/negate.c:255 +#: plugins-root/check_icmp.c:1605 +msgid "Notes:" +msgstr "Notes:" + +#: plugins/check_cluster.c:273 +msgid "" +"Will alert critical if there are 3 or more service data points in a non-OK" +msgstr "" + +#: plugins/check_cluster.c:274 plugins/check_ups.c:642 +msgid "state." +msgstr "" + +#: plugins/check_dig.c:106 plugins/check_dig.c:108 +#, c-format +msgid "Looking for: '%s'\n" +msgstr "Recherche de: '%s'\n" + +#: plugins/check_dig.c:115 +msgid "dig returned an error status" +msgstr "dig à renvoyé un état d'erreur" + +#: plugins/check_dig.c:140 +msgid "Server not found in ANSWER SECTION" +msgstr "Le serveur n'a pas été trouvé dans l'ANSWER SECTION" + +#: plugins/check_dig.c:150 +msgid "No ANSWER SECTION found" +msgstr "Pas d' ANSWER SECTION trouvé" + +#: plugins/check_dig.c:177 +msgid "Probably a non-existent host/domain" +msgstr "Probablement un hôte/domaine inexistant" + +#: plugins/check_dig.c:239 +#, c-format +msgid "Port must be a positive integer - %s" +msgstr "Le numéro du port doit être un entier positif - %s" + +#: plugins/check_dig.c:250 +#, c-format +msgid "Warning interval must be a positive integer - %s" +msgstr "Le seuil d'avertissement doit être un entier positif - %s" + +#: plugins/check_dig.c:258 +#, c-format +msgid "Critical interval must be a positive integer - %s" +msgstr "Le seuil critique doit être un entier positif - %s" + +#: plugins/check_dig.c:266 +#, c-format +msgid "Timeout interval must be a positive integer - %s" +msgstr "Le délai d'attente doit être un entier positif - %s" + +#: plugins/check_dig.c:334 +#, fuzzy, c-format +msgid "This plugin tests the DNS service on the specified host using dig" +msgstr "Ce plugin teste le service DNS sur l'hôte spécifié en utilisant dig" + +#: plugins/check_dig.c:347 +msgid "Force dig to only use IPv4 query transport" +msgstr "" + +#: plugins/check_dig.c:349 +msgid "Force dig to only use IPv6 query transport" +msgstr "" + +#: plugins/check_dig.c:351 +msgid "Machine name to lookup" +msgstr "Nom de machine à rechercher" + +#: plugins/check_dig.c:353 +msgid "Record type to lookup (default: A)" +msgstr "Type d'enregistrement à rechercher (par défaut: A)" + +#: plugins/check_dig.c:355 +msgid "" +"An address expected to be in the answer section. If not set, uses whatever" +msgstr "" +"Une adresse qui devrait se trouver dans la section réponce. Si omit, utilise" + +#: plugins/check_dig.c:356 +msgid "was in -l" +msgstr "ce qui est passé au paramètre -l" + +#: plugins/check_dig.c:358 +msgid "Pass STRING as argument(s) to dig" +msgstr "" + +#: plugins/check_disk.c:223 +#, c-format +msgid "DISK %s: %s not found\n" +msgstr "DISK %s: %s non trouvé\n" + +#: plugins/check_disk.c:223 plugins/check_disk.c:968 plugins/check_dns.c:295 +#: plugins/check_dummy.c:74 plugins/check_mysql.c:310 +#: plugins/check_nagios.c:104 plugins/check_nagios.c:168 +#: plugins/check_nagios.c:172 plugins/check_pgsql.c:571 +#: plugins/check_pgsql.c:588 plugins/check_pgsql.c:597 +#: plugins/check_pgsql.c:612 plugins/check_procs.c:351 +#, c-format +msgid "CRITICAL" +msgstr "CRITIQUE" + +#: plugins/check_disk.c:598 +#, c-format +msgid "unit type %s not known\n" +msgstr "unité de type %s inconnue\n" + +#: plugins/check_disk.c:601 +#, c-format +msgid "failed allocating storage for '%s'\n" +msgstr "Impossible d'allouer de l'espace pour '%s'\n" + +#: plugins/check_disk.c:629 plugins/check_disk.c:670 plugins/check_disk.c:678 +#: plugins/check_disk.c:686 plugins/check_disk.c:690 plugins/check_disk.c:732 +#: plugins/check_disk.c:738 plugins/check_disk.c:757 plugins/check_dummy.c:77 +#: plugins/check_dummy.c:80 plugins/check_pgsql.c:613 plugins/check_procs.c:506 +#, c-format +msgid "UNKNOWN" +msgstr "INCONNU" + +#: plugins/check_disk.c:629 +msgid "Must set a threshold value before using -p\n" +msgstr "" + +#: plugins/check_disk.c:670 +msgid "Must set -E before selecting paths\n" +msgstr "" + +#: plugins/check_disk.c:678 +msgid "Must set group value before selecting paths\n" +msgstr "" + +#: plugins/check_disk.c:686 +msgid "" +"Paths need to be selected before using -i/-I. Use -A to select all paths " +"explicitly" +msgstr "" + +#: plugins/check_disk.c:690 plugins/check_disk.c:738 plugins/check_procs.c:506 +msgid "Could not compile regular expression" +msgstr "Impossible de compiler l'expression rationnelle" + +#: plugins/check_disk.c:732 +msgid "Must set a threshold value before using -r/-R\n" +msgstr "" + +#: plugins/check_disk.c:758 +msgid "Regular expression did not match any path or disk" +msgstr "" + +#: plugins/check_disk.c:804 +msgid "Unknown argument" +msgstr "Argument inconnu" + +#: plugins/check_disk.c:838 +#, c-format +msgid " for %s\n" +msgstr " pour %s\n" + +#: plugins/check_disk.c:867 +msgid "" +"This plugin checks the amount of used disk space on a mounted file system" +msgstr "Ce plugin vérifie la place utilisé sur un système de fichier monté" + +#: plugins/check_disk.c:868 +msgid "" +"and generates an alert if free space is less than one of the threshold values" +msgstr "" +"et génère une alerte si la place disponible est plus petite qu'un des seuils " +"fourni" + +#: plugins/check_disk.c:878 +msgid "Exit with WARNING status if less than INTEGER units of disk are free" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si moins de X unités de disques sont " +"libres" + +#: plugins/check_disk.c:880 +msgid "Exit with WARNING status if less than PERCENT of disk space is free" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si moins de X pour-cent du disque est " +"libre" + +#: plugins/check_disk.c:882 +msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" +msgstr "" +"Sortir avec un résultat CRITIQUE si moins de X unités du disque sont libres" + +#: plugins/check_disk.c:884 +#, fuzzy +msgid "Exit with CRITICAL status if less than PERCENT of disk space is free" +msgstr "" +"Sortir avec un résultat CRITIQUE si moins de X pour-cent du disque est libre" + +#: plugins/check_disk.c:886 +msgid "Exit with WARNING status if less than PERCENT of inode space is free" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si moins de X pour-cent des inodes " +"sont libres" + +#: plugins/check_disk.c:888 +msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" +msgstr "" +"Sortir avec un résultat CRITIQUE si moins de X pour-cent des inodes sont " +"libres" + +#: plugins/check_disk.c:890 +msgid "" +"Mount point or block device as emitted by the mount(8) command (may be " +"repeated)" +msgstr "" + +#: plugins/check_disk.c:892 +msgid "Ignore device (only works if -p unspecified)" +msgstr "Ignorer le périphérique (marche seulement lorsque -p est utilisé)" + +#: plugins/check_disk.c:894 +msgid "Clear thresholds" +msgstr "Effacer les seuils" + +#: plugins/check_disk.c:896 +msgid "For paths or partitions specified with -p, only check for exact paths" +msgstr "" + +#: plugins/check_disk.c:898 +msgid "Display only devices/mountpoints with errors" +msgstr "Afficher seulement les périphériques/point de montage avec des erreurs" + +#: plugins/check_disk.c:900 +msgid "Don't account root-reserved blocks into freespace in perfdata" +msgstr "" + +#: plugins/check_disk.c:902 +msgid "Display inode usage in perfdata" +msgstr "" + +#: plugins/check_disk.c:904 +msgid "" +"Group paths. Thresholds apply to (free-)space of all partitions together" +msgstr "" + +#: plugins/check_disk.c:906 +msgid "Same as '--units kB'" +msgstr "Pareil à '--units kB'" + +#: plugins/check_disk.c:908 +msgid "Only check local filesystems" +msgstr "Vérifier seulement les systèmes de fichiers locaux" + +#: plugins/check_disk.c:910 +msgid "" +"Only check local filesystems against thresholds. Yet call stat on remote " +"filesystems" +msgstr "" + +#: plugins/check_disk.c:911 +msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" +msgstr "" + +#: plugins/check_disk.c:913 +#, fuzzy +msgid "Display the (block) device instead of the mount point" +msgstr "Afficher le point de montage au lieu de la partition" + +#: plugins/check_disk.c:915 +msgid "Same as '--units MB'" +msgstr "Pareil à '--units MB'" + +#: plugins/check_disk.c:917 +msgid "Explicitly select all paths. This is equivalent to -R '.*'" +msgstr "" + +#: plugins/check_disk.c:919 +msgid "" +"Case insensitive regular expression for path/partition (may be repeated)" +msgstr "" +"Expression rationnelle indépendante de la case pour un répertoire ou une " +"partition (peut être utilisé plusieurs fois)" + +#: plugins/check_disk.c:921 +msgid "Regular expression for path or partition (may be repeated)" +msgstr "" +"Expression rationnelle pour un répertoire ou une partition (peut être " +"utilisé plusieurs fois)" + +#: plugins/check_disk.c:923 +msgid "" +"Regular expression to ignore selected path/partition (case insensitive) (may " +"be repeated)" +msgstr "" +"Expression rationnelle pour ignorer un répertoire ou une partition (peut " +"être utilisé plusieurs fois)" + +#: plugins/check_disk.c:925 +msgid "" +"Regular expression to ignore selected path or partition (may be repeated)" +msgstr "" +"Expression rationnelle pour ignorer un répertoire ou une partition (peut " +"être utilisé plusieurs fois)" + +#: plugins/check_disk.c:928 +msgid "Choose bytes, kB, MB, GB, TB (default: MB)" +msgstr "Choisissez octets, kb, MB, GB, TB (par défaut: MB)" + +#: plugins/check_disk.c:931 +msgid "Ignore all filesystems of indicated type (may be repeated)" +msgstr "" +"Ignorer tout les systèmes de fichiers qui correspondent au type indiqué " +"(peut être utilisé plusieurs fois)" + +#: plugins/check_disk.c:933 +#, fuzzy +msgid "Check only filesystems of indicated type (may be repeated)" +msgstr "" +"Ignorer tout les systèmes de fichiers qui correspondent au type indiqué " +"(peut être utilisé plusieurs fois)" + +#: plugins/check_disk.c:938 +msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" +msgstr "Vérifie /tmp à 10% et /var à 5% et / à 100MB et 50MB" + +#: plugins/check_disk.c:940 +msgid "" +"Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" +"r regex" +msgstr "" + +#: plugins/check_disk.c:941 +msgid "" +"are grouped which means the freespace thresholds are applied to all disks " +"together" +msgstr "" + +#: plugins/check_disk.c:943 +msgid "" +"Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " +"100M/50M" +msgstr "" + +#: plugins/check_disk.c:969 +#, c-format +msgid "%s %s: %s\n" +msgstr "" + +#: plugins/check_disk.c:969 +msgid "is not accessible" +msgstr "" + +#: plugins/check_dns.c:120 +msgid "nslookup returned an error status" +msgstr "nslookup à retourné un code d'erreur" + +#: plugins/check_dns.c:138 +msgid "Warning plugin error" +msgstr "Alerte erreur de plugin" + +#: plugins/check_dns.c:156 +#, fuzzy, c-format +msgid "DNS CRITICAL - '%s' returned empty server string\n" +msgstr "DNS CRITIQUE - '%s' à retourné un nom d'hôte vide\n" + +#: plugins/check_dns.c:161 +#, fuzzy, c-format +msgid "DNS CRITICAL - No response from DNS %s\n" +msgstr "Pas de réponse du DNS %s\n" + +#: plugins/check_dns.c:180 +#, c-format +msgid "DNS CRITICAL - '%s' returned empty host name string\n" +msgstr "DNS CRITIQUE - '%s' à retourné un nom d'hôte vide\n" + +#: plugins/check_dns.c:186 +msgid "Non-authoritative answer:" +msgstr "Réponse non autoritative:" + +#: plugins/check_dns.c:215 +#, fuzzy, c-format +msgid "Domain '%s' was not found by the server\n" +msgstr "Le domaine %s n'a pas été trouvé par le serveur\n" + +#: plugins/check_dns.c:234 +#, c-format +msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n" +msgstr "DNS CRITIQUE - '%s' n'a pas retourné d'adresse\n" + +#: plugins/check_dns.c:265 +#, c-format +msgid "expected '%s' but got '%s'" +msgstr "j'attendais '%s' mais j'ai reçu '%s'" + +#: plugins/check_dns.c:272 +#, fuzzy, c-format +msgid "Domain '%s' was found by the server: '%s'\n" +msgstr "Le domaine %s n'a pas été trouvé par le serveur\n" + +#: plugins/check_dns.c:282 +#, c-format +msgid "server %s is not authoritative for %s" +msgstr "serveur %s n'est pas autoritaire pour %s" + +#: plugins/check_dns.c:291 plugins/check_dummy.c:68 plugins/check_nagios.c:182 +#: plugins/check_pgsql.c:608 plugins/check_procs.c:344 +#, c-format +msgid "OK" +msgstr "OK" + +#: plugins/check_dns.c:293 plugins/check_dummy.c:71 plugins/check_mysql.c:307 +#: plugins/check_nagios.c:182 plugins/check_pgsql.c:577 +#: plugins/check_pgsql.c:582 plugins/check_pgsql.c:610 +#: plugins/check_procs.c:346 +#, c-format +msgid "WARNING" +msgstr "AVERTISSEMENT" + +#: plugins/check_dns.c:297 +#, c-format +msgid "%.3f second response time" +msgid_plural "%.3f seconds response time" +msgstr[0] "%.3f secondes de temps de réponse " +msgstr[1] "%.3f secondes de temps de réponse " + +#: plugins/check_dns.c:298 +#, c-format +msgid ". %s returns %s" +msgstr ". %s renvoie %s" + +#: plugins/check_dns.c:318 +#, c-format +msgid "DNS WARNING - %s\n" +msgstr "DNS AVERTISSEMENT - %s\n" + +#: plugins/check_dns.c:319 plugins/check_dns.c:322 plugins/check_dns.c:325 +msgid " Probably a non-existent host/domain" +msgstr " Probablement un hôte/domaine inexistant" + +#: plugins/check_dns.c:321 +#, c-format +msgid "DNS CRITICAL - %s\n" +msgstr "DNS CRITIQUE - %s\n" + +#: plugins/check_dns.c:324 +#, c-format +msgid "DNS UNKNOWN - %s\n" +msgstr "DNS INCONNU - %s\n" + +#: plugins/check_dns.c:368 +msgid "Note: nslookup is deprecated and may be removed from future releases." +msgstr "" +"Note: nslookup est obsolète et pourra être retiré dans les prochaines " +"versions." + +#: plugins/check_dns.c:369 +msgid "Consider using the `dig' or `host' programs instead. Run nslookup with" +msgstr "" +"Veuillez utiliser le programme 'dig' ou 'host' à la place. Faire fonctionner " +"nslookup avec" + +#: plugins/check_dns.c:370 +msgid "the `-sil[ent]' option to prevent this message from appearing." +msgstr "L'option '-sil[ent]' empêche l'apparition de ce message." + +#: plugins/check_dns.c:375 plugins/check_dns.c:377 +#, c-format +msgid "No response from DNS %s\n" +msgstr "Pas de réponse du DNS %s\n" + +#: plugins/check_dns.c:381 +#, c-format +msgid "DNS %s has no records\n" +msgstr "Le DNS %s n'a pas d'enregistrements\n" + +#: plugins/check_dns.c:389 +#, c-format +msgid "Connection to DNS %s was refused\n" +msgstr "La connexion au DNS %s à été refusée\n" + +#: plugins/check_dns.c:393 +#, c-format +msgid "Query was refused by DNS server at %s\n" +msgstr "La requête à été refusée par le serveur DNS %s\n" + +#: plugins/check_dns.c:397 +#, c-format +msgid "No information returned by DNS server at %s\n" +msgstr "Pas d'information renvoyée par le serveur DNS %s\n" + +#: plugins/check_dns.c:401 +msgid "Network is unreachable\n" +msgstr "Le réseau est inaccessible\n" + +#: plugins/check_dns.c:405 +#, c-format +msgid "DNS failure for %s\n" +msgstr "DNS à échoué pour %s\n" + +#: plugins/check_dns.c:471 plugins/check_dns.c:479 plugins/check_dns.c:486 +#: plugins/check_dns.c:491 plugins/check_dns.c:533 plugins/check_dns.c:541 +#: plugins/check_game.c:211 plugins/check_game.c:219 +msgid "Input buffer overflow\n" +msgstr "Le tampon d'entrée a débordé\n" + +#: plugins/check_dns.c:576 +msgid "" +"This plugin uses the nslookup program to obtain the IP address for the given " +"host/domain query." +msgstr "" +"Ce plugin utilise le programme nslookup pour obtenir l'adresse IP de l'hôte/" +"domaine à interroger." + +#: plugins/check_dns.c:577 +msgid "An optional DNS server to use may be specified." +msgstr "Un serveur DNS à utiliser peut être indiqué." + +#: plugins/check_dns.c:578 +msgid "" +"If no DNS server is specified, the default server(s) specified in /etc/" +"resolv.conf will be used." +msgstr "" +"Si aucun serveur DNS n'est spécifié, les serveurs spécifiés dans /etc/resolv." +"conf seront utilisé." + +#: plugins/check_dns.c:588 +msgid "The name or address you want to query" +msgstr "Le nom ou l'adresse que vous voulez interroger" + +#: plugins/check_dns.c:590 +msgid "Optional DNS server you want to use for the lookup" +msgstr "Serveur DNS que vous voulez utiliser pour la recherche" + +#: plugins/check_dns.c:592 +#, fuzzy +msgid "" +"Optional IP-ADDRESS/CIDR you expect the DNS server to return. HOST must end" +msgstr "" +"Adresse IP que le serveur DNS doit retourner. Les hôtes doivent se terminer " + +#: plugins/check_dns.c:593 +#, fuzzy +msgid "" +"with a dot (.). This option can be repeated multiple times (Returns OK if any" +msgstr "avec un point (.). Cette option peut être répétée (Retourne OK si une" + +#: plugins/check_dns.c:594 +msgid "value matches)." +msgstr "" + +#: plugins/check_dns.c:596 +msgid "" +"Expect the DNS server to return NXDOMAIN (i.e. the domain was not found)" +msgstr "" + +#: plugins/check_dns.c:597 +msgid "Cannot be used together with -a" +msgstr "" + +#: plugins/check_dns.c:599 +msgid "Optionally expect the DNS server to be authoritative for the lookup" +msgstr "Serveur DNS qui doit normalement être autoritaire pour la recherche" + +#: plugins/check_dns.c:601 +msgid "Return warning if elapsed time exceeds value. Default off" +msgstr "" +"Renvoie une alerte si le temps écoulé dépasse la valeur indiquée. Désactivé " +"par défaut" + +#: plugins/check_dns.c:603 +msgid "Return critical if elapsed time exceeds value. Default off" +msgstr "" +"Renvoie critique si le temps utilisé dépasse la valeur indiquée. Désactivé " +"par défaut" + +#: plugins/check_dns.c:605 +msgid "" +"Return critical if the list of expected addresses does not match all " +"addresses" +msgstr "" + +#: plugins/check_dns.c:606 +msgid "returned. Default off" +msgstr "" + +#: plugins/check_dummy.c:62 +msgid "Arguments to check_dummy must be an integer" +msgstr "Les arguments pour check_dummy doivent être des entiers" + +#: plugins/check_dummy.c:82 +#, c-format +msgid "Status %d is not a supported error state\n" +msgstr "Le résultat %d n'est pas un résultat supporté\n" + +#: plugins/check_dummy.c:104 +msgid "" +"This plugin will simply return the state corresponding to the numeric value" +msgstr "" +"Ce plugin renverra simplement l'état correspondant à la valeur numérique" + +#: plugins/check_dummy.c:106 +msgid "of the argument with optional text" +msgstr "du paramètre avec un texte optionnel" + +#: plugins/check_fping.c:127 plugins/check_hpjd.c:134 plugins/check_ping.c:444 +#: plugins/check_swap.c:196 plugins/check_users.c:130 plugins/urlize.c:109 +#, c-format +msgid "Could not open pipe: %s\n" +msgstr "Impossible d'ouvrir le pipe: %s\n" + +#: plugins/check_fping.c:133 plugins/check_hpjd.c:140 plugins/check_load.c:159 +#: plugins/check_swap.c:202 plugins/check_users.c:136 plugins/urlize.c:115 +#, c-format +msgid "Could not open stderr for %s\n" +msgstr "Impossible d'ouvrir la sortie d'erreur standard pour %s\n" + +#: plugins/check_fping.c:161 +#, fuzzy +msgid "FPING UNKNOWN - IP address not found\n" +msgstr "PING INCONNU - Hôte non trouvé (%s)\n" + +#: plugins/check_fping.c:164 +msgid "FPING UNKNOWN - invalid commandline argument\n" +msgstr "" + +#: plugins/check_fping.c:167 +#, fuzzy +msgid "FPING UNKNOWN - failed system call\n" +msgstr "PING INCONNU - Hôte non trouvé (%s)\n" + +#: plugins/check_fping.c:194 +#, fuzzy, c-format +msgid "FPING %s - %s (rta=%f ms)|%s\n" +msgstr "FPING %s - %s (perte=%.0f%% )|%s\n" + +#: plugins/check_fping.c:202 +#, c-format +msgid "FPING UNKNOWN - %s not found\n" +msgstr "PING INCONNU - Hôte non trouvé (%s)\n" + +#: plugins/check_fping.c:206 +#, c-format +msgid "FPING CRITICAL - %s is unreachable\n" +msgstr "PING CRITIQUE - Hôte inaccessible (%s)\n" + +#: plugins/check_fping.c:211 +#, fuzzy, c-format +msgid "FPING UNKNOWN - %s parameter error\n" +msgstr "PING INCONNU - Hôte non trouvé (%s)\n" + +#: plugins/check_fping.c:215 plugins/check_fping.c:255 +#, c-format +msgid "FPING CRITICAL - %s is down\n" +msgstr "FPING CRITIQUE - %s est en panne\n" + +#: plugins/check_fping.c:242 +#, c-format +msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n" +msgstr "FPING %s - %s (perte=%.0f%%, rta=%f ms)|%s %s\n" + +#: plugins/check_fping.c:268 +#, c-format +msgid "FPING %s - %s (loss=%.0f%% )|%s\n" +msgstr "FPING %s - %s (perte=%.0f%% )|%s\n" + +#: plugins/check_fping.c:345 plugins/check_fping.c:351 plugins/check_hpjd.c:345 +#: plugins/check_hpjd.c:376 plugins/check_mysql.c:386 plugins/check_mysql.c:473 +#: plugins/check_ntp.c:719 plugins/check_ntp_peer.c:497 +#: plugins/check_ntp_time.c:498 plugins/check_pgsql.c:338 +#: plugins/check_ping.c:301 plugins/check_ping.c:424 plugins/check_radius.c:275 +#: plugins/check_real.c:315 plugins/check_real.c:377 plugins/check_smtp.c:509 +#: plugins/check_smtp.c:654 plugins/check_ssh.c:162 plugins/check_time.c:240 +#: plugins/check_time.c:315 plugins/check_ups.c:507 plugins/check_ups.c:576 +msgid "Invalid hostname/address" +msgstr "Adresse/Nom d'hôte invalide" + +#: plugins/check_fping.c:364 plugins/check_ldap.c:400 plugins/check_ping.c:252 +#: plugins-root/check_icmp.c:477 +msgid "IPv6 support not available\n" +msgstr "Support IPv6 non disponible\n" + +#: plugins/check_fping.c:397 +msgid "Packet size must be a positive integer" +msgstr "La taille du paquet doit être un entier positif" + +#: plugins/check_fping.c:403 +msgid "Packet count must be a positive integer" +msgstr "Le nombre de paquets doit être un entier positif" + +#: plugins/check_fping.c:409 +msgid "Target timeout must be a positive integer" +msgstr "Le seuil d'avertissement doit être un entier positif" + +#: plugins/check_fping.c:415 +msgid "Interval must be a positive integer" +msgstr "Le délai d'attente doit être un entier positif" + +#: plugins/check_fping.c:421 plugins/check_ntp.c:743 +#: plugins/check_ntp_peer.c:524 plugins/check_ntp_time.c:528 +#: plugins/check_radius.c:325 plugins/check_time.c:319 +msgid "Hostname was not supplied" +msgstr "Le nom de l'hôte n'a pas été spécifié" + +#: plugins/check_fping.c:441 +#, c-format +msgid "%s: Only one threshold may be packet loss (%s)\n" +msgstr "" +"%s: Seulement un seuil peut être utilisé pour les pertes de paquets (%s)\n" + +#: plugins/check_fping.c:445 +#, c-format +msgid "%s: Only one threshold must be packet loss (%s)\n" +msgstr "" +"%s: Seulement un seuil doit être utilisé pour les pertes de paquets (%s)\n" + +#: plugins/check_fping.c:475 +msgid "" +"This plugin will use the fping command to ping the specified host for a fast " +"check" +msgstr "" +"Ce plugin va utiliser la commande fping pour pinger l'hôte de manière rapide." + +#: plugins/check_fping.c:477 +msgid "Note that it is necessary to set the suid flag on fping." +msgstr "" +"Veuillez noter qu'il est nécessaire de mettre le bit suid sur le programme " +"fping." + +#: plugins/check_fping.c:489 +msgid "" +"name or IP Address of host to ping (IP Address bypasses name lookup, " +"reducing system load)" +msgstr "" +"nom ou adresse IP des hôtes à pinger (l'indication d'un adresse IP évite une " +"recherche sur le nom, ce qui réduit la charge système)" + +#: plugins/check_fping.c:491 plugins/check_ping.c:589 +msgid "warning threshold pair" +msgstr "Valeurs pour le seuil d'avertissement" + +#: plugins/check_fping.c:493 plugins/check_ping.c:591 +msgid "critical threshold pair" +msgstr "Valeurs pour le seuil critique" + +#: plugins/check_fping.c:495 +msgid "Return OK after first successful reply" +msgstr "" + +#: plugins/check_fping.c:497 +msgid "size of ICMP packet" +msgstr "taille du paquet ICMP" + +#: plugins/check_fping.c:499 +msgid "number of ICMP packets to send" +msgstr "nombre de paquets ICMP à envoyer" + +#: plugins/check_fping.c:501 +msgid "Target timeout (ms)" +msgstr "" + +#: plugins/check_fping.c:503 +msgid "Interval (ms) between sending packets" +msgstr "" + +#: plugins/check_fping.c:505 +msgid "name or IP Address of sourceip" +msgstr "" + +#: plugins/check_fping.c:507 +msgid "source interface name" +msgstr "" + +#: plugins/check_fping.c:510 +#, c-format +msgid "" +"THRESHOLD is ,%% where is the round trip average travel time " +"(ms)" +msgstr "" +"Le seuil est ,%% ou est le temps moyen pour l'aller retour " +"(ms)" + +#: plugins/check_fping.c:511 +msgid "" +"which triggers a WARNING or CRITICAL state, and is the percentage of" +msgstr "" +"qui déclenche résultat AVERTISSEMENT ou CRITIQUE, et est le pourcentage " +"de" + +#: plugins/check_fping.c:512 +msgid "packet loss to trigger an alarm state." +msgstr "paquets perdu pour déclencher une alarme." + +#: plugins/check_fping.c:515 +msgid "IPv4 is used by default. Specify -6 to use IPv6." +msgstr "" + +#: plugins/check_game.c:111 +#, c-format +msgid "CRITICAL - Host type parameter incorrect!\n" +msgstr "CRITIQUE - Argument de type hôte incorrect!\n" + +#: plugins/check_game.c:126 +#, c-format +msgid "CRITICAL - Host not found\n" +msgstr "CRITIQUE - Hôte non trouvé\n" + +#: plugins/check_game.c:130 +#, c-format +msgid "CRITICAL - Game server down or unavailable\n" +msgstr "CRITIQUE - Serveur de jeux en panne ou non disponible\n" + +#: plugins/check_game.c:134 +#, c-format +msgid "CRITICAL - Game server timeout\n" +msgstr "CRITIQUE - Temps d'attente pour le serveur de jeux dépassé\n" + +#: plugins/check_game.c:297 +#, c-format +msgid "This plugin tests game server connections with the specified host." +msgstr "Le plugin teste la connexion au serveur de jeux avec l'hôte spécifié." + +#: plugins/check_game.c:307 +msgid "Optional port of which to connect" +msgstr "" + +#: plugins/check_game.c:309 +msgid "Field number in raw qstat output that contains game name" +msgstr "" + +#: plugins/check_game.c:311 +msgid "Field number in raw qstat output that contains map name" +msgstr "" + +#: plugins/check_game.c:313 +msgid "Field number in raw qstat output that contains ping time" +msgstr "" + +#: plugins/check_game.c:319 +msgid "" +"This plugin uses the 'qstat' command, the popular game server status query " +"tool." +msgstr "" +"Ce plugin utilise la commande 'qstat', un programme répandu pour questioner " +"les serveurs de jeux." + +#: plugins/check_game.c:320 +msgid "" +"If you don't have the package installed, you will need to download it from" +msgstr "" +"Si vous n'avez pas le programme installé, vous devrez le télécharger depuis" + +#: plugins/check_game.c:321 +#, fuzzy +msgid "https://github.com/multiplay/qstat before you can use this plugin." +msgstr "" +"http://www.activesw.com/people/steve/qstat.html avant de pouvoir utiliser ce " +"plugin." + +#: plugins/check_hpjd.c:245 +msgid "Paper Jam" +msgstr "Bourrage Papier" + +#: plugins/check_hpjd.c:250 +msgid "Out of Paper" +msgstr "Plus de Papier" + +#: plugins/check_hpjd.c:255 +msgid "Printer Offline" +msgstr "Imprimante hors ligne" + +#: plugins/check_hpjd.c:260 +msgid "Peripheral Error" +msgstr "Erreur du périphérique" + +#: plugins/check_hpjd.c:264 +msgid "Intervention Required" +msgstr "Intervention Requise" + +#: plugins/check_hpjd.c:268 +msgid "Toner Low" +msgstr "Toner Faible" + +#: plugins/check_hpjd.c:272 +msgid "Insufficient Memory" +msgstr "Mémoire Insuffisante" + +#: plugins/check_hpjd.c:276 +msgid "A Door is Open" +msgstr "Une porte est ouverte" + +#: plugins/check_hpjd.c:280 +msgid "Output Tray is Full" +msgstr "Le bac de sortie est plein" + +#: plugins/check_hpjd.c:284 +msgid "Data too Slow for Engine" +msgstr "Le données arrivent trop lentement pour l'imprimante" + +#: plugins/check_hpjd.c:288 +msgid "Unknown Paper Error" +msgstr "Erreur de papier inconnue" + +#: plugins/check_hpjd.c:293 +#, c-format +msgid "Printer ok - (%s)\n" +msgstr "Imprimante ok - (%s)\n" + +#: plugins/check_hpjd.c:353 +#, fuzzy +msgid "Port must be a positive short integer" +msgstr "Le numéro du port doit être un entier positif" + +#: plugins/check_hpjd.c:410 +msgid "This plugin tests the STATUS of an HP printer with a JetDirect card." +msgstr "Ce plugin teste l'état d'une imprimante HP avec une carte JetDirect." + +#: plugins/check_hpjd.c:411 +msgid "Net-snmp must be installed on the computer running the plugin." +msgstr "Net-snmp doit être installé sur l'ordinateur qui exécute le plugin." + +#: plugins/check_hpjd.c:421 +msgid "The SNMP community name " +msgstr "Le nom de la communauté SNMP " + +#: plugins/check_hpjd.c:422 plugins/check_hpjd.c:426 +#, c-format +msgid "(default=%s)" +msgstr "(défaut=%s)" + +#: plugins/check_hpjd.c:425 +#, fuzzy +msgid "Specify the port to check " +msgstr "Nom de l'hôte à vérifier" + +#: plugins/check_hpjd.c:429 +#, fuzzy +msgid "Disable paper check " +msgstr "Variable a vérifier" + +#: plugins/check_http.c:196 +msgid "file does not exist or is not readable" +msgstr "" + +#: plugins/check_http.c:324 plugins/check_http.c:329 plugins/check_http.c:335 +#: plugins/check_smtp.c:605 plugins/check_tcp.c:590 plugins/check_tcp.c:595 +#: plugins/check_tcp.c:601 +msgid "Invalid certificate expiration period" +msgstr "Période d'expiration du certificat invalide" + +#: plugins/check_http.c:378 +msgid "" +"Invalid option - Valid SSL/TLS versions: 2, 3, 1, 1.1, 1.2 (with optional " +"'+' suffix)" +msgstr "" + +#: plugins/check_http.c:384 plugins/check_tcp.c:614 plugins/check_tcp.c:623 +msgid "Invalid option - SSL is not available" +msgstr "Option invalide - SSL n'est pas disponible" + +#: plugins/check_http.c:392 +msgid "Invalid max_redirs count" +msgstr "" + +#: plugins/check_http.c:412 +msgid "Invalid onredirect option" +msgstr "" + +#: plugins/check_http.c:414 +#, c-format +msgid "option f:%d \n" +msgstr "option f:%d \n" + +#: plugins/check_http.c:449 +msgid "Invalid port number" +msgstr "Numéro de port invalide" + +#: plugins/check_http.c:507 +#, c-format +msgid "Could Not Compile Regular Expression: %s" +msgstr "Impossible de compiler l'expression rationnelle: %s" + +#: plugins/check_http.c:521 plugins/check_ntp.c:732 +#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:517 +#: plugins/check_smtp.c:634 plugins/check_ssh.c:151 plugins/check_tcp.c:491 +msgid "IPv6 support not available" +msgstr "Support IPv6 non disponible" + +#: plugins/check_http.c:589 plugins/check_ping.c:428 +msgid "You must specify a server address or host name" +msgstr "Vous devez spécifier une adresse ou un nom d'hôte" + +#: plugins/check_http.c:606 +msgid "" +"If you use a client certificate you must also specify a private key file" +msgstr "" + +#: plugins/check_http.c:733 plugins/check_http.c:901 +msgid "HTTP UNKNOWN - Memory allocation error\n" +msgstr "HTTP INCONNU - Impossible d'allouer la mémoire\n" + +#: plugins/check_http.c:805 +#, c-format +msgid "%sServer date unknown, " +msgstr "%sDate du serveur inconnue, " + +#: plugins/check_http.c:808 +#, c-format +msgid "%sDocument modification date unknown, " +msgstr "%sDate de modification du document inconnue, " + +#: plugins/check_http.c:815 +#, c-format +msgid "%sServer date \"%100s\" unparsable, " +msgstr "%sDate du serveur \"%100s\" illisible, " + +#: plugins/check_http.c:818 +#, c-format +msgid "%sDocument date \"%100s\" unparsable, " +msgstr "%sDate du document \"%100s\" illisible, " + +#: plugins/check_http.c:821 +#, c-format +msgid "%sDocument is %d seconds in the future, " +msgstr "%sLa date du document est %d secondes dans le futur, " + +#: plugins/check_http.c:826 +#, c-format +msgid "%sLast modified %.1f days ago, " +msgstr "%sDernière modification %.1f jours auparavant, " + +#: plugins/check_http.c:829 +#, c-format +msgid "%sLast modified %d:%02d:%02d ago, " +msgstr "%sDernière modification %d:%02d:%02d auparavant, " + +#: plugins/check_http.c:943 +msgid "HTTP CRITICAL - Unable to open TCP socket\n" +msgstr "HTTP CRITIQUE - Impossible d'ouvrir un socket TCP\n" + +#: plugins/check_http.c:1103 +#, fuzzy +msgid "HTTP UNKNOWN - Could not allocate memory for full_page\n" +msgstr "HTTP INCONNU - Impossible d'allouer une adresse\n" + +#: plugins/check_http.c:1120 +msgid "HTTP CRITICAL - Error on receive\n" +msgstr "HTTP CRITIQUE - Erreur dans la réception\n" + +#: plugins/check_http.c:1125 +msgid "HTTP CRITICAL - No data received from host\n" +msgstr "HTTP CRITIQUE - Pas de données reçues de l'hôte\n" + +#: plugins/check_http.c:1176 +#, c-format +msgid "Invalid HTTP response received from host: %s\n" +msgstr "Réponse HTTP reçue de l'hôte invalide: %s\n" + +#: plugins/check_http.c:1180 +#, c-format +msgid "Invalid HTTP response received from host on port %d: %s\n" +msgstr "Réponse HTTP reçue de l'hôte sur le port %d invalide: %s\n" + +#: plugins/check_http.c:1183 plugins/check_http.c:1376 +#, c-format +msgid "" +"%s\n" +"%s" +msgstr "" + +#: plugins/check_http.c:1191 +#, c-format +msgid "Status line output matched \"%s\" - " +msgstr "La ligne d'état correspond à \"%s\" - " + +#: plugins/check_http.c:1202 +#, c-format +msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" +msgstr "HTTP CRITIQUE: Ligne d'état non valide (%s)\n" + +#: plugins/check_http.c:1209 +#, c-format +msgid "HTTP CRITICAL: Invalid Status (%s)\n" +msgstr "HTTP CRITIQUE: Etat Invalide (%s)\n" + +#: plugins/check_http.c:1213 plugins/check_http.c:1218 +#: plugins/check_http.c:1228 plugins/check_http.c:1232 +#, c-format +msgid "%s - " +msgstr "" + +#: plugins/check_http.c:1260 +#, fuzzy, c-format +msgid "%sheader '%s' not found on '%s://%s:%d%s', " +msgstr "%schaîne non trouvée, " + +#: plugins/check_http.c:1303 +#, fuzzy, c-format +msgid "%sstring '%s' not found on '%s://%s:%d%s', " +msgstr "%schaîne non trouvée, " + +#: plugins/check_http.c:1317 +#, c-format +msgid "%spattern not found, " +msgstr "%sexpression non trouvée, " + +#: plugins/check_http.c:1319 +#, c-format +msgid "%spattern found, " +msgstr "%sexpression trouvée, " + +#: plugins/check_http.c:1325 +#, c-format +msgid "%sExecute Error: %s, " +msgstr "%sErreur d'exécution: %s, " + +#: plugins/check_http.c:1341 +#, c-format +msgid "%spage size %d too large, " +msgstr "%sla taille de la page est trop grande (%d), " + +#: plugins/check_http.c:1344 +#, c-format +msgid "%spage size %d too small, " +msgstr "%sla taille de la page est trop petite (%d), " + +#: plugins/check_http.c:1357 +#, fuzzy, c-format +msgid "%s - %d bytes in %.3f second response time %s|%s %s %s %s %s %s %s" +msgstr "%s - %d octets en %.3f secondes de temps de réponse %s|%s %s" + +#: plugins/check_http.c:1369 +#, c-format +msgid "%s - %d bytes in %.3f second response time %s|%s %s" +msgstr "%s - %d octets en %.3f secondes de temps de réponse %s|%s %s" + +#: plugins/check_http.c:1494 +msgid "HTTP UNKNOWN - Could not allocate addr\n" +msgstr "HTTP INCONNU - Impossible d'allouer une adresse\n" + +#: plugins/check_http.c:1499 plugins/check_http.c:1530 +msgid "HTTP UNKNOWN - Could not allocate URL\n" +msgstr "HTTP INCONNU - Impossible d'allouer l'URL\n" + +#: plugins/check_http.c:1508 +#, c-format +msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" +msgstr "" +"HTTP INCONNU - Impossible de trouver l'endroit de la redirection - %s%s\n" + +#: plugins/check_http.c:1523 +#, c-format +msgid "HTTP UNKNOWN - Empty redirect location%s\n" +msgstr "HTTP INCONNU - endroit de redirection vide%s\n" + +#: plugins/check_http.c:1585 +#, c-format +msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" +msgstr "" +"HTTP INCONNU - Impossible de définir l'endroit de la redirection - %s%s\n" + +#: plugins/check_http.c:1595 +#, c-format +msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" +msgstr "" +"HTTP AVERTISSEMENT - le niveau maximum de redirection %d à été dépassé - " +"%s://%s:%d%s%s\n" + +#: plugins/check_http.c:1603 +#, fuzzy, c-format +msgid "HTTP CRITICAL - redirection creates an infinite loop - %s://%s:%d%s%s\n" +msgstr "" +"HTTP AVERTISSEMENT - la redirection crée une boucle infinie - %s://%s:" +"%d%s%s\n" + +#: plugins/check_http.c:1624 +#, c-format +msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" +msgstr "HTTP INCONNU - Redirection à un port supérieur à %d - %s://%s:%d%s%s\n" + +#: plugins/check_http.c:1632 +#, c-format +msgid "Redirection to %s://%s:%d%s\n" +msgstr "Redirection vers %s://%s:%d%s\n" + +#: plugins/check_http.c:1707 +msgid "This plugin tests the HTTP service on the specified host. It can test" +msgstr "" +"Ce plugin teste le service HTTP sur l'hôte spécifié. Il peut tester les" + +#: plugins/check_http.c:1708 +msgid "normal (http) and secure (https) servers, follow redirects, search for" +msgstr "" +"serveurs normaux (http) et sécurisés (https), suivre les redirections, " +"rechercher des" + +#: plugins/check_http.c:1709 +msgid "strings and regular expressions, check connection times, and report on" +msgstr "" +"chaînes de caractères et expressions rationnelles, vérifier le temps de " +"réponse" + +#: plugins/check_http.c:1710 +msgid "certificate expiration times." +msgstr "et rapporter la date d'expiration du certificat." + +#: plugins/check_http.c:1717 +#, c-format +msgid "In the first form, make an HTTP request." +msgstr "" + +#: plugins/check_http.c:1718 +#, c-format +msgid "" +"In the second form, connect to the server and check the TLS certificate." +msgstr "" + +#: plugins/check_http.c:1720 +#, c-format +msgid "NOTE: One or both of -H and -I must be specified" +msgstr "NOTE: les paramètres -H et -I peuvent être spécifiés" + +#: plugins/check_http.c:1728 +msgid "Host name argument for servers using host headers (virtual host)" +msgstr "" + +#: plugins/check_http.c:1729 +msgid "Append a port to include it in the header (eg: example.com:5000)" +msgstr "" + +#: plugins/check_http.c:1731 +msgid "" +"IP address or name (use numeric address if possible to bypass DNS lookup)." +msgstr "" + +#: plugins/check_http.c:1733 +msgid "Port number (default: " +msgstr "Numéro du port (défaut: " + +#: plugins/check_http.c:1740 +msgid "" +"Connect via SSL. Port defaults to 443. VERSION is optional, and prevents" +msgstr "" + +#: plugins/check_http.c:1741 +msgid "auto-negotiation (2 = SSLv2, 3 = SSLv3, 1 = TLSv1, 1.1 = TLSv1.1," +msgstr "" + +#: plugins/check_http.c:1742 +msgid "1.2 = TLSv1.2). With a '+' suffix, newer versions are also accepted." +msgstr "" + +#: plugins/check_http.c:1744 +msgid "Enable SSL/TLS hostname extension support (SNI)" +msgstr "" + +#: plugins/check_http.c:1746 +msgid "" +"Minimum number of days a certificate has to be valid. Port defaults to 443" +msgstr "" +"Nombre de jours minimum pour que le certificat soit valide. Port par défaut " +"443" + +#: plugins/check_http.c:1747 +msgid "" +"(when this option is used the URL is not checked by default. You can use" +msgstr "" + +#: plugins/check_http.c:1748 +msgid " --continue-after-certificate to override this behavior)" +msgstr "" + +#: plugins/check_http.c:1750 +msgid "" +"Allows the HTTP check to continue after performing the certificate check." +msgstr "" + +#: plugins/check_http.c:1751 +msgid "Does nothing unless -C is used." +msgstr "" + +#: plugins/check_http.c:1753 +msgid "Name of file that contains the client certificate (PEM format)" +msgstr "" + +#: plugins/check_http.c:1754 +msgid "to be used in establishing the SSL session" +msgstr "" + +#: plugins/check_http.c:1756 +msgid "Name of file containing the private key (PEM format)" +msgstr "" + +#: plugins/check_http.c:1757 +msgid "matching the client certificate" +msgstr "" + +#: plugins/check_http.c:1761 +msgid "Comma-delimited list of strings, at least one of them is expected in" +msgstr "" +"Liste the chaines de charactères séparées par des virgules, au moins une " +"d'elles" + +#: plugins/check_http.c:1762 +msgid "the first (status) line of the server response (default: " +msgstr "est attendue dans la première ligne de réponse du serveur (défaut: " + +#: plugins/check_http.c:1764 +msgid "" +"If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" +msgstr "" +"Si spécifié, surpasse toute autre logique de status (ex: 3xx, 4xx, 5xx)" + +#: plugins/check_http.c:1766 +#, fuzzy +msgid "String to expect in the response headers" +msgstr "Chaîne de caractères à attendre en réponse" + +#: plugins/check_http.c:1768 +msgid "String to expect in the content" +msgstr "Chaîne de caractère attendue dans le contenu" + +#: plugins/check_http.c:1770 +msgid "URL to GET or POST (default: /)" +msgstr "URL pour le GET ou le POST (défaut: /)" + +#: plugins/check_http.c:1772 +msgid "URL encoded http POST data" +msgstr "" + +#: plugins/check_http.c:1774 +msgid "Set HTTP method." +msgstr "" + +#: plugins/check_http.c:1776 +msgid "Don't wait for document body: stop reading after headers." +msgstr "" +"Ne pas attendre pour le corps du document: arrêter de lire après les entêtes" + +#: plugins/check_http.c:1777 +msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" +msgstr "(Veuillez noter qu'un HTTP GET ou POST est effectué, pas un HEAD.)" + +#: plugins/check_http.c:1779 +msgid "Warn if document is more than SECONDS old. the number can also be of" +msgstr "" + +#: plugins/check_http.c:1780 +msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." +msgstr "" + +#: plugins/check_http.c:1782 +msgid "specify Content-Type header media type when POSTing\n" +msgstr "" + +#: plugins/check_http.c:1785 +msgid "Allow regex to span newlines (must precede -r or -R)" +msgstr "" + +#: plugins/check_http.c:1787 +msgid "Search page for regex STRING" +msgstr "" + +#: plugins/check_http.c:1789 +msgid "Search page for case-insensitive regex STRING" +msgstr "" + +#: plugins/check_http.c:1791 +msgid "Return CRITICAL if found, OK if not\n" +msgstr "" + +#: plugins/check_http.c:1794 +msgid "Username:password on sites with basic authentication" +msgstr "" + +#: plugins/check_http.c:1796 +msgid "Username:password on proxy-servers with basic authentication" +msgstr "" + +#: plugins/check_http.c:1798 +msgid "String to be sent in http header as \"User Agent\"" +msgstr "" + +#: plugins/check_http.c:1800 +msgid "" +"Any other tags to be sent in http header. Use multiple times for additional " +"headers" +msgstr "" + +#: plugins/check_http.c:1802 +msgid "Print additional performance data" +msgstr "" + +#: plugins/check_http.c:1804 +msgid "Print body content below status line" +msgstr "" + +#: plugins/check_http.c:1806 +msgid "Wrap output in HTML link (obsoleted by urlize)" +msgstr "" + +#: plugins/check_http.c:1808 +msgid "How to handle redirected pages. sticky is like follow but stick to the" +msgstr "" + +#: plugins/check_http.c:1809 +msgid "specified IP address. stickyport also ensures port stays the same." +msgstr "" + +#: plugins/check_http.c:1811 +#, fuzzy +msgid "Maximal number of redirects (default: " +msgstr "PROCS - nombre de processus (défaut)" + +#: plugins/check_http.c:1814 +msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" +msgstr "" + +#: plugins/check_http.c:1823 +msgid "This plugin will attempt to open an HTTP connection with the host." +msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte." + +#: plugins/check_http.c:1824 +msgid "" +"Successful connects return STATE_OK, refusals and timeouts return " +"STATE_CRITICAL" +msgstr "" + +#: plugins/check_http.c:1825 +msgid "" +"other errors return STATE_UNKNOWN. Successful connects, but incorrect " +"response" +msgstr "" + +#: plugins/check_http.c:1826 +msgid "" +"messages from the host result in STATE_WARNING return values. If you are" +msgstr "" + +#: plugins/check_http.c:1827 +msgid "" +"checking a virtual server that uses 'host headers' you must supply the FQDN" +msgstr "" + +#: plugins/check_http.c:1828 +msgid "(fully qualified domain name) as the [host_name] argument." +msgstr "" + +#: plugins/check_http.c:1832 +msgid "This plugin can also check whether an SSL enabled web server is able to" +msgstr "" + +#: plugins/check_http.c:1833 +msgid "serve content (optionally within a specified time) or whether the X509 " +msgstr "" + +#: plugins/check_http.c:1834 +msgid "certificate is still valid for the specified number of days." +msgstr "" + +#: plugins/check_http.c:1836 +#, fuzzy +msgid "Please note that this plugin does not check if the presented server" +msgstr "Ce plugin vérifie le service ntp sur l'hôte" + +#: plugins/check_http.c:1837 +msgid "certificate matches the hostname of the server, or if the certificate" +msgstr "" + +#: plugins/check_http.c:1838 +msgid "has a valid chain of trust to one of the locally installed CAs." +msgstr "" + +#: plugins/check_http.c:1842 +msgid "" +"When the 'www.verisign.com' server returns its content within 5 seconds," +msgstr "" + +#: plugins/check_http.c:1843 plugins/check_http.c:1862 +msgid "" +"a STATE_OK will be returned. When the server returns its content but exceeds" +msgstr "" + +#: plugins/check_http.c:1844 plugins/check_http.c:1863 +msgid "" +"the 5-second threshold, a STATE_WARNING will be returned. When an error " +"occurs," +msgstr "" + +#: plugins/check_http.c:1845 +msgid "a STATE_CRITICAL will be returned." +msgstr "" + +#: plugins/check_http.c:1848 +msgid "" +"When the certificate of 'www.verisign.com' is valid for more than 14 days," +msgstr "" + +#: plugins/check_http.c:1849 plugins/check_http.c:1855 +msgid "" +"a STATE_OK is returned. When the certificate is still valid, but for less " +"than" +msgstr "" + +#: plugins/check_http.c:1850 +msgid "" +"14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" +msgstr "" + +#: plugins/check_http.c:1851 +msgid "the certificate is expired." +msgstr "le certificat est expiré." + +#: plugins/check_http.c:1854 +msgid "" +"When the certificate of 'www.verisign.com' is valid for more than 30 days," +msgstr "" + +#: plugins/check_http.c:1856 +msgid "30 days, but more than 14 days, a STATE_WARNING is returned." +msgstr "" + +#: plugins/check_http.c:1857 +msgid "" +"A STATE_CRITICAL will be returned when certificate expires in less than 14 " +"days" +msgstr "" + +#: plugins/check_http.c:1860 +msgid "" +"check_http -I 192.168.100.35 -p 80 -u https://www.verisign.com/ -S -j " +"CONNECT -H www.verisign.com " +msgstr "" + +#: plugins/check_http.c:1861 +msgid "" +"all these options are needed: -I -p -u -" +"S(sl) -j CONNECT -H " +msgstr "" + +#: plugins/check_http.c:1864 +msgid "" +"a STATE_CRITICAL will be returned. By adding a colon to the method you can " +"set the method used" +msgstr "" + +#: plugins/check_http.c:1865 +msgid "inside the proxied connection: -j CONNECT:POST" +msgstr "" + +#: plugins/check_ldap.c:142 +#, c-format +msgid "Could not connect to the server at port %i\n" +msgstr "Impossible de se connecter au serveur port %i\n" + +#: plugins/check_ldap.c:151 +#, c-format +msgid "Could not set protocol version %d\n" +msgstr "Impossible d'utiliser le protocole version %d\n" + +#: plugins/check_ldap.c:166 +#, c-format +msgid "Could not init TLS at port %i!\n" +msgstr "Impossible d'initialiser TLS sur le port %i!\n" + +#: plugins/check_ldap.c:170 +#, c-format +msgid "TLS not supported by the libraries!\n" +msgstr "TLS n'est pas supporté!\n" + +#: plugins/check_ldap.c:190 +#, c-format +msgid "Could not init startTLS at port %i!\n" +msgstr "Impossible d'initialiser startTLS sur le port %i!\n" + +#: plugins/check_ldap.c:194 +#, c-format +msgid "startTLS not supported by the library, needs LDAPv3!\n" +msgstr "" +"startTLS n'est pas supporté par la librairie LDAP, j'ai besoin de LDAPv3!\n" + +#: plugins/check_ldap.c:204 +#, c-format +msgid "Could not bind to the LDAP server\n" +msgstr "Impossible de se connecter au serveur LDAP\n" + +#: plugins/check_ldap.c:213 +#, c-format +msgid "Could not search/find objectclasses in %s\n" +msgstr "Impossible de chercher/trouver les objectclasses dans %s\n" + +#: plugins/check_ldap.c:252 +#, fuzzy, c-format +msgid "LDAP %s - found %d entries in %.3f seconds|%s %s\n" +msgstr "%s - %d octets en %.3f secondes de temps de réponse %s|%s %s" + +#: plugins/check_ldap.c:265 +#, c-format +msgid "LDAP %s - %.3f seconds response time|%s\n" +msgstr "LDAP %s - %.3f secondes de temps de réponse|%s\n" + +#: plugins/check_ldap.c:386 plugins/check_ldap.c:394 +#, c-format +msgid "%s cannot be combined with %s" +msgstr "" + +#: plugins/check_ldap.c:426 +msgid "Please specify the host name\n" +msgstr "Veuillez spécifier le nom de l'hôte\n" + +#: plugins/check_ldap.c:429 +msgid "Please specify the LDAP base\n" +msgstr "Veuillez spécifier la base LDAP\n" + +#: plugins/check_ldap.c:465 +msgid "ldap attribute to search (default: \"(objectclass=*)\"" +msgstr "" + +#: plugins/check_ldap.c:467 +msgid "ldap base (eg. ou=my unit, o=my org, c=at" +msgstr "" + +#: plugins/check_ldap.c:469 +msgid "ldap bind DN (if required)" +msgstr "" + +#: plugins/check_ldap.c:471 +msgid "" +"ldap password (if required, or set the password through environment variable " +"'LDAP_PASSWORD')" +msgstr "" + +#: plugins/check_ldap.c:473 +msgid "use starttls mechanism introduced in protocol version 3" +msgstr "utiliser le fonctionnement starttls du protocole version 3" + +#: plugins/check_ldap.c:475 +msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" +msgstr "" + +#: plugins/check_ldap.c:479 +msgid "use ldap protocol version 2" +msgstr "utiliser le protocole ldap version 2" + +#: plugins/check_ldap.c:481 +msgid "use ldap protocol version 3" +msgstr "utiliser le protocole ldap version 3" + +#: plugins/check_ldap.c:482 +msgid "default protocol version:" +msgstr "version du protocole par défaut:" + +#: plugins/check_ldap.c:488 +#, fuzzy +msgid "Number of found entries to result in warning status" +msgstr "Décalage résultant en un avertissement (secondes)" + +#: plugins/check_ldap.c:490 +#, fuzzy +msgid "Number of found entries to result in critical status" +msgstr "Décalage résultant en un état critique (secondes)" + +#: plugins/check_ldap.c:498 +msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" +msgstr "" + +#: plugins/check_ldap.c:499 +#, c-format +msgid "" +" implied (using default port %i) unless --port=636 is specified. In that " +"case\n" +msgstr "" + +#: plugins/check_ldap.c:500 +msgid "'SSL on connect' will be used no matter how the plugin was called." +msgstr "" + +#: plugins/check_ldap.c:501 +msgid "" +"This detection is deprecated, please use 'check_ldap' with the '--starttls' " +"or '--ssl' flags" +msgstr "" + +#: plugins/check_ldap.c:502 +msgid "to define the behaviour explicitly instead." +msgstr "" + +#: plugins/check_ldap.c:503 +msgid "The parameters --warn-entries and --crit-entries are optional." +msgstr "" + +#: plugins/check_load.c:93 +msgid "Warning threshold must be float or float triplet!\n" +msgstr "Le seuil d'alerte doit être un nombre à virgule flottante!\n" + +#: plugins/check_load.c:138 plugins/check_load.c:154 +#, c-format +msgid "Error opening %s\n" +msgstr "Erreur à l'ouverture de %s\n" + +#: plugins/check_load.c:169 +#, fuzzy, c-format +msgid "could not parse load from uptime %s: %d\n" +msgstr "Lecture des arguments impossible\n" + +#: plugins/check_load.c:175 +#, c-format +msgid "Error code %d returned in %s\n" +msgstr "Le code erreur %d à été retourné par %s\n" + +#: plugins/check_load.c:183 +#, c-format +msgid "Error in getloadavg()\n" +msgstr "Erreur dans la fonction getloadavg()\n" + +#: plugins/check_load.c:186 plugins/check_load.c:188 +#, c-format +msgid "Error processing %s\n" +msgstr "Erreur lors de l'utilisation de %s\n" + +#: plugins/check_load.c:197 plugins/check_load.c:212 +#, c-format +msgid "load average: %.2f, %.2f, %.2f" +msgstr "Charge moyenne: %.2f, %.2f, %.2f" + +#: plugins/check_load.c:327 +#, c-format +msgid "Critical threshold for %d-minute load average is not specified\n" +msgstr "" +"Le seuil critique pour la charge système après %d minutes n'est pas " +"spécifié\n" + +#: plugins/check_load.c:329 +#, c-format +msgid "Warning threshold for %d-minute load average is not specified\n" +msgstr "" +"Le seuil d'avertissement pour la charge système après %d minutes n'est pas " +"spécifié\n" + +#: plugins/check_load.c:331 +#, c-format +msgid "" +"Parameter inconsistency: %d-minute \"warning load\" is greater than " +"\"critical load\"\n" +msgstr "" +"Arguments Incorrects: %d-minute \"alerte charge système\" est plus grand que " +"\"alerte critique charge système\"\n" + +#: plugins/check_load.c:346 +#, c-format +msgid "This plugin tests the current system load average." +msgstr "Ce plugin teste la charge système actuelle." + +#: plugins/check_load.c:356 +msgid "Exit with WARNING status if load average exceeds WLOADn" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si la charge moyenne dépasse WLOAD" + +#: plugins/check_load.c:358 +msgid "Exit with CRITICAL status if load average exceed CLOADn" +msgstr "Sortir avec un résultat CRITIQUE si la charge moyenne excède CLOAD" + +#: plugins/check_load.c:359 +msgid "the load average format is the same used by \"uptime\" and \"w\"" +msgstr "" + +#: plugins/check_load.c:361 +msgid "Divide the load averages by the number of CPUs (when possible)" +msgstr "" + +#: plugins/check_load.c:363 +msgid "Number of processes to show when printing the top consuming processes." +msgstr "" + +#: plugins/check_load.c:364 +msgid "NUMBER_OF_PROCS=0 disables this feature. Default value is 0" +msgstr "" + +#: plugins/check_load.c:401 +#, c-format +msgid "'%s' exited with non-zero status.\n" +msgstr "" + +#: plugins/check_load.c:405 +#, c-format +msgid "some error occurred getting procs list.\n" +msgstr "" + +#: plugins/check_mrtg.c:75 +msgid "Could not parse arguments\n" +msgstr "Lecture des arguments impossible\n" + +#: plugins/check_mrtg.c:80 +#, c-format +msgid "Unable to open MRTG log file\n" +msgstr "Impossible d'ouvrir le fichier de log de MRTG\n" + +#: plugins/check_mrtg.c:127 +#, c-format +msgid "Unable to process MRTG log file\n" +msgstr "Impossible de traiter le fichier de log de MRTG\n" + +#: plugins/check_mrtg.c:135 plugins/check_mrtgtraf.c:136 +#, c-format +msgid "MRTG data has expired (%d minutes old)\n" +msgstr "Les données de MRTG on expirées (vieilles de %d minutes)\n" + +#: plugins/check_mrtg.c:152 plugins/check_mrtgtraf.c:195 +#: plugins/check_mrtgtraf.c:196 +msgid "Avg" +msgstr "Moyenne" + +#: plugins/check_mrtg.c:152 plugins/check_mrtgtraf.c:195 +#: plugins/check_mrtgtraf.c:196 +msgid "Max" +msgstr "Max" + +#: plugins/check_mrtg.c:221 +msgid "Invalid variable number" +msgstr "Numéro de la variable invalide" + +#: plugins/check_mrtg.c:256 +#, c-format +msgid "" +"%s is not a valid expiration time\n" +"Use '%s -h' for additional help\n" +msgstr "" +"%s n'est pas un temps d'expiration valide\n" +"Utilisez '%s -h' pour de l'aide supplémentaire\n" + +#: plugins/check_mrtg.c:273 +msgid "Invalid variable number\n" +msgstr "Numéro de la variable invalide\n" + +#: plugins/check_mrtg.c:300 +msgid "You must supply the variable number" +msgstr "Vous devez fournir le numéro de la variable" + +#: plugins/check_mrtg.c:321 +msgid "" +"This plugin will check either the average or maximum value of one of the" +msgstr "Ce plugin va vérifier la moyenne ou le maximum d'une " + +#: plugins/check_mrtg.c:322 +msgid "two variables recorded in an MRTG log file." +msgstr "deux variables du fichier de log de MRTG." + +#: plugins/check_mrtg.c:332 +msgid "The MRTG log file containing the data you want to monitor" +msgstr "" + +#: plugins/check_mrtg.c:334 +msgid "Minutes before MRTG data is considered to be too old" +msgstr "" + +#: plugins/check_mrtg.c:336 +msgid "Should we check average or maximum values?" +msgstr "" + +#: plugins/check_mrtg.c:338 +msgid "Which variable set should we inspect? (1 or 2)" +msgstr "" + +#: plugins/check_mrtg.c:340 +msgid "Threshold value for data to result in WARNING status" +msgstr "" + +#: plugins/check_mrtg.c:342 +msgid "Threshold value for data to result in CRITICAL status" +msgstr "" + +#: plugins/check_mrtg.c:344 +msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)" +msgstr "" + +#: plugins/check_mrtg.c:346 +msgid "Option units label for data (Example: Packets/Sec, Errors/Sec," +msgstr "" + +#: plugins/check_mrtg.c:347 +#, c-format +msgid "\"Bytes Per Second\", \"%% Utilization\")" +msgstr "" + +#: plugins/check_mrtg.c:350 +msgid "" +"If the value exceeds the threshold, a WARNING status is returned. If" +msgstr "" + +#: plugins/check_mrtg.c:351 +msgid "" +"the value exceeds the threshold, a CRITICAL status is returned. If" +msgstr "" + +#: plugins/check_mrtg.c:352 +msgid "the data in the log file is older than old, a WARNING" +msgstr "" + +#: plugins/check_mrtg.c:353 +msgid "status is returned and a warning message is printed." +msgstr "" + +#: plugins/check_mrtg.c:356 +msgid "" +"This plugin is useful for monitoring MRTG data that does not correspond to" +msgstr "" + +#: plugins/check_mrtg.c:357 +msgid "" +"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." +msgstr "" + +#: plugins/check_mrtg.c:358 +msgid "" +"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgstr "" + +#: plugins/check_mrtg.c:359 +msgid "" +"packets/sec, etc. I use MRTG in conjunction with the Novell NLM that allows" +msgstr "" + +#: plugins/check_mrtg.c:360 +msgid "" +"me to track processor utilization, user connections, drive space, etc and" +msgstr "" + +#: plugins/check_mrtg.c:361 +msgid "this plugin works well for monitoring that kind of data as well." +msgstr "" + +#: plugins/check_mrtg.c:364 +msgid "" +"- This plugin only monitors one of the two variables stored in the MRTG log" +msgstr "" +"- Ce plugin vérifie seulement une ou deux variables écrites dans un fichier " +"de log MRTG" + +#: plugins/check_mrtg.c:365 +msgid "file. If you want to monitor both values you will have to define two" +msgstr "" + +#: plugins/check_mrtg.c:366 +msgid "commands with different values for the argument. Of course," +msgstr "" + +#: plugins/check_mrtg.c:367 +msgid "you can always hack the code to make this plugin work for you..." +msgstr "" + +#: plugins/check_mrtg.c:368 +msgid "" +"- MRTG stands for the Multi Router Traffic Grapher. It can be downloaded " +"from" +msgstr "" + +#: plugins/check_mrtgtraf.c:88 +msgid "Unable to open MRTG log file" +msgstr "Impossible d'ouvrir le fichier de log de MRTG" + +#: plugins/check_mrtgtraf.c:130 +msgid "Unable to process MRTG log file" +msgstr "Impossible de traiter le fichier de log de MRTG" + +#: plugins/check_mrtgtraf.c:194 +#, fuzzy, c-format +msgid "%s. In = %0.1f %s/s, %s. Out = %0.1f %s/s|%s %s\n" +msgstr "%s. Entrée = %0.1f %s, %s. Sortie = %0.1f %s|%s %s\n" + +#: plugins/check_mrtgtraf.c:207 +#, c-format +msgid "Traffic %s - %s\n" +msgstr "Trafic %s - %s\n" + +#: plugins/check_mrtgtraf.c:335 +msgid "" +"This plugin will check the incoming/outgoing transfer rates of a router," +msgstr "" +"Ce plugin va vérifier le taux de transfert en entrée/sortie d'un routeur," + +#: plugins/check_mrtgtraf.c:336 +msgid "switch, etc recorded in an MRTG log. If the newest log entry is older" +msgstr "" + +#: plugins/check_mrtgtraf.c:337 +msgid "than , a WARNING status is returned. If either the" +msgstr "" + +#: plugins/check_mrtgtraf.c:338 +msgid "incoming or outgoing rates exceed the or thresholds (in" +msgstr "" + +#: plugins/check_mrtgtraf.c:339 +msgid "Bytes/sec), a CRITICAL status results. If either of the rates exceed" +msgstr "" + +#: plugins/check_mrtgtraf.c:340 +msgid "the or thresholds (in Bytes/sec), a WARNING status results." +msgstr "" + +#: plugins/check_mrtgtraf.c:350 +msgid "File to read log from" +msgstr "" + +#: plugins/check_mrtgtraf.c:352 +msgid "Minutes after which log expires" +msgstr "" + +#: plugins/check_mrtgtraf.c:354 +msgid "Test average or maximum" +msgstr "" + +#: plugins/check_mrtgtraf.c:356 +msgid "Warning threshold pair ," +msgstr "Paire de seuils d'avertissement ," + +#: plugins/check_mrtgtraf.c:358 +msgid "Critical threshold pair ," +msgstr "Paire de seuils critique ," + +#: plugins/check_mrtgtraf.c:362 +msgid "" +"- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from" +msgstr "" + +#: plugins/check_mrtgtraf.c:364 +msgid "- While MRTG can monitor things other than traffic rates, this" +msgstr "" + +#: plugins/check_mrtgtraf.c:365 +msgid " plugin probably won't work with much else without modification." +msgstr "" + +#: plugins/check_mrtgtraf.c:366 +msgid "- The calculated i/o rates are a little off from what MRTG actually" +msgstr "" + +#: plugins/check_mrtgtraf.c:367 +msgid " reports. I'm not sure why this is right now, but will look into it" +msgstr "" + +#: plugins/check_mrtgtraf.c:368 +msgid " for future enhancements of this plugin." +msgstr "" + +#: plugins/check_mrtgtraf.c:378 +#, c-format +msgid "Usage" +msgstr "Utilisation" + +#: plugins/check_mysql.c:182 +#, fuzzy, c-format +msgid "status store_result error: %s\n" +msgstr "erreur slave store_result: %s\n" + +#: plugins/check_mysql.c:213 +#, c-format +msgid "slave query error: %s\n" +msgstr "erreur de requête de l'esclave: %s\n" + +#: plugins/check_mysql.c:220 +#, c-format +msgid "slave store_result error: %s\n" +msgstr "erreur slave store_result: %s\n" + +#: plugins/check_mysql.c:226 +msgid "No slaves defined" +msgstr "Pas d'esclave spécifié" + +#: plugins/check_mysql.c:234 +#, c-format +msgid "slave fetch row error: %s\n" +msgstr "erreur esclave lecture d'une ligne: %s\n" + +#: plugins/check_mysql.c:239 +#, c-format +msgid "Slave running: %s" +msgstr "L'esclave fonctionne: %s" + +#: plugins/check_mysql.c:517 +msgid "This program tests connections to a MySQL server" +msgstr "Ce plugin teste une connexion vers un serveur MySQL" + +#: plugins/check_mysql.c:528 +msgid "Ignore authentication failure and check for mysql connectivity only" +msgstr "" + +#: plugins/check_mysql.c:531 +msgid "Use the specified socket (has no effect if -H is used)" +msgstr "" + +#: plugins/check_mysql.c:534 +msgid "Check database with indicated name" +msgstr "" + +#: plugins/check_mysql.c:536 +msgid "Read from the specified client options file" +msgstr "" + +#: plugins/check_mysql.c:538 +msgid "Use a client options group" +msgstr "" + +#: plugins/check_mysql.c:540 +msgid "Connect using the indicated username" +msgstr "" + +#: plugins/check_mysql.c:542 +msgid "Use the indicated password to authenticate the connection" +msgstr "" + +#: plugins/check_mysql.c:543 +msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!" +msgstr "" + +#: plugins/check_mysql.c:544 +msgid "Your clear-text password could be visible as a process table entry" +msgstr "" + +#: plugins/check_mysql.c:546 +msgid "Check if the slave thread is running properly." +msgstr "" + +#: plugins/check_mysql.c:548 +msgid "Exit with WARNING status if slave server is more than INTEGER seconds" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si le serveur esclave est plus de X " + +#: plugins/check_mysql.c:549 plugins/check_mysql.c:552 +msgid "behind master" +msgstr "secondes en retard sur le maître" + +#: plugins/check_mysql.c:551 +msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds" +msgstr "Sortir avec un résultat CRITIQUE si le serveur esclave est plus de X " + +#: plugins/check_mysql.c:554 +msgid "Use ssl encryptation" +msgstr "" + +#: plugins/check_mysql.c:556 +msgid "Path to CA signing the cert" +msgstr "" + +#: plugins/check_mysql.c:558 +msgid "Path to SSL certificate" +msgstr "" + +#: plugins/check_mysql.c:560 +msgid "Path to private SSL key" +msgstr "" + +#: plugins/check_mysql.c:562 +msgid "Path to CA directory" +msgstr "" + +#: plugins/check_mysql.c:564 +msgid "List of valid SSL ciphers" +msgstr "" + +#: plugins/check_mysql.c:568 +msgid "" +"There are no required arguments. By default, the local database is checked" +msgstr "" +"Il n'y a pas d'arguments nécessaires. Par défaut la base de donnée locale " +"est testée" + +#: plugins/check_mysql.c:569 +msgid "" +"using the default unix socket. You can force TCP on localhost by using an" +msgstr "" + +#: plugins/check_mysql.c:570 +msgid "IP address or FQDN ('localhost' will use the socket as well)." +msgstr "" + +#: plugins/check_mysql.c:574 +msgid "You must specify -p with an empty string to force an empty password," +msgstr "" + +#: plugins/check_mysql.c:575 +msgid "overriding any my.cnf settings." +msgstr "" + +#: plugins/check_nagios.c:104 +msgid "Cannot open status log for reading!" +msgstr "Impossible d'ouvrir le fichier status log en lecture!" + +#: plugins/check_nagios.c:154 +#, c-format +msgid "Found process: %s %s\n" +msgstr "Processus trouvé: %s %s\n" + +#: plugins/check_nagios.c:168 +msgid "Could not locate a running Nagios process!" +msgstr "Impossible de trouver un processus Nagios actif!" + +#: plugins/check_nagios.c:172 +msgid "Cannot parse Nagios log file for valid time" +msgstr "" +"Impossible de trouver une date/heure valide dans le fichier de log de Nagios" + +#: plugins/check_nagios.c:183 plugins/check_procs.c:356 +#, c-format +msgid "%d process" +msgid_plural "%d processes" +msgstr[0] "%d processus" +msgstr[1] "%d processus" + +#: plugins/check_nagios.c:186 +#, c-format +msgid "status log updated %d second ago" +msgid_plural "status log updated %d seconds ago" +msgstr[0] "status log mis à jour %d secondes auparavant" +msgstr[1] "status log mis à jour %d secondes auparavant" + +#: plugins/check_nagios.c:224 plugins/check_nagios.c:253 +msgid "Expiration time must be an integer (seconds)\n" +msgstr "Le délai d'expiration doit être un entier (en secondes)\n" + +#: plugins/check_nagios.c:260 +#, fuzzy +msgid "Timeout must be an integer (seconds)\n" +msgstr "Le délai d'expiration doit être un entier (en secondes)\n" + +#: plugins/check_nagios.c:272 +msgid "You must provide the status_log\n" +msgstr "Vous devez fournir le status_log\n" + +#: plugins/check_nagios.c:275 +msgid "You must provide a process string\n" +msgstr "Vous devez fournir un nom de processus\n" + +#: plugins/check_nagios.c:289 +msgid "" +"This plugin checks the status of the Nagios process on the local machine" +msgstr "Ce plugin vérifie l'état du processus Nagios sur la machine locale." + +#: plugins/check_nagios.c:290 +msgid "" +"The plugin will check to make sure the Nagios status log is no older than" +msgstr "Ce plugin vérifie que le status log de Nagios n'est pas plus vieux que" + +#: plugins/check_nagios.c:291 +msgid "the number of minutes specified by the expires option." +msgstr "le nombre de minutes spécifies par l'option expire." + +#: plugins/check_nagios.c:292 +msgid "" +"It also checks the process table for a process matching the command argument." +msgstr "" + +#: plugins/check_nagios.c:302 +msgid "Name of the log file to check" +msgstr "Nom du fichier log à vérifier" + +#: plugins/check_nagios.c:304 +msgid "Minutes aging after which logfile is considered stale" +msgstr "" + +#: plugins/check_nagios.c:306 +msgid "Substring to search for in process arguments" +msgstr "" + +#: plugins/check_nagios.c:308 +msgid "Timeout for the plugin in seconds" +msgstr "" + +#: plugins/check_nt.c:142 +#, c-format +msgid "Wrong client version - running: %s, required: %s" +msgstr "Mauvaise version du client utilisée: %s, nécessaire: %s" + +#: plugins/check_nt.c:153 plugins/check_nt.c:239 +msgid "missing -l parameters" +msgstr "Arguments -l manquants" + +#: plugins/check_nt.c:155 +msgid "wrong -l parameter." +msgstr "Arguments -l erronés." + +#: plugins/check_nt.c:159 +msgid "CPU Load" +msgstr "Charge CPU" + +#: plugins/check_nt.c:182 +#, c-format +msgid " %lu%% (%lu min average)" +msgstr " %lu%% (%lu moyenne minimale)" + +#: plugins/check_nt.c:184 +#, c-format +msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100" +msgstr " '%lu Charge moyenne minimale'=%lu%%;%lu;%lu;0;100" + +#: plugins/check_nt.c:194 +msgid "not enough values for -l parameters" +msgstr "pas assez de valeur pour l'argument -l" + +#: plugins/check_nt.c:208 plugins/check_nt.c:241 +msgid "wrong -l argument" +msgstr "Argument -l erroné" + +#: plugins/check_nt.c:225 +#, fuzzy, c-format +msgid "System Uptime - %u day(s) %u hour(s) %u minute(s) |uptime=%lu" +msgstr "Système démarré - %u jour(s) %u heure(s) %u minute(s)" + +#: plugins/check_nt.c:257 +#, c-format +msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" +msgstr "" +"%s:\\ - total: %.2f Gb - utilisé: %.2f Gb (%.0f%%) - libre %.2f Gb (%.0f%%)" + +#: plugins/check_nt.c:260 +#, c-format +msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" +msgstr "'%s:\\ Espace Utilisé'=%.2fGb;%.2f;%.2f;0.00;%.2f" + +#: plugins/check_nt.c:274 +msgid "Free disk space : Invalid drive" +msgstr "Espace disque libre : Lecteur invalide" + +#: plugins/check_nt.c:284 +msgid "No service/process specified" +msgstr "Pas de service/processus spécifié" + +#: plugins/check_nt.c:292 plugins/check_nt.c:305 plugins/check_nt.c:309 +#: plugins/check_nt.c:643 +msgid "could not fetch information from server\n" +msgstr "Impossible d'obtenir l'information depuis le serveur\n" + +#: plugins/check_nt.c:317 +#, fuzzy, c-format +msgid "" +"Memory usage: total:%.2f MB - used: %.2f MB (%.0f%%) - free: %.2f MB (%.0f%%)" +msgstr "" +"Mémoire utilisée: total:%.2f Mb - utilisée: %.2f Mb (%.0f%%) - libre: %.2f " +"Mb (%.0f%%)" + +#: plugins/check_nt.c:320 +#, fuzzy, c-format +msgid "'Memory usage'=%.2fMB;%.2f;%.2f;0.00;%.2f" +msgstr "'Mémoire utilisée'=%.2fMb;%.2f;%.2f;0.00;%.2f" + +#: plugins/check_nt.c:356 plugins/check_nt.c:441 plugins/check_nt.c:471 +msgid "No counter specified" +msgstr "Pas de compteur spécifié" + +#: plugins/check_nt.c:388 +msgid "Minimum value contains non-numbers" +msgstr "La valeur minimum contient des caractères non numériques" + +#: plugins/check_nt.c:392 +msgid "Maximum value contains non-numbers" +msgstr "La valeur maximum contient des caractères non numériques" + +#: plugins/check_nt.c:399 +msgid "No unit counter specified" +msgstr "Pas de compteur spécifié" + +#: plugins/check_nt.c:486 +msgid "Please specify a variable to check" +msgstr "Veuillez préciser une variable a vérifier" + +#: plugins/check_nt.c:570 +msgid "Server port must be an integer\n" +msgstr "Le port du serveur doit être un nombre entier\n" + +#: plugins/check_nt.c:624 +msgid "You must provide a server address or host name" +msgstr "Vous devez spécifier une adresse ou un nom d'hôte" + +#: plugins/check_nt.c:630 +msgid "None" +msgstr "Aucun" + +#: plugins/check_nt.c:687 +msgid "This plugin collects data from the NSClient service running on a" +msgstr "" +"Ce plugin collecte les données depuis le service NSClient tournant sur un" + +#: plugins/check_nt.c:688 +msgid "Windows NT/2000/XP/2003 server." +msgstr "Serveur Windows NT/2000/XP/2003." + +#: plugins/check_nt.c:699 +msgid "Name of the host to check" +msgstr "Nom de l'hôte à vérifier" + +#: plugins/check_nt.c:701 +msgid "Optional port number (default: " +msgstr "Numéro de port optionnel (défaut: " + +#: plugins/check_nt.c:704 +msgid "Password needed for the request" +msgstr "Mot de passe nécessaire pour la requête" + +#: plugins/check_nt.c:706 plugins/check_nwstat.c:1661 +#: plugins/check_overcr.c:432 +msgid "Threshold which will result in a warning status" +msgstr "" + +#: plugins/check_nt.c:708 plugins/check_nwstat.c:1663 +#: plugins/check_overcr.c:434 +msgid "Threshold which will result in a critical status" +msgstr "" + +#: plugins/check_nt.c:710 +msgid "Seconds before connection attempt times out (default: " +msgstr "" + +#: plugins/check_nt.c:712 +msgid "Parameters passed to specified check (see below)" +msgstr "" + +#: plugins/check_nt.c:714 +msgid "Display options (currently only SHOWALL works)" +msgstr "" + +#: plugins/check_nt.c:716 +msgid "Return UNKNOWN on timeouts" +msgstr "" + +#: plugins/check_nt.c:719 +msgid "Print this help screen" +msgstr "Afficher l'écran d'aide" + +#: plugins/check_nt.c:721 +msgid "Print version information" +msgstr "Afficher la version" + +#: plugins/check_nt.c:723 +msgid "Variable to check" +msgstr "Variable a vérifier" + +#: plugins/check_nt.c:724 +msgid "Valid variables are:" +msgstr "Les variables valides sont" + +#: plugins/check_nt.c:726 +msgid "Get the NSClient version" +msgstr "Obtenir la version de NSClient" + +#: plugins/check_nt.c:727 +msgid "If -l is specified, will return warning if versions differ." +msgstr "" +"si l'argument -l est spécifié, une alerte AVERTISSEMENT sera " +"renvoyée, si les versions sont différentes." + +#: plugins/check_nt.c:729 +msgid "Average CPU load on last x minutes." +msgstr "Moyenne de la charge CPU sur les dernières x minutes." + +#: plugins/check_nt.c:730 +msgid "Request a -l parameter with the following syntax:" +msgstr "Demande un paramètre -l avec la syntaxe suivante:" + +#: plugins/check_nt.c:731 +msgid "-l ,,." +msgstr "-l ,,." + +#: plugins/check_nt.c:732 +msgid " should be less than 24*60." +msgstr " devrait être inférieur à 24*60." + +#: plugins/check_nt.c:733 +msgid "" +"Thresholds are percentage and up to 10 requests can be done in one shot." +msgstr "" +"Les seuils sonts en pourcentage et un maximum de 10 requêtes peuvent être " +"effectuées à la fois." + +#: plugins/check_nt.c:736 +msgid "Get the uptime of the machine." +msgstr "Obtenir le temps de service de la machine." + +#: plugins/check_nt.c:737 +msgid "-l " +msgstr "" + +#: plugins/check_nt.c:738 +msgid " = seconds, minutes, hours, or days. (default: minutes)" +msgstr "" + +#: plugins/check_nt.c:739 +#, fuzzy +msgid "Thresholds will use the unit specified above." +msgstr "Ce plugin va vérifier l'heure sur l'hôte spécifié." + +#: plugins/check_nt.c:741 +msgid "Size and percentage of disk use." +msgstr "Taille et pourcentage de l'utilisation disque." + +#: plugins/check_nt.c:742 +msgid "Request a -l parameter containing the drive letter only." +msgstr "Demande un paramètre -l contennant uniquement la lettre du lecteur." + +#: plugins/check_nt.c:743 plugins/check_nt.c:746 +msgid "Warning and critical thresholds can be specified with -w and -c." +msgstr "Les seuils d'alerte et critiques peuvent être spécifiés avec -w et -c." + +#: plugins/check_nt.c:745 +msgid "Memory use." +msgstr "Mémoire utilisée." + +#: plugins/check_nt.c:748 +msgid "Check the state of one or several services." +msgstr "Vérifier l'état d'un ou plusieurs services." + +#: plugins/check_nt.c:749 plugins/check_nt.c:758 +msgid "Request a -l parameters with the following syntax:" +msgstr "Demande un paramètre -l avec la syntaxe suivante:" + +#: plugins/check_nt.c:750 +msgid "-l ,,,..." +msgstr "-l ,,,..." + +#: plugins/check_nt.c:751 +msgid "You can specify -d SHOWALL in case you want to see working services" +msgstr "Vous pouvez spécifier -d SHOWALL pour voir les services fonctionnant" + +#: plugins/check_nt.c:752 +msgid "in the returned string." +msgstr "dans la chaîne de caractère renvoyée." + +#: plugins/check_nt.c:754 +msgid "Check if one or several process are running." +msgstr "Vérifie si un ou plusieurs processus sont démarrés." + +#: plugins/check_nt.c:755 +msgid "Same syntax as SERVICESTATE." +msgstr "Même syntaxe que SERVICESTATE." + +#: plugins/check_nt.c:757 +msgid "Check any performance counter of Windows NT/2000." +msgstr "Vérifier n'importe quel compteur de performance sur Windows NT/2000." + +#: plugins/check_nt.c:759 +msgid "-l \"\\\\\\\\counter\",\"" +msgstr "-l \"\\\\\\\\compteur\",\"" + +#: plugins/check_nt.c:760 +msgid "The parameter is optional and is given to a printf " +msgstr "Le paramètre est optionnel et est passé à la fonction " + +#: plugins/check_nt.c:761 +msgid "output command which requires a float parameter." +msgstr "de sortie printf qui demande un paramètre de type float." + +#: plugins/check_nt.c:762 +#, c-format +msgid "If does not include \"%%\", it is used as a label." +msgstr "Si n'inclus pas \"%%\", il est utilisé comme étiquette." + +#: plugins/check_nt.c:763 plugins/check_nt.c:778 +msgid "Some examples:" +msgstr "Exemples:" + +#: plugins/check_nt.c:767 +msgid "Check any performance counter object of Windows NT/2000." +msgstr "Vérifie n'importe quel compteur de performance de Windows NT/2000." + +#: plugins/check_nt.c:768 +msgid "" +"Syntax: check_nt -H -p -v INSTANCES -l " +msgstr "" + +#: plugins/check_nt.c:769 +msgid " is a Windows Perfmon Counter object (eg. Process)," +msgstr "" + +#: plugins/check_nt.c:770 +msgid "if it is two words, it should be enclosed in quotes" +msgstr "" + +#: plugins/check_nt.c:771 +msgid "The returned results will be a comma-separated list of instances on " +msgstr "" + +#: plugins/check_nt.c:772 +msgid " the selected computer for that object." +msgstr "" + +#: plugins/check_nt.c:773 +msgid "" +"The purpose of this is to be run from command line to determine what " +"instances" +msgstr "" + +#: plugins/check_nt.c:774 +msgid "" +" are available for monitoring without having to log onto the Windows server" +msgstr "" + +#: plugins/check_nt.c:775 +msgid " to run Perfmon directly." +msgstr "" + +#: plugins/check_nt.c:776 +msgid "" +"It can also be used in scripts that automatically create the monitoring " +"service" +msgstr "" + +#: plugins/check_nt.c:777 +msgid " configuration files." +msgstr "" + +#: plugins/check_nt.c:779 +msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" +msgstr "" + +#: plugins/check_nt.c:782 +msgid "" +"- The NSClient service should be running on the server to get any information" +msgstr "" +"- Le service NSClient doit rouler sur le serveur pour obtenir les " +"informations" + +#: plugins/check_nt.c:784 +msgid "- Critical thresholds should be lower than warning thresholds" +msgstr "" +"- Les seuils critiques doivent être plus bas que les seuils d'avertissement" + +#: plugins/check_nt.c:785 +msgid "- Default port 1248 is sometimes in use by other services. The error" +msgstr "" +"- Le port par défaut 1248 est parfois utilisé par d'autres services. L'erreur" + +#: plugins/check_nt.c:786 +msgid "" +"output when this happens contains \"Cannot map xxxxx to protocol number\"." +msgstr "qui en résulte contiens \"Cannot map xxxxx to protocol number\"." + +#: plugins/check_nt.c:787 +msgid "One fix for this is to change the port to something else on check_nt " +msgstr "" +"Une possibilité pour corriger ce problème est de changer le port dans " +"check_nt " + +#: plugins/check_nt.c:788 +msgid "and on the client service it's connecting to." +msgstr "et dans le service auquel il se connecte." + +#: plugins/check_ntp.c:629 +#, c-format +msgid "jitter response too large (%lu bytes)\n" +msgstr "" + +#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:619 +#: plugins/check_ntp_time.c:576 +msgid "NTP CRITICAL:" +msgstr "NTP CRITIQUE:" + +#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:622 +#: plugins/check_ntp_time.c:579 +msgid "NTP WARNING:" +msgstr "NTP AVERTISSEMENT:" + +#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:625 +#: plugins/check_ntp_time.c:582 +msgid "NTP OK:" +msgstr "NTP OK:" + +#: plugins/check_ntp.c:826 plugins/check_ntp_peer.c:628 +#: plugins/check_ntp_time.c:585 +msgid "NTP UNKNOWN:" +msgstr "NTP INCONNU:" + +#: plugins/check_ntp.c:830 plugins/check_ntp_peer.c:637 +#: plugins/check_ntp_time.c:589 +msgid "Offset unknown" +msgstr "Décalage inconnu" + +#: plugins/check_ntp.c:833 plugins/check_ntp_peer.c:640 +#: plugins/check_ntp_peer.c:642 plugins/check_ntp_peer.c:644 +#: plugins/check_ntp_time.c:592 +msgid "Offset" +msgstr "Décalage" + +#: plugins/check_ntp.c:854 plugins/check_ntp_peer.c:690 +msgid "This plugin checks the selected ntp server" +msgstr "Ce plugin vérifie le service ntp sur l'hôte" + +#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:702 +#: plugins/check_ntp_time.c:619 +msgid "Offset to result in warning status (seconds)" +msgstr "Décalage résultant en un avertissement (secondes)" + +#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:704 +#: plugins/check_ntp_time.c:621 +msgid "Offset to result in critical status (seconds)" +msgstr "Décalage résultant en un état critique (secondes)" + +#: plugins/check_ntp.c:868 plugins/check_ntp_peer.c:710 +msgid "Warning threshold for jitter" +msgstr "Seuil d'avertissement pour la variation (jitter)" + +#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:712 +msgid "Critical threshold for jitter" +msgstr "Seuil critique pour la variation (jitter)" + +#: plugins/check_ntp.c:880 +msgid "Normal offset check:" +msgstr "Vérification normale du décalage:" + +#: plugins/check_ntp.c:883 plugins/check_ntp_peer.c:737 +msgid "" +"Check jitter too, avoiding critical notifications if jitter isn't available" +msgstr "" +"Vérifier aussi la variation (jitter) en évitant les notifications s'il n'est " +"pas dispoible" + +#: plugins/check_ntp.c:884 plugins/check_ntp_peer.c:738 +msgid "(See Notes above for more details on thresholds formats):" +msgstr "" +"(Voir les Notes ci-dessus pour plus de détails sur le format des seuils)" + +#: plugins/check_ntp.c:889 plugins/check_ntp.c:896 +msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" +msgstr "ATTENTION: check_ntp est périmé, utilisez plutôt check_ntp_peer" + +#: plugins/check_ntp.c:890 plugins/check_ntp.c:897 +msgid "check_ntp_time instead." +msgstr "ou check_ntp_time." + +#: plugins/check_ntp_peer.c:632 +msgid "Server not synchronized" +msgstr "Le serveur n'est pas synchronisé" + +#: plugins/check_ntp_peer.c:634 +msgid "Server has the LI_ALARM bit set" +msgstr "" + +#: plugins/check_ntp_peer.c:700 +msgid "" +"Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized" +msgstr "" +"Retourne INCONNU au lieu de CRITIQUE ou AVERTISSEMENT si le serveur n'est " +"pas synchronisé" + +#: plugins/check_ntp_peer.c:706 +#, fuzzy +msgid "Warning threshold for stratum of server's synchronization peer" +msgstr "Seuil d'avertissement pour le stratum" + +#: plugins/check_ntp_peer.c:708 +#, fuzzy +msgid "Critical threshold for stratum of server's synchronization peer" +msgstr "Seuil critique pour le stratum" + +#: plugins/check_ntp_peer.c:714 +msgid "Warning threshold for number of usable time sources (\"truechimers\")" +msgstr "" +"Seuil d'avertissement pour le nombre de sources de temps utilisable " +"(\"truechimers\")" + +#: plugins/check_ntp_peer.c:716 +msgid "Critical threshold for number of usable time sources (\"truechimers\")" +msgstr "" +"Seuil critique pour le nombre de sources de temps utilisable " +"(\"truechimers\")" + +#: plugins/check_ntp_peer.c:721 +msgid "This plugin checks an NTP server independent of any commandline" +msgstr "Ce plugin vérifie un serveur NTP sans recours aux programmes de" + +#: plugins/check_ntp_peer.c:722 +msgid "programs or external libraries." +msgstr "la ligne de commande ou libraries externes" + +#: plugins/check_ntp_peer.c:725 +msgid "Use this plugin to check the health of an NTP server. It supports" +msgstr "" +"Utilisez ce plugin pour vérifier le service NTP sur l'hôte. Il supporte la" + +#: plugins/check_ntp_peer.c:726 +msgid "checking the offset with the sync peer, the jitter and stratum. This" +msgstr "" +"vérification du décalage avec le pair se synchronisation, la variation " +"(jitter) et le stratum." + +#: plugins/check_ntp_peer.c:727 +msgid "plugin will not check the clock offset between the local host and NTP" +msgstr "" +"Ce plugin ne vérifie pas le décalage entre le serveur local et le serveur" + +#: plugins/check_ntp_peer.c:728 +msgid "server; please use check_ntp_time for that purpose." +msgstr "NTP; utilisez plutôt check_ntp_time à cette fin." + +#: plugins/check_ntp_peer.c:734 +msgid "Simple NTP server check:" +msgstr "Vérification simple du serveur NTP:" + +#: plugins/check_ntp_peer.c:741 +msgid "Only check the number of usable time sources (\"truechimers\"):" +msgstr "" + +#: plugins/check_ntp_peer.c:744 +msgid "Check only stratum:" +msgstr "Vérification du stratum seulement:" + +#: plugins/check_ntp_time.c:607 +msgid "This plugin checks the clock offset with the ntp server" +msgstr "Ce plugin vérifie le décalage de l'horloge avec le serveur ntp" + +#: plugins/check_ntp_time.c:617 +msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found" +msgstr "Retourne INCONNU au lieu de CRITIQUE si le décalage est inconnu" + +#: plugins/check_ntp_time.c:623 +msgid "Expected offset of the ntp server relative to local server (seconds)" +msgstr "" + +#: plugins/check_ntp_time.c:628 +msgid "This plugin checks the clock offset between the local host and a" +msgstr "Ce plugin vérifie le décalage de l'horloge entre se serveur local et" + +#: plugins/check_ntp_time.c:629 +msgid "remote NTP server. It is independent of any commandline programs or" +msgstr "le serveur NTP distant. Il ne fait aucun recours aux programmes de" + +#: plugins/check_ntp_time.c:630 +msgid "external libraries." +msgstr "la ligne de commande ou libraries externes." + +#: plugins/check_ntp_time.c:634 +msgid "If you'd rather want to monitor an NTP server, please use" +msgstr "Si vous voulez plutôt surveiller un serveur NTP, veuillez" + +#: plugins/check_ntp_time.c:635 +msgid "check_ntp_peer." +msgstr "utiliser check_ntp_peer." + +#: plugins/check_ntp_time.c:636 +msgid "--time-offset is useful for compensating for servers with known" +msgstr "" + +#: plugins/check_ntp_time.c:637 +msgid "and expected clock skew." +msgstr "" + +#: plugins/check_nwstat.c:194 +#, c-format +msgid "NetWare %s: " +msgstr "NetWare %s: " + +#: plugins/check_nwstat.c:232 +#, c-format +msgid "Up %s," +msgstr "Démarré %s," + +#: plugins/check_nwstat.c:240 +#, c-format +msgid "Load %s - %s %s-min load average = %lu%%|load%s=%lu;%lu;%lu;0;100" +msgstr "" +"Charge %s - %s %s charge système minimale = %lu%%|charge%s=%lu;%lu;%lu;0;100" + +#: plugins/check_nwstat.c:268 +#, c-format +msgid "Conns %s - %lu current connections|Conns=%lu;%lu;%lu;;" +msgstr "Conns %s - %lu connections actuelles|Conns=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:293 +#, c-format +msgid "%s: Long term cache hits = %lu%%" +msgstr "%s: Accès cache longue durée = %lu%%" + +#: plugins/check_nwstat.c:315 +#, c-format +msgid "%s: Total cache buffers = %lu|Cachebuffers=%lu;%lu;%lu;;" +msgstr "%s: Total des caches tampons= %lu|Caches Tampons=%lu,%lu;%lu;;" + +#: plugins/check_nwstat.c:340 +#, c-format +msgid "%s: Dirty cache buffers = %lu|Dirty-Cache-Buffers=%lu;%lu;%lu;;" +msgstr "%s: cache tampons sales = %lu|caches tampons sales=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:365 +#, c-format +msgid "%s: LRU sitting time = %lu minutes" +msgstr "" + +#: plugins/check_nwstat.c:382 plugins/check_nwstat.c:410 +#: plugins/check_nwstat.c:437 plugins/check_nwstat.c:470 +#: plugins/check_nwstat.c:650 plugins/check_nwstat.c:676 +#: plugins/check_nwstat.c:707 plugins/check_nwstat.c:753 +#: plugins/check_nwstat.c:777 +#, c-format +msgid "CRITICAL - Volume '%s' does not exist!" +msgstr "CRITIQUE: Le volume '%s' n'existe pas!" + +#: plugins/check_nwstat.c:391 +#, c-format +msgid "%s%lu KB free on volume %s|KBFree%s=%lu;%lu;%lu;;" +msgstr "%s%lu KB libre sur le volume %s|KB libres%s=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:392 plugins/check_nwstat.c:420 +#: plugins/check_nwstat.c:447 plugins/check_nwstat.c:659 +#: plugins/check_nwstat.c:685 plugins/check_nwstat.c:761 +msgid "Only " +msgstr "Seulement" + +#: plugins/check_nwstat.c:419 +#, c-format +msgid "%s%lu MB free on volume %s|MBFree%s=%lu;%lu;%lu;;" +msgstr "%s%lu MB libre sur le volume %s|MBlibre%s=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:446 +#, c-format +msgid "%s%lu MB used on volume %s|MBUsed%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:494 +#, c-format +msgid "" +"%lu MB (%lu%%) free on volume %s - total %lu MB|FreeMB%s=%lu;%lu;%lu;0;100" +msgstr "" +"%lu MB (%lu%%) libre sur le volume %s - total %lu MB|MBlibre%s=%lu;%lu;" +"%lu;0;100" + +#: plugins/check_nwstat.c:528 +#, c-format +msgid "Directory Services Database is %s (DS version %s)" +msgstr "La base de données Directory Services est %s (DS version %s)" + +#: plugins/check_nwstat.c:545 +#, c-format +msgid "Logins are %s" +msgstr "Les logins sont %s" + +#: plugins/check_nwstat.c:545 +msgid "enabled" +msgstr "activé" + +#: plugins/check_nwstat.c:545 +msgid "disabled" +msgstr "désactivé" + +#: plugins/check_nwstat.c:560 +msgid "CRITICAL - NRM Status is bad!" +msgstr "CRITIQUE - le statut NRM est mauvais!" + +#: plugins/check_nwstat.c:565 +msgid "Warning - NRM Status is suspect!" +msgstr "" + +#: plugins/check_nwstat.c:568 +msgid "OK - NRM Status is good!" +msgstr "OK - Le status du NRM est bon!" + +#: plugins/check_nwstat.c:610 +#, c-format +msgid "%lu of %lu (%lu%%) packet receive buffers used" +msgstr "%lu de %lu (%lu%%) paquets du tampon de réception utilisés" + +#: plugins/check_nwstat.c:634 +#, c-format +msgid "%lu entries in SAP table" +msgstr "%lu entrées dans la table SAP" + +#: plugins/check_nwstat.c:636 +#, c-format +msgid "%lu entries in SAP table for SAP type %d" +msgstr "%lu entrées dans la table SAP pour le type SAP %d" + +#: plugins/check_nwstat.c:658 +#, c-format +msgid "%s%lu KB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;" +msgstr "%s%lu KB effaçables sur le volume %s|Purge%s=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:684 +#, c-format +msgid "%s%lu MB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;" +msgstr "%s%lu KB effaçables sur le volume %s|Purge%s=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:730 +#, c-format +msgid "%lu MB (%lu%%) purgeable on volume %s|Purgeable%s=%lu;%lu;%lu;0;100" +msgstr "" +"%lu MB (%lu%%) effaçables sur le volume %s|Effacable%s=%lu;%lu;%lu;0;100" + +#: plugins/check_nwstat.c:761 +#, c-format +msgid "%s%lu KB not yet purgeable on volume %s" +msgstr "%s%lu KB pas encore effaçables sur le volume %s" + +#: plugins/check_nwstat.c:800 +#, c-format +msgid "%lu MB (%lu%%) not yet purgeable on volume %s" +msgstr "%lu MB (%lu%%) pas encore effaçables sur le volume %s" + +#: plugins/check_nwstat.c:821 +#, c-format +msgid "%lu open files|Openfiles=%lu;%lu;%lu;0,0" +msgstr "" + +#: plugins/check_nwstat.c:846 +#, c-format +msgid "%lu abended threads|Abends=%lu;%lu;%lu;;" +msgstr "%lu processus avortés|Avortés=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:881 +#, c-format +msgid "%lu current service processes (%lu max)|Processes=%lu;%lu;%lu;0;%lu" +msgstr "%lu processus services actuels (%lu max)|Processus=%lu;%lu;%lu;0;%lu" + +#: plugins/check_nwstat.c:904 +msgid "CRITICAL - Time not in sync with network!" +msgstr "CRITIQUE - Le temps n'est pas synchronisé avec le réseau!" + +#: plugins/check_nwstat.c:907 +msgid "OK - Time in sync with network!" +msgstr "OK - Le temps est synchronisé avec le réseau!" + +#: plugins/check_nwstat.c:930 +#, c-format +msgid "LRU sitting time = %lu seconds" +msgstr "LRU temps d'attente = %lu secondes" + +#: plugins/check_nwstat.c:949 +#, c-format +msgid "Dirty cache buffers = %lu%% of the total|DCB=%lu;%lu;%lu;0;100" +msgstr "Buffers cache sales = %lu%% du total|DCB=%lu;%lu;%lu;0;100" + +#: plugins/check_nwstat.c:971 +#, c-format +msgid "Total cache buffers = %lu%% of the original|TCB=%lu;%lu;%lu;0;100" +msgstr "cache tampons totaux= %lu%% de l'original|TCB=%lu;%lu;%lu;0;100" + +#: plugins/check_nwstat.c:989 +#, c-format +msgid "NDS Version %s" +msgstr "Version NDS %s" + +#: plugins/check_nwstat.c:1005 +#, c-format +msgid "Up %s" +msgstr "Démarré %s" + +#: plugins/check_nwstat.c:1019 +#, c-format +msgid "Module %s version %s is loaded" +msgstr "Le Module %s version %s est chargé" + +#: plugins/check_nwstat.c:1022 +#, c-format +msgid "Module %s is not loaded" +msgstr "Le Module %s n'est pas chargé" + +#: plugins/check_nwstat.c:1033 plugins/check_nwstat.c:1059 +#: plugins/check_nwstat.c:1085 plugins/check_nwstat.c:1111 +#: plugins/check_nwstat.c:1137 plugins/check_nwstat.c:1163 +#: plugins/check_nwstat.c:1189 plugins/check_nwstat.c:1215 +#: plugins/check_nwstat.c:1241 plugins/check_nwstat.c:1267 +#, c-format +msgid "CRITICAL - Value '%s' does not exist!" +msgstr "CRITIQUE: Le valeur '%s' n'existe pas!" + +#: plugins/check_nwstat.c:1042 plugins/check_nwstat.c:1068 +#: plugins/check_nwstat.c:1094 plugins/check_nwstat.c:1120 +#: plugins/check_nwstat.c:1146 plugins/check_nwstat.c:1172 +#: plugins/check_nwstat.c:1198 plugins/check_nwstat.c:1224 +#: plugins/check_nwstat.c:1250 plugins/check_nwstat.c:1276 +#, c-format +msgid "%s is %lu|%s=%lu;%lu;%lu;;" +msgstr "%s est %lu|%s=%lu;%lu;%lu;;" + +#: plugins/check_nwstat.c:1289 plugins/check_overcr.c:285 +msgid "Nothing to check!\n" +msgstr "Rien à vérifier!\n" + +#: plugins/check_nwstat.c:1371 plugins/check_overcr.c:355 +msgid "Server port an integer\n" +msgstr "Le port du serveur doit être un nombre entier\n" + +#: plugins/check_nwstat.c:1601 +msgid "This plugin attempts to contact the MRTGEXT NLM running on a" +msgstr "Ce plugin essaye de contacter le NLM MRTGEXT qui s'exécute sur" + +#: plugins/check_nwstat.c:1602 +msgid "Novell server to gather the requested system information." +msgstr "un serveur Novell pour récupérer l'information système demandée." + +#: plugins/check_nwstat.c:1614 plugins/check_overcr.c:436 +msgid "Variable to check. Valid variables include:" +msgstr "Variable à vérifier. Les variables valides sont:" + +#: plugins/check_nwstat.c:1615 +msgid "LOAD1 = 1 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1616 +msgid "LOAD5 = 5 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1617 +msgid "LOAD15 = 15 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1618 +msgid "CSPROCS = number of current service processes (NW 5.x only)" +msgstr "CSPROCS = nombres de processus services actuels (NW 5.x seulement)" + +#: plugins/check_nwstat.c:1619 +msgid "ABENDS = number of abended threads (NW 5.x only)" +msgstr "" + +#: plugins/check_nwstat.c:1620 +msgid "UPTIME = server uptime" +msgstr "" + +#: plugins/check_nwstat.c:1621 +msgid "LTCH = percent long term cache hits" +msgstr "" + +#: plugins/check_nwstat.c:1622 +msgid "CBUFF = current number of cache buffers" +msgstr "" + +#: plugins/check_nwstat.c:1623 +msgid "CDBUFF = current number of dirty cache buffers" +msgstr "" + +#: plugins/check_nwstat.c:1624 +msgid "DCB = dirty cache buffers as a percentage of the total" +msgstr "" + +#: plugins/check_nwstat.c:1625 +msgid "TCB = dirty cache buffers as a percentage of the original" +msgstr "" + +#: plugins/check_nwstat.c:1626 +msgid "OFILES = number of open files" +msgstr "" + +#: plugins/check_nwstat.c:1627 +msgid " VMF = MB of free space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1628 +msgid " VMU = MB used space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1629 +msgid " VMP = MB of purgeable space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1630 +msgid " VPF = percent free space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1631 +msgid " VKF = KB of free space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1632 +msgid " VPP = percent purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1633 +msgid " VKP = KB of purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1634 +msgid " VPNP = percent not yet purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1635 +msgid " VKNP = KB of not yet purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1636 +msgid " LRUM = LRU sitting time in minutes" +msgstr "" + +#: plugins/check_nwstat.c:1637 +msgid " LRUS = LRU sitting time in seconds" +msgstr " LRUS = LRU temps d'attente en secondes" + +#: plugins/check_nwstat.c:1638 +msgid " DSDB = check to see if DS Database is open" +msgstr "" + +#: plugins/check_nwstat.c:1639 +msgid " DSVER = NDS version" +msgstr "" + +#: plugins/check_nwstat.c:1640 +msgid " UPRB = used packet receive buffers" +msgstr " UPRB = paquets du tampon de réception utilisés" + +#: plugins/check_nwstat.c:1641 +msgid " PUPRB = percent (of max) used packet receive buffers" +msgstr "" + +#: plugins/check_nwstat.c:1642 +msgid " SAPENTRIES = number of entries in the SAP table" +msgstr "" + +#: plugins/check_nwstat.c:1643 +msgid " SAPENTRIES = number of entries in the SAP table for SAP type " +msgstr " SAPENTRIES = entrées dans la table SAP pour le type SAP " + +#: plugins/check_nwstat.c:1644 +msgid " TSYNC = timesync status" +msgstr "" + +#: plugins/check_nwstat.c:1645 +msgid " LOGINS = check to see if logins are enabled" +msgstr "" + +#: plugins/check_nwstat.c:1646 +msgid " CONNS = number of currently licensed connections" +msgstr "" + +#: plugins/check_nwstat.c:1647 +msgid " NRMH\t= NRM Summary Status" +msgstr "" + +#: plugins/check_nwstat.c:1648 +msgid " NRMP = Returns the current value for a NRM health item" +msgstr "" + +#: plugins/check_nwstat.c:1649 +msgid " NRMM = Returns the current memory stats from NRM" +msgstr "" + +#: plugins/check_nwstat.c:1650 +msgid " NRMS = Returns the current Swapfile stats from NRM" +msgstr "" + +#: plugins/check_nwstat.c:1651 +msgid " NSS1 = Statistics from _Admin:Manage_NSS\\GeneralStats.xml" +msgstr "" + +#: plugins/check_nwstat.c:1652 +msgid " NSS3 = Statistics from _Admin:Manage_NSS\\NameCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1653 +msgid " NSS4 = Statistics from _Admin:Manage_NSS\\FileStats.xml" +msgstr "" + +#: plugins/check_nwstat.c:1654 +msgid " NSS5 = Statistics from _Admin:Manage_NSS\\ObjectCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1655 +msgid " NSS6 = Statistics from _Admin:Manage_NSS\\Thread.xml" +msgstr "" + +#: plugins/check_nwstat.c:1656 +msgid "" +" NSS7 = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1657 +msgid " NLM: = check if NLM is loaded and report version" +msgstr "" + +#: plugins/check_nwstat.c:1658 +msgid " (e.g. NLM:TSANDS.NLM)" +msgstr "" + +#: plugins/check_nwstat.c:1665 +msgid "Include server version string in results" +msgstr "" + +#: plugins/check_nwstat.c:1671 +msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" +msgstr "" + +#: plugins/check_nwstat.c:1672 +msgid "" +" extension for NetWare be loaded on the Novell servers you wish to check." +msgstr "" + +#: plugins/check_nwstat.c:1673 +msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" +msgstr " (disponible depuis http://www.engr.wisc.edu/~drews/mrtg/)" + +#: plugins/check_nwstat.c:1674 +msgid "" +"- Values for critical thresholds should be lower than warning thresholds" +msgstr "" + +#: plugins/check_nwstat.c:1675 +msgid "" +" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " +msgstr "" + +#: plugins/check_nwstat.c:1676 +msgid " TCB, LRUS and LRUM." +msgstr "" + +#: plugins/check_overcr.c:123 +msgid "Unknown error fetching load data\n" +msgstr "" +"Erreur inconnue lors de la récupération des données de charge système\n" + +#: plugins/check_overcr.c:127 +msgid "Invalid response from server - no load information\n" +msgstr "Réponse invalide du serveur - pas d'information de charge système\n" + +#: plugins/check_overcr.c:133 +msgid "Invalid response from server after load 1\n" +msgstr "Réponse invalide du serveur après charge système à 1 minute\n" + +#: plugins/check_overcr.c:139 +msgid "Invalid response from server after load 5\n" +msgstr "Réponse invalide du serveur après charge système à 5 minute\n" + +#: plugins/check_overcr.c:164 +#, c-format +msgid "Load %s - %s-min load average = %0.2f" +msgstr "Charge %s - %s-moyenne minimale de charge système = %0.2f" + +#: plugins/check_overcr.c:174 +msgid "Unknown error fetching disk data\n" +msgstr "Erreur inconnue en récupérant les données des disques\n" + +#: plugins/check_overcr.c:184 plugins/check_overcr.c:236 +#: plugins/check_overcr.c:240 +msgid "Invalid response from server\n" +msgstr "Réponse invalide reçue du serveur\n" + +#: plugins/check_overcr.c:211 +msgid "Unknown error fetching network status\n" +msgstr "Erreur inconnue lors de la réception de l'état du réseau\n" + +#: plugins/check_overcr.c:221 +#, c-format +msgid "Net %s - %d connection%s on port %d" +msgstr "Net %s - %d connections%s sur le port %d" + +#: plugins/check_overcr.c:232 +msgid "Unknown error fetching process status\n" +msgstr "Erreur inconnue en récupérant l'état des processus\n" + +#: plugins/check_overcr.c:250 +#, c-format +msgid "Process %s - %d instance%s of %s running" +msgstr "Processus %s - %d instances%s de %s démarrées" + +#: plugins/check_overcr.c:277 +#, c-format +msgid "Uptime %s - Up %d days %d hours %d minutes" +msgstr "Temps de fonctionnement %s - Up %d jours %d heures %d minutes" + +#: plugins/check_overcr.c:419 +msgid "" +"This plugin attempts to contact the Over-CR collector daemon running on the" +msgstr "" +"Ce plugin essaye de joindre le service Over CR tournant sur le serveur UNIX" + +#: plugins/check_overcr.c:420 +msgid "remote UNIX server in order to gather the requested system information." +msgstr "distant afin de récupérer les informations système demandées." + +#: plugins/check_overcr.c:437 +msgid "LOAD1 = 1 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:438 +msgid "LOAD5 = 5 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:439 +msgid "LOAD15 = 15 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:440 +msgid "DPU = percent used disk space on filesystem " +msgstr "" + +#: plugins/check_overcr.c:441 +msgid "PROC = number of running processes with name " +msgstr "" + +#: plugins/check_overcr.c:442 +msgid "NET = number of active connections on TCP port " +msgstr "" + +#: plugins/check_overcr.c:443 +msgid "UPTIME = system uptime in seconds" +msgstr "" + +#: plugins/check_overcr.c:450 +msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be" +msgstr "Ce plugin requiert que le daemon collecteur Over-CR d'Eric Molitors" + +#: plugins/check_overcr.c:451 +msgid "running on the remote server." +msgstr "soit fonctionnel sur le serveur distant" + +#: plugins/check_overcr.c:452 +msgid "Over-CR can be downloaded from http://www.molitor.org/overcr" +msgstr "" + +#: plugins/check_overcr.c:453 +msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" +msgstr "Ce plugin a été testé avec la version 0.99.53 su collecteur Over-CR" + +#: plugins/check_overcr.c:457 +msgid "" +"For the available options, the critical threshold value should always be" +msgstr "" +"Pour toutes les options disponibles, le seuil critique doit toujours être" + +#: plugins/check_overcr.c:458 +msgid "" +"higher than the warning threshold value, EXCEPT with the uptime variable" +msgstr "plus grand que le seuil d'alerte SAUF pour l'option uptime" + +#: plugins/check_pgsql.c:224 +#, c-format +msgid "CRITICAL - no connection to '%s' (%s).\n" +msgstr "CRITIQUE - pas de connexion à '%s' (%s).\n" + +#: plugins/check_pgsql.c:252 +#, fuzzy, c-format +msgid " %s - database %s (%f sec.)|%s\n" +msgstr " %s - base de données %s (%d sec.)|%s\n" + +#: plugins/check_pgsql.c:320 plugins/check_time.c:277 plugins/check_time.c:289 +#: plugins/check_users.c:228 +msgid "Critical threshold must be a positive integer" +msgstr "Le seuil critique doit être un entier positif" + +#: plugins/check_pgsql.c:326 plugins/check_time.c:258 plugins/check_time.c:282 +#: plugins/check_users.c:226 +msgid "Warning threshold must be a positive integer" +msgstr "Le seuil d'avertissement doit être un entier positif" + +#: plugins/check_pgsql.c:350 +#, fuzzy +msgid "Database name exceeds the maximum length" +msgstr "Le nom de la base de données est invalide" + +#: plugins/check_pgsql.c:356 +msgid "User name is not valid" +msgstr "Le nom de l'utilisateur est invalide" + +#: plugins/check_pgsql.c:471 +#, c-format +msgid "Test whether a PostgreSQL Database is accepting connections." +msgstr "Teste si une base de données Postgresql accepte les connections." + +#: plugins/check_pgsql.c:483 +msgid "Database to check " +msgstr "" + +#: plugins/check_pgsql.c:484 +#, fuzzy, c-format +msgid "(default: %s)\n" +msgstr "(Défaut: %d)\n" + +#: plugins/check_pgsql.c:486 +msgid "Login name of user" +msgstr "Le nom d'un utilisateur" + +#: plugins/check_pgsql.c:488 +msgid "Password (BIG SECURITY ISSUE)" +msgstr "" + +#: plugins/check_pgsql.c:490 +msgid "Connection parameters (keyword = value), see below" +msgstr "" + +#: plugins/check_pgsql.c:497 +msgid "SQL query to run. Only first column in first row will be read" +msgstr "" + +#: plugins/check_pgsql.c:499 +msgid "A name for the query, this string is used instead of the query" +msgstr "" + +#: plugins/check_pgsql.c:500 +msgid "in the long output of the plugin" +msgstr "" + +#: plugins/check_pgsql.c:502 +#, fuzzy +msgid "SQL query value to result in warning status (double)" +msgstr "Décalage résultant en un avertissement (secondes)" + +#: plugins/check_pgsql.c:504 +#, fuzzy +msgid "SQL query value to result in critical status (double)" +msgstr "Décalage résultant en un état critique (secondes)" + +#: plugins/check_pgsql.c:509 +msgid "All parameters are optional." +msgstr "" + +#: plugins/check_pgsql.c:510 +msgid "" +"This plugin tests a PostgreSQL DBMS to determine whether it is active and" +msgstr "" + +#: plugins/check_pgsql.c:511 +msgid "accepting queries. In its current operation, it simply connects to the" +msgstr "" + +#: plugins/check_pgsql.c:512 +msgid "" +"specified database, and then disconnects. If no database is specified, it" +msgstr "" + +#: plugins/check_pgsql.c:513 +msgid "" +"connects to the template1 database, which is present in every functioning" +msgstr "" + +#: plugins/check_pgsql.c:514 +msgid "PostgreSQL DBMS." +msgstr "" + +#: plugins/check_pgsql.c:516 +msgid "If a query is specified using the -q option, it will be executed after" +msgstr "" + +#: plugins/check_pgsql.c:517 +msgid "connecting to the server. The result from the query has to be numeric." +msgstr "" + +#: plugins/check_pgsql.c:518 +msgid "" +"Multiple SQL commands, separated by semicolon, are allowed but the result " +msgstr "" + +#: plugins/check_pgsql.c:519 +msgid "of the last command is taken into account only. The value of the first" +msgstr "" + +#: plugins/check_pgsql.c:520 +msgid "column in the first row is used as the check result." +msgstr "" + +#: plugins/check_pgsql.c:522 +msgid "" +"See the chapter \"Monitoring Database Activity\" of the PostgreSQL manual" +msgstr "" + +#: plugins/check_pgsql.c:523 +msgid "" +"for details about how to access internal statistics of the database server." +msgstr "" + +#: plugins/check_pgsql.c:525 +msgid "" +"For a list of available connection parameters which may be used with the -o" +msgstr "" + +#: plugins/check_pgsql.c:526 +msgid "" +"command line option, see the documentation for PQconnectdb() in the chapter" +msgstr "" + +#: plugins/check_pgsql.c:527 +msgid "" +"\"libpq - C Library\" of the PostgreSQL manual. For example, this may be" +msgstr "" + +#: plugins/check_pgsql.c:528 +msgid "" +"used to specify a service name in pg_service.conf to be used for additional" +msgstr "" + +#: plugins/check_pgsql.c:529 +msgid "connection parameters: -o 'service=' or to specify the SSL mode:" +msgstr "" + +#: plugins/check_pgsql.c:530 +msgid "-o 'sslmode=require'." +msgstr "" + +#: plugins/check_pgsql.c:532 +msgid "" +"The plugin will connect to a local postmaster if no host is specified. To" +msgstr "" +"Ce plugin va se connecter sur un postmaster local si aucun hôte n'est " +"spécifié." + +#: plugins/check_pgsql.c:533 +msgid "" +"connect to a remote host, be sure that the remote postmaster accepts TCP/IP" +msgstr "" + +#: plugins/check_pgsql.c:534 +msgid "connections (start the postmaster with the -i option)." +msgstr "" + +#: plugins/check_pgsql.c:536 +msgid "" +"Typically, the monitoring user (unless the --logname option is used) should " +"be" +msgstr "" + +#: plugins/check_pgsql.c:537 +msgid "" +"able to connect to the database without a password. The plugin can also send" +msgstr "" + +#: plugins/check_pgsql.c:538 +msgid "a password, but no effort is made to obscure or encrypt the password." +msgstr "" + +#: plugins/check_pgsql.c:571 +#, c-format +msgid "QUERY %s - %s: %s.\n" +msgstr "" + +#: plugins/check_pgsql.c:571 +msgid "Error with query" +msgstr "" + +#: plugins/check_pgsql.c:577 +#, fuzzy +msgid "No rows returned" +msgstr "Pas de données valides reçues" + +#: plugins/check_pgsql.c:582 +#, fuzzy +msgid "No columns returned" +msgstr "Pas de données valides reçues" + +#: plugins/check_pgsql.c:588 +#, fuzzy +msgid "No data returned" +msgstr "Pas de données valides reçues" + +#: plugins/check_pgsql.c:597 +msgid "Is not a numeric" +msgstr "" + +#: plugins/check_pgsql.c:615 +#, fuzzy, c-format +msgid "%s returned %f" +msgstr ". %s renvoie %s" + +#: plugins/check_pgsql.c:618 +#, fuzzy, c-format +msgid "'%s' returned %f" +msgstr ". %s renvoie %s" + +#: plugins/check_ping.c:143 +msgid "CRITICAL - Could not interpret output from ping command\n" +msgstr "CRITIQUE - Impossible d'interpréter le réponse de la commande ping\n" + +#: plugins/check_ping.c:159 +#, c-format +msgid "PING %s - %sPacket loss = %d%%" +msgstr "PING %s - %s Paquets perdus = %d%%" + +#: plugins/check_ping.c:162 +#, c-format +msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms" +msgstr "PING %s - %s Paquets perdus = %d%%, RTA = %2.2f ms" + +#: plugins/check_ping.c:263 +msgid "Could not realloc() addresses\n" +msgstr "Impossible de réallouer les adresses\n" + +#: plugins/check_ping.c:278 plugins/check_ping.c:358 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr " (%s) doit être un nombre positif\n" + +#: plugins/check_ping.c:312 +#, c-format +msgid " (%s) must be an integer percentage\n" +msgstr " (%s) doit être un pourcentage entier\n" + +#: plugins/check_ping.c:323 +#, c-format +msgid " (%s) must be an integer percentage\n" +msgstr " (%s) doit être un pourcentage entier\n" + +#: plugins/check_ping.c:334 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr " (%s) doit être un nombre positif\n" + +#: plugins/check_ping.c:345 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr " (%s) doit être un nombre positif\n" + +#: plugins/check_ping.c:378 +#, c-format +msgid "" +"%s: Warning threshold must be integer or percentage!\n" +"\n" +msgstr "%s: Le seuil d'avertissement doit être un entier ou un pourcentage!\n" + +#: plugins/check_ping.c:391 +#, c-format +msgid " was not set\n" +msgstr " n'a pas été indiqué\n" + +#: plugins/check_ping.c:395 +#, c-format +msgid " was not set\n" +msgstr " n'a pas été indiqué\n" + +#: plugins/check_ping.c:399 +#, c-format +msgid " was not set\n" +msgstr " n'a pas été indiqué\n" + +#: plugins/check_ping.c:403 +#, c-format +msgid " was not set\n" +msgstr " n'a pas été indiqué\n" + +#: plugins/check_ping.c:407 +#, c-format +msgid " (%f) cannot be larger than (%f)\n" +msgstr " (%f) ne peut pas être plus large que (%f)\n" + +#: plugins/check_ping.c:411 +#, c-format +msgid " (%d) cannot be larger than (%d)\n" +msgstr " (%d) ne peut pas être plus large que (%d)\n" + +#: plugins/check_ping.c:448 +#, c-format +msgid "Cannot open stderr for %s\n" +msgstr "Impossible d'ouvrir le canal d'erreur standard pour %s\n" + +#: plugins/check_ping.c:505 plugins/check_ping.c:507 +msgid "System call sent warnings to stderr " +msgstr "" +"Les appel système enverront leurs messages d'avertissement vers le canal " +"d'erreur standard" + +#: plugins/check_ping.c:533 +#, fuzzy, c-format +msgid "CRITICAL - Network Unreachable (%s)\n" +msgstr "CRITIQUE - Le réseau est inaccessible (%s)" + +#: plugins/check_ping.c:535 +#, fuzzy, c-format +msgid "CRITICAL - Host Unreachable (%s)\n" +msgstr "CRITIQUE - Hôte inaccessible (%s)" + +#: plugins/check_ping.c:537 +#, fuzzy, c-format +msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)\n" +msgstr "CRITIQUE - Paquet ICMP incorrect: Port inaccessible (%s)" + +#: plugins/check_ping.c:539 +#, fuzzy, c-format +msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)\n" +msgstr "CRITIQUE - Paquet ICMP incorrect: Protocole inaccessible (%s)" + +#: plugins/check_ping.c:541 +#, fuzzy, c-format +msgid "CRITICAL - Network Prohibited (%s)\n" +msgstr "CRITIQUE - L'accès au réseau est interdit (%s)" + +#: plugins/check_ping.c:543 +#, fuzzy, c-format +msgid "CRITICAL - Host Prohibited (%s)\n" +msgstr "CRITIQUE - L'accès a l'hôte est interdit (%s)" + +#: plugins/check_ping.c:545 +#, fuzzy, c-format +msgid "CRITICAL - Packet Filtered (%s)\n" +msgstr "CRITIQUE - Paquet filtré (%s)" + +#: plugins/check_ping.c:547 +#, fuzzy, c-format +msgid "CRITICAL - Host not found (%s)\n" +msgstr "CRITIQUE - Hôte non trouvé (%s)" + +#: plugins/check_ping.c:549 +#, fuzzy, c-format +msgid "CRITICAL - Time to live exceeded (%s)\n" +msgstr "CRITIQUE - La durée de vie du paquet est dépassée (%s)" + +#: plugins/check_ping.c:551 +#, fuzzy, c-format +msgid "CRITICAL - Destination Unreachable (%s)\n" +msgstr "CRITIQUE - Hôte inaccessible (%s)" + +#: plugins/check_ping.c:558 +#, fuzzy +msgid "Unable to realloc warn_text\n" +msgstr "Impossible de réattribuer le texte d'avertissement" + +#: plugins/check_ping.c:575 +#, c-format +msgid "Use ping to check connection statistics for a remote host." +msgstr "" +"Utilise ping pour vérifier les statistiques de connections d'un hôte distant." + +#: plugins/check_ping.c:587 +msgid "host to ping" +msgstr "hôte à tester" + +#: plugins/check_ping.c:593 +msgid "number of ICMP ECHO packets to send" +msgstr "nombre de paquets ICMP à envoyer" + +#: plugins/check_ping.c:594 +#, c-format +msgid "(Default: %d)\n" +msgstr "(Défaut: %d)\n" + +#: plugins/check_ping.c:596 +msgid "show HTML in the plugin output (obsoleted by urlize)" +msgstr "" + +#: plugins/check_ping.c:601 +msgid "THRESHOLD is ,% where is the round trip average travel" +msgstr "" +"Le seuil est ,% où est le temps moyen pour l'aller retour (ms)" + +#: plugins/check_ping.c:602 +msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" +msgstr "qui déclenche un résultat AVERTISSEMENT ou CRITIQUE, et est le " + +#: plugins/check_ping.c:603 +msgid "percentage of packet loss to trigger an alarm state." +msgstr "pourcentage de paquets perdus pour déclencher une alarme." + +#: plugins/check_ping.c:606 +msgid "" +"This plugin uses the ping command to probe the specified host for packet loss" +msgstr "" +"Ce plugin utilise la commande ping pour vérifier l'hôte spécifié pour les " +"pertes de paquets" + +#: plugins/check_ping.c:607 +msgid "" +"(percentage) and round trip average (milliseconds). It can produce HTML " +"output" +msgstr "" + +#: plugins/check_ping.c:608 +msgid "" +"linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" +msgstr "" + +#: plugins/check_ping.c:609 +msgid "the contrib area of the downloads section at http://www.nagios.org/" +msgstr "" + +#: plugins/check_procs.c:193 +#, c-format +msgid "CMD: %s\n" +msgstr "Commande: %s\n" + +#: plugins/check_procs.c:198 +msgid "System call sent warnings to stderr" +msgstr "" +"L'appel système à retourné des avertissement vers le canal d'erreur standard" + +#: plugins/check_procs.c:326 +#, c-format +msgid "Not parseable: %s" +msgstr "Impossible de parcourir les arguments: %s" + +#: plugins/check_procs.c:331 +#, c-format +msgid "Unable to read output\n" +msgstr "Impossible de lire les données en entrée\n" + +#: plugins/check_procs.c:348 +#, c-format +msgid "%d warn out of " +msgstr "%d avertissements sur" + +#: plugins/check_procs.c:353 +#, c-format +msgid "%d crit, %d warn out of " +msgstr "%d crit, %d alertes sur " + +#: plugins/check_procs.c:359 +#, c-format +msgid " with %s" +msgstr " avec %s" + +#: plugins/check_procs.c:453 +msgid "Parent Process ID must be an integer!" +msgstr "L'identifiant du processus parent doit être un entier!" + +#: plugins/check_procs.c:459 plugins/check_procs.c:586 +#, c-format +msgid "%s%sSTATE = %s" +msgstr "%s%sETAT = %s" + +#: plugins/check_procs.c:468 +msgid "UID was not found" +msgstr "L'UID n'a pas été trouvé" + +#: plugins/check_procs.c:474 +msgid "User name was not found" +msgstr "L'utilisateur n'a pas été trouvé" + +#: plugins/check_procs.c:489 +#, c-format +msgid "%s%scommand name '%s'" +msgstr "%s%snom de la commande '%s'" + +#: plugins/check_procs.c:524 +msgid "RSS must be an integer!" +msgstr "RSS doit être un entier!" + +#: plugins/check_procs.c:531 +msgid "VSZ must be an integer!" +msgstr "VSZ doit être un entier!" + +#: plugins/check_procs.c:539 +msgid "PCPU must be a float!" +msgstr "PCPU doit être un nombre en virgule flottante!" + +#: plugins/check_procs.c:563 +msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" +msgstr "Metric doit être l'un des PROCS, VSZ, RSS, CPU, ELAPSED!" + +#: plugins/check_procs.c:694 +msgid "" +"Checks all processes and generates WARNING or CRITICAL states if the " +"specified" +msgstr "" + +#: plugins/check_procs.c:695 +msgid "" +"metric is outside the required threshold ranges. The metric defaults to " +"number" +msgstr "" + +#: plugins/check_procs.c:696 +msgid "" +"of processes. Search filters can be applied to limit the processes to check." +msgstr "" + +#: plugins/check_procs.c:705 +msgid "Generate warning state if metric is outside this range" +msgstr "" + +#: plugins/check_procs.c:707 +msgid "Generate critical state if metric is outside this range" +msgstr "" + +#: plugins/check_procs.c:709 +msgid "Check thresholds against metric. Valid types:" +msgstr "" + +#: plugins/check_procs.c:710 +msgid "PROCS - number of processes (default)" +msgstr "PROCS - nombre de processus (défaut)" + +#: plugins/check_procs.c:711 +msgid "VSZ - virtual memory size" +msgstr "VSZ - taille mémoire virtuelle" + +#: plugins/check_procs.c:712 +msgid "RSS - resident set memory size" +msgstr "" + +#: plugins/check_procs.c:713 +msgid "CPU - percentage CPU" +msgstr "CPU - pourcentage du processeur" + +#: plugins/check_procs.c:716 +msgid "ELAPSED - time elapsed in seconds" +msgstr "ELAPSED - temps écoulé en secondes" + +#: plugins/check_procs.c:721 +msgid "Extra information. Up to 3 verbosity levels" +msgstr "informations supplémentaires. Jusqu'à 3 niveaux de verbosité" + +#: plugins/check_procs.c:724 +msgid "Filter own process the traditional way by PID instead of /proc/pid/exe" +msgstr "" + +#: plugins/check_procs.c:729 +msgid "Only scan for processes that have, in the output of `ps`, one or" +msgstr "" + +#: plugins/check_procs.c:730 +msgid "more of the status flags you specify (for example R, Z, S, RS," +msgstr "" + +#: plugins/check_procs.c:731 +msgid "RSZDT, plus others based on the output of your 'ps' command)." +msgstr "" + +#: plugins/check_procs.c:733 +msgid "Only scan for children of the parent process ID indicated." +msgstr "" + +#: plugins/check_procs.c:735 +msgid "Only scan for processes with VSZ higher than indicated." +msgstr "" + +#: plugins/check_procs.c:737 +msgid "Only scan for processes with RSS higher than indicated." +msgstr "" + +#: plugins/check_procs.c:739 +msgid "Only scan for processes with PCPU higher than indicated." +msgstr "" + +#: plugins/check_procs.c:741 +msgid "Only scan for processes with user name or ID indicated." +msgstr "" + +#: plugins/check_procs.c:743 +msgid "Only scan for processes with args that contain STRING." +msgstr "" + +#: plugins/check_procs.c:745 +msgid "Only scan for processes with args that contain the regex STRING." +msgstr "" + +#: plugins/check_procs.c:747 +msgid "Only scan for exact matches of COMMAND (without path)." +msgstr "" + +#: plugins/check_procs.c:749 +msgid "Only scan for non kernel threads (works on Linux only)." +msgstr "" + +#: plugins/check_procs.c:751 +#, c-format +msgid "" +"\n" +"RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n" +"specified 'max:min', a warning status will be generated if the\n" +"count is inside the specified range\n" +"\n" +msgstr "" +"\n" +"Les seuils sont spécifiés 'min:max' or 'min:' or ':max' (or 'max').\n" +"Si spécifié 'max:min', un avertissement sera généré si le nombre\n" +"est à l'intérieur du seuil\n" +"\n" + +#: plugins/check_procs.c:756 +#, c-format +msgid "" +"This plugin checks the number of currently running processes and\n" +"generates WARNING or CRITICAL states if the process count is outside\n" +"the specified threshold ranges. The process count can be filtered by\n" +"process owner, parent process PID, current state (e.g., 'Z'), or may\n" +"be the total number of running processes\n" +"\n" +msgstr "" +"Ce plugin vérifie le nombre de processus actifs et génère un résultat \n" +"AVERTISSEMENT ou CRITIQUE si le nombre de processus est au dessus du seuil\n" +"spécifié. Le total des processus peut être filtré par propriétaire, " +"processus parent,\n" +"état actuel (ex: 'Z'), ou par le nombre de processus en cours d'exécution\n" +"\n" + +#: plugins/check_procs.c:765 +msgid "Warning if not two processes with command name portsentry." +msgstr "" + +#: plugins/check_procs.c:766 +msgid "Critical if < 2 or > 1024 processes" +msgstr "" + +#: plugins/check_procs.c:768 +msgid "Critical if not at least 1 process with command sshd" +msgstr "" + +#: plugins/check_procs.c:770 +msgid "Warning if > 1024 processes with command name sshd." +msgstr "" + +#: plugins/check_procs.c:771 +msgid "Critical if < 1 processes with command name sshd." +msgstr "" + +#: plugins/check_procs.c:773 +msgid "Warning alert if > 10 processes with command arguments containing" +msgstr "" + +#: plugins/check_procs.c:774 +msgid "'/usr/local/bin/perl' and owned by root" +msgstr "" + +#: plugins/check_procs.c:776 +msgid "Alert if VSZ of any processes over 50K or 100K" +msgstr "" + +#: plugins/check_procs.c:778 +msgid "Alert if CPU of any processes over 10% or 20%" +msgstr "" + +#: plugins/check_radius.c:177 +#, fuzzy +msgid "Config file error\n" +msgstr "Erreur dans le fichier de configuration" + +#: plugins/check_radius.c:186 +#, fuzzy +msgid "Out of Memory?\n" +msgstr "Manque de Mémoire?" + +#: plugins/check_radius.c:190 +#, fuzzy +msgid "Invalid NAS-Identifier\n" +msgstr "NAS-Identifier invalide" + +#: plugins/check_radius.c:195 plugins/check_smtp.c:153 +#, c-format +msgid "gethostname() failed!\n" +msgstr "La commande gethostname() à échoué\n" + +#: plugins/check_radius.c:199 plugins/check_radius.c:202 +#, fuzzy +msgid "Invalid NAS-IP-Address\n" +msgstr "NAS-IP-Address invalide" + +#: plugins/check_radius.c:213 +#, fuzzy +msgid "Timeout\n" +msgstr "Temps dépassé" + +#: plugins/check_radius.c:215 +#, fuzzy +msgid "Auth Error\n" +msgstr "Erreur d'authentification" + +#: plugins/check_radius.c:217 +#, fuzzy +msgid "Auth Failed\n" +msgstr "L'authentification à échoué" + +#: plugins/check_radius.c:219 +#, fuzzy +msgid "Bad Response\n" +msgstr "Réponse invalide" + +#: plugins/check_radius.c:223 +#, fuzzy +msgid "Auth OK\n" +msgstr "L'authentification à réussi" + +#: plugins/check_radius.c:224 +#, c-format +msgid "Unexpected result code %d" +msgstr "Résultat inattendu: %d" + +#: plugins/check_radius.c:313 +msgid "Number of retries must be a positive integer" +msgstr "Le nombre d'essai doit être un entier positif" + +#: plugins/check_radius.c:327 +msgid "User not specified" +msgstr "L'utilisateur n'a pas été spécifié" + +#: plugins/check_radius.c:329 +msgid "Password not specified" +msgstr "Le mot de passe n'a pas été spécifié" + +#: plugins/check_radius.c:331 +msgid "Configuration file not specified" +msgstr "Le fichier de configuration n'a pas été spécifié" + +#: plugins/check_radius.c:349 +msgid "Tests to see if a RADIUS server is accepting connections." +msgstr "Teste si un serveur RADIUS accepte les connections." + +#: plugins/check_radius.c:361 +msgid "The user to authenticate" +msgstr "" + +#: plugins/check_radius.c:363 +msgid "Password for authentication (SECURITY RISK)" +msgstr "" + +#: plugins/check_radius.c:365 +msgid "NAS identifier" +msgstr "" + +#: plugins/check_radius.c:367 +msgid "NAS IP Address" +msgstr "Adresse IP NAS" + +#: plugins/check_radius.c:369 +msgid "Configuration file" +msgstr "Fichier de configuration" + +#: plugins/check_radius.c:371 +msgid "Response string to expect from the server" +msgstr "" + +#: plugins/check_radius.c:373 +msgid "Number of times to retry a failed connection" +msgstr "" + +#: plugins/check_radius.c:378 +msgid "" +"This plugin tests a RADIUS server to see if it is accepting connections." +msgstr "" +"Ce plugin teste un serveur RADIUS afin de vérifier si il accepte les " +"connections." + +#: plugins/check_radius.c:379 +msgid "" +"The server to test must be specified in the invocation, as well as a user" +msgstr "" + +#: plugins/check_radius.c:380 +msgid "" +"name and password. A configuration file may also be present. The format of" +msgstr "" + +#: plugins/check_radius.c:381 +msgid "" +"the configuration file is described in the radiusclient library sources." +msgstr "" + +#: plugins/check_radius.c:382 +msgid "The password option presents a substantial security issue because the" +msgstr "" + +#: plugins/check_radius.c:383 +msgid "" +"password can possibly be determined by careful watching of the command line" +msgstr "" + +#: plugins/check_radius.c:384 +msgid "in a process listing. This risk is exacerbated because the plugin will" +msgstr "" + +#: plugins/check_radius.c:385 +msgid "" +"typically be executed at regular predictable intervals. Please be sure that" +msgstr "" + +#: plugins/check_radius.c:386 +msgid "the password used does not allow access to sensitive system resources." +msgstr "" + +#: plugins/check_real.c:91 +#, c-format +msgid "Unable to connect to %s on port %d\n" +msgstr "Impossible de se connecter à %s sur le port %d\n" + +#: plugins/check_real.c:113 +#, c-format +msgid "No data received from %s\n" +msgstr "Pas de données reçues de %s\n" + +#: plugins/check_real.c:118 plugins/check_real.c:192 +msgid "Invalid REAL response received from host" +msgstr "Réponses REAL invalide reçue de l'hôte" + +#: plugins/check_real.c:120 plugins/check_real.c:194 +#, c-format +msgid "Invalid REAL response received from host on port %d\n" +msgstr "Réponses REAL invalide reçue de l'hôte sur le port %d\n" + +#: plugins/check_real.c:185 plugins/check_tcp.c:315 +#, c-format +msgid "No data received from host\n" +msgstr "Pas de données reçues de l'hôte\n" + +#: plugins/check_real.c:248 +#, c-format +msgid "REAL %s - %d second response time\n" +msgstr "REAL %s - %d secondes de temps de réponse\n" + +#: plugins/check_real.c:337 plugins/check_ups.c:539 +msgid "Warning time must be a positive integer" +msgstr "Le seuil d'avertissement doit être un entier positif" + +#: plugins/check_real.c:346 plugins/check_ups.c:530 +msgid "Critical time must be a positive integer" +msgstr "Le seuil critique doit être un entier positif" + +#: plugins/check_real.c:382 +msgid "You must provide a server to check" +msgstr "Vous devez fournir un serveur à vérifier" + +#: plugins/check_real.c:414 +msgid "This plugin tests the REAL service on the specified host." +msgstr "Ce plugin teste le service REAL sur l'hôte spécifié." + +#: plugins/check_real.c:426 +msgid "Connect to this url" +msgstr "" + +#: plugins/check_real.c:428 +#, c-format +msgid "String to expect in first line of server response (default: %s)\n" +msgstr "" +"Texte attendu dans la première ligne de réponse du serveur (défaut: %s)\n" + +#: plugins/check_real.c:438 +msgid "This plugin will attempt to open an RTSP connection with the host." +msgstr "Ce plugin va essayer d'ouvrir un connexion RTSP avec l'hôte." + +#: plugins/check_real.c:439 plugins/check_smtp.c:847 +msgid "Successul connects return STATE_OK, refusals and timeouts return" +msgstr "" + +#: plugins/check_real.c:440 +msgid "" +"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," +msgstr "" + +#: plugins/check_real.c:441 +msgid "" +"but incorrect response messages from the host result in STATE_WARNING return" +msgstr "" + +#: plugins/check_real.c:442 +msgid "values." +msgstr "" + +#: plugins/check_smtp.c:149 plugins/check_swap.c:286 plugins/check_swap.c:292 +#, c-format +msgid "malloc() failed!\n" +msgstr "l'allocation mémoire à échoué!\n" + +#: plugins/check_smtp.c:190 plugins/check_smtp.c:202 +#, c-format +msgid "recv() failed\n" +msgstr "La commande recv() à échoué\n" + +#: plugins/check_smtp.c:212 +#, c-format +msgid "WARNING - TLS not supported by server\n" +msgstr "AVERTISSEMENT: - TLS n'est pas supporté par ce serveur\n" + +#: plugins/check_smtp.c:224 +#, c-format +msgid "Server does not support STARTTLS\n" +msgstr "Le serveur ne supporte pas STARTTLS\n" + +#: plugins/check_smtp.c:230 +#, c-format +msgid "CRITICAL - Cannot create SSL context.\n" +msgstr "CRITIQUE - Impossible de créer le contexte SSL.\n" + +#: plugins/check_smtp.c:250 +msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." +msgstr "" + +#: plugins/check_smtp.c:255 +#, c-format +msgid "sent %s" +msgstr "envoyé %s" + +#: plugins/check_smtp.c:257 +msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." +msgstr "" + +#: plugins/check_smtp.c:287 +#, c-format +msgid "Invalid SMTP response received from host: %s\n" +msgstr "Réponse SMTP reçue de l'hôte invalide: %s\n" + +#: plugins/check_smtp.c:289 +#, c-format +msgid "Invalid SMTP response received from host on port %d: %s\n" +msgstr "Réponse SMTP reçue de l'hôte sur le port %d invalide: %s\n" + +#: plugins/check_smtp.c:312 plugins/check_snmp.c:863 +#, c-format +msgid "Could Not Compile Regular Expression" +msgstr "Impossible de compiler l'expression rationnelle" + +#: plugins/check_smtp.c:321 +#, c-format +msgid "SMTP %s - Invalid response '%s' to command '%s'\n" +msgstr "SMTP %s - réponse invalide de '%s' à la commande '%s'\n" + +#: plugins/check_smtp.c:325 plugins/check_snmp.c:538 +#, c-format +msgid "Execute Error: %s\n" +msgstr "Erreur d'exécution: %s\n" + +#: plugins/check_smtp.c:339 +msgid "no authuser specified, " +msgstr "Pas d'utilisateur pour l'authentification spécifié, " + +#: plugins/check_smtp.c:344 +msgid "no authpass specified, " +msgstr "pas de mot de passe spécifié, " + +#: plugins/check_smtp.c:351 plugins/check_smtp.c:372 plugins/check_smtp.c:392 +#: plugins/check_smtp.c:701 +#, c-format +msgid "sent %s\n" +msgstr "envoyé %s\n" + +#: plugins/check_smtp.c:354 +msgid "recv() failed after AUTH LOGIN, " +msgstr "recv() à échoué après AUTH LOGIN, " + +#: plugins/check_smtp.c:359 plugins/check_smtp.c:380 plugins/check_smtp.c:400 +#: plugins/check_smtp.c:712 +#, c-format +msgid "received %s\n" +msgstr "reçu %s\n" + +#: plugins/check_smtp.c:363 +msgid "invalid response received after AUTH LOGIN, " +msgstr "Réponse invalide reçue après AUTH LOGIN, " + +#: plugins/check_smtp.c:376 +msgid "recv() failed after sending authuser, " +msgstr "La commande recv() a échoué après authuser, " + +#: plugins/check_smtp.c:384 +msgid "invalid response received after authuser, " +msgstr "Réponse invalide reçue après authuser, " + +#: plugins/check_smtp.c:396 +msgid "recv() failed after sending authpass, " +msgstr "la commande recv() à échoué après authpass, " + +#: plugins/check_smtp.c:404 +msgid "invalid response received after authpass, " +msgstr "Réponse invalide reçue après authpass, " + +#: plugins/check_smtp.c:411 +msgid "only authtype LOGIN is supported, " +msgstr "seul la méthode d'authentification LOGIN est supportée, " + +#: plugins/check_smtp.c:435 +#, c-format +msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" +msgstr "SMTP %s - %s%.3f sec. de temps de réponse%s%s|%s\n" + +#: plugins/check_smtp.c:546 plugins/check_smtp.c:558 +#, c-format +msgid "Could not realloc() units [%d]\n" +msgstr "Impossible de réallouer des unités [%d]\n" + +#: plugins/check_smtp.c:566 +#, fuzzy +msgid "Critical time must be a positive" +msgstr "Le seuil critique doit être un entier positif" + +#: plugins/check_smtp.c:574 +#, fuzzy +msgid "Warning time must be a positive" +msgstr "Le seuil d'avertissement doit être un entier positif" + +#: plugins/check_smtp.c:617 +msgid "SSL support not available - install OpenSSL and recompile" +msgstr "SSL n'est pas disponible - installer OpenSSL et recompilez" + +#: plugins/check_smtp.c:692 plugins/check_smtp.c:697 +#, c-format +msgid "Connection closed by server before sending QUIT command\n" +msgstr "" + +#: plugins/check_smtp.c:707 +#, c-format +msgid "recv() failed after QUIT." +msgstr "recv() à échoué après QUIT." + +#: plugins/check_smtp.c:709 +#, c-format +msgid "Connection reset by peer." +msgstr "" + +#: plugins/check_smtp.c:799 +msgid "This plugin will attempt to open an SMTP connection with the host." +msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte." + +#: plugins/check_smtp.c:813 +#, c-format +msgid " String to expect in first line of server response (default: '%s')\n" +msgstr "" +" Texte attendu dans la première ligne de réponse du serveur (défaut: " +"'%s')\n" + +#: plugins/check_smtp.c:815 +msgid "SMTP command (may be used repeatedly)" +msgstr "Commande SMTP (peut être utilisé plusieurs fois)" + +#: plugins/check_smtp.c:817 +msgid "Expected response to command (may be used repeatedly)" +msgstr "" + +#: plugins/check_smtp.c:819 +msgid "FROM-address to include in MAIL command, required by Exchange 2000" +msgstr "" + +#: plugins/check_smtp.c:821 +msgid "FQDN used for HELO" +msgstr "" + +#: plugins/check_smtp.c:824 plugins/check_tcp.c:689 +msgid "Minimum number of days a certificate has to be valid." +msgstr "Nombre de jours minimum pour que le certificat soit valide." + +#: plugins/check_smtp.c:826 +msgid "Use STARTTLS for the connection." +msgstr "" + +#: plugins/check_smtp.c:830 +msgid "SMTP AUTH type to check (default none, only LOGIN supported)" +msgstr "" + +#: plugins/check_smtp.c:832 +msgid "SMTP AUTH username" +msgstr "" + +#: plugins/check_smtp.c:834 +msgid "SMTP AUTH password" +msgstr "" + +#: plugins/check_smtp.c:836 +msgid "Send LHLO instead of HELO/EHLO" +msgstr "" + +#: plugins/check_smtp.c:838 +msgid "Ignore failure when sending QUIT command to server" +msgstr "" + +#: plugins/check_smtp.c:848 +msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" +msgstr "" + +#: plugins/check_smtp.c:849 +msgid "connects, but incorrect response messages from the host result in" +msgstr "" + +#: plugins/check_smtp.c:850 +msgid "STATE_WARNING return values." +msgstr "" + +#: plugins/check_snmp.c:175 plugins/check_snmp.c:624 +msgid "Cannot malloc" +msgstr "" + +#: plugins/check_snmp.c:366 +#, c-format +msgid "External command error: %s\n" +msgstr "Erreur d'exécution de commande externe: %s\n" + +#: plugins/check_snmp.c:371 +#, c-format +msgid "External command error with no output (return code: %d)\n" +msgstr "" + +#: plugins/check_snmp.c:484 plugins/check_snmp.c:486 plugins/check_snmp.c:488 +#: plugins/check_snmp.c:490 +#, fuzzy, c-format +msgid "No valid data returned (%s)\n" +msgstr "Pas de données valides reçues" + +#: plugins/check_snmp.c:502 +msgid "Time duration between plugin calls is invalid" +msgstr "" + +#: plugins/check_snmp.c:630 +msgid "Cannot asprintf()" +msgstr "" + +#: plugins/check_snmp.c:636 +#, fuzzy +msgid "Cannot realloc()" +msgstr "Impossible de réallouer des unités\n" + +#: plugins/check_snmp.c:652 +msgid "No previous data to calculate rate - assume okay" +msgstr "" + +#: plugins/check_snmp.c:802 +msgid "Retries interval must be a positive integer" +msgstr "L'intervalle pour les essais doit être un entier positif" + +#: plugins/check_snmp.c:839 +#, fuzzy +msgid "Exit status must be a positive integer" +msgstr "Maxbytes doit être un entier positif" + +#: plugins/check_snmp.c:888 +#, c-format +msgid "Could not reallocate labels[%d]" +msgstr "Impossible de réallouer des labels[%d]" + +#: plugins/check_snmp.c:901 +msgid "Could not reallocate labels\n" +msgstr "Impossible de réallouer des labels\n" + +#: plugins/check_snmp.c:917 +#, c-format +msgid "Could not reallocate units [%d]\n" +msgstr "Impossible de réallouer des unités [%d]\n" + +#: plugins/check_snmp.c:929 +msgid "Could not realloc() units\n" +msgstr "Impossible de réallouer des unités\n" + +#: plugins/check_snmp.c:946 +#, fuzzy +msgid "Rate multiplier must be a positive integer" +msgstr "La taille du paquet doit être un entier positif" + +#: plugins/check_snmp.c:1021 +msgid "No host specified\n" +msgstr "Pas d'hôte spécifié\n" + +#: plugins/check_snmp.c:1025 +msgid "No OIDs specified\n" +msgstr "Pas de compteur spécifié\n" + +#: plugins/check_snmp.c:1048 plugins/check_snmp.c:1066 +#: plugins/check_snmp.c:1084 +#, c-format +msgid "Required parameter: %s\n" +msgstr "" + +#: plugins/check_snmp.c:1059 +msgid "Invalid seclevel" +msgstr "" + +#: plugins/check_snmp.c:1105 +msgid "Invalid SNMP version" +msgstr "Version de SNMP invalide" + +#: plugins/check_snmp.c:1122 +msgid "Unbalanced quotes\n" +msgstr "Guillemets manquants\n" + +#: plugins/check_snmp.c:1178 +#, c-format +msgid "multiplier set (%.1f), but input is not a number: %s" +msgstr "" + +#: plugins/check_snmp.c:1209 +msgid "Check status of remote machines and obtain system information via SNMP" +msgstr "" +"Vérifie l'état des machines distantes et obtient l'information système via " +"SNMP" + +#: plugins/check_snmp.c:1223 +msgid "Use SNMP GETNEXT instead of SNMP GET" +msgstr "Utiliser SNMP GETNEXT au lieu de SNMP GET" + +#: plugins/check_snmp.c:1225 +msgid "SNMP protocol version" +msgstr "Version du protocole SNMP" + +#: plugins/check_snmp.c:1227 +#, fuzzy +msgid "SNMPv3 context" +msgstr "Nom d'utilisateur SNMPv3" + +#: plugins/check_snmp.c:1229 +msgid "SNMPv3 securityLevel" +msgstr "Niveau de sécurité SNMPv3 (securityLevel)" + +#: plugins/check_snmp.c:1231 +msgid "SNMPv3 auth proto" +msgstr "Protocole d'authentification SNMPv3" + +#: plugins/check_snmp.c:1233 +msgid "SNMPv3 priv proto (default DES)" +msgstr "" + +#: plugins/check_snmp.c:1237 +msgid "Optional community string for SNMP communication" +msgstr "Communauté optionnelle pour la communication SNMP" + +#: plugins/check_snmp.c:1238 +msgid "default is" +msgstr "défaut:" + +#: plugins/check_snmp.c:1240 +msgid "SNMPv3 username" +msgstr "Nom d'utilisateur SNMPv3" + +#: plugins/check_snmp.c:1242 +msgid "SNMPv3 authentication password" +msgstr "Mot de passe d'authentification SNMPv3" + +#: plugins/check_snmp.c:1244 +msgid "SNMPv3 privacy password" +msgstr "Mot de passe de confidentialité SNMPv3" + +#: plugins/check_snmp.c:1248 +msgid "Object identifier(s) or SNMP variables whose value you wish to query" +msgstr "" + +#: plugins/check_snmp.c:1250 +msgid "" +"List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL'" +msgstr "" + +#: plugins/check_snmp.c:1251 +msgid "for symbolic OIDs.)" +msgstr "" + +#: plugins/check_snmp.c:1253 +msgid "Delimiter to use when parsing returned data. Default is" +msgstr "" + +#: plugins/check_snmp.c:1254 +msgid "Any data on the right hand side of the delimiter is considered" +msgstr "" + +#: plugins/check_snmp.c:1255 +msgid "to be the data that should be used in the evaluation." +msgstr "" + +#: plugins/check_snmp.c:1257 +msgid "If the check returns a 0 length string or NULL value" +msgstr "" + +#: plugins/check_snmp.c:1258 +msgid "This option allows you to choose what status you want it to exit" +msgstr "" + +#: plugins/check_snmp.c:1259 +msgid "Excluding this option renders the default exit of 3(STATE_UNKNOWN)" +msgstr "" + +#: plugins/check_snmp.c:1260 +msgid "0 = OK" +msgstr "" + +#: plugins/check_snmp.c:1261 +#, fuzzy +msgid "1 = WARNING" +msgstr "AVERTISSEMENT" + +#: plugins/check_snmp.c:1262 +#, fuzzy +msgid "2 = CRITICAL" +msgstr "CRITIQUE" + +#: plugins/check_snmp.c:1263 +#, fuzzy +msgid "3 = UNKNOWN" +msgstr "INCONNU" + +#: plugins/check_snmp.c:1267 +msgid "Warning threshold range(s)" +msgstr "Valeurs pour le seuil d'avertissement" + +#: plugins/check_snmp.c:1269 +msgid "Critical threshold range(s)" +msgstr "Valeurs pour le seuil critique" + +#: plugins/check_snmp.c:1271 +msgid "Enable rate calculation. See 'Rate Calculation' below" +msgstr "" + +#: plugins/check_snmp.c:1273 +msgid "" +"Converts rate per second. For example, set to 60 to convert to per minute" +msgstr "" + +#: plugins/check_snmp.c:1275 +msgid "Add/substract the specified OFFSET to numeric sensor data" +msgstr "" + +#: plugins/check_snmp.c:1279 +msgid "Return OK state (for that OID) if STRING is an exact match" +msgstr "" + +#: plugins/check_snmp.c:1281 +msgid "" +"Return OK state (for that OID) if extended regular expression REGEX matches" +msgstr "" + +#: plugins/check_snmp.c:1283 +msgid "" +"Return OK state (for that OID) if case-insensitive extended REGEX matches" +msgstr "" + +#: plugins/check_snmp.c:1285 +msgid "Invert search result (CRITICAL if found)" +msgstr "" + +#: plugins/check_snmp.c:1289 +msgid "Prefix label for output from plugin" +msgstr "" + +#: plugins/check_snmp.c:1291 +msgid "Units label(s) for output data (e.g., 'sec.')." +msgstr "" + +#: plugins/check_snmp.c:1293 +msgid "Separates output on multiple OID requests" +msgstr "" + +#: plugins/check_snmp.c:1295 +msgid "Multiplies current value, 0 < n < 1 works as divider, defaults to 1" +msgstr "" + +#: plugins/check_snmp.c:1297 +msgid "C-style format string for float values (see option -M)" +msgstr "" + +#: plugins/check_snmp.c:1300 +msgid "" +"NOTE the final timeout value is calculated using this formula: " +"timeout_interval * retries + 5" +msgstr "" + +#: plugins/check_snmp.c:1302 +#, fuzzy +msgid "Number of retries to be used in the requests, default: " +msgstr "Le nombre d'essai pour les requêtes" + +#: plugins/check_snmp.c:1305 +msgid "Label performance data with OIDs instead of --label's" +msgstr "" + +#: plugins/check_snmp.c:1310 +msgid "" +"This plugin uses the 'snmpget' command included with the NET-SNMP package." +msgstr "" + +#: plugins/check_snmp.c:1311 +msgid "" +"if you don't have the package installed, you will need to download it from" +msgstr "" +"Si vous n'avez pas le programme installé, vous devrez le télécharger depuis" + +#: plugins/check_snmp.c:1312 +msgid "http://net-snmp.sourceforge.net before you can use this plugin." +msgstr "http://net-snmp.sourceforge.net avant de pouvoir utiliser ce plugin." + +#: plugins/check_snmp.c:1316 +#, fuzzy +msgid "" +"- Multiple OIDs (and labels) may be indicated by a comma or space-delimited " +msgstr "" +"- Des OIDs multiples peuvent être séparées par des virgules ou des espaces" + +#: plugins/check_snmp.c:1317 +#, fuzzy +msgid "list (lists with internal spaces must be quoted)." +msgstr "(Les liste avec espaces doivent être entre guillemets). Max:" + +#: plugins/check_snmp.c:1321 +msgid "" +"- When checking multiple OIDs, separate ranges by commas like '-w " +"1:10,1:,:20'" +msgstr "" + +#: plugins/check_snmp.c:1322 +msgid "- Note that only one string and one regex may be checked at present" +msgstr "" + +#: plugins/check_snmp.c:1323 +msgid "" +"- All evaluation methods other than PR, STR, and SUBSTR expect that the value" +msgstr "" + +#: plugins/check_snmp.c:1324 +msgid "returned from the SNMP query is an unsigned integer." +msgstr "" + +#: plugins/check_snmp.c:1327 +msgid "Rate Calculation:" +msgstr "" + +#: plugins/check_snmp.c:1328 +msgid "In many places, SNMP returns counters that are only meaningful when" +msgstr "" + +#: plugins/check_snmp.c:1329 +msgid "calculating the counter difference since the last check. check_snmp" +msgstr "" + +#: plugins/check_snmp.c:1330 +msgid "saves the last state information in a file so that the rate per second" +msgstr "" + +#: plugins/check_snmp.c:1331 +msgid "can be calculated. Use the --rate option to save state information." +msgstr "" + +#: plugins/check_snmp.c:1332 +msgid "" +"On the first run, there will be no prior state - this will return with OK." +msgstr "" + +#: plugins/check_snmp.c:1333 +msgid "The state is uniquely determined by the arguments to the plugin, so" +msgstr "" + +#: plugins/check_snmp.c:1334 +msgid "changing the arguments will create a new state file." +msgstr "" + +#: plugins/check_ssh.c:170 +msgid "Port number must be a positive integer" +msgstr "Le numéro du port doit être un nombre entier positif" + +#: plugins/check_ssh.c:237 +#, c-format +msgid "Server answer: %s" +msgstr "Réponse du serveur: %s" + +#: plugins/check_ssh.c:256 +#, fuzzy, c-format +msgid "SSH CRITICAL - %s (protocol %s) version mismatch, expected '%s'\n" +msgstr "" +"SSH AVERTISSEMENT - %s (protocole %s) différence de version, attendu'%s'\n" + +#: plugins/check_ssh.c:264 +#, fuzzy, c-format +msgid "" +"SSH CRITICAL - %s (protocol %s) protocol version mismatch, expected '%s'\n" +msgstr "" +"SSH AVERTISSEMENT - %s (protocole %s) différence de version, attendu'%s'\n" + +#: plugins/check_ssh.c:273 +#, fuzzy, c-format +msgid "SSH OK - %s (protocol %s) | %s\n" +msgstr "SSH OK - %s (protocole %s)\n" + +#: plugins/check_ssh.c:294 +msgid "Try to connect to an SSH server at specified server and port" +msgstr "Essaye de se connecter à un serveur SSH précisé à un port précis" + +#: plugins/check_ssh.c:310 +#, fuzzy +msgid "" +"Alert if string doesn't match expected server version (ex: OpenSSH_3.9p1)" +msgstr "" +"AVERTISSEMENT si la chaîne ne correspond pas à la version précisée (ex: " +"OpenSSH_3.9p1)" + +#: plugins/check_ssh.c:313 +#, fuzzy +msgid "Alert if protocol doesn't match expected protocol version (ex: 2.0)" +msgstr "" +"AVERTISSEMENT si la chaîne ne correspond pas à la version précisée (ex: " +"OpenSSH_3.9p1)" + +#: plugins/check_swap.c:190 +#, c-format +msgid "Command: %s\n" +msgstr "Commande: %s\n" + +#: plugins/check_swap.c:192 +#, c-format +msgid "Format: %s\n" +msgstr "Format: %s\n" + +#: plugins/check_swap.c:228 +#, c-format +msgid "total=%.0f, used=%.0f, free=%.0f\n" +msgstr "total=%.0f, utilisé=%.0f, libre=%.0ff\n" + +#: plugins/check_swap.c:242 +#, c-format +msgid "total=%.0f, free=%.0f\n" +msgstr "total=%.0f, libre=%.0f\n" + +#: plugins/check_swap.c:274 +msgid "Error getting swap devices\n" +msgstr "" + +#: plugins/check_swap.c:277 +msgid "SWAP OK: No swap devices defined\n" +msgstr "SWAP OK: Pas de périphériques swap définis\n" + +#: plugins/check_swap.c:298 plugins/check_swap.c:340 +msgid "swapctl failed: " +msgstr "swapctl à échoué:" + +#: plugins/check_swap.c:299 plugins/check_swap.c:341 +msgid "Error in swapctl call\n" +msgstr "" + +#: plugins/check_swap.c:379 +#, fuzzy, c-format +msgid "SWAP %s - %d%% free (%dMB out of %dMB) %s|" +msgstr "SWAP %s - %d%% libre (%d MB sur un total de %d MB) %s|" + +#: plugins/check_swap.c:475 +#, fuzzy +msgid "Warning threshold percentage must be <= 100!" +msgstr "Le seuil d'avertissement doit être un entier positif" + +#: plugins/check_swap.c:485 +#, fuzzy +msgid "Warning threshold be positive integer or percentage!" +msgstr "Le seuil d'avertissement doit être un entier ou un pourcentage!" + +#: plugins/check_swap.c:505 +#, fuzzy +msgid "Critical threshold percentage must be <= 100!" +msgstr "le seuil critique doit être un entier positif" + +#: plugins/check_swap.c:515 +#, fuzzy +msgid "Critical threshold be positive integer or percentage!" +msgstr "Le seuil critique doit être un entier ou un pourcentage!" + +#: plugins/check_swap.c:524 +#, fuzzy +msgid "" +"no-swap result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) " +"or integer (0-3)." +msgstr "" +"Le résultat de temps dépassé doit être un nom d'état valide (OK, WARNING, " +"CRITICAL, UNKNOWN) ou un nombre entier (0-3)." + +#: plugins/check_swap.c:561 +#, fuzzy +msgid "Warning should be more than critical" +msgstr "" +"Le pourcentage d'avertissement doit être plus important que le pourcentage " +"critique" + +#: plugins/check_swap.c:575 +msgid "Check swap space on local machine." +msgstr "Vérifie l'espace swap sur la machine locale." + +#: plugins/check_swap.c:585 +msgid "" +"Exit with WARNING status if less than INTEGER bytes of swap space are free" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si moins de X octets de mémoire " +"virtuelle sont libres" + +#: plugins/check_swap.c:587 +msgid "Exit with WARNING status if less than PERCENT of swap space is free" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si moins de X pour cent de mémoire " +"virtuelle est libre" + +#: plugins/check_swap.c:589 +msgid "" +"Exit with CRITICAL status if less than INTEGER bytes of swap space are free" +msgstr "" +"Sortir avec un résultat CRITIQUE si moins de X octets de mémoire virtuelle " +"sont libres" + +#: plugins/check_swap.c:591 +#, fuzzy +msgid "Exit with CRITICAL status if less than PERCENT of swap space is free" +msgstr "" +"Sortir avec un résultat CRITIQUE si moins de X pour cent de mémoire " +"virtuelle est libre" + +#: plugins/check_swap.c:593 +msgid "Conduct comparisons for all swap partitions, one by one" +msgstr "Vérifier chacune des partitions de mémoire virtuelle séparément" + +#: plugins/check_swap.c:595 +msgid "" +"Resulting state when there is no swap regardless of thresholds. Default:" +msgstr "" + +#: plugins/check_swap.c:600 +#, fuzzy +msgid "" +"Both INTEGER and PERCENT thresholds can be specified, they are all checked." +msgstr "Les seuils d'alerte et critiques peuvent être spécifiés avec -w et -c." + +#: plugins/check_swap.c:601 +msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s." +msgstr "" +"Sur AIX, si -a est spécifié, le plugin utilise lsps -a, sinon il utilise " +"lsps -s." + +#: plugins/check_tcp.c:210 +msgid "CRITICAL - Generic check_tcp called with unknown service\n" +msgstr "" +"CRITIQUE -check_tcp version générique utilisé avec un service inconnu\n" + +#: plugins/check_tcp.c:234 +msgid "With UDP checks, a send/expect string must be specified." +msgstr "" +"Avec la surveillance UDP, une chaîne d'envoi et un chaîne de réponse doit " +"être spécifiée." + +#: plugins/check_tcp.c:445 +msgid "No arguments found" +msgstr "Pas de paramètres" + +#: plugins/check_tcp.c:548 +msgid "Maxbytes must be a positive integer" +msgstr "Maxbytes doit être un entier positif" + +#: plugins/check_tcp.c:566 +msgid "Refuse must be one of ok, warn, crit" +msgstr "Refuse doit être parmis ok, warn, crit" + +#: plugins/check_tcp.c:576 +msgid "Mismatch must be one of ok, warn, crit" +msgstr "Mismatch doit être parmis ok, warn, crit" + +#: plugins/check_tcp.c:582 +msgid "Delay must be a positive integer" +msgstr "Delay doit être un entier positif" + +#: plugins/check_tcp.c:637 +msgid "You must provide a server address" +msgstr "Vous devez fournir une adresse serveur" + +#: plugins/check_tcp.c:639 +msgid "Invalid hostname, address or socket" +msgstr "Adresse/Nom/Socket invalide" + +#: plugins/check_tcp.c:653 +#, c-format +msgid "" +"This plugin tests %s connections with the specified host (or unix socket).\n" +"\n" +msgstr "" +"Ce plugin teste %s connections avec l'hôte spécifié (ou socket unix).\n" +"\n" + +#: plugins/check_tcp.c:666 +#, fuzzy +msgid "" +"Can use \\n, \\r, \\t or \\\\ in send or quit string. Must come before send " +"or quit option" +msgstr "" +"Permet d'utiliser \\n, \\r, \\t ou \\ dans la chaîne de caractères send ou " +"quit. Doit être placé avant ces dernières." + +#: plugins/check_tcp.c:667 +msgid "Default: nothing added to send, \\r\\n added to end of quit" +msgstr "" +"Par défaut: Rien n'est ajouté à send, \\r\\n est ajouté à la fin de quit" + +#: plugins/check_tcp.c:669 +msgid "String to send to the server" +msgstr "Chaîne de caractères à envoyer au serveur" + +#: plugins/check_tcp.c:671 +msgid "String to expect in server response" +msgstr "Chaîne de caractères à attendre en réponse" + +#: plugins/check_tcp.c:671 +msgid "(may be repeated)" +msgstr "(peut être utilisé plusieurs fois)" + +#: plugins/check_tcp.c:673 +msgid "All expect strings need to occur in server response. Default is any" +msgstr "" +"Toutes les chaînes attendus (expect) doivent être repérés dans la réponse. " +"Par défaut, n'importe laquelle suffit." + +#: plugins/check_tcp.c:675 +msgid "String to send server to initiate a clean close of the connection" +msgstr "Chaîne de caractères à envoyer pour fermer gracieusement la connection" + +#: plugins/check_tcp.c:677 +msgid "Accept TCP refusals with states ok, warn, crit (default: crit)" +msgstr "" + +#: plugins/check_tcp.c:679 +msgid "" +"Accept expected string mismatches with states ok, warn, crit (default: warn)" +msgstr "" + +#: plugins/check_tcp.c:681 +msgid "Hide output from TCP socket" +msgstr "Cacher la réponse provenant du socket TCP" + +#: plugins/check_tcp.c:683 +msgid "Close connection once more than this number of bytes are received" +msgstr "" + +#: plugins/check_tcp.c:685 +msgid "Seconds to wait between sending string and polling for response" +msgstr "" + +#: plugins/check_tcp.c:690 +msgid "1st is #days for warning, 2nd is critical (if not specified - 0)." +msgstr "" + +#: plugins/check_tcp.c:692 +msgid "Use SSL for the connection." +msgstr "" + +#: plugins/check_tcp.c:694 +#, fuzzy +msgid "SSL server_name" +msgstr "Nom d'utilisateur SNMPv3" + +#: plugins/check_time.c:102 +#, c-format +msgid "TIME UNKNOWN - could not connect to server %s, port %d\n" +msgstr "TEMPS INCONNU - impossible de se connecter au serveur %s, au port %d\n" + +#: plugins/check_time.c:115 +#, c-format +msgid "TIME UNKNOWN - could not send UDP request to server %s, port %d\n" +msgstr "" +"TEMPS INCONNU - impossible d'envoyer une requête UDP au serveur %s, au port " +"%d\n" + +#: plugins/check_time.c:139 +#, c-format +msgid "TIME UNKNOWN - no data received from server %s, port %d\n" +msgstr "TEMPS INCONNU - pas de données reçues du serveur %s, du port %d\n" + +#: plugins/check_time.c:152 +#, c-format +msgid "TIME %s - %d second response time|%s\n" +msgstr "TEMPS %s - %d secondes de temps de réponse|%s\n" + +#: plugins/check_time.c:170 +#, c-format +msgid "TIME %s - %lu second time difference|%s %s\n" +msgstr "TEMPS %s - %lu secondes de différence|%s %s\n" + +#: plugins/check_time.c:254 +msgid "Warning thresholds must be a positive integer" +msgstr "Les seuils d'avertissement doivent être un entier positif" + +#: plugins/check_time.c:273 +msgid "Critical thresholds must be a positive integer" +msgstr "Les seuils critiques doivent être un entier positif" + +#: plugins/check_time.c:339 +msgid "This plugin will check the time on the specified host." +msgstr "Ce plugin va vérifier l'heure sur l'hôte spécifié." + +#: plugins/check_time.c:351 +msgid "Use UDP to connect, not TCP" +msgstr "" + +#: plugins/check_time.c:353 +msgid "Time difference (sec.) necessary to result in a warning status" +msgstr "" + +#: plugins/check_time.c:355 +msgid "Time difference (sec.) necessary to result in a critical status" +msgstr "" + +#: plugins/check_time.c:357 +msgid "Response time (sec.) necessary to result in warning status" +msgstr "" + +#: plugins/check_time.c:359 +msgid "Response time (sec.) necessary to result in critical status" +msgstr "" + +#: plugins/check_ups.c:144 +msgid "On Battery, Low Battery" +msgstr "Sur Batterie, Batterie faible" + +#: plugins/check_ups.c:149 +msgid "Online" +msgstr "En marche" + +#: plugins/check_ups.c:152 +msgid "On Battery" +msgstr "Sur Batterie" + +#: plugins/check_ups.c:156 +msgid ", Low Battery" +msgstr ", Batterie faible" + +#: plugins/check_ups.c:160 +msgid ", Calibrating" +msgstr ", Calibration" + +#: plugins/check_ups.c:163 +msgid ", Replace Battery" +msgstr ", Remplacer la batterie" + +#: plugins/check_ups.c:167 +msgid ", On Bypass" +msgstr ", Sur Secteur" + +#: plugins/check_ups.c:170 +msgid ", Overload" +msgstr ", Surcharge" + +#: plugins/check_ups.c:173 +msgid ", Trimming" +msgstr ", En Test" + +#: plugins/check_ups.c:176 +msgid ", Boosting" +msgstr "" + +#: plugins/check_ups.c:179 +msgid ", Charging" +msgstr ", En charge" + +#: plugins/check_ups.c:182 +msgid ", Discharging" +msgstr ", Déchargement" + +#: plugins/check_ups.c:185 +msgid ", Unknown" +msgstr ", Inconnu" + +#: plugins/check_ups.c:324 +msgid "UPS does not support any available options\n" +msgstr "L'UPS ne supporte aucune des options disponibles\n" + +#: plugins/check_ups.c:348 plugins/check_ups.c:414 +msgid "Invalid response received from host" +msgstr "Réponse invalide reçue de l'hôte" + +#: plugins/check_ups.c:406 +msgid "UPS name to long for buffer" +msgstr "" + +#: plugins/check_ups.c:423 +#, c-format +msgid "CRITICAL - no such UPS '%s' on that host\n" +msgstr "CRITIQUE - pas d'UPS '%s' sur cet hôte\n" + +#: plugins/check_ups.c:433 +msgid "CRITICAL - UPS data is stale" +msgstr "CRITIQUE - les données de l'ups ne sont plus valables" + +#: plugins/check_ups.c:438 +#, c-format +msgid "Unknown error: %s\n" +msgstr "Erreur inconnue: %s\n" + +#: plugins/check_ups.c:445 +msgid "Error: unable to parse variable" +msgstr "Erreur: impossible de lire la variable" + +#: plugins/check_ups.c:552 +msgid "Unrecognized UPS variable" +msgstr "Variable d'UPS non reconnue" + +#: plugins/check_ups.c:590 +msgid "Error : no UPS indicated" +msgstr "Erreur: pas d'UPS indiqué" + +#: plugins/check_ups.c:610 +msgid "" +"This plugin tests the UPS service on the specified host. Network UPS Tools" +msgstr "Ce plugin teste le service UPS sur l'hôte spécifié. Network UPS Tools" + +#: plugins/check_ups.c:611 +msgid "from www.networkupstools.org must be running for this plugin to work." +msgstr "" +"de www.networkupstools.org doit s'exécuter sur l'hôte pour que ce plugin " +"fonctionne." + +#: plugins/check_ups.c:623 +msgid "Name of UPS" +msgstr "" + +#: plugins/check_ups.c:625 +msgid "Output of temperatures in Celsius" +msgstr "Affichage des températures en Celsius" + +#: plugins/check_ups.c:627 +msgid "Valid values for STRING are" +msgstr "Les variables valides pour STRING sont" + +#: plugins/check_ups.c:638 +msgid "" +"This plugin attempts to determine the status of a UPS (Uninterruptible Power" +msgstr "" + +#: plugins/check_ups.c:639 +msgid "" +"Supply) on a local or remote host. If the UPS is online or calibrating, the" +msgstr "" + +#: plugins/check_ups.c:640 +msgid "" +"plugin will return an OK state. If the battery is on it will return a WARNING" +msgstr "" + +#: plugins/check_ups.c:641 +msgid "" +"state. If the UPS is off or has a low battery the plugin will return a " +"CRITICAL" +msgstr "" + +#: plugins/check_ups.c:646 +msgid "" +"You may also specify a variable to check (such as temperature, utility " +"voltage," +msgstr "" + +#: plugins/check_ups.c:647 +msgid "" +"battery load, etc.) as well as warning and critical thresholds for the value" +msgstr "" + +#: plugins/check_ups.c:648 +msgid "" +"of that variable. If the remote host has multiple UPS that are being " +"monitored" +msgstr "" + +#: plugins/check_ups.c:649 +msgid "you will have to use the --ups option to specify which UPS to check." +msgstr "" + +#: plugins/check_ups.c:651 +msgid "" +"This plugin requires that the UPSD daemon distributed with Russell Kroll's" +msgstr "" + +#: plugins/check_ups.c:652 +msgid "" +"Network UPS Tools be installed on the remote host. If you do not have the" +msgstr "" + +#: plugins/check_ups.c:653 +msgid "package installed on your system, you can download it from" +msgstr "" + +#: plugins/check_ups.c:654 +msgid "http://www.networkupstools.org" +msgstr "" + +#: plugins/check_users.c:91 +#, fuzzy, c-format +msgid "Could not enumerate RD sessions: %d\n" +msgstr "Impossible d'utiliser le protocole version %d\n" + +#: plugins/check_users.c:146 +#, c-format +msgid "# users=%d" +msgstr "# utilisateurs=%d" + +#: plugins/check_users.c:164 +msgid "Unable to read output" +msgstr "Impossible de lire les données en entrée" + +#: plugins/check_users.c:166 +#, c-format +msgid "USERS %s - %d users currently logged in |%s\n" +msgstr "UTILISATEURS %s - %d utilisateurs actuellement connectés sur |%s\n" + +#: plugins/check_users.c:241 +msgid "This plugin checks the number of users currently logged in on the local" +msgstr "" +"Ce plugin vérifie le nombre d'utilisateurs actuellement connecté sur le " +"système local" + +#: plugins/check_users.c:242 +msgid "" +"system and generates an error if the number exceeds the thresholds specified." +msgstr "et génère une erreur si le nombre excède le seuil spécifié." + +#: plugins/check_users.c:252 +msgid "Set WARNING status if more than INTEGER users are logged in" +msgstr "" +"Sortir avec un résultat AVERTISSEMENT si plus de INTEGER utilisateurs sont " +"connectés" + +#: plugins/check_users.c:254 +msgid "Set CRITICAL status if more than INTEGER users are logged in" +msgstr "" +"Sortir avec un résultat CRITIQUE si plus de INTEGER utilisateurs sont " +"connectés" + +#: plugins/check_ide_smart.c:218 +msgid "" +"DEPRECATION WARNING: the -q switch (quiet output) is no longer \"quiet\"." +msgstr "" + +#: plugins/check_ide_smart.c:219 +msgid "Nagios-compatible output is now always returned." +msgstr "" + +#: plugins/check_ide_smart.c:224 +msgid "SMART commands are broken and have been disabled (See Notes in --help)." +msgstr "" + +#: plugins/check_ide_smart.c:228 +msgid "" +"DEPRECATION WARNING: the -n switch (Nagios-compatible output) is now the" +msgstr "" + +#: plugins/check_ide_smart.c:229 +#, fuzzy +msgid "default and will be removed from future releases." +msgstr "" +"Note: nslookup est obsolète et pourra être retiré dans les prochaines " +"versions." + +#: plugins/check_ide_smart.c:257 +#, c-format +msgid "CRITICAL - Couldn't open device %s: %s\n" +msgstr "Critique - Impossible d'ouvrir le périphérique %s: %s\n" + +#: plugins/check_ide_smart.c:262 +#, c-format +msgid "CRITICAL - SMART_CMD_ENABLE\n" +msgstr "CRITIQUE - SMART_CMD_ENABLE\n" + +#: plugins/check_ide_smart.c:303 plugins/check_ide_smart.c:330 +#, c-format +msgid "CRITICAL - SMART_READ_VALUES: %s\n" +msgstr "CRITIQUE - SMART_READ_VALUES: %s\n" + +#: plugins/check_ide_smart.c:376 +#, c-format +msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n" +msgstr "" +"CRITIQUE - %d État de pré-panne %c Détecté! %d/%d les tests on échoués.\n" + +#: plugins/check_ide_smart.c:384 +#, c-format +msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n" +msgstr "" +"AVERTISSEMENT - %d État de pré-panne %s Détecté! %d/%d les tests on " +"échoués.\n" + +#: plugins/check_ide_smart.c:392 +#, c-format +msgid "OK - Operational (%d/%d tests passed)\n" +msgstr "OK - En fonctionnement (%d/%d les tests on été réussi)\n" + +#: plugins/check_ide_smart.c:396 +#, c-format +msgid "ERROR - Status '%d' unknown. %d/%d tests passed\n" +msgstr "ERREUR - État '%d' inconnu. %d/%d les tests on réussi\n" + +#: plugins/check_ide_smart.c:429 +#, c-format +msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n" +msgstr "" +"Etat Hors Ligne=%d {%s}, Hors Ligne Auto=%s, Temps avant arrêt=%d minutes\n" + +#: plugins/check_ide_smart.c:435 +#, c-format +msgid "OffLineCapability=%d {%s %s %s}\n" +msgstr "Capacité Hors Ligne=%d {%s %s %s}\n" + +#: plugins/check_ide_smart.c:441 +#, c-format +msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n" +msgstr "Révision Smart=%d, Somme de contrôle=%d, Capacité Smart=%d {%s %s}\n" + +#: plugins/check_ide_smart.c:463 plugins/check_ide_smart.c:492 +#, c-format +msgid "CRITICAL - %s: %s\n" +msgstr "CRITIQUE - %s: %s\n" + +#: plugins/check_ide_smart.c:467 plugins/check_ide_smart.c:496 +#, fuzzy, c-format +msgid "OK - Command sent (%s)\n" +msgstr "Commande: %s\n" + +#: plugins/check_ide_smart.c:517 plugins/check_ide_smart.c:544 +#, c-format +msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n" +msgstr "CRITIQUE - SMART_READ_THRESHOLDS: %s\n" + +#: plugins/check_ide_smart.c:563 +#, c-format +msgid "" +"This plugin checks a local hard drive with the (Linux specific) SMART " +"interface [http://smartlinux.sourceforge.net/smart/index.php]." +msgstr "" +"Ce plugin vérifie un disque dur local à l'aide de l'interface SMART (pour " +"Linux) [http://smartlinux.sourceforge.net/smart/index.php]." + +#: plugins/check_ide_smart.c:573 +msgid "Select device DEVICE" +msgstr "" + +#: plugins/check_ide_smart.c:574 +msgid "" +"Note: if the device is specified without this option, any further option will" +msgstr "" + +#: plugins/check_ide_smart.c:575 +msgid "be ignored." +msgstr "" + +#: plugins/check_ide_smart.c:581 +msgid "" +"The SMART command modes (-i/--immediate, -0/--auto-off and -1/--auto-on) were" +msgstr "" + +#: plugins/check_ide_smart.c:582 +msgid "" +"broken in an underhand manner and have been disabled. You can use smartctl" +msgstr "" + +#: plugins/check_ide_smart.c:583 +msgid "instead:" +msgstr "" + +#: plugins/check_ide_smart.c:584 +msgid "-0/--auto-off: use \"smartctl --offlineauto=off\"" +msgstr "" + +#: plugins/check_ide_smart.c:585 +msgid "-1/--auto-on: use \"smartctl --offlineauto=on\"" +msgstr "" + +#: plugins/check_ide_smart.c:586 +msgid "-i/--immediate: use \"smartctl --test=offline\"" +msgstr "" + +#: plugins/negate.c:96 +msgid "No data returned from command\n" +msgstr "Pas de données reçues de la commande\n" + +#: plugins/negate.c:166 +msgid "" +"Timeout result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) " +"or integer (0-3)." +msgstr "" +"Le résultat de temps dépassé doit être un nom d'état valide (OK, WARNING, " +"CRITICAL, UNKNOWN) ou un nombre entier (0-3)." + +#: plugins/negate.c:170 +msgid "" +"Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer " +"(0-3)." +msgstr "" +"Ok doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou un " +"nombre entier (0-3)." + +#: plugins/negate.c:176 +msgid "" +"Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" +"Warning doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou " +"un nombre entier (0-3)." + +#: plugins/negate.c:181 +msgid "" +"Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" +"Critical doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou " +"un nombre entier (0-3)." + +#: plugins/negate.c:186 +msgid "" +"Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" +"Unknown doit être un nom d'état valide (OK, WARNING, CRITICAL, UNKNOWN) ou " +"un nombre entier (0-3)." + +#: plugins/negate.c:213 +msgid "Require path to command" +msgstr "Chemin vers la commande requis" + +#: plugins/negate.c:224 +msgid "" +"Negates the status of a plugin (returns OK for CRITICAL and vice-versa)." +msgstr "" +"Inverse le statut d'un plugin (retourne OK pour CRITIQUE et vice-versa)." + +#: plugins/negate.c:225 +msgid "Additional switches can be used to control which state becomes what." +msgstr "" +"Des options additionnelles peuvent être utilisées pour contrôler quel état " +"devient quoi." + +#: plugins/negate.c:234 +msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status." +msgstr "" +"Utilisez un délai de réponse plus long que celui du plugin afin de conserver " +"les résultats CRITIQUE" + +#: plugins/negate.c:236 +msgid "Custom result on Negate timeouts; see below for STATUS definition\n" +msgstr "" + +#: plugins/negate.c:242 +#, c-format +msgid "" +" STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n" +msgstr "" +" STATUS peut être 'OK', 'WARNING', 'CRITICAL' ou 'UNKNOWN' sans les " +"simple\n" + +#: plugins/negate.c:243 +#, c-format +msgid "" +" quotes. Numeric values are accepted. If nothing is specified, permutes\n" +msgstr " quotes. Les valeurs numériques sont acceptées. Si rien n'est\n" + +#: plugins/negate.c:244 +#, c-format +msgid " OK and CRITICAL.\n" +msgstr " spécifié, inverse OK et CRITIQUE.\n" + +#: plugins/negate.c:246 +#, c-format +msgid "" +" Substitute output text as well. Will only substitute text in CAPITALS\n" +msgstr "" + +#: plugins/negate.c:251 +msgid "Run check_ping and invert result. Must use full path to plugin" +msgstr "" +"Execute check_ping et inverse le résultat. Le chemin complet du plug-in doit " +"être spécifié" + +#: plugins/negate.c:253 +msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL" +msgstr "" +"Ceci retournera OK au lieu de AVERTISSEMENT et INCONNU au lieu de CRITIQUE" + +#: plugins/negate.c:256 +msgid "" +"This plugin is a wrapper to take the output of another plugin and invert it." +msgstr "" +"Ce plugin est un adaptateur qui prends l'état d'un autre plug-in et " +"l'inverse." + +#: plugins/negate.c:257 +msgid "The full path of the plugin must be provided." +msgstr "Le chemin complet du plugin doit être spécifié." + +#: plugins/negate.c:258 +msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL." +msgstr "Si le plugin executé retourne OK, l'adaptateur retournera CRITIQUE." + +#: plugins/negate.c:259 +msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK." +msgstr "Si le plugin executé retourne CRITIQUE, l'adaptateur retournera OK." + +#: plugins/negate.c:260 +msgid "Otherwise, the output state of the wrapped plugin is unchanged." +msgstr "Autrement, l'état du plugin executé reste inchangé." + +#: plugins/negate.c:262 +msgid "" +"Using timeout-result, it is possible to override the timeout behaviour or a" +msgstr "" + +#: plugins/negate.c:263 +msgid "plugin by setting the negate timeout a bit lower." +msgstr "" + +#: plugins/netutils.c:49 +#, c-format +msgid "%s - Socket timeout after %d seconds\n" +msgstr "%s - Le socket n'a pas répondu dans les %d secondes\n" + +#: plugins/netutils.c:51 +#, c-format +msgid "%s - Abnormal timeout after %d seconds\n" +msgstr "%s - Dépassement anormal du temps de réponse après %d secondes\n" + +#: plugins/netutils.c:79 plugins/netutils.c:292 +msgid "Send failed" +msgstr "L'envoi à échoué" + +#: plugins/netutils.c:96 plugins/netutils.c:307 +msgid "No data was received from host!" +msgstr "Pas de données reçues de l'hôte!" + +#: plugins/netutils.c:209 plugins/netutils.c:245 +msgid "Socket creation failed" +msgstr "La création du socket à échoué " + +#: plugins/netutils.c:238 +msgid "Supplied path too long unix domain socket" +msgstr "Le chemin fourni est trop long pour un socket unix" + +#: plugins/netutils.c:316 +msgid "Receive failed" +msgstr "La réception à échoué" + +#: plugins/netutils.c:342 plugins-root/check_dhcp.c:1314 +#, c-format +msgid "Invalid hostname/address - %s" +msgstr "Adresse/Nom invalide - %s" + +#: plugins/popen.c:133 +msgid "Could not malloc argv array in popen()" +msgstr "Impossible de réallouer un tableau pour les paramètres dans popen()" + +#: plugins/popen.c:143 +msgid "CRITICAL - You need more args!!!" +msgstr "CRITIQUE - Vous devez spécifier plus d'arguments!!!" + +#: plugins/popen.c:201 +msgid "Cannot catch SIGCHLD" +msgstr "impossible d'obtenir le signal SIGCHLD" + +#: plugins/popen.c:287 +#, c-format +msgid "CRITICAL - Plugin timed out after %d seconds\n" +msgstr "CRITIQUE - Le plugin n'as pas répondu dans les %d secondes\n" + +#: plugins/popen.c:290 +msgid "CRITICAL - popen timeout received, but no child process" +msgstr "" +"CRITIQUE - le temps d'attente à été dépassé dans la fonction popen, mais il " +"n'y a pas de processus fils" + +#: plugins/urlize.c:129 +#, c-format +msgid "" +"%s UNKNOWN - No data received from host\n" +"CMD: %s\n" +msgstr "" +"%s INCONNU - Pas de données reçues de l'hôte\n" +"Commande: %s\n" + +#: plugins/urlize.c:168 +#, fuzzy +msgid "" +"This plugin wraps the text output of another command (plugin) in HTML " +msgstr "" +"Ce plugin est un adaptateur qui prends l'état d'un autre plug-in et " +"l'inverse." + +#: plugins/urlize.c:169 +msgid "" +"tags, thus displaying the child plugin's output as a clickable link in " +"compatible" +msgstr "" + +#: plugins/urlize.c:170 +msgid "" +"monitoring status screen. This plugin returns the status of the invoked " +"plugin." +msgstr "" + +#: plugins/urlize.c:180 +msgid "" +"Pay close attention to quoting to ensure that the shell passes the expected" +msgstr "" + +#: plugins/urlize.c:181 +msgid "data to the plugin. For example, in:" +msgstr "" + +#: plugins/urlize.c:182 +msgid "urlize http://example.com/ check_http -H example.com -r 'two words'" +msgstr "" + +#: plugins/urlize.c:183 +msgid "the shell will remove the single quotes and urlize will see:" +msgstr "" + +#: plugins/urlize.c:184 +msgid "urlize http://example.com/ check_http -H example.com -r two words" +msgstr "" + +#: plugins/urlize.c:185 +msgid "You probably want:" +msgstr "" + +#: plugins/urlize.c:186 +msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\"" +msgstr "" + +#: plugins/utils.c:479 +msgid "failed realloc in strpcpy\n" +msgstr "La fonction realloc à échoué dans strpcpy\n" + +#: plugins/utils.c:521 +msgid "failed malloc in strscat\n" +msgstr "La fonction malloc à échoué dans strscat\n" + +#: plugins/utils.c:541 +#, fuzzy +msgid "failed malloc in xvasprintf\n" +msgstr "La fonction malloc à échoué dans strscat\n" + +#: plugins/utils.c:819 +msgid "sysconf error for _SC_OPEN_MAX\n" +msgstr "" + +#: plugins/utils.h:127 +#, c-format +msgid "" +" %s (-h | --help) for detailed help\n" +" %s (-V | --version) for version information\n" +msgstr "" +" %s (-h | --help) pour l'aide détaillée\n" +" %s (-V | --version) pour les informations relative à la version\n" + +#: plugins/utils.h:131 +msgid "" +"\n" +"Options:\n" +" -h, --help\n" +" Print detailed help screen\n" +" -V, --version\n" +" Print version information\n" +msgstr "" +"\n" +"Options:\n" +" -h, --help\n" +" Afficher l'aide détaillée\n" +" -V, --version\n" +" Afficher les informations relative à la version\n" + +#: plugins/utils.h:138 +#, c-format +msgid "" +" -H, --hostname=ADDRESS\n" +" Host name, IP Address, or unix socket (must be an absolute path)\n" +" -%c, --port=INTEGER\n" +" Port number (default: %s)\n" +msgstr "" +" -H, --hostname=ADDRESS\n" +" Nom d'hôte, Adresse IP, ou socket UNIX (doit être un chemin absolu)\n" +" -%c, --port=INTEGER\n" +" Numéro de port (défaut: %s)\n" + +#: plugins/utils.h:144 +msgid "" +" -4, --use-ipv4\n" +" Use IPv4 connection\n" +" -6, --use-ipv6\n" +" Use IPv6 connection\n" +msgstr "" +" -4, --use-ipv4\n" +" Utiliser une connection IPv4\n" +" -6, --use-ipv6\n" +" Utiliser une connection IPv6\n" + +#: plugins/utils.h:150 +#, fuzzy +msgid "" +" -v, --verbose\n" +" Show details for command-line debugging (output may be truncated by\n" +" the monitoring system)\n" +msgstr "" +" -v, --verbose\n" +" Affiche les informations de déboguage en ligne de commande (Nagios peut " +"tronquer la sortie)\n" + +#: plugins/utils.h:155 +msgid "" +" -w, --warning=DOUBLE\n" +" Response time to result in warning status (seconds)\n" +" -c, --critical=DOUBLE\n" +" Response time to result in critical status (seconds)\n" +msgstr "" +" -w, --warning=DOUBLE\n" +" Temps de réponse résultant en un état d'avertissement (secondes)\n" +" -c, --critical=DOUBLE\n" +" Temps de réponse résultant en un état critique (secondes)\n" + +#: plugins/utils.h:161 +msgid "" +" -w, --warning=RANGE\n" +" Warning range (format: start:end). Alert if outside this range\n" +" -c, --critical=RANGE\n" +" Critical range\n" +msgstr "" +" -w, --warning=RANGE\n" +" Seuil d'avertissement (format: début:fin). Alerte à l'extérieur de la " +"plage\n" +" -c, --critical=RANGE\n" +" Seuil critique\n" + +#: plugins/utils.h:167 +#, c-format +msgid "" +" -t, --timeout=INTEGER\n" +" Seconds before connection times out (default: %d)\n" +msgstr "" +" -t, --timeout=INTEGER\n" +" Délais de connection en secondes (défaut: %d)\n" + +#: plugins/utils.h:171 +#, fuzzy, c-format +msgid "" +" -t, --timeout=INTEGER\n" +" Seconds before plugin times out (default: %d)\n" +msgstr "" +" -t, --timeout=INTEGER\n" +" Délais de connection en secondes (défaut: %d)\n" + +#: plugins/utils.h:176 +#, fuzzy +msgid "" +" --extra-opts=[section][@file]\n" +" Read options from an ini file. See\n" +" https://www.monitoring-plugins.org/doc/extra-opts.html\n" +" for usage and examples.\n" +msgstr "" +" --extra-opts=[section][@file]\n" +" Lire les options d'un fichier ini. Voir\n" +" https://www.monitoring-plugins.org/doc/extra-opts.html\n" +" pour les instructions et examples.\n" + +#: plugins/utils.h:185 +#, fuzzy +msgid "" +" See:\n" +" https://www.monitoring-plugins.org/doc/guidelines.html#THRESHOLDFORMAT\n" +" for THRESHOLD format and examples.\n" +msgstr "" +" Voir:\n" +" https://www.monitoring-plugins.org/doc/guidelines.html." +"html#THRESHOLDFORMAT\n" +" pour le format et examples des seuils (THRESHOLD).\n" + +#: plugins/utils.h:190 +#, fuzzy +msgid "" +"\n" +"Send email to help@monitoring-plugins.org if you have questions regarding\n" +"use of this software. To submit patches or suggest improvements, send email\n" +"to devel@monitoring-plugins.org\n" +"\n" +msgstr "" +"\n" +"Envoyez un email à help@monitoring-plugins.org si vous avez des questions\n" +"reliées à l'utilisation de ce logiciel. Pour envoyer des patches ou suggérer " +"des\n" +"améliorations, envoyez un email à devel@monitoring-plugins.org\n" +"\n" + +#: plugins/utils.h:195 +#, fuzzy +msgid "" +"\n" +"The Monitoring Plugins come with ABSOLUTELY NO WARRANTY. You may " +"redistribute\n" +"copies of the plugins under the terms of the GNU General Public License.\n" +"For more information about these matters, see the file named COPYING.\n" +msgstr "" +"\n" +"Les plugins de Nagios ne portent AUCUNE GARANTIE. Vous pouvez redistribuer\n" +"des copies des plugins selon les termes de la GNU General Public License.\n" +"Pour de plus ample informations, voir le fichier COPYING.\n" + +#: plugins-root/check_dhcp.c:317 +#, c-format +msgid "Error: Could not get hardware address of interface '%s'\n" +msgstr "" +"Erreur: Impossible d'obtenir l'adresse matérielle pour l'interface '%s'\n" + +#: plugins-root/check_dhcp.c:340 +#, c-format +msgid "Error: if_nametoindex error - %s.\n" +msgstr "Erreur: if_nametoindex erreur - %s.\n" + +#: plugins-root/check_dhcp.c:345 +#, c-format +msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n" +msgstr "" +"Erreur: Impossible d'obtenir l'adresse matérielle depuis %s. erreur sysctl 1 " +"- %s.\n" + +#: plugins-root/check_dhcp.c:350 +#, c-format +msgid "" +"Error: Couldn't get hardware address from interface %s. malloc error - %s.\n" +msgstr "" +"Erreur: Impossible d'obtenir l'adresse matérielle depuis l'interface %s\n" +" erreur malloc - %s.\n" + +#: plugins-root/check_dhcp.c:355 +#, c-format +msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n" +msgstr "" +"Erreur: Impossible d'obtenir l'adresse matérielle depuis %s erreur sysctl 2 " +"- %s.\n" + +#: plugins-root/check_dhcp.c:386 +#, c-format +msgid "" +"Error: can't find unit number in interface_name (%s) - expecting TypeNumber " +"eg lnc0.\n" +msgstr "" +"Erreur: impossible de trouver le numéro dans le nom de l'interface (%s).\n" +"J'attendais le nom suivi du type ex lnc0.\n" + +#: plugins-root/check_dhcp.c:391 plugins-root/check_dhcp.c:403 +#, c-format +msgid "" +"Error: can't read MAC address from DLPI streams interface for device %s unit " +"%d.\n" +msgstr "" +"Erreur: impossible de lire l'adresse MAC depuis l'interface DLPI pour le \n" +"périphérique %s numéro %d.\n" + +#: plugins-root/check_dhcp.c:409 +#, c-format +msgid "" +"Error: can't get MAC address for this architecture. Use the --mac option.\n" +msgstr "" +"Erreur: impossible d'obtenir l'adresse MAC sur cette architecture. Utilisez " +"l'option --mac.\n" + +#: plugins-root/check_dhcp.c:428 +#, c-format +msgid "Error: Cannot determine IP address of interface %s\n" +msgstr "Erreur: Impossible d'obtenir l'adresse IP de l'interface %s\n" + +#: plugins-root/check_dhcp.c:436 +#, c-format +msgid "Error: Cannot get interface IP address on this platform.\n" +msgstr "Erreur: Impossible d'obtenir l'adresse IP sur cette architecture.\n" + +#: plugins-root/check_dhcp.c:441 +#, c-format +msgid "Pretending to be relay client %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:525 +#, c-format +msgid "DHCPDISCOVER to %s port %d\n" +msgstr "DHCPDISCOVER vers %s port %d\n" + +#: plugins-root/check_dhcp.c:577 +#, c-format +msgid "Result=ERROR\n" +msgstr "Résultat=ERREUR\n" + +#: plugins-root/check_dhcp.c:583 +#, c-format +msgid "Result=OK\n" +msgstr "Résultat=OK\n" + +#: plugins-root/check_dhcp.c:593 +#, c-format +msgid "DHCPOFFER from IP address %s" +msgstr "DHCPOFFER depuis l'adresse IP %s" + +#: plugins-root/check_dhcp.c:594 +#, c-format +msgid " via %s\n" +msgstr " depuis %s\n" + +#: plugins-root/check_dhcp.c:601 +#, c-format +msgid "" +"DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n" +msgstr "" +"DHCPOFFER XID (%u) ne correspond pas au DHCPDISCOVER XID (%u) - paquet " +"ignoré\n" + +#: plugins-root/check_dhcp.c:623 +#, c-format +msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n" +msgstr "" +"l'adresse matérielle du DHCPOFFER ne correspond pas à la notre paquet " +"ignoré\n" + +#: plugins-root/check_dhcp.c:641 +#, c-format +msgid "Total responses seen on the wire: %d\n" +msgstr "Nombre total de réponses vues: %d\n" + +#: plugins-root/check_dhcp.c:642 +#, c-format +msgid "Valid responses for this machine: %d\n" +msgstr "Nombre de réponse valides pour cette machine: %d\n" + +#: plugins-root/check_dhcp.c:657 +#, c-format +msgid "send_dhcp_packet result: %d\n" +msgstr "résultat de send_dchp_packet: %d\n" + +#: plugins-root/check_dhcp.c:690 +#, c-format +msgid "No (more) data received (nfound: %d)\n" +msgstr "Plus de données reçues (nfound: %d)\n" + +#: plugins-root/check_dhcp.c:703 +#, c-format +msgid "recvfrom() failed, " +msgstr "recvfrom() a échoué, " + +#: plugins-root/check_dhcp.c:710 +#, c-format +msgid "receive_dhcp_packet() result: %d\n" +msgstr "résultat de receive_dchp_packet(): %d\n" + +#: plugins-root/check_dhcp.c:711 +#, c-format +msgid "receive_dhcp_packet() source: %s\n" +msgstr "source de receive_dchp_packet(): %s\n" + +#: plugins-root/check_dhcp.c:741 +#, c-format +msgid "Error: Could not create socket!\n" +msgstr "Erreur: Impossible de créer un socket!\n" + +#: plugins-root/check_dhcp.c:751 +#, c-format +msgid "Error: Could not set reuse address option on DHCP socket!\n" +msgstr "" +"Erreur: Impossible de configurer l'option de réutilisation de l'adresse sur\n" +"le socket DHCP!\n" + +#: plugins-root/check_dhcp.c:757 +#, c-format +msgid "Error: Could not set broadcast option on DHCP socket!\n" +msgstr "" +"Erreur: Impossible de configurer l'option broadcast sur le socket DHCP!\n" + +#: plugins-root/check_dhcp.c:766 +#, c-format +msgid "" +"Error: Could not bind socket to interface %s. Check your privileges...\n" +msgstr "" +"Erreur: Impossible de connecter le socket à l'interface %s.\n" +"Vérifiez vos droits...\n" + +#: plugins-root/check_dhcp.c:777 +#, c-format +msgid "" +"Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n" +msgstr "" +"Erreur: Impossible de se connecter au socket (port %d)! Vérifiez vos " +"droits..\n" + +#: plugins-root/check_dhcp.c:811 +#, c-format +msgid "Requested server address: %s\n" +msgstr "Adresse serveur demandée: %s\n" + +#: plugins-root/check_dhcp.c:873 +#, c-format +msgid "Lease Time: Infinite\n" +msgstr "Durée du Bail: Infini\n" + +#: plugins-root/check_dhcp.c:875 +#, c-format +msgid "Lease Time: %lu seconds\n" +msgstr "Durée du Bail: %lu secondes\n" + +#: plugins-root/check_dhcp.c:877 +#, c-format +msgid "Renewal Time: Infinite\n" +msgstr "Renouvellement du bail: Infini\n" + +#: plugins-root/check_dhcp.c:879 +#, c-format +msgid "Renewal Time: %lu seconds\n" +msgstr "Durée du renouvellement = %lu secondes\n" + +#: plugins-root/check_dhcp.c:881 +#, c-format +msgid "Rebinding Time: Infinite\n" +msgstr "Délai de nouvelle demande: Infini\n" + +#: plugins-root/check_dhcp.c:882 +#, c-format +msgid "Rebinding Time: %lu seconds\n" +msgstr "Délai de nouvelle demande: %lu secondes\n" + +#: plugins-root/check_dhcp.c:910 +#, c-format +msgid "Added offer from server @ %s" +msgstr "Rajouté offre du serveur @ %s" + +#: plugins-root/check_dhcp.c:911 +#, c-format +msgid " of IP address %s\n" +msgstr "de l'adresse IP %s\n" + +#: plugins-root/check_dhcp.c:978 +#, c-format +msgid "DHCP Server Match: Offerer=%s" +msgstr "Correspondance du serveur DHCP: Offrant=%s" + +#: plugins-root/check_dhcp.c:979 +#, c-format +msgid " Requested=%s" +msgstr " Demandé=%s" + +#: plugins-root/check_dhcp.c:981 +#, c-format +msgid " (duplicate)" +msgstr "" + +#: plugins-root/check_dhcp.c:982 +#, c-format +msgid "\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1030 +#, c-format +msgid "No DHCPOFFERs were received.\n" +msgstr "Pas de DHCPOFFERs reçus.\n" + +#: plugins-root/check_dhcp.c:1034 +#, c-format +msgid "Received %d DHCPOFFER(s)" +msgstr "Reçu %d DHCPOFFER(s)" + +#: plugins-root/check_dhcp.c:1037 +#, c-format +msgid ", %s%d of %d requested servers responded" +msgstr ", %s%d de %d serveurs ont répondus" + +#: plugins-root/check_dhcp.c:1040 +#, c-format +msgid ", requested address (%s) was %soffered" +msgstr ", l'adresse demandée (%s) %s été offerte" + +#: plugins-root/check_dhcp.c:1040 +msgid "not " +msgstr "n'as pas" + +#: plugins-root/check_dhcp.c:1042 +#, c-format +msgid ", max lease time = " +msgstr ", bail maximum = " + +#: plugins-root/check_dhcp.c:1044 +#, c-format +msgid "Infinity" +msgstr "Infini" + +#: plugins-root/check_dhcp.c:1164 +msgid "Got unexpected non-option argument" +msgstr "" + +#: plugins-root/check_dhcp.c:1206 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n" +msgstr "" +"Erreur: Impossible d'obtenir la MAC par l'API DLPI dans check_ctrl: %s.\n" + +#: plugins-root/check_dhcp.c:1218 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n" +msgstr "" +"Erreur: Impossible d'obtenir la MAC par l'API DLPI dans put_ctrl/putmsg(): " +"%s.\n" + +#: plugins-root/check_dhcp.c:1231 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n" +msgstr "" +"Erreur: Impossible d'obtenir la MAC par l'API DLPI dans put_both/putmsg().\n" + +#: plugins-root/check_dhcp.c:1243 +#, c-format +msgid "" +"Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n" +msgstr "" +"Erreur: Impossible d'obtenir la MAC par l'API DLPI dans dl_attach_req/" +"open(%s..): %s.\n" + +#: plugins-root/check_dhcp.c:1267 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n" +msgstr "" +"Erreur: Impossible d'obtenir la MAC par l'API DLPI dans dl_bind/" +"check_ctrl(): %s.\n" + +#: plugins-root/check_dhcp.c:1346 +#, c-format +msgid "Hardware address: " +msgstr "Adresse matérielle: " + +#: plugins-root/check_dhcp.c:1362 +msgid "This plugin tests the availability of DHCP servers on a network." +msgstr "Ce plugin teste la disponibilité de serveurs DHCP dans un réseau." + +#: plugins-root/check_dhcp.c:1374 +msgid "IP address of DHCP server that we must hear from" +msgstr "" + +#: plugins-root/check_dhcp.c:1376 +msgid "IP address that should be offered by at least one DHCP server" +msgstr "" + +#: plugins-root/check_dhcp.c:1378 +msgid "Seconds to wait for DHCPOFFER before timeout occurs" +msgstr "" + +#: plugins-root/check_dhcp.c:1380 +msgid "Interface to to use for listening (i.e. eth0)" +msgstr "" + +#: plugins-root/check_dhcp.c:1382 +msgid "MAC address to use in the DHCP request" +msgstr "" + +#: plugins-root/check_dhcp.c:1384 +msgid "Unicast testing: mimic a DHCP relay, requires -s" +msgstr "" + +#: plugins-root/check_icmp.c:1569 +msgid "specify a target" +msgstr "" + +#: plugins-root/check_icmp.c:1571 +msgid "Use IPv4 (default) or IPv6 to communicate with the targets" +msgstr "" + +#: plugins-root/check_icmp.c:1573 +msgid "warning threshold (currently " +msgstr "Valeurs pour le seuil d'avertissement (actuellement " + +#: plugins-root/check_icmp.c:1576 +msgid "critical threshold (currently " +msgstr "Valeurs pour le seuil critique (actuellement " + +#: plugins-root/check_icmp.c:1579 +msgid "specify a source IP address or device name" +msgstr "spécifiez une adresse ou un nom d'hôte" + +#: plugins-root/check_icmp.c:1581 +msgid "number of packets to send (currently " +msgstr "nombre de paquets à envoyer (actuellement " + +#: plugins-root/check_icmp.c:1584 +msgid "max packet interval (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1587 +msgid "max target interval (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1590 +msgid "number of alive hosts required for success" +msgstr "nombre d'hôtes vivants requis pour réussite" + +#: plugins-root/check_icmp.c:1593 +msgid "TTL on outgoing packets (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1596 +msgid "timeout value (seconds, currently " +msgstr "" + +#: plugins-root/check_icmp.c:1599 +msgid "Number of icmp data bytes to send" +msgstr "Nombre de paquets ICMP à envoyer" + +#: plugins-root/check_icmp.c:1600 +msgid "Packet size will be data bytes + icmp header (currently" +msgstr "" + +#: plugins-root/check_icmp.c:1602 +msgid "verbose" +msgstr "" + +#: plugins-root/check_icmp.c:1606 +msgid "The -H switch is optional. Naming a host (or several) to check is not." +msgstr "" + +#: plugins-root/check_icmp.c:1608 +msgid "" +"Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%" +msgstr "" + +#: plugins-root/check_icmp.c:1609 +msgid "packet loss. The default values should work well for most users." +msgstr "" + +#: plugins-root/check_icmp.c:1610 +msgid "" +"You can specify different RTA factors using the standardized abbreviations" +msgstr "" + +#: plugins-root/check_icmp.c:1611 +msgid "" +"us (microseconds), ms (milliseconds, default) or just plain s for seconds." +msgstr "" + +#: plugins-root/check_icmp.c:1617 +msgid "The -v switch can be specified several times for increased verbosity." +msgstr "" + +#~ msgid "Path or partition (may be repeated)" +#~ msgstr "Répertoire ou partition (peut être utilisé plusieurs fois)" + +#~ msgid "" +#~ "value match). If multiple addresses are returned at once, you have to " +#~ "match" +#~ msgstr "" +#~ "valeur correspond). Si plusieurs adresses sont retournées en même temps," + +#~ msgid "" +#~ "the whole string of addresses separated with commas (sorted " +#~ "alphabetically)." +#~ msgstr "" +#~ "vous devrez toutes les inscrire séparées pas des virgules (en ordre " +#~ "alphabétique)" + +#~ msgid "No specific parameters. No warning or critical threshold" +#~ msgstr "Pas d'argument spécifique. Pas de seuil d'avertissement ou critique" + +#~ msgid "Can't find local IP for NAS-IP-Address" +#~ msgstr "Impossible de trouver une addresse IP locale pour le NAS-IP-Address" + +#~ msgid "Warning free space should be more than critical free space" +#~ msgstr "" +#~ "Le seuil d'avertissement pour la place libre doit être plus grand que le " +#~ "seuil critique" + +#, c-format +#~ msgid "%s - Plugin timed out after %d seconds\n" +#~ msgstr "%s - Le plugin n'as pas répondu dans les %d secondes\n" + +#~ msgid "Critical Process Count must be an integer!" +#~ msgstr "Critique Le total des processus doit être un nombre entier!" + +#~ msgid "Warning Process Count must be an integer!" +#~ msgstr "Avertissement Le total des processus doit être un nombre entier!" + +#~ msgid "wmax (%d) cannot be greater than cmax (%d)\n" +#~ msgstr "wmax (%d) ne peut pas être plus grand que cmax (%d)\n" + +#~ msgid "wmin (%d) cannot be less than cmin (%d)\n" +#~ msgstr "wmin (%d) ne peut pas être plus petit que cmin (%d)\n" + +#~ msgid "CRITICAL - Cannot retrieve server certificate." +#~ msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur" + +#~ msgid "OIDs." +#~ msgstr "OIDs." + +#~ msgid "CRITICAL - Cannot retrieve server certificate.\n" +#~ msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur.\n" + +#~ msgid "Usage: " +#~ msgstr "Utilisation: " + +#~ msgid "" +#~ " See: http://nagiosplugins.org/extra-opts for --extra-opts usage and " +#~ "examples.\n" +#~ msgstr "" +#~ " Voir: http://nagiosplugins.org/extra-opts pour le format et examples de " +#~ "--extra-opts.\n" diff --git a/po/monitoring-plugins.pot b/po/monitoring-plugins.pot new file mode 100644 index 0000000..4fec2a1 --- /dev/null +++ b/po/monitoring-plugins.pot @@ -0,0 +1,6395 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Monitoring Plugins Development Team +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: devel@monitoring-plugins.org\n" +"POT-Creation-Date: 2023-02-01 13:48+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: plugins/check_by_ssh.c:88 plugins/check_cluster.c:76 plugins/check_dig.c:91 +#: plugins/check_disk.c:201 plugins/check_dns.c:106 plugins/check_dummy.c:52 +#: plugins/check_fping.c:95 plugins/check_game.c:82 plugins/check_hpjd.c:105 +#: plugins/check_http.c:174 plugins/check_ldap.c:118 plugins/check_load.c:128 +#: plugins/check_mrtgtraf.c:83 plugins/check_mysql.c:124 +#: plugins/check_nagios.c:91 plugins/check_nt.c:127 plugins/check_ntp.c:780 +#: plugins/check_ntp_peer.c:575 plugins/check_ntp_time.c:557 +#: plugins/check_nwstat.c:173 plugins/check_overcr.c:102 +#: plugins/check_pgsql.c:174 plugins/check_ping.c:97 plugins/check_procs.c:172 +#: plugins/check_radius.c:172 plugins/check_real.c:80 plugins/check_smtp.c:143 +#: plugins/check_snmp.c:246 plugins/check_ssh.c:74 plugins/check_swap.c:118 +#: plugins/check_tcp.c:222 plugins/check_time.c:78 plugins/check_ups.c:122 +#: plugins/check_users.c:84 plugins/negate.c:210 plugins-root/check_dhcp.c:270 +msgid "Could not parse arguments" +msgstr "" + +#: plugins/check_by_ssh.c:92 plugins/check_dig.c:85 plugins/check_dns.c:99 +#: plugins/check_nagios.c:95 plugins/check_pgsql.c:180 plugins/check_ping.c:101 +#: plugins/check_procs.c:188 plugins/check_snmp.c:346 plugins/negate.c:78 +msgid "Cannot catch SIGALRM" +msgstr "" + +#: plugins/check_by_ssh.c:107 +#, c-format +msgid "SSH connection failed: %s\n" +msgstr "" + +#: plugins/check_by_ssh.c:126 +#, c-format +msgid "Remote command execution failed: %s\n" +msgstr "" + +#: plugins/check_by_ssh.c:141 +#, c-format +msgid "%s - check_by_ssh: Remote command '%s' returned status %d\n" +msgstr "" + +#: plugins/check_by_ssh.c:153 +#, c-format +msgid "SSH WARNING: could not open %s\n" +msgstr "" + +#: plugins/check_by_ssh.c:162 +#, c-format +msgid "%s: Error parsing output\n" +msgstr "" + +#: plugins/check_by_ssh.c:242 plugins/check_disk.c:521 plugins/check_http.c:292 +#: plugins/check_ldap.c:334 plugins/check_pgsql.c:314 plugins/check_procs.c:437 +#: plugins/check_radius.c:319 plugins/check_real.c:357 plugins/check_smtp.c:591 +#: plugins/check_snmp.c:787 plugins/check_ssh.c:140 plugins/check_tcp.c:519 +#: plugins/check_time.c:302 plugins/check_ups.c:559 plugins/negate.c:160 +msgid "Timeout interval must be a positive integer" +msgstr "" + +#: plugins/check_by_ssh.c:254 plugins/check_pgsql.c:344 +#: plugins/check_radius.c:283 plugins/check_real.c:328 plugins/check_smtp.c:516 +#: plugins/check_tcp.c:525 plugins/check_time.c:296 plugins/check_ups.c:521 +msgid "Port must be a positive integer" +msgstr "" + +#: plugins/check_by_ssh.c:315 +msgid "skip-stdout argument must be an integer" +msgstr "" + +#: plugins/check_by_ssh.c:323 +msgid "skip-stderr argument must be an integer" +msgstr "" + +#: plugins/check_by_ssh.c:349 +#, c-format +msgid "%s: You must provide a host name\n" +msgstr "" + +#: plugins/check_by_ssh.c:366 +msgid "No remotecmd" +msgstr "" + +#: plugins/check_by_ssh.c:380 +#, c-format +msgid "%s: Argument limit of %d exceeded\n" +msgstr "" + +#: plugins/check_by_ssh.c:383 +msgid "Can not (re)allocate 'commargv' buffer\n" +msgstr "" + +#: plugins/check_by_ssh.c:397 +#, c-format +msgid "" +"%s: In passive mode, you must provide a service name for each command.\n" +msgstr "" + +#: plugins/check_by_ssh.c:400 +#, c-format +msgid "" +"%s: In passive mode, you must provide the host short name from the " +"monitoring configs.\n" +msgstr "" + +#: plugins/check_by_ssh.c:414 +#, c-format +msgid "This plugin uses SSH to execute commands on a remote host" +msgstr "" + +#: plugins/check_by_ssh.c:429 +msgid "tell ssh to use Protocol 1 [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:431 +msgid "tell ssh to use Protocol 2 [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:433 +msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:435 +msgid "Ignore all or (if specified) first n lines on STDERR [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:437 +msgid "Exit with an warning, if there is an output on STDERR" +msgstr "" + +#: plugins/check_by_ssh.c:439 +msgid "" +"tells ssh to fork rather than create a tty [optional]. This will always " +"return OK if ssh is executed" +msgstr "" + +#: plugins/check_by_ssh.c:441 +msgid "command to execute on the remote machine" +msgstr "" + +#: plugins/check_by_ssh.c:443 +msgid "SSH user name on remote host [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:445 +msgid "identity of an authorized key [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:447 +msgid "external command file for monitoring [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:449 +msgid "list of monitoring service names, separated by ':' [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:451 +msgid "short name of host in the monitoring configuration [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:453 +msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:455 +msgid "Tell ssh to use this configfile [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:457 +msgid "Tell ssh to suppress warning and diagnostic messages [optional]" +msgstr "" + +#: plugins/check_by_ssh.c:461 +msgid "Make connection problems return UNKNOWN instead of CRITICAL" +msgstr "" + +#: plugins/check_by_ssh.c:464 +msgid "The most common mode of use is to refer to a local identity file with" +msgstr "" + +#: plugins/check_by_ssh.c:465 +msgid "the '-i' option. In this mode, the identity pair should have a null" +msgstr "" + +#: plugins/check_by_ssh.c:466 +msgid "passphrase and the public key should be listed in the authorized_keys" +msgstr "" + +#: plugins/check_by_ssh.c:467 +msgid "file of the remote host. Usually the key will be restricted to running" +msgstr "" + +#: plugins/check_by_ssh.c:468 +msgid "only one command on the remote server. If the remote SSH server tracks" +msgstr "" + +#: plugins/check_by_ssh.c:469 +msgid "invocation arguments, the one remote program may be an agent that can" +msgstr "" + +#: plugins/check_by_ssh.c:470 +msgid "execute additional commands as proxy" +msgstr "" + +#: plugins/check_by_ssh.c:472 +msgid "To use passive mode, provide multiple '-C' options, and provide" +msgstr "" + +#: plugins/check_by_ssh.c:473 +msgid "" +"all of -O, -s, and -n options (servicelist order must match '-C'options)" +msgstr "" + +#: plugins/check_by_ssh.c:475 plugins/check_cluster.c:271 +#: plugins/check_dig.c:364 plugins/check_disk.c:936 plugins/check_http.c:1840 +#: plugins/check_nagios.c:312 plugins/check_ntp.c:879 +#: plugins/check_ntp_peer.c:733 plugins/check_ntp_time.c:642 +#: plugins/check_procs.c:763 plugins/negate.c:249 plugins/urlize.c:179 +msgid "Examples:" +msgstr "" + +#: plugins/check_by_ssh.c:490 plugins/check_cluster.c:284 +#: plugins/check_dig.c:376 plugins/check_disk.c:953 plugins/check_dns.c:617 +#: plugins/check_dummy.c:122 plugins/check_fping.c:524 plugins/check_game.c:331 +#: plugins/check_hpjd.c:439 plugins/check_http.c:1878 plugins/check_ldap.c:511 +#: plugins/check_load.c:372 plugins/check_mrtg.c:382 plugins/check_mysql.c:584 +#: plugins/check_nagios.c:323 plugins/check_nt.c:797 plugins/check_ntp.c:898 +#: plugins/check_ntp_peer.c:753 plugins/check_ntp_time.c:651 +#: plugins/check_nwstat.c:1685 plugins/check_overcr.c:467 +#: plugins/check_pgsql.c:548 plugins/check_ping.c:617 plugins/check_procs.c:786 +#: plugins/check_radius.c:396 plugins/check_real.c:452 plugins/check_smtp.c:860 +#: plugins/check_snmp.c:1344 plugins/check_ssh.c:325 plugins/check_swap.c:610 +#: plugins/check_tcp.c:710 plugins/check_time.c:371 plugins/check_ups.c:663 +#: plugins/check_users.c:262 plugins/check_ide_smart.c:606 plugins/negate.c:273 +#: plugins/urlize.c:196 plugins-root/check_dhcp.c:1394 +#: plugins-root/check_icmp.c:1630 +msgid "Usage:" +msgstr "" + +#: plugins/check_cluster.c:240 +#, c-format +msgid "Host/Service Cluster Plugin for Monitoring" +msgstr "" + +#: plugins/check_cluster.c:246 plugins/check_nt.c:697 +msgid "Options:" +msgstr "" + +#: plugins/check_cluster.c:249 +msgid "Check service cluster status" +msgstr "" + +#: plugins/check_cluster.c:251 +msgid "Check host cluster status" +msgstr "" + +#: plugins/check_cluster.c:253 +msgid "Optional prepended text output (i.e. \"Host cluster\")" +msgstr "" + +#: plugins/check_cluster.c:255 plugins/check_cluster.c:258 +msgid "Specifies the range of hosts or services in cluster that must be in a" +msgstr "" + +#: plugins/check_cluster.c:256 +msgid "non-OK state in order to return a WARNING status level" +msgstr "" + +#: plugins/check_cluster.c:259 +msgid "non-OK state in order to return a CRITICAL status level" +msgstr "" + +#: plugins/check_cluster.c:261 +msgid "The status codes of the hosts or services in the cluster, separated by" +msgstr "" + +#: plugins/check_cluster.c:262 +msgid "commas" +msgstr "" + +#: plugins/check_cluster.c:267 plugins/check_game.c:318 +#: plugins/check_http.c:1822 plugins/check_ldap.c:497 plugins/check_mrtg.c:363 +#: plugins/check_mrtgtraf.c:361 plugins/check_mysql.c:573 +#: plugins/check_nt.c:781 plugins/check_ntp.c:875 plugins/check_ntp_peer.c:724 +#: plugins/check_ntp_time.c:633 plugins/check_nwstat.c:1670 +#: plugins/check_overcr.c:456 plugins/check_snmp.c:1315 +#: plugins/check_swap.c:599 plugins/check_ups.c:645 +#: plugins/check_ide_smart.c:580 plugins/negate.c:255 +#: plugins-root/check_icmp.c:1605 +msgid "Notes:" +msgstr "" + +#: plugins/check_cluster.c:273 +msgid "" +"Will alert critical if there are 3 or more service data points in a non-OK" +msgstr "" + +#: plugins/check_cluster.c:274 plugins/check_ups.c:642 +msgid "state." +msgstr "" + +#: plugins/check_dig.c:106 plugins/check_dig.c:108 +#, c-format +msgid "Looking for: '%s'\n" +msgstr "" + +#: plugins/check_dig.c:115 +msgid "dig returned an error status" +msgstr "" + +#: plugins/check_dig.c:140 +msgid "Server not found in ANSWER SECTION" +msgstr "" + +#: plugins/check_dig.c:150 +msgid "No ANSWER SECTION found" +msgstr "" + +#: plugins/check_dig.c:177 +msgid "Probably a non-existent host/domain" +msgstr "" + +#: plugins/check_dig.c:239 +#, c-format +msgid "Port must be a positive integer - %s" +msgstr "" + +#: plugins/check_dig.c:250 +#, c-format +msgid "Warning interval must be a positive integer - %s" +msgstr "" + +#: plugins/check_dig.c:258 +#, c-format +msgid "Critical interval must be a positive integer - %s" +msgstr "" + +#: plugins/check_dig.c:266 +#, c-format +msgid "Timeout interval must be a positive integer - %s" +msgstr "" + +#: plugins/check_dig.c:334 +#, c-format +msgid "This plugin tests the DNS service on the specified host using dig" +msgstr "" + +#: plugins/check_dig.c:347 +msgid "Force dig to only use IPv4 query transport" +msgstr "" + +#: plugins/check_dig.c:349 +msgid "Force dig to only use IPv6 query transport" +msgstr "" + +#: plugins/check_dig.c:351 +msgid "Machine name to lookup" +msgstr "" + +#: plugins/check_dig.c:353 +msgid "Record type to lookup (default: A)" +msgstr "" + +#: plugins/check_dig.c:355 +msgid "" +"An address expected to be in the answer section. If not set, uses whatever" +msgstr "" + +#: plugins/check_dig.c:356 +msgid "was in -l" +msgstr "" + +#: plugins/check_dig.c:358 +msgid "Pass STRING as argument(s) to dig" +msgstr "" + +#: plugins/check_disk.c:223 +#, c-format +msgid "DISK %s: %s not found\n" +msgstr "" + +#: plugins/check_disk.c:223 plugins/check_disk.c:968 plugins/check_dns.c:295 +#: plugins/check_dummy.c:74 plugins/check_mysql.c:310 +#: plugins/check_nagios.c:104 plugins/check_nagios.c:168 +#: plugins/check_nagios.c:172 plugins/check_pgsql.c:571 +#: plugins/check_pgsql.c:588 plugins/check_pgsql.c:597 +#: plugins/check_pgsql.c:612 plugins/check_procs.c:351 +#, c-format +msgid "CRITICAL" +msgstr "" + +#: plugins/check_disk.c:598 +#, c-format +msgid "unit type %s not known\n" +msgstr "" + +#: plugins/check_disk.c:601 +#, c-format +msgid "failed allocating storage for '%s'\n" +msgstr "" + +#: plugins/check_disk.c:629 plugins/check_disk.c:670 plugins/check_disk.c:678 +#: plugins/check_disk.c:686 plugins/check_disk.c:690 plugins/check_disk.c:732 +#: plugins/check_disk.c:738 plugins/check_disk.c:757 plugins/check_dummy.c:77 +#: plugins/check_dummy.c:80 plugins/check_pgsql.c:613 plugins/check_procs.c:506 +#, c-format +msgid "UNKNOWN" +msgstr "" + +#: plugins/check_disk.c:629 +msgid "Must set a threshold value before using -p\n" +msgstr "" + +#: plugins/check_disk.c:670 +msgid "Must set -E before selecting paths\n" +msgstr "" + +#: plugins/check_disk.c:678 +msgid "Must set group value before selecting paths\n" +msgstr "" + +#: plugins/check_disk.c:686 +msgid "" +"Paths need to be selected before using -i/-I. Use -A to select all paths " +"explicitly" +msgstr "" + +#: plugins/check_disk.c:690 plugins/check_disk.c:738 plugins/check_procs.c:506 +msgid "Could not compile regular expression" +msgstr "" + +#: plugins/check_disk.c:732 +msgid "Must set a threshold value before using -r/-R\n" +msgstr "" + +#: plugins/check_disk.c:758 +msgid "Regular expression did not match any path or disk" +msgstr "" + +#: plugins/check_disk.c:804 +msgid "Unknown argument" +msgstr "" + +#: plugins/check_disk.c:838 +#, c-format +msgid " for %s\n" +msgstr "" + +#: plugins/check_disk.c:867 +msgid "" +"This plugin checks the amount of used disk space on a mounted file system" +msgstr "" + +#: plugins/check_disk.c:868 +msgid "" +"and generates an alert if free space is less than one of the threshold values" +msgstr "" + +#: plugins/check_disk.c:878 +msgid "Exit with WARNING status if less than INTEGER units of disk are free" +msgstr "" + +#: plugins/check_disk.c:880 +msgid "Exit with WARNING status if less than PERCENT of disk space is free" +msgstr "" + +#: plugins/check_disk.c:882 +msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" +msgstr "" + +#: plugins/check_disk.c:884 +msgid "Exit with CRITICAL status if less than PERCENT of disk space is free" +msgstr "" + +#: plugins/check_disk.c:886 +msgid "Exit with WARNING status if less than PERCENT of inode space is free" +msgstr "" + +#: plugins/check_disk.c:888 +msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" +msgstr "" + +#: plugins/check_disk.c:890 +msgid "" +"Mount point or block device as emitted by the mount(8) command (may be " +"repeated)" +msgstr "" + +#: plugins/check_disk.c:892 +msgid "Ignore device (only works if -p unspecified)" +msgstr "" + +#: plugins/check_disk.c:894 +msgid "Clear thresholds" +msgstr "" + +#: plugins/check_disk.c:896 +msgid "For paths or partitions specified with -p, only check for exact paths" +msgstr "" + +#: plugins/check_disk.c:898 +msgid "Display only devices/mountpoints with errors" +msgstr "" + +#: plugins/check_disk.c:900 +msgid "Don't account root-reserved blocks into freespace in perfdata" +msgstr "" + +#: plugins/check_disk.c:902 +msgid "Display inode usage in perfdata" +msgstr "" + +#: plugins/check_disk.c:904 +msgid "" +"Group paths. Thresholds apply to (free-)space of all partitions together" +msgstr "" + +#: plugins/check_disk.c:906 +msgid "Same as '--units kB'" +msgstr "" + +#: plugins/check_disk.c:908 +msgid "Only check local filesystems" +msgstr "" + +#: plugins/check_disk.c:910 +msgid "" +"Only check local filesystems against thresholds. Yet call stat on remote " +"filesystems" +msgstr "" + +#: plugins/check_disk.c:911 +msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" +msgstr "" + +#: plugins/check_disk.c:913 +msgid "Display the (block) device instead of the mount point" +msgstr "" + +#: plugins/check_disk.c:915 +msgid "Same as '--units MB'" +msgstr "" + +#: plugins/check_disk.c:917 +msgid "Explicitly select all paths. This is equivalent to -R '.*'" +msgstr "" + +#: plugins/check_disk.c:919 +msgid "" +"Case insensitive regular expression for path/partition (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:921 +msgid "Regular expression for path or partition (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:923 +msgid "" +"Regular expression to ignore selected path/partition (case insensitive) (may " +"be repeated)" +msgstr "" + +#: plugins/check_disk.c:925 +msgid "" +"Regular expression to ignore selected path or partition (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:928 +msgid "Choose bytes, kB, MB, GB, TB (default: MB)" +msgstr "" + +#: plugins/check_disk.c:931 +msgid "Ignore all filesystems of indicated type (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:933 +msgid "Check only filesystems of indicated type (may be repeated)" +msgstr "" + +#: plugins/check_disk.c:938 +msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" +msgstr "" + +#: plugins/check_disk.c:940 +msgid "" +"Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" +"r regex" +msgstr "" + +#: plugins/check_disk.c:941 +msgid "" +"are grouped which means the freespace thresholds are applied to all disks " +"together" +msgstr "" + +#: plugins/check_disk.c:943 +msgid "" +"Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " +"100M/50M" +msgstr "" + +#: plugins/check_disk.c:969 +#, c-format +msgid "%s %s: %s\n" +msgstr "" + +#: plugins/check_disk.c:969 +msgid "is not accessible" +msgstr "" + +#: plugins/check_dns.c:120 +msgid "nslookup returned an error status" +msgstr "" + +#: plugins/check_dns.c:138 +msgid "Warning plugin error" +msgstr "" + +#: plugins/check_dns.c:156 +#, c-format +msgid "DNS CRITICAL - '%s' returned empty server string\n" +msgstr "" + +#: plugins/check_dns.c:161 +#, c-format +msgid "DNS CRITICAL - No response from DNS %s\n" +msgstr "" + +#: plugins/check_dns.c:180 +#, c-format +msgid "DNS CRITICAL - '%s' returned empty host name string\n" +msgstr "" + +#: plugins/check_dns.c:186 +msgid "Non-authoritative answer:" +msgstr "" + +#: plugins/check_dns.c:215 +#, c-format +msgid "Domain '%s' was not found by the server\n" +msgstr "" + +#: plugins/check_dns.c:234 +#, c-format +msgid "DNS CRITICAL - '%s' msg parsing exited with no address\n" +msgstr "" + +#: plugins/check_dns.c:265 +#, c-format +msgid "expected '%s' but got '%s'" +msgstr "" + +#: plugins/check_dns.c:272 +#, c-format +msgid "Domain '%s' was found by the server: '%s'\n" +msgstr "" + +#: plugins/check_dns.c:282 +#, c-format +msgid "server %s is not authoritative for %s" +msgstr "" + +#: plugins/check_dns.c:291 plugins/check_dummy.c:68 plugins/check_nagios.c:182 +#: plugins/check_pgsql.c:608 plugins/check_procs.c:344 +#, c-format +msgid "OK" +msgstr "" + +#: plugins/check_dns.c:293 plugins/check_dummy.c:71 plugins/check_mysql.c:307 +#: plugins/check_nagios.c:182 plugins/check_pgsql.c:577 +#: plugins/check_pgsql.c:582 plugins/check_pgsql.c:610 +#: plugins/check_procs.c:346 +#, c-format +msgid "WARNING" +msgstr "" + +#: plugins/check_dns.c:297 +#, c-format +msgid "%.3f second response time" +msgid_plural "%.3f seconds response time" +msgstr[0] "" +msgstr[1] "" + +#: plugins/check_dns.c:298 +#, c-format +msgid ". %s returns %s" +msgstr "" + +#: plugins/check_dns.c:318 +#, c-format +msgid "DNS WARNING - %s\n" +msgstr "" + +#: plugins/check_dns.c:319 plugins/check_dns.c:322 plugins/check_dns.c:325 +msgid " Probably a non-existent host/domain" +msgstr "" + +#: plugins/check_dns.c:321 +#, c-format +msgid "DNS CRITICAL - %s\n" +msgstr "" + +#: plugins/check_dns.c:324 +#, c-format +msgid "DNS UNKNOWN - %s\n" +msgstr "" + +#: plugins/check_dns.c:368 +msgid "Note: nslookup is deprecated and may be removed from future releases." +msgstr "" + +#: plugins/check_dns.c:369 +msgid "Consider using the `dig' or `host' programs instead. Run nslookup with" +msgstr "" + +#: plugins/check_dns.c:370 +msgid "the `-sil[ent]' option to prevent this message from appearing." +msgstr "" + +#: plugins/check_dns.c:375 plugins/check_dns.c:377 +#, c-format +msgid "No response from DNS %s\n" +msgstr "" + +#: plugins/check_dns.c:381 +#, c-format +msgid "DNS %s has no records\n" +msgstr "" + +#: plugins/check_dns.c:389 +#, c-format +msgid "Connection to DNS %s was refused\n" +msgstr "" + +#: plugins/check_dns.c:393 +#, c-format +msgid "Query was refused by DNS server at %s\n" +msgstr "" + +#: plugins/check_dns.c:397 +#, c-format +msgid "No information returned by DNS server at %s\n" +msgstr "" + +#: plugins/check_dns.c:401 +msgid "Network is unreachable\n" +msgstr "" + +#: plugins/check_dns.c:405 +#, c-format +msgid "DNS failure for %s\n" +msgstr "" + +#: plugins/check_dns.c:471 plugins/check_dns.c:479 plugins/check_dns.c:486 +#: plugins/check_dns.c:491 plugins/check_dns.c:533 plugins/check_dns.c:541 +#: plugins/check_game.c:211 plugins/check_game.c:219 +msgid "Input buffer overflow\n" +msgstr "" + +#: plugins/check_dns.c:576 +msgid "" +"This plugin uses the nslookup program to obtain the IP address for the given " +"host/domain query." +msgstr "" + +#: plugins/check_dns.c:577 +msgid "An optional DNS server to use may be specified." +msgstr "" + +#: plugins/check_dns.c:578 +msgid "" +"If no DNS server is specified, the default server(s) specified in /etc/" +"resolv.conf will be used." +msgstr "" + +#: plugins/check_dns.c:588 +msgid "The name or address you want to query" +msgstr "" + +#: plugins/check_dns.c:590 +msgid "Optional DNS server you want to use for the lookup" +msgstr "" + +#: plugins/check_dns.c:592 +msgid "" +"Optional IP-ADDRESS/CIDR you expect the DNS server to return. HOST must end" +msgstr "" + +#: plugins/check_dns.c:593 +msgid "" +"with a dot (.). This option can be repeated multiple times (Returns OK if any" +msgstr "" + +#: plugins/check_dns.c:594 +msgid "value matches)." +msgstr "" + +#: plugins/check_dns.c:596 +msgid "" +"Expect the DNS server to return NXDOMAIN (i.e. the domain was not found)" +msgstr "" + +#: plugins/check_dns.c:597 +msgid "Cannot be used together with -a" +msgstr "" + +#: plugins/check_dns.c:599 +msgid "Optionally expect the DNS server to be authoritative for the lookup" +msgstr "" + +#: plugins/check_dns.c:601 +msgid "Return warning if elapsed time exceeds value. Default off" +msgstr "" + +#: plugins/check_dns.c:603 +msgid "Return critical if elapsed time exceeds value. Default off" +msgstr "" + +#: plugins/check_dns.c:605 +msgid "" +"Return critical if the list of expected addresses does not match all " +"addresses" +msgstr "" + +#: plugins/check_dns.c:606 +msgid "returned. Default off" +msgstr "" + +#: plugins/check_dummy.c:62 +msgid "Arguments to check_dummy must be an integer" +msgstr "" + +#: plugins/check_dummy.c:82 +#, c-format +msgid "Status %d is not a supported error state\n" +msgstr "" + +#: plugins/check_dummy.c:104 +msgid "" +"This plugin will simply return the state corresponding to the numeric value" +msgstr "" + +#: plugins/check_dummy.c:106 +msgid "of the argument with optional text" +msgstr "" + +#: plugins/check_fping.c:127 plugins/check_hpjd.c:134 plugins/check_ping.c:444 +#: plugins/check_swap.c:196 plugins/check_users.c:130 plugins/urlize.c:109 +#, c-format +msgid "Could not open pipe: %s\n" +msgstr "" + +#: plugins/check_fping.c:133 plugins/check_hpjd.c:140 plugins/check_load.c:159 +#: plugins/check_swap.c:202 plugins/check_users.c:136 plugins/urlize.c:115 +#, c-format +msgid "Could not open stderr for %s\n" +msgstr "" + +#: plugins/check_fping.c:161 +msgid "FPING UNKNOWN - IP address not found\n" +msgstr "" + +#: plugins/check_fping.c:164 +msgid "FPING UNKNOWN - invalid commandline argument\n" +msgstr "" + +#: plugins/check_fping.c:167 +msgid "FPING UNKNOWN - failed system call\n" +msgstr "" + +#: plugins/check_fping.c:194 +#, c-format +msgid "FPING %s - %s (rta=%f ms)|%s\n" +msgstr "" + +#: plugins/check_fping.c:202 +#, c-format +msgid "FPING UNKNOWN - %s not found\n" +msgstr "" + +#: plugins/check_fping.c:206 +#, c-format +msgid "FPING CRITICAL - %s is unreachable\n" +msgstr "" + +#: plugins/check_fping.c:211 +#, c-format +msgid "FPING UNKNOWN - %s parameter error\n" +msgstr "" + +#: plugins/check_fping.c:215 plugins/check_fping.c:255 +#, c-format +msgid "FPING CRITICAL - %s is down\n" +msgstr "" + +#: plugins/check_fping.c:242 +#, c-format +msgid "FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n" +msgstr "" + +#: plugins/check_fping.c:268 +#, c-format +msgid "FPING %s - %s (loss=%.0f%% )|%s\n" +msgstr "" + +#: plugins/check_fping.c:345 plugins/check_fping.c:351 plugins/check_hpjd.c:345 +#: plugins/check_hpjd.c:376 plugins/check_mysql.c:386 plugins/check_mysql.c:473 +#: plugins/check_ntp.c:719 plugins/check_ntp_peer.c:497 +#: plugins/check_ntp_time.c:498 plugins/check_pgsql.c:338 +#: plugins/check_ping.c:301 plugins/check_ping.c:424 plugins/check_radius.c:275 +#: plugins/check_real.c:315 plugins/check_real.c:377 plugins/check_smtp.c:509 +#: plugins/check_smtp.c:654 plugins/check_ssh.c:162 plugins/check_time.c:240 +#: plugins/check_time.c:315 plugins/check_ups.c:507 plugins/check_ups.c:576 +msgid "Invalid hostname/address" +msgstr "" + +#: plugins/check_fping.c:364 plugins/check_ldap.c:400 plugins/check_ping.c:252 +#: plugins-root/check_icmp.c:477 +msgid "IPv6 support not available\n" +msgstr "" + +#: plugins/check_fping.c:397 +msgid "Packet size must be a positive integer" +msgstr "" + +#: plugins/check_fping.c:403 +msgid "Packet count must be a positive integer" +msgstr "" + +#: plugins/check_fping.c:409 +msgid "Target timeout must be a positive integer" +msgstr "" + +#: plugins/check_fping.c:415 +msgid "Interval must be a positive integer" +msgstr "" + +#: plugins/check_fping.c:421 plugins/check_ntp.c:743 +#: plugins/check_ntp_peer.c:524 plugins/check_ntp_time.c:528 +#: plugins/check_radius.c:325 plugins/check_time.c:319 +msgid "Hostname was not supplied" +msgstr "" + +#: plugins/check_fping.c:441 +#, c-format +msgid "%s: Only one threshold may be packet loss (%s)\n" +msgstr "" + +#: plugins/check_fping.c:445 +#, c-format +msgid "%s: Only one threshold must be packet loss (%s)\n" +msgstr "" + +#: plugins/check_fping.c:475 +msgid "" +"This plugin will use the fping command to ping the specified host for a fast " +"check" +msgstr "" + +#: plugins/check_fping.c:477 +msgid "Note that it is necessary to set the suid flag on fping." +msgstr "" + +#: plugins/check_fping.c:489 +msgid "" +"name or IP Address of host to ping (IP Address bypasses name lookup, " +"reducing system load)" +msgstr "" + +#: plugins/check_fping.c:491 plugins/check_ping.c:589 +msgid "warning threshold pair" +msgstr "" + +#: plugins/check_fping.c:493 plugins/check_ping.c:591 +msgid "critical threshold pair" +msgstr "" + +#: plugins/check_fping.c:495 +msgid "Return OK after first successful reply" +msgstr "" + +#: plugins/check_fping.c:497 +msgid "size of ICMP packet" +msgstr "" + +#: plugins/check_fping.c:499 +msgid "number of ICMP packets to send" +msgstr "" + +#: plugins/check_fping.c:501 +msgid "Target timeout (ms)" +msgstr "" + +#: plugins/check_fping.c:503 +msgid "Interval (ms) between sending packets" +msgstr "" + +#: plugins/check_fping.c:505 +msgid "name or IP Address of sourceip" +msgstr "" + +#: plugins/check_fping.c:507 +msgid "source interface name" +msgstr "" + +#: plugins/check_fping.c:510 +#, c-format +msgid "" +"THRESHOLD is ,%% where is the round trip average travel time " +"(ms)" +msgstr "" + +#: plugins/check_fping.c:511 +msgid "" +"which triggers a WARNING or CRITICAL state, and is the percentage of" +msgstr "" + +#: plugins/check_fping.c:512 +msgid "packet loss to trigger an alarm state." +msgstr "" + +#: plugins/check_fping.c:515 +msgid "IPv4 is used by default. Specify -6 to use IPv6." +msgstr "" + +#: plugins/check_game.c:111 +#, c-format +msgid "CRITICAL - Host type parameter incorrect!\n" +msgstr "" + +#: plugins/check_game.c:126 +#, c-format +msgid "CRITICAL - Host not found\n" +msgstr "" + +#: plugins/check_game.c:130 +#, c-format +msgid "CRITICAL - Game server down or unavailable\n" +msgstr "" + +#: plugins/check_game.c:134 +#, c-format +msgid "CRITICAL - Game server timeout\n" +msgstr "" + +#: plugins/check_game.c:297 +#, c-format +msgid "This plugin tests game server connections with the specified host." +msgstr "" + +#: plugins/check_game.c:307 +msgid "Optional port of which to connect" +msgstr "" + +#: plugins/check_game.c:309 +msgid "Field number in raw qstat output that contains game name" +msgstr "" + +#: plugins/check_game.c:311 +msgid "Field number in raw qstat output that contains map name" +msgstr "" + +#: plugins/check_game.c:313 +msgid "Field number in raw qstat output that contains ping time" +msgstr "" + +#: plugins/check_game.c:319 +msgid "" +"This plugin uses the 'qstat' command, the popular game server status query " +"tool." +msgstr "" + +#: plugins/check_game.c:320 +msgid "" +"If you don't have the package installed, you will need to download it from" +msgstr "" + +#: plugins/check_game.c:321 +msgid "https://github.com/multiplay/qstat before you can use this plugin." +msgstr "" + +#: plugins/check_hpjd.c:245 +msgid "Paper Jam" +msgstr "" + +#: plugins/check_hpjd.c:250 +msgid "Out of Paper" +msgstr "" + +#: plugins/check_hpjd.c:255 +msgid "Printer Offline" +msgstr "" + +#: plugins/check_hpjd.c:260 +msgid "Peripheral Error" +msgstr "" + +#: plugins/check_hpjd.c:264 +msgid "Intervention Required" +msgstr "" + +#: plugins/check_hpjd.c:268 +msgid "Toner Low" +msgstr "" + +#: plugins/check_hpjd.c:272 +msgid "Insufficient Memory" +msgstr "" + +#: plugins/check_hpjd.c:276 +msgid "A Door is Open" +msgstr "" + +#: plugins/check_hpjd.c:280 +msgid "Output Tray is Full" +msgstr "" + +#: plugins/check_hpjd.c:284 +msgid "Data too Slow for Engine" +msgstr "" + +#: plugins/check_hpjd.c:288 +msgid "Unknown Paper Error" +msgstr "" + +#: plugins/check_hpjd.c:293 +#, c-format +msgid "Printer ok - (%s)\n" +msgstr "" + +#: plugins/check_hpjd.c:353 +msgid "Port must be a positive short integer" +msgstr "" + +#: plugins/check_hpjd.c:410 +msgid "This plugin tests the STATUS of an HP printer with a JetDirect card." +msgstr "" + +#: plugins/check_hpjd.c:411 +msgid "Net-snmp must be installed on the computer running the plugin." +msgstr "" + +#: plugins/check_hpjd.c:421 +msgid "The SNMP community name " +msgstr "" + +#: plugins/check_hpjd.c:422 plugins/check_hpjd.c:426 +#, c-format +msgid "(default=%s)" +msgstr "" + +#: plugins/check_hpjd.c:425 +msgid "Specify the port to check " +msgstr "" + +#: plugins/check_hpjd.c:429 +msgid "Disable paper check " +msgstr "" + +#: plugins/check_http.c:196 +msgid "file does not exist or is not readable" +msgstr "" + +#: plugins/check_http.c:324 plugins/check_http.c:329 plugins/check_http.c:335 +#: plugins/check_smtp.c:605 plugins/check_tcp.c:590 plugins/check_tcp.c:595 +#: plugins/check_tcp.c:601 +msgid "Invalid certificate expiration period" +msgstr "" + +#: plugins/check_http.c:378 +msgid "" +"Invalid option - Valid SSL/TLS versions: 2, 3, 1, 1.1, 1.2 (with optional " +"'+' suffix)" +msgstr "" + +#: plugins/check_http.c:384 plugins/check_tcp.c:614 plugins/check_tcp.c:623 +msgid "Invalid option - SSL is not available" +msgstr "" + +#: plugins/check_http.c:392 +msgid "Invalid max_redirs count" +msgstr "" + +#: plugins/check_http.c:412 +msgid "Invalid onredirect option" +msgstr "" + +#: plugins/check_http.c:414 +#, c-format +msgid "option f:%d \n" +msgstr "" + +#: plugins/check_http.c:449 +msgid "Invalid port number" +msgstr "" + +#: plugins/check_http.c:507 +#, c-format +msgid "Could Not Compile Regular Expression: %s" +msgstr "" + +#: plugins/check_http.c:521 plugins/check_ntp.c:732 +#: plugins/check_ntp_peer.c:513 plugins/check_ntp_time.c:517 +#: plugins/check_smtp.c:634 plugins/check_ssh.c:151 plugins/check_tcp.c:491 +msgid "IPv6 support not available" +msgstr "" + +#: plugins/check_http.c:589 plugins/check_ping.c:428 +msgid "You must specify a server address or host name" +msgstr "" + +#: plugins/check_http.c:606 +msgid "" +"If you use a client certificate you must also specify a private key file" +msgstr "" + +#: plugins/check_http.c:733 plugins/check_http.c:901 +msgid "HTTP UNKNOWN - Memory allocation error\n" +msgstr "" + +#: plugins/check_http.c:805 +#, c-format +msgid "%sServer date unknown, " +msgstr "" + +#: plugins/check_http.c:808 +#, c-format +msgid "%sDocument modification date unknown, " +msgstr "" + +#: plugins/check_http.c:815 +#, c-format +msgid "%sServer date \"%100s\" unparsable, " +msgstr "" + +#: plugins/check_http.c:818 +#, c-format +msgid "%sDocument date \"%100s\" unparsable, " +msgstr "" + +#: plugins/check_http.c:821 +#, c-format +msgid "%sDocument is %d seconds in the future, " +msgstr "" + +#: plugins/check_http.c:826 +#, c-format +msgid "%sLast modified %.1f days ago, " +msgstr "" + +#: plugins/check_http.c:829 +#, c-format +msgid "%sLast modified %d:%02d:%02d ago, " +msgstr "" + +#: plugins/check_http.c:943 +msgid "HTTP CRITICAL - Unable to open TCP socket\n" +msgstr "" + +#: plugins/check_http.c:1103 +msgid "HTTP UNKNOWN - Could not allocate memory for full_page\n" +msgstr "" + +#: plugins/check_http.c:1120 +msgid "HTTP CRITICAL - Error on receive\n" +msgstr "" + +#: plugins/check_http.c:1125 +msgid "HTTP CRITICAL - No data received from host\n" +msgstr "" + +#: plugins/check_http.c:1176 +#, c-format +msgid "Invalid HTTP response received from host: %s\n" +msgstr "" + +#: plugins/check_http.c:1180 +#, c-format +msgid "Invalid HTTP response received from host on port %d: %s\n" +msgstr "" + +#: plugins/check_http.c:1183 plugins/check_http.c:1376 +#, c-format +msgid "" +"%s\n" +"%s" +msgstr "" + +#: plugins/check_http.c:1191 +#, c-format +msgid "Status line output matched \"%s\" - " +msgstr "" + +#: plugins/check_http.c:1202 +#, c-format +msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" +msgstr "" + +#: plugins/check_http.c:1209 +#, c-format +msgid "HTTP CRITICAL: Invalid Status (%s)\n" +msgstr "" + +#: plugins/check_http.c:1213 plugins/check_http.c:1218 +#: plugins/check_http.c:1228 plugins/check_http.c:1232 +#, c-format +msgid "%s - " +msgstr "" + +#: plugins/check_http.c:1260 +#, c-format +msgid "%sheader '%s' not found on '%s://%s:%d%s', " +msgstr "" + +#: plugins/check_http.c:1303 +#, c-format +msgid "%sstring '%s' not found on '%s://%s:%d%s', " +msgstr "" + +#: plugins/check_http.c:1317 +#, c-format +msgid "%spattern not found, " +msgstr "" + +#: plugins/check_http.c:1319 +#, c-format +msgid "%spattern found, " +msgstr "" + +#: plugins/check_http.c:1325 +#, c-format +msgid "%sExecute Error: %s, " +msgstr "" + +#: plugins/check_http.c:1341 +#, c-format +msgid "%spage size %d too large, " +msgstr "" + +#: plugins/check_http.c:1344 +#, c-format +msgid "%spage size %d too small, " +msgstr "" + +#: plugins/check_http.c:1357 +#, c-format +msgid "%s - %d bytes in %.3f second response time %s|%s %s %s %s %s %s %s" +msgstr "" + +#: plugins/check_http.c:1369 +#, c-format +msgid "%s - %d bytes in %.3f second response time %s|%s %s" +msgstr "" + +#: plugins/check_http.c:1494 +msgid "HTTP UNKNOWN - Could not allocate addr\n" +msgstr "" + +#: plugins/check_http.c:1499 plugins/check_http.c:1530 +msgid "HTTP UNKNOWN - Could not allocate URL\n" +msgstr "" + +#: plugins/check_http.c:1508 +#, c-format +msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" +msgstr "" + +#: plugins/check_http.c:1523 +#, c-format +msgid "HTTP UNKNOWN - Empty redirect location%s\n" +msgstr "" + +#: plugins/check_http.c:1585 +#, c-format +msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" +msgstr "" + +#: plugins/check_http.c:1595 +#, c-format +msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" +msgstr "" + +#: plugins/check_http.c:1603 +#, c-format +msgid "HTTP CRITICAL - redirection creates an infinite loop - %s://%s:%d%s%s\n" +msgstr "" + +#: plugins/check_http.c:1624 +#, c-format +msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" +msgstr "" + +#: plugins/check_http.c:1632 +#, c-format +msgid "Redirection to %s://%s:%d%s\n" +msgstr "" + +#: plugins/check_http.c:1707 +msgid "This plugin tests the HTTP service on the specified host. It can test" +msgstr "" + +#: plugins/check_http.c:1708 +msgid "normal (http) and secure (https) servers, follow redirects, search for" +msgstr "" + +#: plugins/check_http.c:1709 +msgid "strings and regular expressions, check connection times, and report on" +msgstr "" + +#: plugins/check_http.c:1710 +msgid "certificate expiration times." +msgstr "" + +#: plugins/check_http.c:1717 +#, c-format +msgid "In the first form, make an HTTP request." +msgstr "" + +#: plugins/check_http.c:1718 +#, c-format +msgid "" +"In the second form, connect to the server and check the TLS certificate." +msgstr "" + +#: plugins/check_http.c:1720 +#, c-format +msgid "NOTE: One or both of -H and -I must be specified" +msgstr "" + +#: plugins/check_http.c:1728 +msgid "Host name argument for servers using host headers (virtual host)" +msgstr "" + +#: plugins/check_http.c:1729 +msgid "Append a port to include it in the header (eg: example.com:5000)" +msgstr "" + +#: plugins/check_http.c:1731 +msgid "" +"IP address or name (use numeric address if possible to bypass DNS lookup)." +msgstr "" + +#: plugins/check_http.c:1733 +msgid "Port number (default: " +msgstr "" + +#: plugins/check_http.c:1740 +msgid "" +"Connect via SSL. Port defaults to 443. VERSION is optional, and prevents" +msgstr "" + +#: plugins/check_http.c:1741 +msgid "auto-negotiation (2 = SSLv2, 3 = SSLv3, 1 = TLSv1, 1.1 = TLSv1.1," +msgstr "" + +#: plugins/check_http.c:1742 +msgid "1.2 = TLSv1.2). With a '+' suffix, newer versions are also accepted." +msgstr "" + +#: plugins/check_http.c:1744 +msgid "Enable SSL/TLS hostname extension support (SNI)" +msgstr "" + +#: plugins/check_http.c:1746 +msgid "" +"Minimum number of days a certificate has to be valid. Port defaults to 443" +msgstr "" + +#: plugins/check_http.c:1747 +msgid "" +"(when this option is used the URL is not checked by default. You can use" +msgstr "" + +#: plugins/check_http.c:1748 +msgid " --continue-after-certificate to override this behavior)" +msgstr "" + +#: plugins/check_http.c:1750 +msgid "" +"Allows the HTTP check to continue after performing the certificate check." +msgstr "" + +#: plugins/check_http.c:1751 +msgid "Does nothing unless -C is used." +msgstr "" + +#: plugins/check_http.c:1753 +msgid "Name of file that contains the client certificate (PEM format)" +msgstr "" + +#: plugins/check_http.c:1754 +msgid "to be used in establishing the SSL session" +msgstr "" + +#: plugins/check_http.c:1756 +msgid "Name of file containing the private key (PEM format)" +msgstr "" + +#: plugins/check_http.c:1757 +msgid "matching the client certificate" +msgstr "" + +#: plugins/check_http.c:1761 +msgid "Comma-delimited list of strings, at least one of them is expected in" +msgstr "" + +#: plugins/check_http.c:1762 +msgid "the first (status) line of the server response (default: " +msgstr "" + +#: plugins/check_http.c:1764 +msgid "" +"If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" +msgstr "" + +#: plugins/check_http.c:1766 +msgid "String to expect in the response headers" +msgstr "" + +#: plugins/check_http.c:1768 +msgid "String to expect in the content" +msgstr "" + +#: plugins/check_http.c:1770 +msgid "URL to GET or POST (default: /)" +msgstr "" + +#: plugins/check_http.c:1772 +msgid "URL encoded http POST data" +msgstr "" + +#: plugins/check_http.c:1774 +msgid "Set HTTP method." +msgstr "" + +#: plugins/check_http.c:1776 +msgid "Don't wait for document body: stop reading after headers." +msgstr "" + +#: plugins/check_http.c:1777 +msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" +msgstr "" + +#: plugins/check_http.c:1779 +msgid "Warn if document is more than SECONDS old. the number can also be of" +msgstr "" + +#: plugins/check_http.c:1780 +msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." +msgstr "" + +#: plugins/check_http.c:1782 +msgid "specify Content-Type header media type when POSTing\n" +msgstr "" + +#: plugins/check_http.c:1785 +msgid "Allow regex to span newlines (must precede -r or -R)" +msgstr "" + +#: plugins/check_http.c:1787 +msgid "Search page for regex STRING" +msgstr "" + +#: plugins/check_http.c:1789 +msgid "Search page for case-insensitive regex STRING" +msgstr "" + +#: plugins/check_http.c:1791 +msgid "Return CRITICAL if found, OK if not\n" +msgstr "" + +#: plugins/check_http.c:1794 +msgid "Username:password on sites with basic authentication" +msgstr "" + +#: plugins/check_http.c:1796 +msgid "Username:password on proxy-servers with basic authentication" +msgstr "" + +#: plugins/check_http.c:1798 +msgid "String to be sent in http header as \"User Agent\"" +msgstr "" + +#: plugins/check_http.c:1800 +msgid "" +"Any other tags to be sent in http header. Use multiple times for additional " +"headers" +msgstr "" + +#: plugins/check_http.c:1802 +msgid "Print additional performance data" +msgstr "" + +#: plugins/check_http.c:1804 +msgid "Print body content below status line" +msgstr "" + +#: plugins/check_http.c:1806 +msgid "Wrap output in HTML link (obsoleted by urlize)" +msgstr "" + +#: plugins/check_http.c:1808 +msgid "How to handle redirected pages. sticky is like follow but stick to the" +msgstr "" + +#: plugins/check_http.c:1809 +msgid "specified IP address. stickyport also ensures port stays the same." +msgstr "" + +#: plugins/check_http.c:1811 +msgid "Maximal number of redirects (default: " +msgstr "" + +#: plugins/check_http.c:1814 +msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" +msgstr "" + +#: plugins/check_http.c:1823 +msgid "This plugin will attempt to open an HTTP connection with the host." +msgstr "" + +#: plugins/check_http.c:1824 +msgid "" +"Successful connects return STATE_OK, refusals and timeouts return " +"STATE_CRITICAL" +msgstr "" + +#: plugins/check_http.c:1825 +msgid "" +"other errors return STATE_UNKNOWN. Successful connects, but incorrect " +"response" +msgstr "" + +#: plugins/check_http.c:1826 +msgid "" +"messages from the host result in STATE_WARNING return values. If you are" +msgstr "" + +#: plugins/check_http.c:1827 +msgid "" +"checking a virtual server that uses 'host headers' you must supply the FQDN" +msgstr "" + +#: plugins/check_http.c:1828 +msgid "(fully qualified domain name) as the [host_name] argument." +msgstr "" + +#: plugins/check_http.c:1832 +msgid "This plugin can also check whether an SSL enabled web server is able to" +msgstr "" + +#: plugins/check_http.c:1833 +msgid "serve content (optionally within a specified time) or whether the X509 " +msgstr "" + +#: plugins/check_http.c:1834 +msgid "certificate is still valid for the specified number of days." +msgstr "" + +#: plugins/check_http.c:1836 +msgid "Please note that this plugin does not check if the presented server" +msgstr "" + +#: plugins/check_http.c:1837 +msgid "certificate matches the hostname of the server, or if the certificate" +msgstr "" + +#: plugins/check_http.c:1838 +msgid "has a valid chain of trust to one of the locally installed CAs." +msgstr "" + +#: plugins/check_http.c:1842 +msgid "" +"When the 'www.verisign.com' server returns its content within 5 seconds," +msgstr "" + +#: plugins/check_http.c:1843 plugins/check_http.c:1862 +msgid "" +"a STATE_OK will be returned. When the server returns its content but exceeds" +msgstr "" + +#: plugins/check_http.c:1844 plugins/check_http.c:1863 +msgid "" +"the 5-second threshold, a STATE_WARNING will be returned. When an error " +"occurs," +msgstr "" + +#: plugins/check_http.c:1845 +msgid "a STATE_CRITICAL will be returned." +msgstr "" + +#: plugins/check_http.c:1848 +msgid "" +"When the certificate of 'www.verisign.com' is valid for more than 14 days," +msgstr "" + +#: plugins/check_http.c:1849 plugins/check_http.c:1855 +msgid "" +"a STATE_OK is returned. When the certificate is still valid, but for less " +"than" +msgstr "" + +#: plugins/check_http.c:1850 +msgid "" +"14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" +msgstr "" + +#: plugins/check_http.c:1851 +msgid "the certificate is expired." +msgstr "" + +#: plugins/check_http.c:1854 +msgid "" +"When the certificate of 'www.verisign.com' is valid for more than 30 days," +msgstr "" + +#: plugins/check_http.c:1856 +msgid "30 days, but more than 14 days, a STATE_WARNING is returned." +msgstr "" + +#: plugins/check_http.c:1857 +msgid "" +"A STATE_CRITICAL will be returned when certificate expires in less than 14 " +"days" +msgstr "" + +#: plugins/check_http.c:1860 +msgid "" +"check_http -I 192.168.100.35 -p 80 -u https://www.verisign.com/ -S -j " +"CONNECT -H www.verisign.com " +msgstr "" + +#: plugins/check_http.c:1861 +msgid "" +"all these options are needed: -I -p -u -" +"S(sl) -j CONNECT -H " +msgstr "" + +#: plugins/check_http.c:1864 +msgid "" +"a STATE_CRITICAL will be returned. By adding a colon to the method you can " +"set the method used" +msgstr "" + +#: plugins/check_http.c:1865 +msgid "inside the proxied connection: -j CONNECT:POST" +msgstr "" + +#: plugins/check_ldap.c:142 +#, c-format +msgid "Could not connect to the server at port %i\n" +msgstr "" + +#: plugins/check_ldap.c:151 +#, c-format +msgid "Could not set protocol version %d\n" +msgstr "" + +#: plugins/check_ldap.c:166 +#, c-format +msgid "Could not init TLS at port %i!\n" +msgstr "" + +#: plugins/check_ldap.c:170 +#, c-format +msgid "TLS not supported by the libraries!\n" +msgstr "" + +#: plugins/check_ldap.c:190 +#, c-format +msgid "Could not init startTLS at port %i!\n" +msgstr "" + +#: plugins/check_ldap.c:194 +#, c-format +msgid "startTLS not supported by the library, needs LDAPv3!\n" +msgstr "" + +#: plugins/check_ldap.c:204 +#, c-format +msgid "Could not bind to the LDAP server\n" +msgstr "" + +#: plugins/check_ldap.c:213 +#, c-format +msgid "Could not search/find objectclasses in %s\n" +msgstr "" + +#: plugins/check_ldap.c:252 +#, c-format +msgid "LDAP %s - found %d entries in %.3f seconds|%s %s\n" +msgstr "" + +#: plugins/check_ldap.c:265 +#, c-format +msgid "LDAP %s - %.3f seconds response time|%s\n" +msgstr "" + +#: plugins/check_ldap.c:386 plugins/check_ldap.c:394 +#, c-format +msgid "%s cannot be combined with %s" +msgstr "" + +#: plugins/check_ldap.c:426 +msgid "Please specify the host name\n" +msgstr "" + +#: plugins/check_ldap.c:429 +msgid "Please specify the LDAP base\n" +msgstr "" + +#: plugins/check_ldap.c:465 +msgid "ldap attribute to search (default: \"(objectclass=*)\"" +msgstr "" + +#: plugins/check_ldap.c:467 +msgid "ldap base (eg. ou=my unit, o=my org, c=at" +msgstr "" + +#: plugins/check_ldap.c:469 +msgid "ldap bind DN (if required)" +msgstr "" + +#: plugins/check_ldap.c:471 +msgid "" +"ldap password (if required, or set the password through environment variable " +"'LDAP_PASSWORD')" +msgstr "" + +#: plugins/check_ldap.c:473 +msgid "use starttls mechanism introduced in protocol version 3" +msgstr "" + +#: plugins/check_ldap.c:475 +msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" +msgstr "" + +#: plugins/check_ldap.c:479 +msgid "use ldap protocol version 2" +msgstr "" + +#: plugins/check_ldap.c:481 +msgid "use ldap protocol version 3" +msgstr "" + +#: plugins/check_ldap.c:482 +msgid "default protocol version:" +msgstr "" + +#: plugins/check_ldap.c:488 +msgid "Number of found entries to result in warning status" +msgstr "" + +#: plugins/check_ldap.c:490 +msgid "Number of found entries to result in critical status" +msgstr "" + +#: plugins/check_ldap.c:498 +msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" +msgstr "" + +#: plugins/check_ldap.c:499 +#, c-format +msgid "" +" implied (using default port %i) unless --port=636 is specified. In that " +"case\n" +msgstr "" + +#: plugins/check_ldap.c:500 +msgid "'SSL on connect' will be used no matter how the plugin was called." +msgstr "" + +#: plugins/check_ldap.c:501 +msgid "" +"This detection is deprecated, please use 'check_ldap' with the '--starttls' " +"or '--ssl' flags" +msgstr "" + +#: plugins/check_ldap.c:502 +msgid "to define the behaviour explicitly instead." +msgstr "" + +#: plugins/check_ldap.c:503 +msgid "The parameters --warn-entries and --crit-entries are optional." +msgstr "" + +#: plugins/check_load.c:93 +msgid "Warning threshold must be float or float triplet!\n" +msgstr "" + +#: plugins/check_load.c:138 plugins/check_load.c:154 +#, c-format +msgid "Error opening %s\n" +msgstr "" + +#: plugins/check_load.c:169 +#, c-format +msgid "could not parse load from uptime %s: %d\n" +msgstr "" + +#: plugins/check_load.c:175 +#, c-format +msgid "Error code %d returned in %s\n" +msgstr "" + +#: plugins/check_load.c:183 +#, c-format +msgid "Error in getloadavg()\n" +msgstr "" + +#: plugins/check_load.c:186 plugins/check_load.c:188 +#, c-format +msgid "Error processing %s\n" +msgstr "" + +#: plugins/check_load.c:197 plugins/check_load.c:212 +#, c-format +msgid "load average: %.2f, %.2f, %.2f" +msgstr "" + +#: plugins/check_load.c:327 +#, c-format +msgid "Critical threshold for %d-minute load average is not specified\n" +msgstr "" + +#: plugins/check_load.c:329 +#, c-format +msgid "Warning threshold for %d-minute load average is not specified\n" +msgstr "" + +#: plugins/check_load.c:331 +#, c-format +msgid "" +"Parameter inconsistency: %d-minute \"warning load\" is greater than " +"\"critical load\"\n" +msgstr "" + +#: plugins/check_load.c:346 +#, c-format +msgid "This plugin tests the current system load average." +msgstr "" + +#: plugins/check_load.c:356 +msgid "Exit with WARNING status if load average exceeds WLOADn" +msgstr "" + +#: plugins/check_load.c:358 +msgid "Exit with CRITICAL status if load average exceed CLOADn" +msgstr "" + +#: plugins/check_load.c:359 +msgid "the load average format is the same used by \"uptime\" and \"w\"" +msgstr "" + +#: plugins/check_load.c:361 +msgid "Divide the load averages by the number of CPUs (when possible)" +msgstr "" + +#: plugins/check_load.c:363 +msgid "Number of processes to show when printing the top consuming processes." +msgstr "" + +#: plugins/check_load.c:364 +msgid "NUMBER_OF_PROCS=0 disables this feature. Default value is 0" +msgstr "" + +#: plugins/check_load.c:401 +#, c-format +msgid "'%s' exited with non-zero status.\n" +msgstr "" + +#: plugins/check_load.c:405 +#, c-format +msgid "some error occurred getting procs list.\n" +msgstr "" + +#: plugins/check_mrtg.c:75 +msgid "Could not parse arguments\n" +msgstr "" + +#: plugins/check_mrtg.c:80 +#, c-format +msgid "Unable to open MRTG log file\n" +msgstr "" + +#: plugins/check_mrtg.c:127 +#, c-format +msgid "Unable to process MRTG log file\n" +msgstr "" + +#: plugins/check_mrtg.c:135 plugins/check_mrtgtraf.c:136 +#, c-format +msgid "MRTG data has expired (%d minutes old)\n" +msgstr "" + +#: plugins/check_mrtg.c:152 plugins/check_mrtgtraf.c:195 +#: plugins/check_mrtgtraf.c:196 +msgid "Avg" +msgstr "" + +#: plugins/check_mrtg.c:152 plugins/check_mrtgtraf.c:195 +#: plugins/check_mrtgtraf.c:196 +msgid "Max" +msgstr "" + +#: plugins/check_mrtg.c:221 +msgid "Invalid variable number" +msgstr "" + +#: plugins/check_mrtg.c:256 +#, c-format +msgid "" +"%s is not a valid expiration time\n" +"Use '%s -h' for additional help\n" +msgstr "" + +#: plugins/check_mrtg.c:273 +msgid "Invalid variable number\n" +msgstr "" + +#: plugins/check_mrtg.c:300 +msgid "You must supply the variable number" +msgstr "" + +#: plugins/check_mrtg.c:321 +msgid "" +"This plugin will check either the average or maximum value of one of the" +msgstr "" + +#: plugins/check_mrtg.c:322 +msgid "two variables recorded in an MRTG log file." +msgstr "" + +#: plugins/check_mrtg.c:332 +msgid "The MRTG log file containing the data you want to monitor" +msgstr "" + +#: plugins/check_mrtg.c:334 +msgid "Minutes before MRTG data is considered to be too old" +msgstr "" + +#: plugins/check_mrtg.c:336 +msgid "Should we check average or maximum values?" +msgstr "" + +#: plugins/check_mrtg.c:338 +msgid "Which variable set should we inspect? (1 or 2)" +msgstr "" + +#: plugins/check_mrtg.c:340 +msgid "Threshold value for data to result in WARNING status" +msgstr "" + +#: plugins/check_mrtg.c:342 +msgid "Threshold value for data to result in CRITICAL status" +msgstr "" + +#: plugins/check_mrtg.c:344 +msgid "Type label for data (Examples: Conns, \"Processor Load\", In, Out)" +msgstr "" + +#: plugins/check_mrtg.c:346 +msgid "Option units label for data (Example: Packets/Sec, Errors/Sec," +msgstr "" + +#: plugins/check_mrtg.c:347 +#, c-format +msgid "\"Bytes Per Second\", \"%% Utilization\")" +msgstr "" + +#: plugins/check_mrtg.c:350 +msgid "" +"If the value exceeds the threshold, a WARNING status is returned. If" +msgstr "" + +#: plugins/check_mrtg.c:351 +msgid "" +"the value exceeds the threshold, a CRITICAL status is returned. If" +msgstr "" + +#: plugins/check_mrtg.c:352 +msgid "the data in the log file is older than old, a WARNING" +msgstr "" + +#: plugins/check_mrtg.c:353 +msgid "status is returned and a warning message is printed." +msgstr "" + +#: plugins/check_mrtg.c:356 +msgid "" +"This plugin is useful for monitoring MRTG data that does not correspond to" +msgstr "" + +#: plugins/check_mrtg.c:357 +msgid "" +"bandwidth usage. (Use the check_mrtgtraf plugin for monitoring bandwidth)." +msgstr "" + +#: plugins/check_mrtg.c:358 +msgid "" +"It can be used to monitor any kind of data that MRTG is monitoring - errors," +msgstr "" + +#: plugins/check_mrtg.c:359 +msgid "" +"packets/sec, etc. I use MRTG in conjunction with the Novell NLM that allows" +msgstr "" + +#: plugins/check_mrtg.c:360 +msgid "" +"me to track processor utilization, user connections, drive space, etc and" +msgstr "" + +#: plugins/check_mrtg.c:361 +msgid "this plugin works well for monitoring that kind of data as well." +msgstr "" + +#: plugins/check_mrtg.c:364 +msgid "" +"- This plugin only monitors one of the two variables stored in the MRTG log" +msgstr "" + +#: plugins/check_mrtg.c:365 +msgid "file. If you want to monitor both values you will have to define two" +msgstr "" + +#: plugins/check_mrtg.c:366 +msgid "commands with different values for the argument. Of course," +msgstr "" + +#: plugins/check_mrtg.c:367 +msgid "you can always hack the code to make this plugin work for you..." +msgstr "" + +#: plugins/check_mrtg.c:368 +msgid "" +"- MRTG stands for the Multi Router Traffic Grapher. It can be downloaded " +"from" +msgstr "" + +#: plugins/check_mrtgtraf.c:88 +msgid "Unable to open MRTG log file" +msgstr "" + +#: plugins/check_mrtgtraf.c:130 +msgid "Unable to process MRTG log file" +msgstr "" + +#: plugins/check_mrtgtraf.c:194 +#, c-format +msgid "%s. In = %0.1f %s/s, %s. Out = %0.1f %s/s|%s %s\n" +msgstr "" + +#: plugins/check_mrtgtraf.c:207 +#, c-format +msgid "Traffic %s - %s\n" +msgstr "" + +#: plugins/check_mrtgtraf.c:335 +msgid "" +"This plugin will check the incoming/outgoing transfer rates of a router," +msgstr "" + +#: plugins/check_mrtgtraf.c:336 +msgid "switch, etc recorded in an MRTG log. If the newest log entry is older" +msgstr "" + +#: plugins/check_mrtgtraf.c:337 +msgid "than , a WARNING status is returned. If either the" +msgstr "" + +#: plugins/check_mrtgtraf.c:338 +msgid "incoming or outgoing rates exceed the or thresholds (in" +msgstr "" + +#: plugins/check_mrtgtraf.c:339 +msgid "Bytes/sec), a CRITICAL status results. If either of the rates exceed" +msgstr "" + +#: plugins/check_mrtgtraf.c:340 +msgid "the or thresholds (in Bytes/sec), a WARNING status results." +msgstr "" + +#: plugins/check_mrtgtraf.c:350 +msgid "File to read log from" +msgstr "" + +#: plugins/check_mrtgtraf.c:352 +msgid "Minutes after which log expires" +msgstr "" + +#: plugins/check_mrtgtraf.c:354 +msgid "Test average or maximum" +msgstr "" + +#: plugins/check_mrtgtraf.c:356 +msgid "Warning threshold pair ," +msgstr "" + +#: plugins/check_mrtgtraf.c:358 +msgid "Critical threshold pair ," +msgstr "" + +#: plugins/check_mrtgtraf.c:362 +msgid "" +"- MRTG stands for Multi Router Traffic Grapher. It can be downloaded from" +msgstr "" + +#: plugins/check_mrtgtraf.c:364 +msgid "- While MRTG can monitor things other than traffic rates, this" +msgstr "" + +#: plugins/check_mrtgtraf.c:365 +msgid " plugin probably won't work with much else without modification." +msgstr "" + +#: plugins/check_mrtgtraf.c:366 +msgid "- The calculated i/o rates are a little off from what MRTG actually" +msgstr "" + +#: plugins/check_mrtgtraf.c:367 +msgid " reports. I'm not sure why this is right now, but will look into it" +msgstr "" + +#: plugins/check_mrtgtraf.c:368 +msgid " for future enhancements of this plugin." +msgstr "" + +#: plugins/check_mrtgtraf.c:378 +#, c-format +msgid "Usage" +msgstr "" + +#: plugins/check_mysql.c:182 +#, c-format +msgid "status store_result error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:213 +#, c-format +msgid "slave query error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:220 +#, c-format +msgid "slave store_result error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:226 +msgid "No slaves defined" +msgstr "" + +#: plugins/check_mysql.c:234 +#, c-format +msgid "slave fetch row error: %s\n" +msgstr "" + +#: plugins/check_mysql.c:239 +#, c-format +msgid "Slave running: %s" +msgstr "" + +#: plugins/check_mysql.c:517 +msgid "This program tests connections to a MySQL server" +msgstr "" + +#: plugins/check_mysql.c:528 +msgid "Ignore authentication failure and check for mysql connectivity only" +msgstr "" + +#: plugins/check_mysql.c:531 +msgid "Use the specified socket (has no effect if -H is used)" +msgstr "" + +#: plugins/check_mysql.c:534 +msgid "Check database with indicated name" +msgstr "" + +#: plugins/check_mysql.c:536 +msgid "Read from the specified client options file" +msgstr "" + +#: plugins/check_mysql.c:538 +msgid "Use a client options group" +msgstr "" + +#: plugins/check_mysql.c:540 +msgid "Connect using the indicated username" +msgstr "" + +#: plugins/check_mysql.c:542 +msgid "Use the indicated password to authenticate the connection" +msgstr "" + +#: plugins/check_mysql.c:543 +msgid "IMPORTANT: THIS FORM OF AUTHENTICATION IS NOT SECURE!!!" +msgstr "" + +#: plugins/check_mysql.c:544 +msgid "Your clear-text password could be visible as a process table entry" +msgstr "" + +#: plugins/check_mysql.c:546 +msgid "Check if the slave thread is running properly." +msgstr "" + +#: plugins/check_mysql.c:548 +msgid "Exit with WARNING status if slave server is more than INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:549 plugins/check_mysql.c:552 +msgid "behind master" +msgstr "" + +#: plugins/check_mysql.c:551 +msgid "Exit with CRITICAL status if slave server is more then INTEGER seconds" +msgstr "" + +#: plugins/check_mysql.c:554 +msgid "Use ssl encryptation" +msgstr "" + +#: plugins/check_mysql.c:556 +msgid "Path to CA signing the cert" +msgstr "" + +#: plugins/check_mysql.c:558 +msgid "Path to SSL certificate" +msgstr "" + +#: plugins/check_mysql.c:560 +msgid "Path to private SSL key" +msgstr "" + +#: plugins/check_mysql.c:562 +msgid "Path to CA directory" +msgstr "" + +#: plugins/check_mysql.c:564 +msgid "List of valid SSL ciphers" +msgstr "" + +#: plugins/check_mysql.c:568 +msgid "" +"There are no required arguments. By default, the local database is checked" +msgstr "" + +#: plugins/check_mysql.c:569 +msgid "" +"using the default unix socket. You can force TCP on localhost by using an" +msgstr "" + +#: plugins/check_mysql.c:570 +msgid "IP address or FQDN ('localhost' will use the socket as well)." +msgstr "" + +#: plugins/check_mysql.c:574 +msgid "You must specify -p with an empty string to force an empty password," +msgstr "" + +#: plugins/check_mysql.c:575 +msgid "overriding any my.cnf settings." +msgstr "" + +#: plugins/check_nagios.c:104 +msgid "Cannot open status log for reading!" +msgstr "" + +#: plugins/check_nagios.c:154 +#, c-format +msgid "Found process: %s %s\n" +msgstr "" + +#: plugins/check_nagios.c:168 +msgid "Could not locate a running Nagios process!" +msgstr "" + +#: plugins/check_nagios.c:172 +msgid "Cannot parse Nagios log file for valid time" +msgstr "" + +#: plugins/check_nagios.c:183 plugins/check_procs.c:356 +#, c-format +msgid "%d process" +msgid_plural "%d processes" +msgstr[0] "" +msgstr[1] "" + +#: plugins/check_nagios.c:186 +#, c-format +msgid "status log updated %d second ago" +msgid_plural "status log updated %d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: plugins/check_nagios.c:224 plugins/check_nagios.c:253 +msgid "Expiration time must be an integer (seconds)\n" +msgstr "" + +#: plugins/check_nagios.c:260 +msgid "Timeout must be an integer (seconds)\n" +msgstr "" + +#: plugins/check_nagios.c:272 +msgid "You must provide the status_log\n" +msgstr "" + +#: plugins/check_nagios.c:275 +msgid "You must provide a process string\n" +msgstr "" + +#: plugins/check_nagios.c:289 +msgid "" +"This plugin checks the status of the Nagios process on the local machine" +msgstr "" + +#: plugins/check_nagios.c:290 +msgid "" +"The plugin will check to make sure the Nagios status log is no older than" +msgstr "" + +#: plugins/check_nagios.c:291 +msgid "the number of minutes specified by the expires option." +msgstr "" + +#: plugins/check_nagios.c:292 +msgid "" +"It also checks the process table for a process matching the command argument." +msgstr "" + +#: plugins/check_nagios.c:302 +msgid "Name of the log file to check" +msgstr "" + +#: plugins/check_nagios.c:304 +msgid "Minutes aging after which logfile is considered stale" +msgstr "" + +#: plugins/check_nagios.c:306 +msgid "Substring to search for in process arguments" +msgstr "" + +#: plugins/check_nagios.c:308 +msgid "Timeout for the plugin in seconds" +msgstr "" + +#: plugins/check_nt.c:142 +#, c-format +msgid "Wrong client version - running: %s, required: %s" +msgstr "" + +#: plugins/check_nt.c:153 plugins/check_nt.c:239 +msgid "missing -l parameters" +msgstr "" + +#: plugins/check_nt.c:155 +msgid "wrong -l parameter." +msgstr "" + +#: plugins/check_nt.c:159 +msgid "CPU Load" +msgstr "" + +#: plugins/check_nt.c:182 +#, c-format +msgid " %lu%% (%lu min average)" +msgstr "" + +#: plugins/check_nt.c:184 +#, c-format +msgid " '%lu min avg Load'=%lu%%;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nt.c:194 +msgid "not enough values for -l parameters" +msgstr "" + +#: plugins/check_nt.c:208 plugins/check_nt.c:241 +msgid "wrong -l argument" +msgstr "" + +#: plugins/check_nt.c:225 +#, c-format +msgid "System Uptime - %u day(s) %u hour(s) %u minute(s) |uptime=%lu" +msgstr "" + +#: plugins/check_nt.c:257 +#, c-format +msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" +msgstr "" + +#: plugins/check_nt.c:260 +#, c-format +msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" +msgstr "" + +#: plugins/check_nt.c:274 +msgid "Free disk space : Invalid drive" +msgstr "" + +#: plugins/check_nt.c:284 +msgid "No service/process specified" +msgstr "" + +#: plugins/check_nt.c:292 plugins/check_nt.c:305 plugins/check_nt.c:309 +#: plugins/check_nt.c:643 +msgid "could not fetch information from server\n" +msgstr "" + +#: plugins/check_nt.c:317 +#, c-format +msgid "" +"Memory usage: total:%.2f MB - used: %.2f MB (%.0f%%) - free: %.2f MB (%.0f%%)" +msgstr "" + +#: plugins/check_nt.c:320 +#, c-format +msgid "'Memory usage'=%.2fMB;%.2f;%.2f;0.00;%.2f" +msgstr "" + +#: plugins/check_nt.c:356 plugins/check_nt.c:441 plugins/check_nt.c:471 +msgid "No counter specified" +msgstr "" + +#: plugins/check_nt.c:388 +msgid "Minimum value contains non-numbers" +msgstr "" + +#: plugins/check_nt.c:392 +msgid "Maximum value contains non-numbers" +msgstr "" + +#: plugins/check_nt.c:399 +msgid "No unit counter specified" +msgstr "" + +#: plugins/check_nt.c:486 +msgid "Please specify a variable to check" +msgstr "" + +#: plugins/check_nt.c:570 +msgid "Server port must be an integer\n" +msgstr "" + +#: plugins/check_nt.c:624 +msgid "You must provide a server address or host name" +msgstr "" + +#: plugins/check_nt.c:630 +msgid "None" +msgstr "" + +#: plugins/check_nt.c:687 +msgid "This plugin collects data from the NSClient service running on a" +msgstr "" + +#: plugins/check_nt.c:688 +msgid "Windows NT/2000/XP/2003 server." +msgstr "" + +#: plugins/check_nt.c:699 +msgid "Name of the host to check" +msgstr "" + +#: plugins/check_nt.c:701 +msgid "Optional port number (default: " +msgstr "" + +#: plugins/check_nt.c:704 +msgid "Password needed for the request" +msgstr "" + +#: plugins/check_nt.c:706 plugins/check_nwstat.c:1661 +#: plugins/check_overcr.c:432 +msgid "Threshold which will result in a warning status" +msgstr "" + +#: plugins/check_nt.c:708 plugins/check_nwstat.c:1663 +#: plugins/check_overcr.c:434 +msgid "Threshold which will result in a critical status" +msgstr "" + +#: plugins/check_nt.c:710 +msgid "Seconds before connection attempt times out (default: " +msgstr "" + +#: plugins/check_nt.c:712 +msgid "Parameters passed to specified check (see below)" +msgstr "" + +#: plugins/check_nt.c:714 +msgid "Display options (currently only SHOWALL works)" +msgstr "" + +#: plugins/check_nt.c:716 +msgid "Return UNKNOWN on timeouts" +msgstr "" + +#: plugins/check_nt.c:719 +msgid "Print this help screen" +msgstr "" + +#: plugins/check_nt.c:721 +msgid "Print version information" +msgstr "" + +#: plugins/check_nt.c:723 +msgid "Variable to check" +msgstr "" + +#: plugins/check_nt.c:724 +msgid "Valid variables are:" +msgstr "" + +#: plugins/check_nt.c:726 +msgid "Get the NSClient version" +msgstr "" + +#: plugins/check_nt.c:727 +msgid "If -l is specified, will return warning if versions differ." +msgstr "" + +#: plugins/check_nt.c:729 +msgid "Average CPU load on last x minutes." +msgstr "" + +#: plugins/check_nt.c:730 +msgid "Request a -l parameter with the following syntax:" +msgstr "" + +#: plugins/check_nt.c:731 +msgid "-l ,,." +msgstr "" + +#: plugins/check_nt.c:732 +msgid " should be less than 24*60." +msgstr "" + +#: plugins/check_nt.c:733 +msgid "" +"Thresholds are percentage and up to 10 requests can be done in one shot." +msgstr "" + +#: plugins/check_nt.c:736 +msgid "Get the uptime of the machine." +msgstr "" + +#: plugins/check_nt.c:737 +msgid "-l " +msgstr "" + +#: plugins/check_nt.c:738 +msgid " = seconds, minutes, hours, or days. (default: minutes)" +msgstr "" + +#: plugins/check_nt.c:739 +msgid "Thresholds will use the unit specified above." +msgstr "" + +#: plugins/check_nt.c:741 +msgid "Size and percentage of disk use." +msgstr "" + +#: plugins/check_nt.c:742 +msgid "Request a -l parameter containing the drive letter only." +msgstr "" + +#: plugins/check_nt.c:743 plugins/check_nt.c:746 +msgid "Warning and critical thresholds can be specified with -w and -c." +msgstr "" + +#: plugins/check_nt.c:745 +msgid "Memory use." +msgstr "" + +#: plugins/check_nt.c:748 +msgid "Check the state of one or several services." +msgstr "" + +#: plugins/check_nt.c:749 plugins/check_nt.c:758 +msgid "Request a -l parameters with the following syntax:" +msgstr "" + +#: plugins/check_nt.c:750 +msgid "-l ,,,..." +msgstr "" + +#: plugins/check_nt.c:751 +msgid "You can specify -d SHOWALL in case you want to see working services" +msgstr "" + +#: plugins/check_nt.c:752 +msgid "in the returned string." +msgstr "" + +#: plugins/check_nt.c:754 +msgid "Check if one or several process are running." +msgstr "" + +#: plugins/check_nt.c:755 +msgid "Same syntax as SERVICESTATE." +msgstr "" + +#: plugins/check_nt.c:757 +msgid "Check any performance counter of Windows NT/2000." +msgstr "" + +#: plugins/check_nt.c:759 +msgid "-l \"\\\\\\\\counter\",\"" +msgstr "" + +#: plugins/check_nt.c:760 +msgid "The parameter is optional and is given to a printf " +msgstr "" + +#: plugins/check_nt.c:761 +msgid "output command which requires a float parameter." +msgstr "" + +#: plugins/check_nt.c:762 +#, c-format +msgid "If does not include \"%%\", it is used as a label." +msgstr "" + +#: plugins/check_nt.c:763 plugins/check_nt.c:778 +msgid "Some examples:" +msgstr "" + +#: plugins/check_nt.c:767 +msgid "Check any performance counter object of Windows NT/2000." +msgstr "" + +#: plugins/check_nt.c:768 +msgid "" +"Syntax: check_nt -H -p -v INSTANCES -l " +msgstr "" + +#: plugins/check_nt.c:769 +msgid " is a Windows Perfmon Counter object (eg. Process)," +msgstr "" + +#: plugins/check_nt.c:770 +msgid "if it is two words, it should be enclosed in quotes" +msgstr "" + +#: plugins/check_nt.c:771 +msgid "The returned results will be a comma-separated list of instances on " +msgstr "" + +#: plugins/check_nt.c:772 +msgid " the selected computer for that object." +msgstr "" + +#: plugins/check_nt.c:773 +msgid "" +"The purpose of this is to be run from command line to determine what " +"instances" +msgstr "" + +#: plugins/check_nt.c:774 +msgid "" +" are available for monitoring without having to log onto the Windows server" +msgstr "" + +#: plugins/check_nt.c:775 +msgid " to run Perfmon directly." +msgstr "" + +#: plugins/check_nt.c:776 +msgid "" +"It can also be used in scripts that automatically create the monitoring " +"service" +msgstr "" + +#: plugins/check_nt.c:777 +msgid " configuration files." +msgstr "" + +#: plugins/check_nt.c:779 +msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" +msgstr "" + +#: plugins/check_nt.c:782 +msgid "" +"- The NSClient service should be running on the server to get any information" +msgstr "" + +#: plugins/check_nt.c:784 +msgid "- Critical thresholds should be lower than warning thresholds" +msgstr "" + +#: plugins/check_nt.c:785 +msgid "- Default port 1248 is sometimes in use by other services. The error" +msgstr "" + +#: plugins/check_nt.c:786 +msgid "" +"output when this happens contains \"Cannot map xxxxx to protocol number\"." +msgstr "" + +#: plugins/check_nt.c:787 +msgid "One fix for this is to change the port to something else on check_nt " +msgstr "" + +#: plugins/check_nt.c:788 +msgid "and on the client service it's connecting to." +msgstr "" + +#: plugins/check_ntp.c:629 +#, c-format +msgid "jitter response too large (%lu bytes)\n" +msgstr "" + +#: plugins/check_ntp.c:817 plugins/check_ntp_peer.c:619 +#: plugins/check_ntp_time.c:576 +msgid "NTP CRITICAL:" +msgstr "" + +#: plugins/check_ntp.c:820 plugins/check_ntp_peer.c:622 +#: plugins/check_ntp_time.c:579 +msgid "NTP WARNING:" +msgstr "" + +#: plugins/check_ntp.c:823 plugins/check_ntp_peer.c:625 +#: plugins/check_ntp_time.c:582 +msgid "NTP OK:" +msgstr "" + +#: plugins/check_ntp.c:826 plugins/check_ntp_peer.c:628 +#: plugins/check_ntp_time.c:585 +msgid "NTP UNKNOWN:" +msgstr "" + +#: plugins/check_ntp.c:830 plugins/check_ntp_peer.c:637 +#: plugins/check_ntp_time.c:589 +msgid "Offset unknown" +msgstr "" + +#: plugins/check_ntp.c:833 plugins/check_ntp_peer.c:640 +#: plugins/check_ntp_peer.c:642 plugins/check_ntp_peer.c:644 +#: plugins/check_ntp_time.c:592 +msgid "Offset" +msgstr "" + +#: plugins/check_ntp.c:854 plugins/check_ntp_peer.c:690 +msgid "This plugin checks the selected ntp server" +msgstr "" + +#: plugins/check_ntp.c:864 plugins/check_ntp_peer.c:702 +#: plugins/check_ntp_time.c:619 +msgid "Offset to result in warning status (seconds)" +msgstr "" + +#: plugins/check_ntp.c:866 plugins/check_ntp_peer.c:704 +#: plugins/check_ntp_time.c:621 +msgid "Offset to result in critical status (seconds)" +msgstr "" + +#: plugins/check_ntp.c:868 plugins/check_ntp_peer.c:710 +msgid "Warning threshold for jitter" +msgstr "" + +#: plugins/check_ntp.c:870 plugins/check_ntp_peer.c:712 +msgid "Critical threshold for jitter" +msgstr "" + +#: plugins/check_ntp.c:880 +msgid "Normal offset check:" +msgstr "" + +#: plugins/check_ntp.c:883 plugins/check_ntp_peer.c:737 +msgid "" +"Check jitter too, avoiding critical notifications if jitter isn't available" +msgstr "" + +#: plugins/check_ntp.c:884 plugins/check_ntp_peer.c:738 +msgid "(See Notes above for more details on thresholds formats):" +msgstr "" + +#: plugins/check_ntp.c:889 plugins/check_ntp.c:896 +msgid "WARNING: check_ntp is deprecated. Please use check_ntp_peer or" +msgstr "" + +#: plugins/check_ntp.c:890 plugins/check_ntp.c:897 +msgid "check_ntp_time instead." +msgstr "" + +#: plugins/check_ntp_peer.c:632 +msgid "Server not synchronized" +msgstr "" + +#: plugins/check_ntp_peer.c:634 +msgid "Server has the LI_ALARM bit set" +msgstr "" + +#: plugins/check_ntp_peer.c:700 +msgid "" +"Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized" +msgstr "" + +#: plugins/check_ntp_peer.c:706 +msgid "Warning threshold for stratum of server's synchronization peer" +msgstr "" + +#: plugins/check_ntp_peer.c:708 +msgid "Critical threshold for stratum of server's synchronization peer" +msgstr "" + +#: plugins/check_ntp_peer.c:714 +msgid "Warning threshold for number of usable time sources (\"truechimers\")" +msgstr "" + +#: plugins/check_ntp_peer.c:716 +msgid "Critical threshold for number of usable time sources (\"truechimers\")" +msgstr "" + +#: plugins/check_ntp_peer.c:721 +msgid "This plugin checks an NTP server independent of any commandline" +msgstr "" + +#: plugins/check_ntp_peer.c:722 +msgid "programs or external libraries." +msgstr "" + +#: plugins/check_ntp_peer.c:725 +msgid "Use this plugin to check the health of an NTP server. It supports" +msgstr "" + +#: plugins/check_ntp_peer.c:726 +msgid "checking the offset with the sync peer, the jitter and stratum. This" +msgstr "" + +#: plugins/check_ntp_peer.c:727 +msgid "plugin will not check the clock offset between the local host and NTP" +msgstr "" + +#: plugins/check_ntp_peer.c:728 +msgid "server; please use check_ntp_time for that purpose." +msgstr "" + +#: plugins/check_ntp_peer.c:734 +msgid "Simple NTP server check:" +msgstr "" + +#: plugins/check_ntp_peer.c:741 +msgid "Only check the number of usable time sources (\"truechimers\"):" +msgstr "" + +#: plugins/check_ntp_peer.c:744 +msgid "Check only stratum:" +msgstr "" + +#: plugins/check_ntp_time.c:607 +msgid "This plugin checks the clock offset with the ntp server" +msgstr "" + +#: plugins/check_ntp_time.c:617 +msgid "Returns UNKNOWN instead of CRITICAL if offset cannot be found" +msgstr "" + +#: plugins/check_ntp_time.c:623 +msgid "Expected offset of the ntp server relative to local server (seconds)" +msgstr "" + +#: plugins/check_ntp_time.c:628 +msgid "This plugin checks the clock offset between the local host and a" +msgstr "" + +#: plugins/check_ntp_time.c:629 +msgid "remote NTP server. It is independent of any commandline programs or" +msgstr "" + +#: plugins/check_ntp_time.c:630 +msgid "external libraries." +msgstr "" + +#: plugins/check_ntp_time.c:634 +msgid "If you'd rather want to monitor an NTP server, please use" +msgstr "" + +#: plugins/check_ntp_time.c:635 +msgid "check_ntp_peer." +msgstr "" + +#: plugins/check_ntp_time.c:636 +msgid "--time-offset is useful for compensating for servers with known" +msgstr "" + +#: plugins/check_ntp_time.c:637 +msgid "and expected clock skew." +msgstr "" + +#: plugins/check_nwstat.c:194 +#, c-format +msgid "NetWare %s: " +msgstr "" + +#: plugins/check_nwstat.c:232 +#, c-format +msgid "Up %s," +msgstr "" + +#: plugins/check_nwstat.c:240 +#, c-format +msgid "Load %s - %s %s-min load average = %lu%%|load%s=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:268 +#, c-format +msgid "Conns %s - %lu current connections|Conns=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:293 +#, c-format +msgid "%s: Long term cache hits = %lu%%" +msgstr "" + +#: plugins/check_nwstat.c:315 +#, c-format +msgid "%s: Total cache buffers = %lu|Cachebuffers=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:340 +#, c-format +msgid "%s: Dirty cache buffers = %lu|Dirty-Cache-Buffers=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:365 +#, c-format +msgid "%s: LRU sitting time = %lu minutes" +msgstr "" + +#: plugins/check_nwstat.c:382 plugins/check_nwstat.c:410 +#: plugins/check_nwstat.c:437 plugins/check_nwstat.c:470 +#: plugins/check_nwstat.c:650 plugins/check_nwstat.c:676 +#: plugins/check_nwstat.c:707 plugins/check_nwstat.c:753 +#: plugins/check_nwstat.c:777 +#, c-format +msgid "CRITICAL - Volume '%s' does not exist!" +msgstr "" + +#: plugins/check_nwstat.c:391 +#, c-format +msgid "%s%lu KB free on volume %s|KBFree%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:392 plugins/check_nwstat.c:420 +#: plugins/check_nwstat.c:447 plugins/check_nwstat.c:659 +#: plugins/check_nwstat.c:685 plugins/check_nwstat.c:761 +msgid "Only " +msgstr "" + +#: plugins/check_nwstat.c:419 +#, c-format +msgid "%s%lu MB free on volume %s|MBFree%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:446 +#, c-format +msgid "%s%lu MB used on volume %s|MBUsed%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:494 +#, c-format +msgid "" +"%lu MB (%lu%%) free on volume %s - total %lu MB|FreeMB%s=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:528 +#, c-format +msgid "Directory Services Database is %s (DS version %s)" +msgstr "" + +#: plugins/check_nwstat.c:545 +#, c-format +msgid "Logins are %s" +msgstr "" + +#: plugins/check_nwstat.c:545 +msgid "enabled" +msgstr "" + +#: plugins/check_nwstat.c:545 +msgid "disabled" +msgstr "" + +#: plugins/check_nwstat.c:560 +msgid "CRITICAL - NRM Status is bad!" +msgstr "" + +#: plugins/check_nwstat.c:565 +msgid "Warning - NRM Status is suspect!" +msgstr "" + +#: plugins/check_nwstat.c:568 +msgid "OK - NRM Status is good!" +msgstr "" + +#: plugins/check_nwstat.c:610 +#, c-format +msgid "%lu of %lu (%lu%%) packet receive buffers used" +msgstr "" + +#: plugins/check_nwstat.c:634 +#, c-format +msgid "%lu entries in SAP table" +msgstr "" + +#: plugins/check_nwstat.c:636 +#, c-format +msgid "%lu entries in SAP table for SAP type %d" +msgstr "" + +#: plugins/check_nwstat.c:658 +#, c-format +msgid "%s%lu KB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:684 +#, c-format +msgid "%s%lu MB purgeable on volume %s|Purge%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:730 +#, c-format +msgid "%lu MB (%lu%%) purgeable on volume %s|Purgeable%s=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:761 +#, c-format +msgid "%s%lu KB not yet purgeable on volume %s" +msgstr "" + +#: plugins/check_nwstat.c:800 +#, c-format +msgid "%lu MB (%lu%%) not yet purgeable on volume %s" +msgstr "" + +#: plugins/check_nwstat.c:821 +#, c-format +msgid "%lu open files|Openfiles=%lu;%lu;%lu;0,0" +msgstr "" + +#: plugins/check_nwstat.c:846 +#, c-format +msgid "%lu abended threads|Abends=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:881 +#, c-format +msgid "%lu current service processes (%lu max)|Processes=%lu;%lu;%lu;0;%lu" +msgstr "" + +#: plugins/check_nwstat.c:904 +msgid "CRITICAL - Time not in sync with network!" +msgstr "" + +#: plugins/check_nwstat.c:907 +msgid "OK - Time in sync with network!" +msgstr "" + +#: plugins/check_nwstat.c:930 +#, c-format +msgid "LRU sitting time = %lu seconds" +msgstr "" + +#: plugins/check_nwstat.c:949 +#, c-format +msgid "Dirty cache buffers = %lu%% of the total|DCB=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:971 +#, c-format +msgid "Total cache buffers = %lu%% of the original|TCB=%lu;%lu;%lu;0;100" +msgstr "" + +#: plugins/check_nwstat.c:989 +#, c-format +msgid "NDS Version %s" +msgstr "" + +#: plugins/check_nwstat.c:1005 +#, c-format +msgid "Up %s" +msgstr "" + +#: plugins/check_nwstat.c:1019 +#, c-format +msgid "Module %s version %s is loaded" +msgstr "" + +#: plugins/check_nwstat.c:1022 +#, c-format +msgid "Module %s is not loaded" +msgstr "" + +#: plugins/check_nwstat.c:1033 plugins/check_nwstat.c:1059 +#: plugins/check_nwstat.c:1085 plugins/check_nwstat.c:1111 +#: plugins/check_nwstat.c:1137 plugins/check_nwstat.c:1163 +#: plugins/check_nwstat.c:1189 plugins/check_nwstat.c:1215 +#: plugins/check_nwstat.c:1241 plugins/check_nwstat.c:1267 +#, c-format +msgid "CRITICAL - Value '%s' does not exist!" +msgstr "" + +#: plugins/check_nwstat.c:1042 plugins/check_nwstat.c:1068 +#: plugins/check_nwstat.c:1094 plugins/check_nwstat.c:1120 +#: plugins/check_nwstat.c:1146 plugins/check_nwstat.c:1172 +#: plugins/check_nwstat.c:1198 plugins/check_nwstat.c:1224 +#: plugins/check_nwstat.c:1250 plugins/check_nwstat.c:1276 +#, c-format +msgid "%s is %lu|%s=%lu;%lu;%lu;;" +msgstr "" + +#: plugins/check_nwstat.c:1289 plugins/check_overcr.c:285 +msgid "Nothing to check!\n" +msgstr "" + +#: plugins/check_nwstat.c:1371 plugins/check_overcr.c:355 +msgid "Server port an integer\n" +msgstr "" + +#: plugins/check_nwstat.c:1601 +msgid "This plugin attempts to contact the MRTGEXT NLM running on a" +msgstr "" + +#: plugins/check_nwstat.c:1602 +msgid "Novell server to gather the requested system information." +msgstr "" + +#: plugins/check_nwstat.c:1614 plugins/check_overcr.c:436 +msgid "Variable to check. Valid variables include:" +msgstr "" + +#: plugins/check_nwstat.c:1615 +msgid "LOAD1 = 1 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1616 +msgid "LOAD5 = 5 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1617 +msgid "LOAD15 = 15 minute average CPU load" +msgstr "" + +#: plugins/check_nwstat.c:1618 +msgid "CSPROCS = number of current service processes (NW 5.x only)" +msgstr "" + +#: plugins/check_nwstat.c:1619 +msgid "ABENDS = number of abended threads (NW 5.x only)" +msgstr "" + +#: plugins/check_nwstat.c:1620 +msgid "UPTIME = server uptime" +msgstr "" + +#: plugins/check_nwstat.c:1621 +msgid "LTCH = percent long term cache hits" +msgstr "" + +#: plugins/check_nwstat.c:1622 +msgid "CBUFF = current number of cache buffers" +msgstr "" + +#: plugins/check_nwstat.c:1623 +msgid "CDBUFF = current number of dirty cache buffers" +msgstr "" + +#: plugins/check_nwstat.c:1624 +msgid "DCB = dirty cache buffers as a percentage of the total" +msgstr "" + +#: plugins/check_nwstat.c:1625 +msgid "TCB = dirty cache buffers as a percentage of the original" +msgstr "" + +#: plugins/check_nwstat.c:1626 +msgid "OFILES = number of open files" +msgstr "" + +#: plugins/check_nwstat.c:1627 +msgid " VMF = MB of free space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1628 +msgid " VMU = MB used space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1629 +msgid " VMP = MB of purgeable space on Volume " +msgstr "" + +#: plugins/check_nwstat.c:1630 +msgid " VPF = percent free space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1631 +msgid " VKF = KB of free space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1632 +msgid " VPP = percent purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1633 +msgid " VKP = KB of purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1634 +msgid " VPNP = percent not yet purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1635 +msgid " VKNP = KB of not yet purgeable space on volume " +msgstr "" + +#: plugins/check_nwstat.c:1636 +msgid " LRUM = LRU sitting time in minutes" +msgstr "" + +#: plugins/check_nwstat.c:1637 +msgid " LRUS = LRU sitting time in seconds" +msgstr "" + +#: plugins/check_nwstat.c:1638 +msgid " DSDB = check to see if DS Database is open" +msgstr "" + +#: plugins/check_nwstat.c:1639 +msgid " DSVER = NDS version" +msgstr "" + +#: plugins/check_nwstat.c:1640 +msgid " UPRB = used packet receive buffers" +msgstr "" + +#: plugins/check_nwstat.c:1641 +msgid " PUPRB = percent (of max) used packet receive buffers" +msgstr "" + +#: plugins/check_nwstat.c:1642 +msgid " SAPENTRIES = number of entries in the SAP table" +msgstr "" + +#: plugins/check_nwstat.c:1643 +msgid " SAPENTRIES = number of entries in the SAP table for SAP type " +msgstr "" + +#: plugins/check_nwstat.c:1644 +msgid " TSYNC = timesync status" +msgstr "" + +#: plugins/check_nwstat.c:1645 +msgid " LOGINS = check to see if logins are enabled" +msgstr "" + +#: plugins/check_nwstat.c:1646 +msgid " CONNS = number of currently licensed connections" +msgstr "" + +#: plugins/check_nwstat.c:1647 +msgid " NRMH\t= NRM Summary Status" +msgstr "" + +#: plugins/check_nwstat.c:1648 +msgid " NRMP = Returns the current value for a NRM health item" +msgstr "" + +#: plugins/check_nwstat.c:1649 +msgid " NRMM = Returns the current memory stats from NRM" +msgstr "" + +#: plugins/check_nwstat.c:1650 +msgid " NRMS = Returns the current Swapfile stats from NRM" +msgstr "" + +#: plugins/check_nwstat.c:1651 +msgid " NSS1 = Statistics from _Admin:Manage_NSS\\GeneralStats.xml" +msgstr "" + +#: plugins/check_nwstat.c:1652 +msgid " NSS3 = Statistics from _Admin:Manage_NSS\\NameCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1653 +msgid " NSS4 = Statistics from _Admin:Manage_NSS\\FileStats.xml" +msgstr "" + +#: plugins/check_nwstat.c:1654 +msgid " NSS5 = Statistics from _Admin:Manage_NSS\\ObjectCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1655 +msgid " NSS6 = Statistics from _Admin:Manage_NSS\\Thread.xml" +msgstr "" + +#: plugins/check_nwstat.c:1656 +msgid "" +" NSS7 = Statistics from _Admin:Manage_NSS\\AuthorizationCache.xml" +msgstr "" + +#: plugins/check_nwstat.c:1657 +msgid " NLM: = check if NLM is loaded and report version" +msgstr "" + +#: plugins/check_nwstat.c:1658 +msgid " (e.g. NLM:TSANDS.NLM)" +msgstr "" + +#: plugins/check_nwstat.c:1665 +msgid "Include server version string in results" +msgstr "" + +#: plugins/check_nwstat.c:1671 +msgid "- This plugin requres that the MRTGEXT.NLM file from James Drews' MRTG" +msgstr "" + +#: plugins/check_nwstat.c:1672 +msgid "" +" extension for NetWare be loaded on the Novell servers you wish to check." +msgstr "" + +#: plugins/check_nwstat.c:1673 +msgid " (available from http://www.engr.wisc.edu/~drews/mrtg/)" +msgstr "" + +#: plugins/check_nwstat.c:1674 +msgid "" +"- Values for critical thresholds should be lower than warning thresholds" +msgstr "" + +#: plugins/check_nwstat.c:1675 +msgid "" +" when the following variables are checked: VPF, VKF, LTCH, CBUFF, DCB, " +msgstr "" + +#: plugins/check_nwstat.c:1676 +msgid " TCB, LRUS and LRUM." +msgstr "" + +#: plugins/check_overcr.c:123 +msgid "Unknown error fetching load data\n" +msgstr "" + +#: plugins/check_overcr.c:127 +msgid "Invalid response from server - no load information\n" +msgstr "" + +#: plugins/check_overcr.c:133 +msgid "Invalid response from server after load 1\n" +msgstr "" + +#: plugins/check_overcr.c:139 +msgid "Invalid response from server after load 5\n" +msgstr "" + +#: plugins/check_overcr.c:164 +#, c-format +msgid "Load %s - %s-min load average = %0.2f" +msgstr "" + +#: plugins/check_overcr.c:174 +msgid "Unknown error fetching disk data\n" +msgstr "" + +#: plugins/check_overcr.c:184 plugins/check_overcr.c:236 +#: plugins/check_overcr.c:240 +msgid "Invalid response from server\n" +msgstr "" + +#: plugins/check_overcr.c:211 +msgid "Unknown error fetching network status\n" +msgstr "" + +#: plugins/check_overcr.c:221 +#, c-format +msgid "Net %s - %d connection%s on port %d" +msgstr "" + +#: plugins/check_overcr.c:232 +msgid "Unknown error fetching process status\n" +msgstr "" + +#: plugins/check_overcr.c:250 +#, c-format +msgid "Process %s - %d instance%s of %s running" +msgstr "" + +#: plugins/check_overcr.c:277 +#, c-format +msgid "Uptime %s - Up %d days %d hours %d minutes" +msgstr "" + +#: plugins/check_overcr.c:419 +msgid "" +"This plugin attempts to contact the Over-CR collector daemon running on the" +msgstr "" + +#: plugins/check_overcr.c:420 +msgid "remote UNIX server in order to gather the requested system information." +msgstr "" + +#: plugins/check_overcr.c:437 +msgid "LOAD1 = 1 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:438 +msgid "LOAD5 = 5 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:439 +msgid "LOAD15 = 15 minute average CPU load" +msgstr "" + +#: plugins/check_overcr.c:440 +msgid "DPU = percent used disk space on filesystem " +msgstr "" + +#: plugins/check_overcr.c:441 +msgid "PROC = number of running processes with name " +msgstr "" + +#: plugins/check_overcr.c:442 +msgid "NET = number of active connections on TCP port " +msgstr "" + +#: plugins/check_overcr.c:443 +msgid "UPTIME = system uptime in seconds" +msgstr "" + +#: plugins/check_overcr.c:450 +msgid "This plugin requires that Eric Molitors' Over-CR collector daemon be" +msgstr "" + +#: plugins/check_overcr.c:451 +msgid "running on the remote server." +msgstr "" + +#: plugins/check_overcr.c:452 +msgid "Over-CR can be downloaded from http://www.molitor.org/overcr" +msgstr "" + +#: plugins/check_overcr.c:453 +msgid "This plugin was tested with version 0.99.53 of the Over-CR collector" +msgstr "" + +#: plugins/check_overcr.c:457 +msgid "" +"For the available options, the critical threshold value should always be" +msgstr "" + +#: plugins/check_overcr.c:458 +msgid "" +"higher than the warning threshold value, EXCEPT with the uptime variable" +msgstr "" + +#: plugins/check_pgsql.c:224 +#, c-format +msgid "CRITICAL - no connection to '%s' (%s).\n" +msgstr "" + +#: plugins/check_pgsql.c:252 +#, c-format +msgid " %s - database %s (%f sec.)|%s\n" +msgstr "" + +#: plugins/check_pgsql.c:320 plugins/check_time.c:277 plugins/check_time.c:289 +#: plugins/check_users.c:228 +msgid "Critical threshold must be a positive integer" +msgstr "" + +#: plugins/check_pgsql.c:326 plugins/check_time.c:258 plugins/check_time.c:282 +#: plugins/check_users.c:226 +msgid "Warning threshold must be a positive integer" +msgstr "" + +#: plugins/check_pgsql.c:350 +msgid "Database name exceeds the maximum length" +msgstr "" + +#: plugins/check_pgsql.c:356 +msgid "User name is not valid" +msgstr "" + +#: plugins/check_pgsql.c:471 +#, c-format +msgid "Test whether a PostgreSQL Database is accepting connections." +msgstr "" + +#: plugins/check_pgsql.c:483 +msgid "Database to check " +msgstr "" + +#: plugins/check_pgsql.c:484 +#, c-format +msgid "(default: %s)\n" +msgstr "" + +#: plugins/check_pgsql.c:486 +msgid "Login name of user" +msgstr "" + +#: plugins/check_pgsql.c:488 +msgid "Password (BIG SECURITY ISSUE)" +msgstr "" + +#: plugins/check_pgsql.c:490 +msgid "Connection parameters (keyword = value), see below" +msgstr "" + +#: plugins/check_pgsql.c:497 +msgid "SQL query to run. Only first column in first row will be read" +msgstr "" + +#: plugins/check_pgsql.c:499 +msgid "A name for the query, this string is used instead of the query" +msgstr "" + +#: plugins/check_pgsql.c:500 +msgid "in the long output of the plugin" +msgstr "" + +#: plugins/check_pgsql.c:502 +msgid "SQL query value to result in warning status (double)" +msgstr "" + +#: plugins/check_pgsql.c:504 +msgid "SQL query value to result in critical status (double)" +msgstr "" + +#: plugins/check_pgsql.c:509 +msgid "All parameters are optional." +msgstr "" + +#: plugins/check_pgsql.c:510 +msgid "" +"This plugin tests a PostgreSQL DBMS to determine whether it is active and" +msgstr "" + +#: plugins/check_pgsql.c:511 +msgid "accepting queries. In its current operation, it simply connects to the" +msgstr "" + +#: plugins/check_pgsql.c:512 +msgid "" +"specified database, and then disconnects. If no database is specified, it" +msgstr "" + +#: plugins/check_pgsql.c:513 +msgid "" +"connects to the template1 database, which is present in every functioning" +msgstr "" + +#: plugins/check_pgsql.c:514 +msgid "PostgreSQL DBMS." +msgstr "" + +#: plugins/check_pgsql.c:516 +msgid "If a query is specified using the -q option, it will be executed after" +msgstr "" + +#: plugins/check_pgsql.c:517 +msgid "connecting to the server. The result from the query has to be numeric." +msgstr "" + +#: plugins/check_pgsql.c:518 +msgid "" +"Multiple SQL commands, separated by semicolon, are allowed but the result " +msgstr "" + +#: plugins/check_pgsql.c:519 +msgid "of the last command is taken into account only. The value of the first" +msgstr "" + +#: plugins/check_pgsql.c:520 +msgid "column in the first row is used as the check result." +msgstr "" + +#: plugins/check_pgsql.c:522 +msgid "" +"See the chapter \"Monitoring Database Activity\" of the PostgreSQL manual" +msgstr "" + +#: plugins/check_pgsql.c:523 +msgid "" +"for details about how to access internal statistics of the database server." +msgstr "" + +#: plugins/check_pgsql.c:525 +msgid "" +"For a list of available connection parameters which may be used with the -o" +msgstr "" + +#: plugins/check_pgsql.c:526 +msgid "" +"command line option, see the documentation for PQconnectdb() in the chapter" +msgstr "" + +#: plugins/check_pgsql.c:527 +msgid "" +"\"libpq - C Library\" of the PostgreSQL manual. For example, this may be" +msgstr "" + +#: plugins/check_pgsql.c:528 +msgid "" +"used to specify a service name in pg_service.conf to be used for additional" +msgstr "" + +#: plugins/check_pgsql.c:529 +msgid "connection parameters: -o 'service=' or to specify the SSL mode:" +msgstr "" + +#: plugins/check_pgsql.c:530 +msgid "-o 'sslmode=require'." +msgstr "" + +#: plugins/check_pgsql.c:532 +msgid "" +"The plugin will connect to a local postmaster if no host is specified. To" +msgstr "" + +#: plugins/check_pgsql.c:533 +msgid "" +"connect to a remote host, be sure that the remote postmaster accepts TCP/IP" +msgstr "" + +#: plugins/check_pgsql.c:534 +msgid "connections (start the postmaster with the -i option)." +msgstr "" + +#: plugins/check_pgsql.c:536 +msgid "" +"Typically, the monitoring user (unless the --logname option is used) should " +"be" +msgstr "" + +#: plugins/check_pgsql.c:537 +msgid "" +"able to connect to the database without a password. The plugin can also send" +msgstr "" + +#: plugins/check_pgsql.c:538 +msgid "a password, but no effort is made to obscure or encrypt the password." +msgstr "" + +#: plugins/check_pgsql.c:571 +#, c-format +msgid "QUERY %s - %s: %s.\n" +msgstr "" + +#: plugins/check_pgsql.c:571 +msgid "Error with query" +msgstr "" + +#: plugins/check_pgsql.c:577 +msgid "No rows returned" +msgstr "" + +#: plugins/check_pgsql.c:582 +msgid "No columns returned" +msgstr "" + +#: plugins/check_pgsql.c:588 +msgid "No data returned" +msgstr "" + +#: plugins/check_pgsql.c:597 +msgid "Is not a numeric" +msgstr "" + +#: plugins/check_pgsql.c:615 +#, c-format +msgid "%s returned %f" +msgstr "" + +#: plugins/check_pgsql.c:618 +#, c-format +msgid "'%s' returned %f" +msgstr "" + +#: plugins/check_ping.c:143 +msgid "CRITICAL - Could not interpret output from ping command\n" +msgstr "" + +#: plugins/check_ping.c:159 +#, c-format +msgid "PING %s - %sPacket loss = %d%%" +msgstr "" + +#: plugins/check_ping.c:162 +#, c-format +msgid "PING %s - %sPacket loss = %d%%, RTA = %2.2f ms" +msgstr "" + +#: plugins/check_ping.c:263 +msgid "Could not realloc() addresses\n" +msgstr "" + +#: plugins/check_ping.c:278 plugins/check_ping.c:358 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr "" + +#: plugins/check_ping.c:312 +#, c-format +msgid " (%s) must be an integer percentage\n" +msgstr "" + +#: plugins/check_ping.c:323 +#, c-format +msgid " (%s) must be an integer percentage\n" +msgstr "" + +#: plugins/check_ping.c:334 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr "" + +#: plugins/check_ping.c:345 +#, c-format +msgid " (%s) must be a non-negative number\n" +msgstr "" + +#: plugins/check_ping.c:378 +#, c-format +msgid "" +"%s: Warning threshold must be integer or percentage!\n" +"\n" +msgstr "" + +#: plugins/check_ping.c:391 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:395 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:399 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:403 +#, c-format +msgid " was not set\n" +msgstr "" + +#: plugins/check_ping.c:407 +#, c-format +msgid " (%f) cannot be larger than (%f)\n" +msgstr "" + +#: plugins/check_ping.c:411 +#, c-format +msgid " (%d) cannot be larger than (%d)\n" +msgstr "" + +#: plugins/check_ping.c:448 +#, c-format +msgid "Cannot open stderr for %s\n" +msgstr "" + +#: plugins/check_ping.c:505 plugins/check_ping.c:507 +msgid "System call sent warnings to stderr " +msgstr "" + +#: plugins/check_ping.c:533 +#, c-format +msgid "CRITICAL - Network Unreachable (%s)\n" +msgstr "" + +#: plugins/check_ping.c:535 +#, c-format +msgid "CRITICAL - Host Unreachable (%s)\n" +msgstr "" + +#: plugins/check_ping.c:537 +#, c-format +msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)\n" +msgstr "" + +#: plugins/check_ping.c:539 +#, c-format +msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)\n" +msgstr "" + +#: plugins/check_ping.c:541 +#, c-format +msgid "CRITICAL - Network Prohibited (%s)\n" +msgstr "" + +#: plugins/check_ping.c:543 +#, c-format +msgid "CRITICAL - Host Prohibited (%s)\n" +msgstr "" + +#: plugins/check_ping.c:545 +#, c-format +msgid "CRITICAL - Packet Filtered (%s)\n" +msgstr "" + +#: plugins/check_ping.c:547 +#, c-format +msgid "CRITICAL - Host not found (%s)\n" +msgstr "" + +#: plugins/check_ping.c:549 +#, c-format +msgid "CRITICAL - Time to live exceeded (%s)\n" +msgstr "" + +#: plugins/check_ping.c:551 +#, c-format +msgid "CRITICAL - Destination Unreachable (%s)\n" +msgstr "" + +#: plugins/check_ping.c:558 +msgid "Unable to realloc warn_text\n" +msgstr "" + +#: plugins/check_ping.c:575 +#, c-format +msgid "Use ping to check connection statistics for a remote host." +msgstr "" + +#: plugins/check_ping.c:587 +msgid "host to ping" +msgstr "" + +#: plugins/check_ping.c:593 +msgid "number of ICMP ECHO packets to send" +msgstr "" + +#: plugins/check_ping.c:594 +#, c-format +msgid "(Default: %d)\n" +msgstr "" + +#: plugins/check_ping.c:596 +msgid "show HTML in the plugin output (obsoleted by urlize)" +msgstr "" + +#: plugins/check_ping.c:601 +msgid "THRESHOLD is ,% where is the round trip average travel" +msgstr "" + +#: plugins/check_ping.c:602 +msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" +msgstr "" + +#: plugins/check_ping.c:603 +msgid "percentage of packet loss to trigger an alarm state." +msgstr "" + +#: plugins/check_ping.c:606 +msgid "" +"This plugin uses the ping command to probe the specified host for packet loss" +msgstr "" + +#: plugins/check_ping.c:607 +msgid "" +"(percentage) and round trip average (milliseconds). It can produce HTML " +"output" +msgstr "" + +#: plugins/check_ping.c:608 +msgid "" +"linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" +msgstr "" + +#: plugins/check_ping.c:609 +msgid "the contrib area of the downloads section at http://www.nagios.org/" +msgstr "" + +#: plugins/check_procs.c:193 +#, c-format +msgid "CMD: %s\n" +msgstr "" + +#: plugins/check_procs.c:198 +msgid "System call sent warnings to stderr" +msgstr "" + +#: plugins/check_procs.c:326 +#, c-format +msgid "Not parseable: %s" +msgstr "" + +#: plugins/check_procs.c:331 +#, c-format +msgid "Unable to read output\n" +msgstr "" + +#: plugins/check_procs.c:348 +#, c-format +msgid "%d warn out of " +msgstr "" + +#: plugins/check_procs.c:353 +#, c-format +msgid "%d crit, %d warn out of " +msgstr "" + +#: plugins/check_procs.c:359 +#, c-format +msgid " with %s" +msgstr "" + +#: plugins/check_procs.c:453 +msgid "Parent Process ID must be an integer!" +msgstr "" + +#: plugins/check_procs.c:459 plugins/check_procs.c:586 +#, c-format +msgid "%s%sSTATE = %s" +msgstr "" + +#: plugins/check_procs.c:468 +msgid "UID was not found" +msgstr "" + +#: plugins/check_procs.c:474 +msgid "User name was not found" +msgstr "" + +#: plugins/check_procs.c:489 +#, c-format +msgid "%s%scommand name '%s'" +msgstr "" + +#: plugins/check_procs.c:524 +msgid "RSS must be an integer!" +msgstr "" + +#: plugins/check_procs.c:531 +msgid "VSZ must be an integer!" +msgstr "" + +#: plugins/check_procs.c:539 +msgid "PCPU must be a float!" +msgstr "" + +#: plugins/check_procs.c:563 +msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" +msgstr "" + +#: plugins/check_procs.c:694 +msgid "" +"Checks all processes and generates WARNING or CRITICAL states if the " +"specified" +msgstr "" + +#: plugins/check_procs.c:695 +msgid "" +"metric is outside the required threshold ranges. The metric defaults to " +"number" +msgstr "" + +#: plugins/check_procs.c:696 +msgid "" +"of processes. Search filters can be applied to limit the processes to check." +msgstr "" + +#: plugins/check_procs.c:705 +msgid "Generate warning state if metric is outside this range" +msgstr "" + +#: plugins/check_procs.c:707 +msgid "Generate critical state if metric is outside this range" +msgstr "" + +#: plugins/check_procs.c:709 +msgid "Check thresholds against metric. Valid types:" +msgstr "" + +#: plugins/check_procs.c:710 +msgid "PROCS - number of processes (default)" +msgstr "" + +#: plugins/check_procs.c:711 +msgid "VSZ - virtual memory size" +msgstr "" + +#: plugins/check_procs.c:712 +msgid "RSS - resident set memory size" +msgstr "" + +#: plugins/check_procs.c:713 +msgid "CPU - percentage CPU" +msgstr "" + +#: plugins/check_procs.c:716 +msgid "ELAPSED - time elapsed in seconds" +msgstr "" + +#: plugins/check_procs.c:721 +msgid "Extra information. Up to 3 verbosity levels" +msgstr "" + +#: plugins/check_procs.c:724 +msgid "Filter own process the traditional way by PID instead of /proc/pid/exe" +msgstr "" + +#: plugins/check_procs.c:729 +msgid "Only scan for processes that have, in the output of `ps`, one or" +msgstr "" + +#: plugins/check_procs.c:730 +msgid "more of the status flags you specify (for example R, Z, S, RS," +msgstr "" + +#: plugins/check_procs.c:731 +msgid "RSZDT, plus others based on the output of your 'ps' command)." +msgstr "" + +#: plugins/check_procs.c:733 +msgid "Only scan for children of the parent process ID indicated." +msgstr "" + +#: plugins/check_procs.c:735 +msgid "Only scan for processes with VSZ higher than indicated." +msgstr "" + +#: plugins/check_procs.c:737 +msgid "Only scan for processes with RSS higher than indicated." +msgstr "" + +#: plugins/check_procs.c:739 +msgid "Only scan for processes with PCPU higher than indicated." +msgstr "" + +#: plugins/check_procs.c:741 +msgid "Only scan for processes with user name or ID indicated." +msgstr "" + +#: plugins/check_procs.c:743 +msgid "Only scan for processes with args that contain STRING." +msgstr "" + +#: plugins/check_procs.c:745 +msgid "Only scan for processes with args that contain the regex STRING." +msgstr "" + +#: plugins/check_procs.c:747 +msgid "Only scan for exact matches of COMMAND (without path)." +msgstr "" + +#: plugins/check_procs.c:749 +msgid "Only scan for non kernel threads (works on Linux only)." +msgstr "" + +#: plugins/check_procs.c:751 +#, c-format +msgid "" +"\n" +"RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n" +"specified 'max:min', a warning status will be generated if the\n" +"count is inside the specified range\n" +"\n" +msgstr "" + +#: plugins/check_procs.c:756 +#, c-format +msgid "" +"This plugin checks the number of currently running processes and\n" +"generates WARNING or CRITICAL states if the process count is outside\n" +"the specified threshold ranges. The process count can be filtered by\n" +"process owner, parent process PID, current state (e.g., 'Z'), or may\n" +"be the total number of running processes\n" +"\n" +msgstr "" + +#: plugins/check_procs.c:765 +msgid "Warning if not two processes with command name portsentry." +msgstr "" + +#: plugins/check_procs.c:766 +msgid "Critical if < 2 or > 1024 processes" +msgstr "" + +#: plugins/check_procs.c:768 +msgid "Critical if not at least 1 process with command sshd" +msgstr "" + +#: plugins/check_procs.c:770 +msgid "Warning if > 1024 processes with command name sshd." +msgstr "" + +#: plugins/check_procs.c:771 +msgid "Critical if < 1 processes with command name sshd." +msgstr "" + +#: plugins/check_procs.c:773 +msgid "Warning alert if > 10 processes with command arguments containing" +msgstr "" + +#: plugins/check_procs.c:774 +msgid "'/usr/local/bin/perl' and owned by root" +msgstr "" + +#: plugins/check_procs.c:776 +msgid "Alert if VSZ of any processes over 50K or 100K" +msgstr "" + +#: plugins/check_procs.c:778 +msgid "Alert if CPU of any processes over 10% or 20%" +msgstr "" + +#: plugins/check_radius.c:177 +msgid "Config file error\n" +msgstr "" + +#: plugins/check_radius.c:186 +msgid "Out of Memory?\n" +msgstr "" + +#: plugins/check_radius.c:190 +msgid "Invalid NAS-Identifier\n" +msgstr "" + +#: plugins/check_radius.c:195 plugins/check_smtp.c:153 +#, c-format +msgid "gethostname() failed!\n" +msgstr "" + +#: plugins/check_radius.c:199 plugins/check_radius.c:202 +msgid "Invalid NAS-IP-Address\n" +msgstr "" + +#: plugins/check_radius.c:213 +msgid "Timeout\n" +msgstr "" + +#: plugins/check_radius.c:215 +msgid "Auth Error\n" +msgstr "" + +#: plugins/check_radius.c:217 +msgid "Auth Failed\n" +msgstr "" + +#: plugins/check_radius.c:219 +msgid "Bad Response\n" +msgstr "" + +#: plugins/check_radius.c:223 +msgid "Auth OK\n" +msgstr "" + +#: plugins/check_radius.c:224 +#, c-format +msgid "Unexpected result code %d" +msgstr "" + +#: plugins/check_radius.c:313 +msgid "Number of retries must be a positive integer" +msgstr "" + +#: plugins/check_radius.c:327 +msgid "User not specified" +msgstr "" + +#: plugins/check_radius.c:329 +msgid "Password not specified" +msgstr "" + +#: plugins/check_radius.c:331 +msgid "Configuration file not specified" +msgstr "" + +#: plugins/check_radius.c:349 +msgid "Tests to see if a RADIUS server is accepting connections." +msgstr "" + +#: plugins/check_radius.c:361 +msgid "The user to authenticate" +msgstr "" + +#: plugins/check_radius.c:363 +msgid "Password for authentication (SECURITY RISK)" +msgstr "" + +#: plugins/check_radius.c:365 +msgid "NAS identifier" +msgstr "" + +#: plugins/check_radius.c:367 +msgid "NAS IP Address" +msgstr "" + +#: plugins/check_radius.c:369 +msgid "Configuration file" +msgstr "" + +#: plugins/check_radius.c:371 +msgid "Response string to expect from the server" +msgstr "" + +#: plugins/check_radius.c:373 +msgid "Number of times to retry a failed connection" +msgstr "" + +#: plugins/check_radius.c:378 +msgid "" +"This plugin tests a RADIUS server to see if it is accepting connections." +msgstr "" + +#: plugins/check_radius.c:379 +msgid "" +"The server to test must be specified in the invocation, as well as a user" +msgstr "" + +#: plugins/check_radius.c:380 +msgid "" +"name and password. A configuration file may also be present. The format of" +msgstr "" + +#: plugins/check_radius.c:381 +msgid "" +"the configuration file is described in the radiusclient library sources." +msgstr "" + +#: plugins/check_radius.c:382 +msgid "The password option presents a substantial security issue because the" +msgstr "" + +#: plugins/check_radius.c:383 +msgid "" +"password can possibly be determined by careful watching of the command line" +msgstr "" + +#: plugins/check_radius.c:384 +msgid "in a process listing. This risk is exacerbated because the plugin will" +msgstr "" + +#: plugins/check_radius.c:385 +msgid "" +"typically be executed at regular predictable intervals. Please be sure that" +msgstr "" + +#: plugins/check_radius.c:386 +msgid "the password used does not allow access to sensitive system resources." +msgstr "" + +#: plugins/check_real.c:91 +#, c-format +msgid "Unable to connect to %s on port %d\n" +msgstr "" + +#: plugins/check_real.c:113 +#, c-format +msgid "No data received from %s\n" +msgstr "" + +#: plugins/check_real.c:118 plugins/check_real.c:192 +msgid "Invalid REAL response received from host" +msgstr "" + +#: plugins/check_real.c:120 plugins/check_real.c:194 +#, c-format +msgid "Invalid REAL response received from host on port %d\n" +msgstr "" + +#: plugins/check_real.c:185 plugins/check_tcp.c:315 +#, c-format +msgid "No data received from host\n" +msgstr "" + +#: plugins/check_real.c:248 +#, c-format +msgid "REAL %s - %d second response time\n" +msgstr "" + +#: plugins/check_real.c:337 plugins/check_ups.c:539 +msgid "Warning time must be a positive integer" +msgstr "" + +#: plugins/check_real.c:346 plugins/check_ups.c:530 +msgid "Critical time must be a positive integer" +msgstr "" + +#: plugins/check_real.c:382 +msgid "You must provide a server to check" +msgstr "" + +#: plugins/check_real.c:414 +msgid "This plugin tests the REAL service on the specified host." +msgstr "" + +#: plugins/check_real.c:426 +msgid "Connect to this url" +msgstr "" + +#: plugins/check_real.c:428 +#, c-format +msgid "String to expect in first line of server response (default: %s)\n" +msgstr "" + +#: plugins/check_real.c:438 +msgid "This plugin will attempt to open an RTSP connection with the host." +msgstr "" + +#: plugins/check_real.c:439 plugins/check_smtp.c:847 +msgid "Successul connects return STATE_OK, refusals and timeouts return" +msgstr "" + +#: plugins/check_real.c:440 +msgid "" +"STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful connects," +msgstr "" + +#: plugins/check_real.c:441 +msgid "" +"but incorrect response messages from the host result in STATE_WARNING return" +msgstr "" + +#: plugins/check_real.c:442 +msgid "values." +msgstr "" + +#: plugins/check_smtp.c:149 plugins/check_swap.c:286 plugins/check_swap.c:292 +#, c-format +msgid "malloc() failed!\n" +msgstr "" + +#: plugins/check_smtp.c:190 plugins/check_smtp.c:202 +#, c-format +msgid "recv() failed\n" +msgstr "" + +#: plugins/check_smtp.c:212 +#, c-format +msgid "WARNING - TLS not supported by server\n" +msgstr "" + +#: plugins/check_smtp.c:224 +#, c-format +msgid "Server does not support STARTTLS\n" +msgstr "" + +#: plugins/check_smtp.c:230 +#, c-format +msgid "CRITICAL - Cannot create SSL context.\n" +msgstr "" + +#: plugins/check_smtp.c:250 +msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." +msgstr "" + +#: plugins/check_smtp.c:255 +#, c-format +msgid "sent %s" +msgstr "" + +#: plugins/check_smtp.c:257 +msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." +msgstr "" + +#: plugins/check_smtp.c:287 +#, c-format +msgid "Invalid SMTP response received from host: %s\n" +msgstr "" + +#: plugins/check_smtp.c:289 +#, c-format +msgid "Invalid SMTP response received from host on port %d: %s\n" +msgstr "" + +#: plugins/check_smtp.c:312 plugins/check_snmp.c:863 +#, c-format +msgid "Could Not Compile Regular Expression" +msgstr "" + +#: plugins/check_smtp.c:321 +#, c-format +msgid "SMTP %s - Invalid response '%s' to command '%s'\n" +msgstr "" + +#: plugins/check_smtp.c:325 plugins/check_snmp.c:538 +#, c-format +msgid "Execute Error: %s\n" +msgstr "" + +#: plugins/check_smtp.c:339 +msgid "no authuser specified, " +msgstr "" + +#: plugins/check_smtp.c:344 +msgid "no authpass specified, " +msgstr "" + +#: plugins/check_smtp.c:351 plugins/check_smtp.c:372 plugins/check_smtp.c:392 +#: plugins/check_smtp.c:701 +#, c-format +msgid "sent %s\n" +msgstr "" + +#: plugins/check_smtp.c:354 +msgid "recv() failed after AUTH LOGIN, " +msgstr "" + +#: plugins/check_smtp.c:359 plugins/check_smtp.c:380 plugins/check_smtp.c:400 +#: plugins/check_smtp.c:712 +#, c-format +msgid "received %s\n" +msgstr "" + +#: plugins/check_smtp.c:363 +msgid "invalid response received after AUTH LOGIN, " +msgstr "" + +#: plugins/check_smtp.c:376 +msgid "recv() failed after sending authuser, " +msgstr "" + +#: plugins/check_smtp.c:384 +msgid "invalid response received after authuser, " +msgstr "" + +#: plugins/check_smtp.c:396 +msgid "recv() failed after sending authpass, " +msgstr "" + +#: plugins/check_smtp.c:404 +msgid "invalid response received after authpass, " +msgstr "" + +#: plugins/check_smtp.c:411 +msgid "only authtype LOGIN is supported, " +msgstr "" + +#: plugins/check_smtp.c:435 +#, c-format +msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" +msgstr "" + +#: plugins/check_smtp.c:546 plugins/check_smtp.c:558 +#, c-format +msgid "Could not realloc() units [%d]\n" +msgstr "" + +#: plugins/check_smtp.c:566 +msgid "Critical time must be a positive" +msgstr "" + +#: plugins/check_smtp.c:574 +msgid "Warning time must be a positive" +msgstr "" + +#: plugins/check_smtp.c:617 +msgid "SSL support not available - install OpenSSL and recompile" +msgstr "" + +#: plugins/check_smtp.c:692 plugins/check_smtp.c:697 +#, c-format +msgid "Connection closed by server before sending QUIT command\n" +msgstr "" + +#: plugins/check_smtp.c:707 +#, c-format +msgid "recv() failed after QUIT." +msgstr "" + +#: plugins/check_smtp.c:709 +#, c-format +msgid "Connection reset by peer." +msgstr "" + +#: plugins/check_smtp.c:799 +msgid "This plugin will attempt to open an SMTP connection with the host." +msgstr "" + +#: plugins/check_smtp.c:813 +#, c-format +msgid " String to expect in first line of server response (default: '%s')\n" +msgstr "" + +#: plugins/check_smtp.c:815 +msgid "SMTP command (may be used repeatedly)" +msgstr "" + +#: plugins/check_smtp.c:817 +msgid "Expected response to command (may be used repeatedly)" +msgstr "" + +#: plugins/check_smtp.c:819 +msgid "FROM-address to include in MAIL command, required by Exchange 2000" +msgstr "" + +#: plugins/check_smtp.c:821 +msgid "FQDN used for HELO" +msgstr "" + +#: plugins/check_smtp.c:824 plugins/check_tcp.c:689 +msgid "Minimum number of days a certificate has to be valid." +msgstr "" + +#: plugins/check_smtp.c:826 +msgid "Use STARTTLS for the connection." +msgstr "" + +#: plugins/check_smtp.c:830 +msgid "SMTP AUTH type to check (default none, only LOGIN supported)" +msgstr "" + +#: plugins/check_smtp.c:832 +msgid "SMTP AUTH username" +msgstr "" + +#: plugins/check_smtp.c:834 +msgid "SMTP AUTH password" +msgstr "" + +#: plugins/check_smtp.c:836 +msgid "Send LHLO instead of HELO/EHLO" +msgstr "" + +#: plugins/check_smtp.c:838 +msgid "Ignore failure when sending QUIT command to server" +msgstr "" + +#: plugins/check_smtp.c:848 +msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" +msgstr "" + +#: plugins/check_smtp.c:849 +msgid "connects, but incorrect response messages from the host result in" +msgstr "" + +#: plugins/check_smtp.c:850 +msgid "STATE_WARNING return values." +msgstr "" + +#: plugins/check_snmp.c:175 plugins/check_snmp.c:624 +msgid "Cannot malloc" +msgstr "" + +#: plugins/check_snmp.c:366 +#, c-format +msgid "External command error: %s\n" +msgstr "" + +#: plugins/check_snmp.c:371 +#, c-format +msgid "External command error with no output (return code: %d)\n" +msgstr "" + +#: plugins/check_snmp.c:484 plugins/check_snmp.c:486 plugins/check_snmp.c:488 +#: plugins/check_snmp.c:490 +#, c-format +msgid "No valid data returned (%s)\n" +msgstr "" + +#: plugins/check_snmp.c:502 +msgid "Time duration between plugin calls is invalid" +msgstr "" + +#: plugins/check_snmp.c:630 +msgid "Cannot asprintf()" +msgstr "" + +#: plugins/check_snmp.c:636 +msgid "Cannot realloc()" +msgstr "" + +#: plugins/check_snmp.c:652 +msgid "No previous data to calculate rate - assume okay" +msgstr "" + +#: plugins/check_snmp.c:802 +msgid "Retries interval must be a positive integer" +msgstr "" + +#: plugins/check_snmp.c:839 +msgid "Exit status must be a positive integer" +msgstr "" + +#: plugins/check_snmp.c:888 +#, c-format +msgid "Could not reallocate labels[%d]" +msgstr "" + +#: plugins/check_snmp.c:901 +msgid "Could not reallocate labels\n" +msgstr "" + +#: plugins/check_snmp.c:917 +#, c-format +msgid "Could not reallocate units [%d]\n" +msgstr "" + +#: plugins/check_snmp.c:929 +msgid "Could not realloc() units\n" +msgstr "" + +#: plugins/check_snmp.c:946 +msgid "Rate multiplier must be a positive integer" +msgstr "" + +#: plugins/check_snmp.c:1021 +msgid "No host specified\n" +msgstr "" + +#: plugins/check_snmp.c:1025 +msgid "No OIDs specified\n" +msgstr "" + +#: plugins/check_snmp.c:1048 plugins/check_snmp.c:1066 +#: plugins/check_snmp.c:1084 +#, c-format +msgid "Required parameter: %s\n" +msgstr "" + +#: plugins/check_snmp.c:1059 +msgid "Invalid seclevel" +msgstr "" + +#: plugins/check_snmp.c:1105 +msgid "Invalid SNMP version" +msgstr "" + +#: plugins/check_snmp.c:1122 +msgid "Unbalanced quotes\n" +msgstr "" + +#: plugins/check_snmp.c:1178 +#, c-format +msgid "multiplier set (%.1f), but input is not a number: %s" +msgstr "" + +#: plugins/check_snmp.c:1209 +msgid "Check status of remote machines and obtain system information via SNMP" +msgstr "" + +#: plugins/check_snmp.c:1223 +msgid "Use SNMP GETNEXT instead of SNMP GET" +msgstr "" + +#: plugins/check_snmp.c:1225 +msgid "SNMP protocol version" +msgstr "" + +#: plugins/check_snmp.c:1227 +msgid "SNMPv3 context" +msgstr "" + +#: plugins/check_snmp.c:1229 +msgid "SNMPv3 securityLevel" +msgstr "" + +#: plugins/check_snmp.c:1231 +msgid "SNMPv3 auth proto" +msgstr "" + +#: plugins/check_snmp.c:1233 +msgid "SNMPv3 priv proto (default DES)" +msgstr "" + +#: plugins/check_snmp.c:1237 +msgid "Optional community string for SNMP communication" +msgstr "" + +#: plugins/check_snmp.c:1238 +msgid "default is" +msgstr "" + +#: plugins/check_snmp.c:1240 +msgid "SNMPv3 username" +msgstr "" + +#: plugins/check_snmp.c:1242 +msgid "SNMPv3 authentication password" +msgstr "" + +#: plugins/check_snmp.c:1244 +msgid "SNMPv3 privacy password" +msgstr "" + +#: plugins/check_snmp.c:1248 +msgid "Object identifier(s) or SNMP variables whose value you wish to query" +msgstr "" + +#: plugins/check_snmp.c:1250 +msgid "" +"List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL'" +msgstr "" + +#: plugins/check_snmp.c:1251 +msgid "for symbolic OIDs.)" +msgstr "" + +#: plugins/check_snmp.c:1253 +msgid "Delimiter to use when parsing returned data. Default is" +msgstr "" + +#: plugins/check_snmp.c:1254 +msgid "Any data on the right hand side of the delimiter is considered" +msgstr "" + +#: plugins/check_snmp.c:1255 +msgid "to be the data that should be used in the evaluation." +msgstr "" + +#: plugins/check_snmp.c:1257 +msgid "If the check returns a 0 length string or NULL value" +msgstr "" + +#: plugins/check_snmp.c:1258 +msgid "This option allows you to choose what status you want it to exit" +msgstr "" + +#: plugins/check_snmp.c:1259 +msgid "Excluding this option renders the default exit of 3(STATE_UNKNOWN)" +msgstr "" + +#: plugins/check_snmp.c:1260 +msgid "0 = OK" +msgstr "" + +#: plugins/check_snmp.c:1261 +msgid "1 = WARNING" +msgstr "" + +#: plugins/check_snmp.c:1262 +msgid "2 = CRITICAL" +msgstr "" + +#: plugins/check_snmp.c:1263 +msgid "3 = UNKNOWN" +msgstr "" + +#: plugins/check_snmp.c:1267 +msgid "Warning threshold range(s)" +msgstr "" + +#: plugins/check_snmp.c:1269 +msgid "Critical threshold range(s)" +msgstr "" + +#: plugins/check_snmp.c:1271 +msgid "Enable rate calculation. See 'Rate Calculation' below" +msgstr "" + +#: plugins/check_snmp.c:1273 +msgid "" +"Converts rate per second. For example, set to 60 to convert to per minute" +msgstr "" + +#: plugins/check_snmp.c:1275 +msgid "Add/substract the specified OFFSET to numeric sensor data" +msgstr "" + +#: plugins/check_snmp.c:1279 +msgid "Return OK state (for that OID) if STRING is an exact match" +msgstr "" + +#: plugins/check_snmp.c:1281 +msgid "" +"Return OK state (for that OID) if extended regular expression REGEX matches" +msgstr "" + +#: plugins/check_snmp.c:1283 +msgid "" +"Return OK state (for that OID) if case-insensitive extended REGEX matches" +msgstr "" + +#: plugins/check_snmp.c:1285 +msgid "Invert search result (CRITICAL if found)" +msgstr "" + +#: plugins/check_snmp.c:1289 +msgid "Prefix label for output from plugin" +msgstr "" + +#: plugins/check_snmp.c:1291 +msgid "Units label(s) for output data (e.g., 'sec.')." +msgstr "" + +#: plugins/check_snmp.c:1293 +msgid "Separates output on multiple OID requests" +msgstr "" + +#: plugins/check_snmp.c:1295 +msgid "Multiplies current value, 0 < n < 1 works as divider, defaults to 1" +msgstr "" + +#: plugins/check_snmp.c:1297 +msgid "C-style format string for float values (see option -M)" +msgstr "" + +#: plugins/check_snmp.c:1300 +msgid "" +"NOTE the final timeout value is calculated using this formula: " +"timeout_interval * retries + 5" +msgstr "" + +#: plugins/check_snmp.c:1302 +msgid "Number of retries to be used in the requests, default: " +msgstr "" + +#: plugins/check_snmp.c:1305 +msgid "Label performance data with OIDs instead of --label's" +msgstr "" + +#: plugins/check_snmp.c:1310 +msgid "" +"This plugin uses the 'snmpget' command included with the NET-SNMP package." +msgstr "" + +#: plugins/check_snmp.c:1311 +msgid "" +"if you don't have the package installed, you will need to download it from" +msgstr "" + +#: plugins/check_snmp.c:1312 +msgid "http://net-snmp.sourceforge.net before you can use this plugin." +msgstr "" + +#: plugins/check_snmp.c:1316 +msgid "" +"- Multiple OIDs (and labels) may be indicated by a comma or space-delimited " +msgstr "" + +#: plugins/check_snmp.c:1317 +msgid "list (lists with internal spaces must be quoted)." +msgstr "" + +#: plugins/check_snmp.c:1321 +msgid "" +"- When checking multiple OIDs, separate ranges by commas like '-w " +"1:10,1:,:20'" +msgstr "" + +#: plugins/check_snmp.c:1322 +msgid "- Note that only one string and one regex may be checked at present" +msgstr "" + +#: plugins/check_snmp.c:1323 +msgid "" +"- All evaluation methods other than PR, STR, and SUBSTR expect that the value" +msgstr "" + +#: plugins/check_snmp.c:1324 +msgid "returned from the SNMP query is an unsigned integer." +msgstr "" + +#: plugins/check_snmp.c:1327 +msgid "Rate Calculation:" +msgstr "" + +#: plugins/check_snmp.c:1328 +msgid "In many places, SNMP returns counters that are only meaningful when" +msgstr "" + +#: plugins/check_snmp.c:1329 +msgid "calculating the counter difference since the last check. check_snmp" +msgstr "" + +#: plugins/check_snmp.c:1330 +msgid "saves the last state information in a file so that the rate per second" +msgstr "" + +#: plugins/check_snmp.c:1331 +msgid "can be calculated. Use the --rate option to save state information." +msgstr "" + +#: plugins/check_snmp.c:1332 +msgid "" +"On the first run, there will be no prior state - this will return with OK." +msgstr "" + +#: plugins/check_snmp.c:1333 +msgid "The state is uniquely determined by the arguments to the plugin, so" +msgstr "" + +#: plugins/check_snmp.c:1334 +msgid "changing the arguments will create a new state file." +msgstr "" + +#: plugins/check_ssh.c:170 +msgid "Port number must be a positive integer" +msgstr "" + +#: plugins/check_ssh.c:237 +#, c-format +msgid "Server answer: %s" +msgstr "" + +#: plugins/check_ssh.c:256 +#, c-format +msgid "SSH CRITICAL - %s (protocol %s) version mismatch, expected '%s'\n" +msgstr "" + +#: plugins/check_ssh.c:264 +#, c-format +msgid "" +"SSH CRITICAL - %s (protocol %s) protocol version mismatch, expected '%s'\n" +msgstr "" + +#: plugins/check_ssh.c:273 +#, c-format +msgid "SSH OK - %s (protocol %s) | %s\n" +msgstr "" + +#: plugins/check_ssh.c:294 +msgid "Try to connect to an SSH server at specified server and port" +msgstr "" + +#: plugins/check_ssh.c:310 +msgid "" +"Alert if string doesn't match expected server version (ex: OpenSSH_3.9p1)" +msgstr "" + +#: plugins/check_ssh.c:313 +msgid "Alert if protocol doesn't match expected protocol version (ex: 2.0)" +msgstr "" + +#: plugins/check_swap.c:190 +#, c-format +msgid "Command: %s\n" +msgstr "" + +#: plugins/check_swap.c:192 +#, c-format +msgid "Format: %s\n" +msgstr "" + +#: plugins/check_swap.c:228 +#, c-format +msgid "total=%.0f, used=%.0f, free=%.0f\n" +msgstr "" + +#: plugins/check_swap.c:242 +#, c-format +msgid "total=%.0f, free=%.0f\n" +msgstr "" + +#: plugins/check_swap.c:274 +msgid "Error getting swap devices\n" +msgstr "" + +#: plugins/check_swap.c:277 +msgid "SWAP OK: No swap devices defined\n" +msgstr "" + +#: plugins/check_swap.c:298 plugins/check_swap.c:340 +msgid "swapctl failed: " +msgstr "" + +#: plugins/check_swap.c:299 plugins/check_swap.c:341 +msgid "Error in swapctl call\n" +msgstr "" + +#: plugins/check_swap.c:379 +#, c-format +msgid "SWAP %s - %d%% free (%dMB out of %dMB) %s|" +msgstr "" + +#: plugins/check_swap.c:475 +msgid "Warning threshold percentage must be <= 100!" +msgstr "" + +#: plugins/check_swap.c:485 +msgid "Warning threshold be positive integer or percentage!" +msgstr "" + +#: plugins/check_swap.c:505 +msgid "Critical threshold percentage must be <= 100!" +msgstr "" + +#: plugins/check_swap.c:515 +msgid "Critical threshold be positive integer or percentage!" +msgstr "" + +#: plugins/check_swap.c:524 +msgid "" +"no-swap result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) " +"or integer (0-3)." +msgstr "" + +#: plugins/check_swap.c:561 +msgid "Warning should be more than critical" +msgstr "" + +#: plugins/check_swap.c:575 +msgid "Check swap space on local machine." +msgstr "" + +#: plugins/check_swap.c:585 +msgid "" +"Exit with WARNING status if less than INTEGER bytes of swap space are free" +msgstr "" + +#: plugins/check_swap.c:587 +msgid "Exit with WARNING status if less than PERCENT of swap space is free" +msgstr "" + +#: plugins/check_swap.c:589 +msgid "" +"Exit with CRITICAL status if less than INTEGER bytes of swap space are free" +msgstr "" + +#: plugins/check_swap.c:591 +msgid "Exit with CRITICAL status if less than PERCENT of swap space is free" +msgstr "" + +#: plugins/check_swap.c:593 +msgid "Conduct comparisons for all swap partitions, one by one" +msgstr "" + +#: plugins/check_swap.c:595 +msgid "" +"Resulting state when there is no swap regardless of thresholds. Default:" +msgstr "" + +#: plugins/check_swap.c:600 +msgid "" +"Both INTEGER and PERCENT thresholds can be specified, they are all checked." +msgstr "" + +#: plugins/check_swap.c:601 +msgid "On AIX, if -a is specified, uses lsps -a, otherwise uses lsps -s." +msgstr "" + +#: plugins/check_tcp.c:210 +msgid "CRITICAL - Generic check_tcp called with unknown service\n" +msgstr "" + +#: plugins/check_tcp.c:234 +msgid "With UDP checks, a send/expect string must be specified." +msgstr "" + +#: plugins/check_tcp.c:445 +msgid "No arguments found" +msgstr "" + +#: plugins/check_tcp.c:548 +msgid "Maxbytes must be a positive integer" +msgstr "" + +#: plugins/check_tcp.c:566 +msgid "Refuse must be one of ok, warn, crit" +msgstr "" + +#: plugins/check_tcp.c:576 +msgid "Mismatch must be one of ok, warn, crit" +msgstr "" + +#: plugins/check_tcp.c:582 +msgid "Delay must be a positive integer" +msgstr "" + +#: plugins/check_tcp.c:637 +msgid "You must provide a server address" +msgstr "" + +#: plugins/check_tcp.c:639 +msgid "Invalid hostname, address or socket" +msgstr "" + +#: plugins/check_tcp.c:653 +#, c-format +msgid "" +"This plugin tests %s connections with the specified host (or unix socket).\n" +"\n" +msgstr "" + +#: plugins/check_tcp.c:666 +msgid "" +"Can use \\n, \\r, \\t or \\\\ in send or quit string. Must come before send " +"or quit option" +msgstr "" + +#: plugins/check_tcp.c:667 +msgid "Default: nothing added to send, \\r\\n added to end of quit" +msgstr "" + +#: plugins/check_tcp.c:669 +msgid "String to send to the server" +msgstr "" + +#: plugins/check_tcp.c:671 +msgid "String to expect in server response" +msgstr "" + +#: plugins/check_tcp.c:671 +msgid "(may be repeated)" +msgstr "" + +#: plugins/check_tcp.c:673 +msgid "All expect strings need to occur in server response. Default is any" +msgstr "" + +#: plugins/check_tcp.c:675 +msgid "String to send server to initiate a clean close of the connection" +msgstr "" + +#: plugins/check_tcp.c:677 +msgid "Accept TCP refusals with states ok, warn, crit (default: crit)" +msgstr "" + +#: plugins/check_tcp.c:679 +msgid "" +"Accept expected string mismatches with states ok, warn, crit (default: warn)" +msgstr "" + +#: plugins/check_tcp.c:681 +msgid "Hide output from TCP socket" +msgstr "" + +#: plugins/check_tcp.c:683 +msgid "Close connection once more than this number of bytes are received" +msgstr "" + +#: plugins/check_tcp.c:685 +msgid "Seconds to wait between sending string and polling for response" +msgstr "" + +#: plugins/check_tcp.c:690 +msgid "1st is #days for warning, 2nd is critical (if not specified - 0)." +msgstr "" + +#: plugins/check_tcp.c:692 +msgid "Use SSL for the connection." +msgstr "" + +#: plugins/check_tcp.c:694 +msgid "SSL server_name" +msgstr "" + +#: plugins/check_time.c:102 +#, c-format +msgid "TIME UNKNOWN - could not connect to server %s, port %d\n" +msgstr "" + +#: plugins/check_time.c:115 +#, c-format +msgid "TIME UNKNOWN - could not send UDP request to server %s, port %d\n" +msgstr "" + +#: plugins/check_time.c:139 +#, c-format +msgid "TIME UNKNOWN - no data received from server %s, port %d\n" +msgstr "" + +#: plugins/check_time.c:152 +#, c-format +msgid "TIME %s - %d second response time|%s\n" +msgstr "" + +#: plugins/check_time.c:170 +#, c-format +msgid "TIME %s - %lu second time difference|%s %s\n" +msgstr "" + +#: plugins/check_time.c:254 +msgid "Warning thresholds must be a positive integer" +msgstr "" + +#: plugins/check_time.c:273 +msgid "Critical thresholds must be a positive integer" +msgstr "" + +#: plugins/check_time.c:339 +msgid "This plugin will check the time on the specified host." +msgstr "" + +#: plugins/check_time.c:351 +msgid "Use UDP to connect, not TCP" +msgstr "" + +#: plugins/check_time.c:353 +msgid "Time difference (sec.) necessary to result in a warning status" +msgstr "" + +#: plugins/check_time.c:355 +msgid "Time difference (sec.) necessary to result in a critical status" +msgstr "" + +#: plugins/check_time.c:357 +msgid "Response time (sec.) necessary to result in warning status" +msgstr "" + +#: plugins/check_time.c:359 +msgid "Response time (sec.) necessary to result in critical status" +msgstr "" + +#: plugins/check_ups.c:144 +msgid "On Battery, Low Battery" +msgstr "" + +#: plugins/check_ups.c:149 +msgid "Online" +msgstr "" + +#: plugins/check_ups.c:152 +msgid "On Battery" +msgstr "" + +#: plugins/check_ups.c:156 +msgid ", Low Battery" +msgstr "" + +#: plugins/check_ups.c:160 +msgid ", Calibrating" +msgstr "" + +#: plugins/check_ups.c:163 +msgid ", Replace Battery" +msgstr "" + +#: plugins/check_ups.c:167 +msgid ", On Bypass" +msgstr "" + +#: plugins/check_ups.c:170 +msgid ", Overload" +msgstr "" + +#: plugins/check_ups.c:173 +msgid ", Trimming" +msgstr "" + +#: plugins/check_ups.c:176 +msgid ", Boosting" +msgstr "" + +#: plugins/check_ups.c:179 +msgid ", Charging" +msgstr "" + +#: plugins/check_ups.c:182 +msgid ", Discharging" +msgstr "" + +#: plugins/check_ups.c:185 +msgid ", Unknown" +msgstr "" + +#: plugins/check_ups.c:324 +msgid "UPS does not support any available options\n" +msgstr "" + +#: plugins/check_ups.c:348 plugins/check_ups.c:414 +msgid "Invalid response received from host" +msgstr "" + +#: plugins/check_ups.c:406 +msgid "UPS name to long for buffer" +msgstr "" + +#: plugins/check_ups.c:423 +#, c-format +msgid "CRITICAL - no such UPS '%s' on that host\n" +msgstr "" + +#: plugins/check_ups.c:433 +msgid "CRITICAL - UPS data is stale" +msgstr "" + +#: plugins/check_ups.c:438 +#, c-format +msgid "Unknown error: %s\n" +msgstr "" + +#: plugins/check_ups.c:445 +msgid "Error: unable to parse variable" +msgstr "" + +#: plugins/check_ups.c:552 +msgid "Unrecognized UPS variable" +msgstr "" + +#: plugins/check_ups.c:590 +msgid "Error : no UPS indicated" +msgstr "" + +#: plugins/check_ups.c:610 +msgid "" +"This plugin tests the UPS service on the specified host. Network UPS Tools" +msgstr "" + +#: plugins/check_ups.c:611 +msgid "from www.networkupstools.org must be running for this plugin to work." +msgstr "" + +#: plugins/check_ups.c:623 +msgid "Name of UPS" +msgstr "" + +#: plugins/check_ups.c:625 +msgid "Output of temperatures in Celsius" +msgstr "" + +#: plugins/check_ups.c:627 +msgid "Valid values for STRING are" +msgstr "" + +#: plugins/check_ups.c:638 +msgid "" +"This plugin attempts to determine the status of a UPS (Uninterruptible Power" +msgstr "" + +#: plugins/check_ups.c:639 +msgid "" +"Supply) on a local or remote host. If the UPS is online or calibrating, the" +msgstr "" + +#: plugins/check_ups.c:640 +msgid "" +"plugin will return an OK state. If the battery is on it will return a WARNING" +msgstr "" + +#: plugins/check_ups.c:641 +msgid "" +"state. If the UPS is off or has a low battery the plugin will return a " +"CRITICAL" +msgstr "" + +#: plugins/check_ups.c:646 +msgid "" +"You may also specify a variable to check (such as temperature, utility " +"voltage," +msgstr "" + +#: plugins/check_ups.c:647 +msgid "" +"battery load, etc.) as well as warning and critical thresholds for the value" +msgstr "" + +#: plugins/check_ups.c:648 +msgid "" +"of that variable. If the remote host has multiple UPS that are being " +"monitored" +msgstr "" + +#: plugins/check_ups.c:649 +msgid "you will have to use the --ups option to specify which UPS to check." +msgstr "" + +#: plugins/check_ups.c:651 +msgid "" +"This plugin requires that the UPSD daemon distributed with Russell Kroll's" +msgstr "" + +#: plugins/check_ups.c:652 +msgid "" +"Network UPS Tools be installed on the remote host. If you do not have the" +msgstr "" + +#: plugins/check_ups.c:653 +msgid "package installed on your system, you can download it from" +msgstr "" + +#: plugins/check_ups.c:654 +msgid "http://www.networkupstools.org" +msgstr "" + +#: plugins/check_users.c:91 +#, c-format +msgid "Could not enumerate RD sessions: %d\n" +msgstr "" + +#: plugins/check_users.c:146 +#, c-format +msgid "# users=%d" +msgstr "" + +#: plugins/check_users.c:164 +msgid "Unable to read output" +msgstr "" + +#: plugins/check_users.c:166 +#, c-format +msgid "USERS %s - %d users currently logged in |%s\n" +msgstr "" + +#: plugins/check_users.c:241 +msgid "This plugin checks the number of users currently logged in on the local" +msgstr "" + +#: plugins/check_users.c:242 +msgid "" +"system and generates an error if the number exceeds the thresholds specified." +msgstr "" + +#: plugins/check_users.c:252 +msgid "Set WARNING status if more than INTEGER users are logged in" +msgstr "" + +#: plugins/check_users.c:254 +msgid "Set CRITICAL status if more than INTEGER users are logged in" +msgstr "" + +#: plugins/check_ide_smart.c:218 +msgid "" +"DEPRECATION WARNING: the -q switch (quiet output) is no longer \"quiet\"." +msgstr "" + +#: plugins/check_ide_smart.c:219 +msgid "Nagios-compatible output is now always returned." +msgstr "" + +#: plugins/check_ide_smart.c:224 +msgid "SMART commands are broken and have been disabled (See Notes in --help)." +msgstr "" + +#: plugins/check_ide_smart.c:228 +msgid "" +"DEPRECATION WARNING: the -n switch (Nagios-compatible output) is now the" +msgstr "" + +#: plugins/check_ide_smart.c:229 +msgid "default and will be removed from future releases." +msgstr "" + +#: plugins/check_ide_smart.c:257 +#, c-format +msgid "CRITICAL - Couldn't open device %s: %s\n" +msgstr "" + +#: plugins/check_ide_smart.c:262 +#, c-format +msgid "CRITICAL - SMART_CMD_ENABLE\n" +msgstr "" + +#: plugins/check_ide_smart.c:303 plugins/check_ide_smart.c:330 +#, c-format +msgid "CRITICAL - SMART_READ_VALUES: %s\n" +msgstr "" + +#: plugins/check_ide_smart.c:376 +#, c-format +msgid "CRITICAL - %d Harddrive PreFailure%cDetected! %d/%d tests failed.\n" +msgstr "" + +#: plugins/check_ide_smart.c:384 +#, c-format +msgid "WARNING - %d Harddrive Advisor%s Detected. %d/%d tests failed.\n" +msgstr "" + +#: plugins/check_ide_smart.c:392 +#, c-format +msgid "OK - Operational (%d/%d tests passed)\n" +msgstr "" + +#: plugins/check_ide_smart.c:396 +#, c-format +msgid "ERROR - Status '%d' unknown. %d/%d tests passed\n" +msgstr "" + +#: plugins/check_ide_smart.c:429 +#, c-format +msgid "OffLineStatus=%d {%s}, AutoOffLine=%s, OffLineTimeout=%d minutes\n" +msgstr "" + +#: plugins/check_ide_smart.c:435 +#, c-format +msgid "OffLineCapability=%d {%s %s %s}\n" +msgstr "" + +#: plugins/check_ide_smart.c:441 +#, c-format +msgid "SmartRevision=%d, CheckSum=%d, SmartCapability=%d {%s %s}\n" +msgstr "" + +#: plugins/check_ide_smart.c:463 plugins/check_ide_smart.c:492 +#, c-format +msgid "CRITICAL - %s: %s\n" +msgstr "" + +#: plugins/check_ide_smart.c:467 plugins/check_ide_smart.c:496 +#, c-format +msgid "OK - Command sent (%s)\n" +msgstr "" + +#: plugins/check_ide_smart.c:517 plugins/check_ide_smart.c:544 +#, c-format +msgid "CRITICAL - SMART_READ_THRESHOLDS: %s\n" +msgstr "" + +#: plugins/check_ide_smart.c:563 +#, c-format +msgid "" +"This plugin checks a local hard drive with the (Linux specific) SMART " +"interface [http://smartlinux.sourceforge.net/smart/index.php]." +msgstr "" + +#: plugins/check_ide_smart.c:573 +msgid "Select device DEVICE" +msgstr "" + +#: plugins/check_ide_smart.c:574 +msgid "" +"Note: if the device is specified without this option, any further option will" +msgstr "" + +#: plugins/check_ide_smart.c:575 +msgid "be ignored." +msgstr "" + +#: plugins/check_ide_smart.c:581 +msgid "" +"The SMART command modes (-i/--immediate, -0/--auto-off and -1/--auto-on) were" +msgstr "" + +#: plugins/check_ide_smart.c:582 +msgid "" +"broken in an underhand manner and have been disabled. You can use smartctl" +msgstr "" + +#: plugins/check_ide_smart.c:583 +msgid "instead:" +msgstr "" + +#: plugins/check_ide_smart.c:584 +msgid "-0/--auto-off: use \"smartctl --offlineauto=off\"" +msgstr "" + +#: plugins/check_ide_smart.c:585 +msgid "-1/--auto-on: use \"smartctl --offlineauto=on\"" +msgstr "" + +#: plugins/check_ide_smart.c:586 +msgid "-i/--immediate: use \"smartctl --test=offline\"" +msgstr "" + +#: plugins/negate.c:96 +msgid "No data returned from command\n" +msgstr "" + +#: plugins/negate.c:166 +msgid "" +"Timeout result must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) " +"or integer (0-3)." +msgstr "" + +#: plugins/negate.c:170 +msgid "" +"Ok must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or integer " +"(0-3)." +msgstr "" + +#: plugins/negate.c:176 +msgid "" +"Warning must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" + +#: plugins/negate.c:181 +msgid "" +"Critical must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" + +#: plugins/negate.c:186 +msgid "" +"Unknown must be a valid state name (OK, WARNING, CRITICAL, UNKNOWN) or " +"integer (0-3)." +msgstr "" + +#: plugins/negate.c:213 +msgid "Require path to command" +msgstr "" + +#: plugins/negate.c:224 +msgid "" +"Negates the status of a plugin (returns OK for CRITICAL and vice-versa)." +msgstr "" + +#: plugins/negate.c:225 +msgid "Additional switches can be used to control which state becomes what." +msgstr "" + +#: plugins/negate.c:234 +msgid "Keep timeout longer than the plugin timeout to retain CRITICAL status." +msgstr "" + +#: plugins/negate.c:236 +msgid "Custom result on Negate timeouts; see below for STATUS definition\n" +msgstr "" + +#: plugins/negate.c:242 +#, c-format +msgid "" +" STATUS can be 'OK', 'WARNING', 'CRITICAL' or 'UNKNOWN' without single\n" +msgstr "" + +#: plugins/negate.c:243 +#, c-format +msgid "" +" quotes. Numeric values are accepted. If nothing is specified, permutes\n" +msgstr "" + +#: plugins/negate.c:244 +#, c-format +msgid " OK and CRITICAL.\n" +msgstr "" + +#: plugins/negate.c:246 +#, c-format +msgid "" +" Substitute output text as well. Will only substitute text in CAPITALS\n" +msgstr "" + +#: plugins/negate.c:251 +msgid "Run check_ping and invert result. Must use full path to plugin" +msgstr "" + +#: plugins/negate.c:253 +msgid "This will return OK instead of WARNING and UNKNOWN instead of CRITICAL" +msgstr "" + +#: plugins/negate.c:256 +msgid "" +"This plugin is a wrapper to take the output of another plugin and invert it." +msgstr "" + +#: plugins/negate.c:257 +msgid "The full path of the plugin must be provided." +msgstr "" + +#: plugins/negate.c:258 +msgid "If the wrapped plugin returns OK, the wrapper will return CRITICAL." +msgstr "" + +#: plugins/negate.c:259 +msgid "If the wrapped plugin returns CRITICAL, the wrapper will return OK." +msgstr "" + +#: plugins/negate.c:260 +msgid "Otherwise, the output state of the wrapped plugin is unchanged." +msgstr "" + +#: plugins/negate.c:262 +msgid "" +"Using timeout-result, it is possible to override the timeout behaviour or a" +msgstr "" + +#: plugins/negate.c:263 +msgid "plugin by setting the negate timeout a bit lower." +msgstr "" + +#: plugins/netutils.c:49 +#, c-format +msgid "%s - Socket timeout after %d seconds\n" +msgstr "" + +#: plugins/netutils.c:51 +#, c-format +msgid "%s - Abnormal timeout after %d seconds\n" +msgstr "" + +#: plugins/netutils.c:79 plugins/netutils.c:292 +msgid "Send failed" +msgstr "" + +#: plugins/netutils.c:96 plugins/netutils.c:307 +msgid "No data was received from host!" +msgstr "" + +#: plugins/netutils.c:209 plugins/netutils.c:245 +msgid "Socket creation failed" +msgstr "" + +#: plugins/netutils.c:238 +msgid "Supplied path too long unix domain socket" +msgstr "" + +#: plugins/netutils.c:316 +msgid "Receive failed" +msgstr "" + +#: plugins/netutils.c:342 plugins-root/check_dhcp.c:1314 +#, c-format +msgid "Invalid hostname/address - %s" +msgstr "" + +#: plugins/popen.c:133 +msgid "Could not malloc argv array in popen()" +msgstr "" + +#: plugins/popen.c:143 +msgid "CRITICAL - You need more args!!!" +msgstr "" + +#: plugins/popen.c:201 +msgid "Cannot catch SIGCHLD" +msgstr "" + +#: plugins/popen.c:287 +#, c-format +msgid "CRITICAL - Plugin timed out after %d seconds\n" +msgstr "" + +#: plugins/popen.c:290 +msgid "CRITICAL - popen timeout received, but no child process" +msgstr "" + +#: plugins/urlize.c:129 +#, c-format +msgid "" +"%s UNKNOWN - No data received from host\n" +"CMD: %s\n" +msgstr "" + +#: plugins/urlize.c:168 +msgid "" +"This plugin wraps the text output of another command (plugin) in HTML " +msgstr "" + +#: plugins/urlize.c:169 +msgid "" +"tags, thus displaying the child plugin's output as a clickable link in " +"compatible" +msgstr "" + +#: plugins/urlize.c:170 +msgid "" +"monitoring status screen. This plugin returns the status of the invoked " +"plugin." +msgstr "" + +#: plugins/urlize.c:180 +msgid "" +"Pay close attention to quoting to ensure that the shell passes the expected" +msgstr "" + +#: plugins/urlize.c:181 +msgid "data to the plugin. For example, in:" +msgstr "" + +#: plugins/urlize.c:182 +msgid "urlize http://example.com/ check_http -H example.com -r 'two words'" +msgstr "" + +#: plugins/urlize.c:183 +msgid "the shell will remove the single quotes and urlize will see:" +msgstr "" + +#: plugins/urlize.c:184 +msgid "urlize http://example.com/ check_http -H example.com -r two words" +msgstr "" + +#: plugins/urlize.c:185 +msgid "You probably want:" +msgstr "" + +#: plugins/urlize.c:186 +msgid "urlize http://example.com/ \"check_http -H example.com -r 'two words'\"" +msgstr "" + +#: plugins/utils.c:479 +msgid "failed realloc in strpcpy\n" +msgstr "" + +#: plugins/utils.c:521 +msgid "failed malloc in strscat\n" +msgstr "" + +#: plugins/utils.c:541 +msgid "failed malloc in xvasprintf\n" +msgstr "" + +#: plugins/utils.c:819 +msgid "sysconf error for _SC_OPEN_MAX\n" +msgstr "" + +#: plugins/utils.h:127 +#, c-format +msgid "" +" %s (-h | --help) for detailed help\n" +" %s (-V | --version) for version information\n" +msgstr "" + +#: plugins/utils.h:131 +msgid "" +"\n" +"Options:\n" +" -h, --help\n" +" Print detailed help screen\n" +" -V, --version\n" +" Print version information\n" +msgstr "" + +#: plugins/utils.h:138 +#, c-format +msgid "" +" -H, --hostname=ADDRESS\n" +" Host name, IP Address, or unix socket (must be an absolute path)\n" +" -%c, --port=INTEGER\n" +" Port number (default: %s)\n" +msgstr "" + +#: plugins/utils.h:144 +msgid "" +" -4, --use-ipv4\n" +" Use IPv4 connection\n" +" -6, --use-ipv6\n" +" Use IPv6 connection\n" +msgstr "" + +#: plugins/utils.h:150 +msgid "" +" -v, --verbose\n" +" Show details for command-line debugging (output may be truncated by\n" +" the monitoring system)\n" +msgstr "" + +#: plugins/utils.h:155 +msgid "" +" -w, --warning=DOUBLE\n" +" Response time to result in warning status (seconds)\n" +" -c, --critical=DOUBLE\n" +" Response time to result in critical status (seconds)\n" +msgstr "" + +#: plugins/utils.h:161 +msgid "" +" -w, --warning=RANGE\n" +" Warning range (format: start:end). Alert if outside this range\n" +" -c, --critical=RANGE\n" +" Critical range\n" +msgstr "" + +#: plugins/utils.h:167 +#, c-format +msgid "" +" -t, --timeout=INTEGER\n" +" Seconds before connection times out (default: %d)\n" +msgstr "" + +#: plugins/utils.h:171 +#, c-format +msgid "" +" -t, --timeout=INTEGER\n" +" Seconds before plugin times out (default: %d)\n" +msgstr "" + +#: plugins/utils.h:176 +msgid "" +" --extra-opts=[section][@file]\n" +" Read options from an ini file. See\n" +" https://www.monitoring-plugins.org/doc/extra-opts.html\n" +" for usage and examples.\n" +msgstr "" + +#: plugins/utils.h:185 +msgid "" +" See:\n" +" https://www.monitoring-plugins.org/doc/guidelines.html#THRESHOLDFORMAT\n" +" for THRESHOLD format and examples.\n" +msgstr "" + +#: plugins/utils.h:190 +msgid "" +"\n" +"Send email to help@monitoring-plugins.org if you have questions regarding\n" +"use of this software. To submit patches or suggest improvements, send email\n" +"to devel@monitoring-plugins.org\n" +"\n" +msgstr "" + +#: plugins/utils.h:195 +msgid "" +"\n" +"The Monitoring Plugins come with ABSOLUTELY NO WARRANTY. You may " +"redistribute\n" +"copies of the plugins under the terms of the GNU General Public License.\n" +"For more information about these matters, see the file named COPYING.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:317 +#, c-format +msgid "Error: Could not get hardware address of interface '%s'\n" +msgstr "" + +#: plugins-root/check_dhcp.c:340 +#, c-format +msgid "Error: if_nametoindex error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:345 +#, c-format +msgid "Error: Couldn't get hardware address from %s. sysctl 1 error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:350 +#, c-format +msgid "" +"Error: Couldn't get hardware address from interface %s. malloc error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:355 +#, c-format +msgid "Error: Couldn't get hardware address from %s. sysctl 2 error - %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:386 +#, c-format +msgid "" +"Error: can't find unit number in interface_name (%s) - expecting TypeNumber " +"eg lnc0.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:391 plugins-root/check_dhcp.c:403 +#, c-format +msgid "" +"Error: can't read MAC address from DLPI streams interface for device %s unit " +"%d.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:409 +#, c-format +msgid "" +"Error: can't get MAC address for this architecture. Use the --mac option.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:428 +#, c-format +msgid "Error: Cannot determine IP address of interface %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:436 +#, c-format +msgid "Error: Cannot get interface IP address on this platform.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:441 +#, c-format +msgid "Pretending to be relay client %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:525 +#, c-format +msgid "DHCPDISCOVER to %s port %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:577 +#, c-format +msgid "Result=ERROR\n" +msgstr "" + +#: plugins-root/check_dhcp.c:583 +#, c-format +msgid "Result=OK\n" +msgstr "" + +#: plugins-root/check_dhcp.c:593 +#, c-format +msgid "DHCPOFFER from IP address %s" +msgstr "" + +#: plugins-root/check_dhcp.c:594 +#, c-format +msgid " via %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:601 +#, c-format +msgid "" +"DHCPOFFER XID (%u) did not match DHCPDISCOVER XID (%u) - ignoring packet\n" +msgstr "" + +#: plugins-root/check_dhcp.c:623 +#, c-format +msgid "DHCPOFFER hardware address did not match our own - ignoring packet\n" +msgstr "" + +#: plugins-root/check_dhcp.c:641 +#, c-format +msgid "Total responses seen on the wire: %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:642 +#, c-format +msgid "Valid responses for this machine: %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:657 +#, c-format +msgid "send_dhcp_packet result: %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:690 +#, c-format +msgid "No (more) data received (nfound: %d)\n" +msgstr "" + +#: plugins-root/check_dhcp.c:703 +#, c-format +msgid "recvfrom() failed, " +msgstr "" + +#: plugins-root/check_dhcp.c:710 +#, c-format +msgid "receive_dhcp_packet() result: %d\n" +msgstr "" + +#: plugins-root/check_dhcp.c:711 +#, c-format +msgid "receive_dhcp_packet() source: %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:741 +#, c-format +msgid "Error: Could not create socket!\n" +msgstr "" + +#: plugins-root/check_dhcp.c:751 +#, c-format +msgid "Error: Could not set reuse address option on DHCP socket!\n" +msgstr "" + +#: plugins-root/check_dhcp.c:757 +#, c-format +msgid "Error: Could not set broadcast option on DHCP socket!\n" +msgstr "" + +#: plugins-root/check_dhcp.c:766 +#, c-format +msgid "" +"Error: Could not bind socket to interface %s. Check your privileges...\n" +msgstr "" + +#: plugins-root/check_dhcp.c:777 +#, c-format +msgid "" +"Error: Could not bind to DHCP socket (port %d)! Check your privileges...\n" +msgstr "" + +#: plugins-root/check_dhcp.c:811 +#, c-format +msgid "Requested server address: %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:873 +#, c-format +msgid "Lease Time: Infinite\n" +msgstr "" + +#: plugins-root/check_dhcp.c:875 +#, c-format +msgid "Lease Time: %lu seconds\n" +msgstr "" + +#: plugins-root/check_dhcp.c:877 +#, c-format +msgid "Renewal Time: Infinite\n" +msgstr "" + +#: plugins-root/check_dhcp.c:879 +#, c-format +msgid "Renewal Time: %lu seconds\n" +msgstr "" + +#: plugins-root/check_dhcp.c:881 +#, c-format +msgid "Rebinding Time: Infinite\n" +msgstr "" + +#: plugins-root/check_dhcp.c:882 +#, c-format +msgid "Rebinding Time: %lu seconds\n" +msgstr "" + +#: plugins-root/check_dhcp.c:910 +#, c-format +msgid "Added offer from server @ %s" +msgstr "" + +#: plugins-root/check_dhcp.c:911 +#, c-format +msgid " of IP address %s\n" +msgstr "" + +#: plugins-root/check_dhcp.c:978 +#, c-format +msgid "DHCP Server Match: Offerer=%s" +msgstr "" + +#: plugins-root/check_dhcp.c:979 +#, c-format +msgid " Requested=%s" +msgstr "" + +#: plugins-root/check_dhcp.c:981 +#, c-format +msgid " (duplicate)" +msgstr "" + +#: plugins-root/check_dhcp.c:982 +#, c-format +msgid "\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1030 +#, c-format +msgid "No DHCPOFFERs were received.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1034 +#, c-format +msgid "Received %d DHCPOFFER(s)" +msgstr "" + +#: plugins-root/check_dhcp.c:1037 +#, c-format +msgid ", %s%d of %d requested servers responded" +msgstr "" + +#: plugins-root/check_dhcp.c:1040 +#, c-format +msgid ", requested address (%s) was %soffered" +msgstr "" + +#: plugins-root/check_dhcp.c:1040 +msgid "not " +msgstr "" + +#: plugins-root/check_dhcp.c:1042 +#, c-format +msgid ", max lease time = " +msgstr "" + +#: plugins-root/check_dhcp.c:1044 +#, c-format +msgid "Infinity" +msgstr "" + +#: plugins-root/check_dhcp.c:1164 +msgid "Got unexpected non-option argument" +msgstr "" + +#: plugins-root/check_dhcp.c:1206 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in check_ctrl: %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1218 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in put_ctrl/putmsg(): %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1231 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in put_both/putmsg().\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1243 +#, c-format +msgid "" +"Error: DLPI stream API failed to get MAC in dl_attach_req/open(%s..): %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1267 +#, c-format +msgid "Error: DLPI stream API failed to get MAC in dl_bind/check_ctrl(): %s.\n" +msgstr "" + +#: plugins-root/check_dhcp.c:1346 +#, c-format +msgid "Hardware address: " +msgstr "" + +#: plugins-root/check_dhcp.c:1362 +msgid "This plugin tests the availability of DHCP servers on a network." +msgstr "" + +#: plugins-root/check_dhcp.c:1374 +msgid "IP address of DHCP server that we must hear from" +msgstr "" + +#: plugins-root/check_dhcp.c:1376 +msgid "IP address that should be offered by at least one DHCP server" +msgstr "" + +#: plugins-root/check_dhcp.c:1378 +msgid "Seconds to wait for DHCPOFFER before timeout occurs" +msgstr "" + +#: plugins-root/check_dhcp.c:1380 +msgid "Interface to to use for listening (i.e. eth0)" +msgstr "" + +#: plugins-root/check_dhcp.c:1382 +msgid "MAC address to use in the DHCP request" +msgstr "" + +#: plugins-root/check_dhcp.c:1384 +msgid "Unicast testing: mimic a DHCP relay, requires -s" +msgstr "" + +#: plugins-root/check_icmp.c:1569 +msgid "specify a target" +msgstr "" + +#: plugins-root/check_icmp.c:1571 +msgid "Use IPv4 (default) or IPv6 to communicate with the targets" +msgstr "" + +#: plugins-root/check_icmp.c:1573 +msgid "warning threshold (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1576 +msgid "critical threshold (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1579 +msgid "specify a source IP address or device name" +msgstr "" + +#: plugins-root/check_icmp.c:1581 +msgid "number of packets to send (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1584 +msgid "max packet interval (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1587 +msgid "max target interval (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1590 +msgid "number of alive hosts required for success" +msgstr "" + +#: plugins-root/check_icmp.c:1593 +msgid "TTL on outgoing packets (currently " +msgstr "" + +#: plugins-root/check_icmp.c:1596 +msgid "timeout value (seconds, currently " +msgstr "" + +#: plugins-root/check_icmp.c:1599 +msgid "Number of icmp data bytes to send" +msgstr "" + +#: plugins-root/check_icmp.c:1600 +msgid "Packet size will be data bytes + icmp header (currently" +msgstr "" + +#: plugins-root/check_icmp.c:1602 +msgid "verbose" +msgstr "" + +#: plugins-root/check_icmp.c:1606 +msgid "The -H switch is optional. Naming a host (or several) to check is not." +msgstr "" + +#: plugins-root/check_icmp.c:1608 +msgid "" +"Threshold format for -w and -c is 200.25,60% for 200.25 msec RTA and 60%" +msgstr "" + +#: plugins-root/check_icmp.c:1609 +msgid "packet loss. The default values should work well for most users." +msgstr "" + +#: plugins-root/check_icmp.c:1610 +msgid "" +"You can specify different RTA factors using the standardized abbreviations" +msgstr "" + +#: plugins-root/check_icmp.c:1611 +msgid "" +"us (microseconds), ms (milliseconds, default) or just plain s for seconds." +msgstr "" + +#: plugins-root/check_icmp.c:1617 +msgid "The -v switch can be specified several times for increased verbosity." +msgstr "" diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin new file mode 100644 index 0000000..2436c49 --- /dev/null +++ b/po/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/stamp-po b/po/stamp-po new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/po/stamp-po @@ -0,0 +1 @@ +timestamp diff --git a/release b/release index 197c4d5..0bee604 100644 --- a/release +++ b/release @@ -1 +1 @@ -2.4.0 +2.3.3 diff --git a/tap/Makefile.in b/tap/Makefile.in index da7f4c6..15715a7 100644 --- a/tap/Makefile.in +++ b/tap/Makefile.in @@ -77,7 +77,6 @@ am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -97,58 +96,50 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/m4/uriparser.m4 $(top_srcdir)/gl/m4/00gnulib.m4 \ - $(top_srcdir)/gl/m4/__inline.m4 \ - $(top_srcdir)/gl/m4/absolute-header.m4 \ - $(top_srcdir)/gl/m4/af_alg.m4 $(top_srcdir)/gl/m4/alloca.m4 \ + $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ - $(top_srcdir)/gl/m4/assert_h.m4 $(top_srcdir)/gl/m4/base64.m4 \ - $(top_srcdir)/gl/m4/btowc.m4 \ - $(top_srcdir)/gl/m4/builtin-expect.m4 \ - $(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/c-bool.m4 \ - $(top_srcdir)/gl/m4/calloc.m4 $(top_srcdir)/gl/m4/close.m4 \ + $(top_srcdir)/gl/m4/base64.m4 $(top_srcdir)/gl/m4/btowc.m4 \ $(top_srcdir)/gl/m4/codeset.m4 \ + $(top_srcdir)/gl/m4/configmake.m4 \ + $(top_srcdir)/gl/m4/dirname.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ - $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ - $(top_srcdir)/gl/m4/environ.m4 $(top_srcdir)/gl/m4/errno_h.m4 \ - $(top_srcdir)/gl/m4/error.m4 $(top_srcdir)/gl/m4/exponentd.m4 \ + $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ + $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ + $(top_srcdir)/gl/m4/exponentd.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ - $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ - $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fflush.m4 \ - $(top_srcdir)/gl/m4/float_h.m4 $(top_srcdir)/gl/m4/floorf.m4 \ - $(top_srcdir)/gl/m4/fopen.m4 $(top_srcdir)/gl/m4/fpurge.m4 \ - $(top_srcdir)/gl/m4/freading.m4 $(top_srcdir)/gl/m4/free.m4 \ - $(top_srcdir)/gl/m4/fseek.m4 $(top_srcdir)/gl/m4/fseeko.m4 \ - $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/fstypename.m4 \ - $(top_srcdir)/gl/m4/fsusage.m4 $(top_srcdir)/gl/m4/ftell.m4 \ - $(top_srcdir)/gl/m4/ftello.m4 \ + $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/float_h.m4 \ + $(top_srcdir)/gl/m4/floorf.m4 \ + $(top_srcdir)/gl/m4/fstypename.m4 \ + $(top_srcdir)/gl/m4/fsusage.m4 \ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ - $(top_srcdir)/gl/m4/getdelim.m4 \ - $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/gethostname.m4 \ - $(top_srcdir)/gl/m4/getline.m4 \ $(top_srcdir)/gl/m4/getloadavg.m4 \ - $(top_srcdir)/gl/m4/getopt.m4 \ - $(top_srcdir)/gl/m4/getprogname.m4 \ - $(top_srcdir)/gl/m4/gl-openssl.m4 \ + $(top_srcdir)/gl/m4/getopt.m4 $(top_srcdir)/gl/m4/gettext.m4 \ + $(top_srcdir)/gl/m4/glibc21.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/idpriv.m4 \ + $(top_srcdir)/gl/m4/hostent.m4 $(top_srcdir)/gl/m4/iconv.m4 \ + $(top_srcdir)/gl/m4/idpriv.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inet_ntop.m4 \ + $(top_srcdir)/gl/m4/intlmacosx.m4 \ $(top_srcdir)/gl/m4/intmax_t.m4 \ - $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/inttypes_h.m4 \ $(top_srcdir)/gl/m4/langinfo_h.m4 \ - $(top_srcdir)/gl/m4/largefile.m4 \ - $(top_srcdir)/gl/m4/libtool.m4 $(top_srcdir)/gl/m4/limits-h.m4 \ + $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lib-ld.m4 \ + $(top_srcdir)/gl/m4/lib-link.m4 \ + $(top_srcdir)/gl/m4/lib-prefix.m4 \ + $(top_srcdir)/gl/m4/libtool.m4 \ $(top_srcdir)/gl/m4/localcharset.m4 \ $(top_srcdir)/gl/m4/locale-fr.m4 \ $(top_srcdir)/gl/m4/locale-ja.m4 \ $(top_srcdir)/gl/m4/locale-zh.m4 \ $(top_srcdir)/gl/m4/locale_h.m4 \ $(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \ - $(top_srcdir)/gl/m4/lseek.m4 $(top_srcdir)/gl/m4/ltoptions.m4 \ + $(top_srcdir)/gl/m4/longlong.m4 \ + $(top_srcdir)/gl/m4/ls-mntd-fs.m4 \ + $(top_srcdir)/gl/m4/ltoptions.m4 \ $(top_srcdir)/gl/m4/ltsugar.m4 \ $(top_srcdir)/gl/m4/ltversion.m4 \ $(top_srcdir)/gl/m4/lt~obsolete.m4 \ @@ -156,57 +147,50 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/gl/m4/math_h.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \ $(top_srcdir)/gl/m4/mbsinit.m4 \ $(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \ - $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ - $(top_srcdir)/gl/m4/mktime.m4 $(top_srcdir)/gl/m4/mmap-anon.m4 \ - $(top_srcdir)/gl/m4/mode_t.m4 $(top_srcdir)/gl/m4/mountlist.m4 \ + $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/mktime.m4 \ + $(top_srcdir)/gl/m4/mmap-anon.m4 \ + $(top_srcdir)/gl/m4/mountlist.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/netdb_h.m4 \ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ - $(top_srcdir)/gl/m4/nl_langinfo.m4 \ + $(top_srcdir)/gl/m4/nl_langinfo.m4 $(top_srcdir)/gl/m4/nls.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ - $(top_srcdir)/gl/m4/open-cloexec.m4 \ - $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ - $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/printf.m4 \ - $(top_srcdir)/gl/m4/pthread_rwlock_rdlock.m4 \ - $(top_srcdir)/gl/m4/realloc.m4 \ - $(top_srcdir)/gl/m4/reallocarray.m4 \ - $(top_srcdir)/gl/m4/regex.m4 $(top_srcdir)/gl/m4/servent.m4 \ - $(top_srcdir)/gl/m4/setenv.m4 \ - $(top_srcdir)/gl/m4/setlocale_null.m4 \ - $(top_srcdir)/gl/m4/sha256.m4 $(top_srcdir)/gl/m4/size_max.m4 \ + $(top_srcdir)/gl/m4/onceonly.m4 $(top_srcdir)/gl/m4/po.m4 \ + $(top_srcdir)/gl/m4/printf.m4 $(top_srcdir)/gl/m4/progtest.m4 \ + $(top_srcdir)/gl/m4/read.m4 $(top_srcdir)/gl/m4/regex.m4 \ + $(top_srcdir)/gl/m4/safe-read.m4 \ + $(top_srcdir)/gl/m4/servent.m4 $(top_srcdir)/gl/m4/setenv.m4 \ + $(top_srcdir)/gl/m4/sha1.m4 $(top_srcdir)/gl/m4/size_max.m4 \ $(top_srcdir)/gl/m4/snprintf.m4 \ $(top_srcdir)/gl/m4/socketlib.m4 \ $(top_srcdir)/gl/m4/sockets.m4 $(top_srcdir)/gl/m4/socklen.m4 \ $(top_srcdir)/gl/m4/sockpfaf.m4 $(top_srcdir)/gl/m4/ssize_t.m4 \ - $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ - $(top_srcdir)/gl/m4/stdalign.m4 \ + $(top_srcdir)/gl/m4/stdalign.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/stdlib_h.m4 $(top_srcdir)/gl/m4/strcase.m4 \ $(top_srcdir)/gl/m4/strcasestr.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ - $(top_srcdir)/gl/m4/strings_h.m4 $(top_srcdir)/gl/m4/strsep.m4 \ - $(top_srcdir)/gl/m4/strstr.m4 \ + $(top_srcdir)/gl/m4/strings_h.m4 \ + $(top_srcdir)/gl/m4/strndup.m4 $(top_srcdir)/gl/m4/strnlen.m4 \ + $(top_srcdir)/gl/m4/strsep.m4 $(top_srcdir)/gl/m4/strstr.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ - $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/sys_uio_h.m4 \ $(top_srcdir)/gl/m4/threadlib.m4 $(top_srcdir)/gl/m4/time_h.m4 \ $(top_srcdir)/gl/m4/time_r.m4 $(top_srcdir)/gl/m4/timegm.m4 \ - $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ - $(top_srcdir)/gl/m4/unlocked-io.m4 \ + $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/vasnprintf.m4 \ $(top_srcdir)/gl/m4/vasprintf.m4 \ - $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/vsnprintf.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/xalloc.m4 \ - $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/zzgnulib.m4 \ + $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/gl/m4/xstrndup.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -319,6 +303,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp \ $(top_srcdir)/build-aux/mkinstalldirs README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ @@ -327,7 +312,6 @@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ -ASSERT_H = @ASSERT_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -338,11 +322,9 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ -BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ @@ -378,476 +360,353 @@ FLOORF_LIBM = @FLOORF_LIBM@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ -GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ -GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ -GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ -GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ -GL_GNULIB_ACOSF = @GL_GNULIB_ACOSF@ -GL_GNULIB_ACOSL = @GL_GNULIB_ACOSL@ -GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ -GL_GNULIB_ASINF = @GL_GNULIB_ASINF@ -GL_GNULIB_ASINL = @GL_GNULIB_ASINL@ -GL_GNULIB_ATAN2F = @GL_GNULIB_ATAN2F@ -GL_GNULIB_ATANF = @GL_GNULIB_ATANF@ -GL_GNULIB_ATANL = @GL_GNULIB_ATANL@ -GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ -GL_GNULIB_BIND = @GL_GNULIB_BIND@ -GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ -GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ -GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ -GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ -GL_GNULIB_CBRT = @GL_GNULIB_CBRT@ -GL_GNULIB_CBRTF = @GL_GNULIB_CBRTF@ -GL_GNULIB_CBRTL = @GL_GNULIB_CBRTL@ -GL_GNULIB_CEIL = @GL_GNULIB_CEIL@ -GL_GNULIB_CEILF = @GL_GNULIB_CEILF@ -GL_GNULIB_CEILL = @GL_GNULIB_CEILL@ -GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ -GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ -GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ -GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ -GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ -GL_GNULIB_COPYSIGN = @GL_GNULIB_COPYSIGN@ -GL_GNULIB_COPYSIGNF = @GL_GNULIB_COPYSIGNF@ -GL_GNULIB_COPYSIGNL = @GL_GNULIB_COPYSIGNL@ -GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ -GL_GNULIB_COSF = @GL_GNULIB_COSF@ -GL_GNULIB_COSHF = @GL_GNULIB_COSHF@ -GL_GNULIB_COSL = @GL_GNULIB_COSL@ -GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ -GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ -GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ -GL_GNULIB_DUP = @GL_GNULIB_DUP@ -GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ -GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ -GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ -GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ -GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ -GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ -GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ -GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ -GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ -GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ -GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ -GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ -GL_GNULIB_EXP2 = @GL_GNULIB_EXP2@ -GL_GNULIB_EXP2F = @GL_GNULIB_EXP2F@ -GL_GNULIB_EXP2L = @GL_GNULIB_EXP2L@ -GL_GNULIB_EXPF = @GL_GNULIB_EXPF@ -GL_GNULIB_EXPL = @GL_GNULIB_EXPL@ -GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ -GL_GNULIB_EXPM1 = @GL_GNULIB_EXPM1@ -GL_GNULIB_EXPM1F = @GL_GNULIB_EXPM1F@ -GL_GNULIB_EXPM1L = @GL_GNULIB_EXPM1L@ -GL_GNULIB_FABSF = @GL_GNULIB_FABSF@ -GL_GNULIB_FABSL = @GL_GNULIB_FABSL@ -GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ -GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ -GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ -GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ -GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ -GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ -GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ -GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ -GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ -GL_GNULIB_FFS = @GL_GNULIB_FFS@ -GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ -GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ -GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ -GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ -GL_GNULIB_FLOOR = @GL_GNULIB_FLOOR@ -GL_GNULIB_FLOORF = @GL_GNULIB_FLOORF@ -GL_GNULIB_FLOORL = @GL_GNULIB_FLOORL@ -GL_GNULIB_FMA = @GL_GNULIB_FMA@ -GL_GNULIB_FMAF = @GL_GNULIB_FMAF@ -GL_GNULIB_FMAL = @GL_GNULIB_FMAL@ -GL_GNULIB_FMOD = @GL_GNULIB_FMOD@ -GL_GNULIB_FMODF = @GL_GNULIB_FMODF@ -GL_GNULIB_FMODL = @GL_GNULIB_FMODL@ -GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ -GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ -GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ -GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ -GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ -GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ -GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ -GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ -GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ -GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ -GL_GNULIB_FREXP = @GL_GNULIB_FREXP@ -GL_GNULIB_FREXPF = @GL_GNULIB_FREXPF@ -GL_GNULIB_FREXPL = @GL_GNULIB_FREXPL@ -GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ -GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ -GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ -GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ -GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ -GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ -GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ -GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ -GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ -GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ -GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ -GL_GNULIB_GETADDRINFO = @GL_GNULIB_GETADDRINFO@ -GL_GNULIB_GETC = @GL_GNULIB_GETC@ -GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ -GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ -GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ -GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ -GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ -GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ -GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ -GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ -GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ -GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ -GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ -GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ -GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ -GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ -GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ -GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ -GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ -GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ -GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ -GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ -GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ -GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ -GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ -GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ -GL_GNULIB_HYPOT = @GL_GNULIB_HYPOT@ -GL_GNULIB_HYPOTF = @GL_GNULIB_HYPOTF@ -GL_GNULIB_HYPOTL = @GL_GNULIB_HYPOTL@ -GL_GNULIB_ILOGB = @GL_GNULIB_ILOGB@ -GL_GNULIB_ILOGBF = @GL_GNULIB_ILOGBF@ -GL_GNULIB_ILOGBL = @GL_GNULIB_ILOGBL@ -GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ -GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ -GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ -GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ -GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ -GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@ -GL_GNULIB_ISINF = @GL_GNULIB_ISINF@ -GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@ -GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@ -GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@ -GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@ -GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ -GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ -GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ -GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ -GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ -GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ -GL_GNULIB_LDEXPF = @GL_GNULIB_LDEXPF@ -GL_GNULIB_LDEXPL = @GL_GNULIB_LDEXPL@ -GL_GNULIB_LINK = @GL_GNULIB_LINK@ -GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ -GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ -GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ -GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ -GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ -GL_GNULIB_LOG = @GL_GNULIB_LOG@ -GL_GNULIB_LOG10 = @GL_GNULIB_LOG10@ -GL_GNULIB_LOG10F = @GL_GNULIB_LOG10F@ -GL_GNULIB_LOG10L = @GL_GNULIB_LOG10L@ -GL_GNULIB_LOG1P = @GL_GNULIB_LOG1P@ -GL_GNULIB_LOG1PF = @GL_GNULIB_LOG1PF@ -GL_GNULIB_LOG1PL = @GL_GNULIB_LOG1PL@ -GL_GNULIB_LOG2 = @GL_GNULIB_LOG2@ -GL_GNULIB_LOG2F = @GL_GNULIB_LOG2F@ -GL_GNULIB_LOG2L = @GL_GNULIB_LOG2L@ -GL_GNULIB_LOGB = @GL_GNULIB_LOGB@ -GL_GNULIB_LOGBF = @GL_GNULIB_LOGBF@ -GL_GNULIB_LOGBL = @GL_GNULIB_LOGBL@ -GL_GNULIB_LOGF = @GL_GNULIB_LOGF@ -GL_GNULIB_LOGL = @GL_GNULIB_LOGL@ -GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ -GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ -GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ -GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ -GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ -GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ -GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ -GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ -GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ -GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ -GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ -GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ -GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ -GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ -GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ -GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ -GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ -GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ -GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ -GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ -GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ -GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ -GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ -GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ -GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ -GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ -GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ -GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ -GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ -GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ -GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ -GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ -GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ -GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ -GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ -GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ -GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ -GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ -GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ -GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ -GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ -GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ -GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ -GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ -GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ -GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ -GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ -GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ -GL_GNULIB_MDA_J0 = @GL_GNULIB_MDA_J0@ -GL_GNULIB_MDA_J1 = @GL_GNULIB_MDA_J1@ -GL_GNULIB_MDA_JN = @GL_GNULIB_MDA_JN@ -GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ -GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ -GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ -GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ -GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ -GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ -GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ -GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ -GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ -GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ -GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ -GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ -GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ -GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ -GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ -GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ -GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ -GL_GNULIB_MDA_Y0 = @GL_GNULIB_MDA_Y0@ -GL_GNULIB_MDA_Y1 = @GL_GNULIB_MDA_Y1@ -GL_GNULIB_MDA_YN = @GL_GNULIB_MDA_YN@ -GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ -GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ -GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ -GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ -GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ -GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ -GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ -GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ -GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ -GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ -GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ -GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ -GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ -GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ -GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ -GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ -GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ -GL_GNULIB_MODF = @GL_GNULIB_MODF@ -GL_GNULIB_MODFF = @GL_GNULIB_MODFF@ -GL_GNULIB_MODFL = @GL_GNULIB_MODFL@ -GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ -GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ -GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ -GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ -GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ -GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ -GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ -GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ -GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ -GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ -GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ -GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ -GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ -GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ -GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ -GL_GNULIB_POWF = @GL_GNULIB_POWF@ -GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ -GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ -GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ -GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ -GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ -GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ -GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ -GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ -GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ -GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ -GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ -GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ -GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ -GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ -GL_GNULIB_READ = @GL_GNULIB_READ@ -GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ -GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ -GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ -GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ -GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ -GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ -GL_GNULIB_RECV = @GL_GNULIB_RECV@ -GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ -GL_GNULIB_REMAINDER = @GL_GNULIB_REMAINDER@ -GL_GNULIB_REMAINDERF = @GL_GNULIB_REMAINDERF@ -GL_GNULIB_REMAINDERL = @GL_GNULIB_REMAINDERL@ -GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ -GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ -GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ -GL_GNULIB_RINT = @GL_GNULIB_RINT@ -GL_GNULIB_RINTF = @GL_GNULIB_RINTF@ -GL_GNULIB_RINTL = @GL_GNULIB_RINTL@ -GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ -GL_GNULIB_ROUND = @GL_GNULIB_ROUND@ -GL_GNULIB_ROUNDF = @GL_GNULIB_ROUNDF@ -GL_GNULIB_ROUNDL = @GL_GNULIB_ROUNDL@ -GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ -GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ -GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ -GL_GNULIB_SEND = @GL_GNULIB_SEND@ -GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ -GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ -GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ -GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ -GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ -GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ -GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ -GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ -GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ -GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@ -GL_GNULIB_SINF = @GL_GNULIB_SINF@ -GL_GNULIB_SINHF = @GL_GNULIB_SINHF@ -GL_GNULIB_SINL = @GL_GNULIB_SINL@ -GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ -GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ -GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ -GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ -GL_GNULIB_SQRTF = @GL_GNULIB_SQRTF@ -GL_GNULIB_SQRTL = @GL_GNULIB_SQRTL@ -GL_GNULIB_STAT = @GL_GNULIB_STAT@ -GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ -GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ -GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ -GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ -GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ -GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ -GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ -GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ -GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ -GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ -GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ -GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ -GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ -GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ -GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ -GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ -GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ -GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ -GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ -GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ -GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ -GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ -GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ -GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ -GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ -GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ -GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ -GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ -GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ -GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ -GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ -GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ -GL_GNULIB_TANF = @GL_GNULIB_TANF@ -GL_GNULIB_TANHF = @GL_GNULIB_TANHF@ -GL_GNULIB_TANL = @GL_GNULIB_TANL@ -GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ -GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ -GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ -GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ -GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ -GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ -GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ -GL_GNULIB_TRUNC = @GL_GNULIB_TRUNC@ -GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ -GL_GNULIB_TRUNCF = @GL_GNULIB_TRUNCF@ -GL_GNULIB_TRUNCL = @GL_GNULIB_TRUNCL@ -GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ -GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ -GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ -GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ -GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ -GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ -GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ -GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ -GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ -GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ -GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ -GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ -GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ -GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ -GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ -GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ -GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ -GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ -GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ -GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ -GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ -GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ -GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ -GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ -GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ -GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ -GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ -GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ -GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ -GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ -GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ -GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ -GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ -GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ -GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ -GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ -GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ -GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ -GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ -GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ -GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ -GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ -GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ -GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ -GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ -GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ -GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ -GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ -GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ -GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ -GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ -GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ -GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ -GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ -GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ -GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ -GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ -GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ -GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ -GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ -GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ -GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_ACCEPT = @GNULIB_ACCEPT@ +GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ +GNULIB_ACOSF = @GNULIB_ACOSF@ +GNULIB_ACOSL = @GNULIB_ACOSL@ +GNULIB_ASINF = @GNULIB_ASINF@ +GNULIB_ASINL = @GNULIB_ASINL@ +GNULIB_ATAN2F = @GNULIB_ATAN2F@ +GNULIB_ATANF = @GNULIB_ATANF@ +GNULIB_ATANL = @GNULIB_ATANL@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BIND = @GNULIB_BIND@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CBRT = @GNULIB_CBRT@ +GNULIB_CBRTF = @GNULIB_CBRTF@ +GNULIB_CBRTL = @GNULIB_CBRTL@ +GNULIB_CEIL = @GNULIB_CEIL@ +GNULIB_CEILF = @GNULIB_CEILF@ +GNULIB_CEILL = @GNULIB_CEILL@ +GNULIB_CHDIR = @GNULIB_CHDIR@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_CONNECT = @GNULIB_CONNECT@ +GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ +GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ +GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ +GNULIB_COSF = @GNULIB_COSF@ +GNULIB_COSHF = @GNULIB_COSHF@ +GNULIB_COSL = @GNULIB_COSL@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP = @GNULIB_DUP@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_EXP2 = @GNULIB_EXP2@ +GNULIB_EXP2F = @GNULIB_EXP2F@ +GNULIB_EXP2L = @GNULIB_EXP2L@ +GNULIB_EXPF = @GNULIB_EXPF@ +GNULIB_EXPL = @GNULIB_EXPL@ +GNULIB_EXPM1 = @GNULIB_EXPM1@ +GNULIB_EXPM1F = @GNULIB_EXPM1F@ +GNULIB_EXPM1L = @GNULIB_EXPM1L@ +GNULIB_FABSF = @GNULIB_FABSF@ +GNULIB_FABSL = @GNULIB_FABSL@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ +GNULIB_FDOPEN = @GNULIB_FDOPEN@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FFS = @GNULIB_FFS@ +GNULIB_FFSL = @GNULIB_FFSL@ +GNULIB_FFSLL = @GNULIB_FFSLL@ +GNULIB_FGETC = @GNULIB_FGETC@ +GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FLOOR = @GNULIB_FLOOR@ +GNULIB_FLOORF = @GNULIB_FLOORF@ +GNULIB_FLOORL = @GNULIB_FLOORL@ +GNULIB_FMA = @GNULIB_FMA@ +GNULIB_FMAF = @GNULIB_FMAF@ +GNULIB_FMAL = @GNULIB_FMAL@ +GNULIB_FMOD = @GNULIB_FMOD@ +GNULIB_FMODF = @GNULIB_FMODF@ +GNULIB_FMODL = @GNULIB_FMODL@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREAD = @GNULIB_FREAD@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FREXP = @GNULIB_FREXP@ +GNULIB_FREXPF = @GNULIB_FREXPF@ +GNULIB_FREXPL = @GNULIB_FREXPL@ +GNULIB_FSCANF = @GNULIB_FSCANF@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ +GNULIB_GETC = @GNULIB_GETC@ +GNULIB_GETCHAR = @GNULIB_GETCHAR@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ +GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ +GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ +GNULIB_GRANTPT = @GNULIB_GRANTPT@ +GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ +GNULIB_HYPOT = @GNULIB_HYPOT@ +GNULIB_HYPOTF = @GNULIB_HYPOTF@ +GNULIB_HYPOTL = @GNULIB_HYPOTL@ +GNULIB_ILOGB = @GNULIB_ILOGB@ +GNULIB_ILOGBF = @GNULIB_ILOGBF@ +GNULIB_ILOGBL = @GNULIB_ILOGBL@ +GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ +GNULIB_INET_PTON = @GNULIB_INET_PTON@ +GNULIB_ISATTY = @GNULIB_ISATTY@ +GNULIB_ISFINITE = @GNULIB_ISFINITE@ +GNULIB_ISINF = @GNULIB_ISINF@ +GNULIB_ISNAN = @GNULIB_ISNAN@ +GNULIB_ISNAND = @GNULIB_ISNAND@ +GNULIB_ISNANF = @GNULIB_ISNANF@ +GNULIB_ISNANL = @GNULIB_ISNANL@ +GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ +GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LDEXPF = @GNULIB_LDEXPF@ +GNULIB_LDEXPL = @GNULIB_LDEXPL@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LISTEN = @GNULIB_LISTEN@ +GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOG = @GNULIB_LOG@ +GNULIB_LOG10 = @GNULIB_LOG10@ +GNULIB_LOG10F = @GNULIB_LOG10F@ +GNULIB_LOG10L = @GNULIB_LOG10L@ +GNULIB_LOG1P = @GNULIB_LOG1P@ +GNULIB_LOG1PF = @GNULIB_LOG1PF@ +GNULIB_LOG1PL = @GNULIB_LOG1PL@ +GNULIB_LOG2 = @GNULIB_LOG2@ +GNULIB_LOG2F = @GNULIB_LOG2F@ +GNULIB_LOG2L = @GNULIB_LOG2L@ +GNULIB_LOGB = @GNULIB_LOGB@ +GNULIB_LOGBF = @GNULIB_LOGBF@ +GNULIB_LOGBL = @GNULIB_LOGBL@ +GNULIB_LOGF = @GNULIB_LOGF@ +GNULIB_LOGL = @GNULIB_LOGL@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MBTOWC = @GNULIB_MBTOWC@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_MODF = @GNULIB_MODF@ +GNULIB_MODFF = @GNULIB_MODFF@ +GNULIB_MODFL = @GNULIB_MODFL@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_PCLOSE = @GNULIB_PCLOSE@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE = @GNULIB_PIPE@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ +GNULIB_POWF = @GNULIB_POWF@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PTSNAME = @GNULIB_PTSNAME@ +GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_PWRITE = @GNULIB_PWRITE@ +GNULIB_RANDOM = @GNULIB_RANDOM@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READ = @GNULIB_READ@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_RECV = @GNULIB_RECV@ +GNULIB_RECVFROM = @GNULIB_RECVFROM@ +GNULIB_REMAINDER = @GNULIB_REMAINDER@ +GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ +GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RINT = @GNULIB_RINT@ +GNULIB_RINTF = @GNULIB_RINTF@ +GNULIB_RINTL = @GNULIB_RINTL@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_ROUND = @GNULIB_ROUND@ +GNULIB_ROUNDF = @GNULIB_ROUNDF@ +GNULIB_ROUNDL = @GNULIB_ROUNDL@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ +GNULIB_SEND = @GNULIB_SEND@ +GNULIB_SENDTO = @GNULIB_SENDTO@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ +GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ +GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ +GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ +GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ +GNULIB_SINF = @GNULIB_SINF@ +GNULIB_SINHF = @GNULIB_SINHF@ +GNULIB_SINL = @GNULIB_SINL@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SOCKET = @GNULIB_SOCKET@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_SQRTF = @GNULIB_SQRTF@ +GNULIB_SQRTL = @GNULIB_SQRTL@ +GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ +GNULIB_STRNCAT = @GNULIB_STRNCAT@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ +GNULIB_TANF = @GNULIB_TANF@ +GNULIB_TANHF = @GNULIB_TANHF@ +GNULIB_TANL = @GNULIB_TANL@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_TIME_R = @GNULIB_TIME_R@ +GNULIB_TMPFILE = @GNULIB_TMPFILE@ +GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ +GNULIB_TRUNC = @GNULIB_TRUNC@ +GNULIB_TRUNCF = @GNULIB_TRUNCF@ +GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ +GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VFSCANF = @GNULIB_VFSCANF@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSCANF = @GNULIB_VSCANF@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCPCPY = @GNULIB_WCPCPY@ +GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ +GNULIB_WCSCAT = @GNULIB_WCSCAT@ +GNULIB_WCSCHR = @GNULIB_WCSCHR@ +GNULIB_WCSCMP = @GNULIB_WCSCMP@ +GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ +GNULIB_WCSCPY = @GNULIB_WCSCPY@ +GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ +GNULIB_WCSDUP = @GNULIB_WCSDUP@ +GNULIB_WCSLEN = @GNULIB_WCSLEN@ +GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ +GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ +GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ +GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ +GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ +GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCSSPN = @GNULIB_WCSSPN@ +GNULIB_WCSSTR = @GNULIB_WCSSTR@ +GNULIB_WCSTOK = @GNULIB_WCSTOK@ +GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ +GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCTOMB = @GNULIB_WCTOMB@ +GNULIB_WCTRANS = @GNULIB_WCTRANS@ +GNULIB_WCTYPE = @GNULIB_WCTYPE@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ +GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ +GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ +GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ +GNULIB_WMEMSET = @GNULIB_WMEMSET@ +GNULIB_WRITE = @GNULIB_WRITE@ +GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ -HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ -HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ @@ -856,7 +715,6 @@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ -HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ @@ -864,11 +722,9 @@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ -HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ -HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ @@ -878,17 +734,13 @@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ -HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ -HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ -HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ -HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ @@ -898,22 +750,17 @@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ -HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ -HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ -HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ -HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ -HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ @@ -933,7 +780,6 @@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ -HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ @@ -943,37 +789,30 @@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ -HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ -HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ -HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ -HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ -HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ -HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ -HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ @@ -984,24 +823,18 @@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ -HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ -HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ -HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ -HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ -HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ -HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ @@ -1009,21 +842,17 @@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ -HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ -HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ -HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ -HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ @@ -1037,23 +866,16 @@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ -HAVE_LSTAT = @HAVE_LSTAT@ -HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ -HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ -HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ -HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ -HAVE_MKFIFO = @HAVE_MKFIFO@ -HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ -HAVE_MKNOD = @HAVE_MKNOD@ -HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ @@ -1064,29 +886,24 @@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ -HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ -HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ -HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ -HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ -HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ @@ -1098,9 +915,6 @@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ -HAVE_SETSTATE = @HAVE_SETSTATE@ -HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ -HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ @@ -1116,16 +930,12 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ -HAVE_STRTOL = @HAVE_STRTOL@ -HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ -HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ @@ -1135,7 +945,6 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ -HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ @@ -1146,17 +955,13 @@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ -HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ -HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ -HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ -HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ -HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ @@ -1170,7 +975,6 @@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ -HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ @@ -1195,10 +999,10 @@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ -HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOSTNAME = @HOSTNAME@ @@ -1210,8 +1014,6 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ -INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ KRBINCLUDE = @KRBINCLUDE@ @@ -1230,24 +1032,15 @@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ -LIBPMULTITHREAD = @LIBPMULTITHREAD@ -LIBPTHREAD = @LIBPTHREAD@ +LIBPTH = @LIBPTH@ +LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ -LIBSTDTHREAD = @LIBSTDTHREAD@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ -LIB_CRYPTO = @LIB_CRYPTO@ -LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ -LIB_MBRTOWC = @LIB_MBRTOWC@ -LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ -LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ -LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ -LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ -LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ @@ -1256,6 +1049,7 @@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ +LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ @@ -1263,23 +1057,18 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ MATHLIBS = @MATHLIBS@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ -MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ MYSQLCFLAGS = @MYSQLCFLAGS@ MYSQLINCLUDE = @MYSQLINCLUDE@ MYSQLLIBS = @MYSQLLIBS@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ -NEXT_ASSERT_H = @NEXT_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ -NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ -NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ -NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ -NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ @@ -1291,7 +1080,6 @@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ -NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ @@ -1299,12 +1087,9 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ -NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ -NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ -NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ @@ -1316,7 +1101,6 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ -NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_TIME_H = @NEXT_TIME_H@ @@ -1374,63 +1158,35 @@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ -PRIPTR_PREFIX = @PRIPTR_PREFIX@ PST3CFLAGS = @PST3CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RADIUSLIBS = @RADIUSLIBS@ RANLIB = @RANLIB@ RELEASE = @RELEASE@ -REPLACE_ACCESS = @REPLACE_ACCESS@ -REPLACE_ACOSF = @REPLACE_ACOSF@ -REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ -REPLACE_ASINF = @REPLACE_ASINF@ -REPLACE_ATAN2F = @REPLACE_ATAN2F@ -REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ -REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ -REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ -REPLACE_CHMOD = @REPLACE_CHMOD@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ -REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ -REPLACE_COSF = @REPLACE_COSF@ -REPLACE_COSHF = @REPLACE_COSHF@ -REPLACE_CREAT = @REPLACE_CREAT@ -REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ -REPLACE_EXECL = @REPLACE_EXECL@ -REPLACE_EXECLE = @REPLACE_EXECLE@ -REPLACE_EXECLP = @REPLACE_EXECLP@ -REPLACE_EXECV = @REPLACE_EXECV@ -REPLACE_EXECVE = @REPLACE_EXECVE@ -REPLACE_EXECVP = @REPLACE_EXECVP@ -REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ -REPLACE_EXPF = @REPLACE_EXPF@ -REPLACE_EXPL = @REPLACE_EXPL@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ -REPLACE_EXPM1L = @REPLACE_EXPM1L@ REPLACE_FABSL = @REPLACE_FABSL@ -REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ -REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ -REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ -REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1441,61 +1197,45 @@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ -REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ -REPLACE_FREE = @REPLACE_FREE@ -REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ -REPLACE_FSTAT = @REPLACE_FSTAT@ -REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ -REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ -REPLACE_GETADDRINFO = @REPLACE_GETADDRINFO@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ -REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ -REPLACE_GETPASS = @REPLACE_GETPASS@ -REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ -REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ -REPLACE_ILOGBL = @REPLACE_ILOGBL@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ -REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ -REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ -REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ -REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ @@ -1513,9 +1253,7 @@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ -REPLACE_LSTAT = @REPLACE_LSTAT@ -REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ -REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ @@ -1525,11 +1263,6 @@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ -REPLACE_MKDIR = @REPLACE_MKDIR@ -REPLACE_MKFIFO = @REPLACE_MKFIFO@ -REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ -REPLACE_MKNOD = @REPLACE_MKNOD@ -REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ @@ -1537,30 +1270,21 @@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ -REPLACE_OPEN = @REPLACE_OPEN@ -REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ -REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ -REPLACE_QSORT_R = @REPLACE_QSORT_R@ -REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ -REPLACE_READLINKAT = @REPLACE_READLINKAT@ -REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ -REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ -REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ @@ -1568,24 +1292,18 @@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ -REPLACE_RINTL = @REPLACE_RINTL@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ -REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ -REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@ -REPLACE_SINF = @REPLACE_SINF@ -REPLACE_SINHF = @REPLACE_SINHF@ +REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ -REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ -REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ @@ -1593,42 +1311,27 @@ 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@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ -REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ -REPLACE_STRTOL = @REPLACE_STRTOL@ -REPLACE_STRTOLD = @REPLACE_STRTOLD@ -REPLACE_STRTOLL = @REPLACE_STRTOLL@ -REPLACE_STRTOUL = @REPLACE_STRTOUL@ -REPLACE_STRTOULL = @REPLACE_STRTOULL@ -REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ -REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ -REPLACE_TANF = @REPLACE_TANF@ -REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ -REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ -REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ -REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -1636,10 +1339,8 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ -REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ -REPLACE_WCSTOK = @REPLACE_WCSTOK@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ @@ -1658,21 +1359,14 @@ SOCKETLIBS = @SOCKETLIBS@ SSLINCLUDE = @SSLINCLUDE@ SSLLIBS = @SSLLIBS@ STDALIGN_H = @STDALIGN_H@ -STDCKDINT_H = @STDCKDINT_H@ +STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SUPPORT = @SUPPORT@ -SYSTEMDINCLUDE = @SYSTEMDINCLUDE@ -SYSTEMDLIBS = @SYSTEMDLIBS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ -UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ -UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ -UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ -UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ URIPARSER = @URIPARSER@ @@ -1685,9 +1379,6 @@ VERSION = @VERSION@ WARRANTY = @WARRANTY@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ -WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ -WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ -WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WTSAPI32LIBS = @WTSAPI32LIBS@ XGETTEXT = @XGETTEXT@ @@ -1719,10 +1410,8 @@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ -gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ -gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ @@ -1737,9 +1426,8 @@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +lispdir = @lispdir@ localedir = @localedir@ -localedir_c = @localedir_c@ -localedir_c_make = @localedir_c_make@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ diff --git a/tap/tap.h b/tap/tap.h index 8ee525c..bd81789 100644 --- a/tap/tap.h +++ b/tap/tap.h @@ -25,7 +25,7 @@ */ /* '## __VA_ARGS__' is a gcc'ism. C99 doesn't allow the token pasting - and requires the caller to add the final comma if they've omitted + and requires the caller to add the final comma if they've ommitted the optional arguments */ #ifdef __GNUC__ # define ok(e, test, ...) ((e) ? \ diff --git a/tools/build_perl_modules b/tools/build_perl_modules index b8cd34c..5a57a47 100755 --- a/tools/build_perl_modules +++ b/tools/build_perl_modules @@ -140,7 +140,7 @@ my $libs = "$destdir/$prefix/lib:$destdir/$prefix/lib/$Config{archname}"; my $topdir = cwd(); -# set an initial value if there isn't one already +# set an initial value if there isnt one already # Need to use PERL5LIB to ensure we get pre-installed mods from earlier # tags in the install_order file $ENV{PERL5LIB} ||= q{}; @@ -149,8 +149,8 @@ $ENV{PERL5LIB} ||= q{}; $ENV{PERL_AUTOINSTALL} = "--skipdeps"; # keep a record of how many times a module build is done. This is so they may -# be built a second time to include optional prereq's that couldn't -# previously be built due to circular dependencies +# be built a second time to include optional prereq's that couldnt +# previously be built due to circular dependancies my %built_modules; foreach my $tarball (@tarballs) { ( my $dir = $tarball ) =~ s/\.(?:tgz|tar.gz)$//; diff --git a/tools/tinderbox_build b/tools/tinderbox_build index 1a41f57..48836b1 100755 --- a/tools/tinderbox_build +++ b/tools/tinderbox_build @@ -138,7 +138,7 @@ sub BuildIt { # interprets that as the end of the mail, and truncates the log before # it gets to Tinderbox. (terry weismann, chris yeh) # -# This was replaced by a perl 'port' of the above, written by +# This was replaced by a perl 'port' of the above, writen by # preed@netscape.com; good things: no need for system() call, and now it's # all in perl, so we don't have to do OS checking like before.