Codebase list texinfo / upstream/6.6.92.dfsg.1
New upstream version 6.6.92.dfsg.1 Norbert Preining 4 years ago
125 changed file(s) with 4842 addition(s) and 3021 deletion(s). Raw diff Collapse all Expand all
0 2019-09-19 Gavin Smith <gavinsmith0123@gmail.com>
1
2 pretest 6.6.92
3
4 * configure.ac: version
5
06 2019-09-17 Gavin Smith <gavinsmith0123@gmail.com>
17
28 pretest 6.6.91
396396 GNULIB_CHDIR = @GNULIB_CHDIR@
397397 GNULIB_CHOWN = @GNULIB_CHOWN@
398398 GNULIB_CLOSE = @GNULIB_CLOSE@
399 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
399400 GNULIB_DPRINTF = @GNULIB_DPRINTF@
400401 GNULIB_DUP = @GNULIB_DUP@
401402 GNULIB_DUP2 = @GNULIB_DUP2@
551552 GNULIB_STRSTR = @GNULIB_STRSTR@
552553 GNULIB_STRTOD = @GNULIB_STRTOD@
553554 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
555 GNULIB_STRTOLD = @GNULIB_STRTOLD@
554556 GNULIB_STRTOLL = @GNULIB_STRTOLL@
555557 GNULIB_STRTOULL = @GNULIB_STRTOULL@
556558 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
618620 GNULIB_WRITE = @GNULIB_WRITE@
619621 GNULIB__EXIT = @GNULIB__EXIT@
620622 GREP = @GREP@
623 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
621624 HAVE_ATOLL = @HAVE_ATOLL@
622625 HAVE_BTOWC = @HAVE_BTOWC@
623626 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
624627 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
625628 HAVE_CHOWN = @HAVE_CHOWN@
629 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
626630 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
627631 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
628632 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
688692 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
689693 HAVE_GRANTPT = @HAVE_GRANTPT@
690694 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
695 HAVE_INITSTATE = @HAVE_INITSTATE@
691696 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
692697 HAVE_ISWBLANK = @HAVE_ISWBLANK@
693698 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
708713 HAVE_MBSLEN = @HAVE_MBSLEN@
709714 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
710715 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
716 HAVE_MBTOWC = @HAVE_MBTOWC@
711717 HAVE_MEMCHR = @HAVE_MEMCHR@
712718 HAVE_MEMPCPY = @HAVE_MEMPCPY@
713719 HAVE_MKDTEMP = @HAVE_MKDTEMP@
742748 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
743749 HAVE_SETENV = @HAVE_SETENV@
744750 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
751 HAVE_SETSTATE = @HAVE_SETSTATE@
745752 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
746753 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
747754 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
756763 HAVE_STRPBRK = @HAVE_STRPBRK@
757764 HAVE_STRSEP = @HAVE_STRSEP@
758765 HAVE_STRTOD = @HAVE_STRTOD@
766 HAVE_STRTOLD = @HAVE_STRTOLD@
759767 HAVE_STRTOLL = @HAVE_STRTOLL@
760768 HAVE_STRTOULL = @HAVE_STRTOULL@
761769 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
834842 LIBINTL = @LIBINTL@
835843 LIBMULTITHREAD = @LIBMULTITHREAD@
836844 LIBOBJS = @LIBOBJS@
837 LIBPTH = @LIBPTH@
838 LIBPTH_PREFIX = @LIBPTH_PREFIX@
839845 LIBS = @LIBS@
840846 LIBTHREAD = @LIBTHREAD@
841847 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
851857 LTLIBINTL = @LTLIBINTL@
852858 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
853859 LTLIBOBJS = @LTLIBOBJS@
854 LTLIBPTH = @LTLIBPTH@
855860 LTLIBTHREAD = @LTLIBTHREAD@
856861 MAKEINFO = @MAKEINFO@
857862 MKDIR_P = @MKDIR_P@
948953 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
949954 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
950955 REPLACE_GETPASS = @REPLACE_GETPASS@
956 REPLACE_INITSTATE = @REPLACE_INITSTATE@
951957 REPLACE_ISATTY = @REPLACE_ISATTY@
952958 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
953959 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
981987 REPLACE_PUTENV = @REPLACE_PUTENV@
982988 REPLACE_PWRITE = @REPLACE_PWRITE@
983989 REPLACE_QSORT_R = @REPLACE_QSORT_R@
990 REPLACE_RANDOM = @REPLACE_RANDOM@
984991 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
985992 REPLACE_READ = @REPLACE_READ@
986993 REPLACE_READLINK = @REPLACE_READLINK@
9931000 REPLACE_RMDIR = @REPLACE_RMDIR@
9941001 REPLACE_SETENV = @REPLACE_SETENV@
9951002 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1003 REPLACE_SETSTATE = @REPLACE_SETSTATE@
9961004 REPLACE_SLEEP = @REPLACE_SLEEP@
9971005 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
9981006 REPLACE_SPRINTF = @REPLACE_SPRINTF@
10111019 REPLACE_STRSTR = @REPLACE_STRSTR@
10121020 REPLACE_STRTOD = @REPLACE_STRTOD@
10131021 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1022 REPLACE_STRTOLD = @REPLACE_STRTOLD@
10141023 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
10151024 REPLACE_SYMLINK = @REPLACE_SYMLINK@
10161025 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
497497 GNULIB_CHDIR = @GNULIB_CHDIR@
498498 GNULIB_CHOWN = @GNULIB_CHOWN@
499499 GNULIB_CLOSE = @GNULIB_CLOSE@
500 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
500501 GNULIB_DPRINTF = @GNULIB_DPRINTF@
501502 GNULIB_DUP = @GNULIB_DUP@
502503 GNULIB_DUP2 = @GNULIB_DUP2@
652653 GNULIB_STRSTR = @GNULIB_STRSTR@
653654 GNULIB_STRTOD = @GNULIB_STRTOD@
654655 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
656 GNULIB_STRTOLD = @GNULIB_STRTOLD@
655657 GNULIB_STRTOLL = @GNULIB_STRTOLL@
656658 GNULIB_STRTOULL = @GNULIB_STRTOULL@
657659 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
719721 GNULIB_WRITE = @GNULIB_WRITE@
720722 GNULIB__EXIT = @GNULIB__EXIT@
721723 GREP = @GREP@
724 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
722725 HAVE_ATOLL = @HAVE_ATOLL@
723726 HAVE_BTOWC = @HAVE_BTOWC@
724727 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
725728 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
726729 HAVE_CHOWN = @HAVE_CHOWN@
730 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
727731 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
728732 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
729733 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
789793 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
790794 HAVE_GRANTPT = @HAVE_GRANTPT@
791795 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
796 HAVE_INITSTATE = @HAVE_INITSTATE@
792797 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
793798 HAVE_ISWBLANK = @HAVE_ISWBLANK@
794799 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
809814 HAVE_MBSLEN = @HAVE_MBSLEN@
810815 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
811816 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
817 HAVE_MBTOWC = @HAVE_MBTOWC@
812818 HAVE_MEMCHR = @HAVE_MEMCHR@
813819 HAVE_MEMPCPY = @HAVE_MEMPCPY@
814820 HAVE_MKDTEMP = @HAVE_MKDTEMP@
843849 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
844850 HAVE_SETENV = @HAVE_SETENV@
845851 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
852 HAVE_SETSTATE = @HAVE_SETSTATE@
846853 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
847854 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
848855 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
857864 HAVE_STRPBRK = @HAVE_STRPBRK@
858865 HAVE_STRSEP = @HAVE_STRSEP@
859866 HAVE_STRTOD = @HAVE_STRTOD@
867 HAVE_STRTOLD = @HAVE_STRTOLD@
860868 HAVE_STRTOLL = @HAVE_STRTOLL@
861869 HAVE_STRTOULL = @HAVE_STRTOULL@
862870 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
935943 LIBINTL = @LIBINTL@
936944 LIBMULTITHREAD = @LIBMULTITHREAD@
937945 LIBOBJS = @LIBOBJS@
938 LIBPTH = @LIBPTH@
939 LIBPTH_PREFIX = @LIBPTH_PREFIX@
940946 LIBS = @LIBS@
941947 LIBTHREAD = @LIBTHREAD@
942948 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
952958 LTLIBINTL = @LTLIBINTL@
953959 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
954960 LTLIBOBJS = @LTLIBOBJS@
955 LTLIBPTH = @LTLIBPTH@
956961 LTLIBTHREAD = @LTLIBTHREAD@
957962 MAKEINFO = @MAKEINFO@
958963 MKDIR_P = @MKDIR_P@
10491054 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
10501055 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
10511056 REPLACE_GETPASS = @REPLACE_GETPASS@
1057 REPLACE_INITSTATE = @REPLACE_INITSTATE@
10521058 REPLACE_ISATTY = @REPLACE_ISATTY@
10531059 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
10541060 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
10821088 REPLACE_PUTENV = @REPLACE_PUTENV@
10831089 REPLACE_PWRITE = @REPLACE_PWRITE@
10841090 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1091 REPLACE_RANDOM = @REPLACE_RANDOM@
10851092 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
10861093 REPLACE_READ = @REPLACE_READ@
10871094 REPLACE_READLINK = @REPLACE_READLINK@
10941101 REPLACE_RMDIR = @REPLACE_RMDIR@
10951102 REPLACE_SETENV = @REPLACE_SETENV@
10961103 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1104 REPLACE_SETSTATE = @REPLACE_SETSTATE@
10971105 REPLACE_SLEEP = @REPLACE_SLEEP@
10981106 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
10991107 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11121120 REPLACE_STRSTR = @REPLACE_STRSTR@
11131121 REPLACE_STRTOD = @REPLACE_STRTOD@
11141122 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1123 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11151124 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11161125 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11171126 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
348348 /* Define to 1 if <wchar.h> declares mbstate_t. */
349349 #undef HAVE_MBSTATE_T
350350
351 /* Define to 1 if you have the `mbtowc' function. */
352 #undef HAVE_MBTOWC
353
351354 /* Define to 1 if you have the <memory.h> header file. */
352355 #undef HAVE_MEMORY_H
353356
490493
491494 /* Define to 1 if you have the <termios.h> header file. */
492495 #undef HAVE_TERMIOS_H
496
497 /* Define to 1 if you have the <threads.h> header file. */
498 #undef HAVE_THREADS_H
493499
494500 /* Define to 1 if you have the `towlower' function. */
495501 #undef HAVE_TOWLOWER
663669 /* Define if references to the POSIX multithreading library should be made
664670 weak. */
665671 #undef USE_POSIX_THREADS_WEAK
666
667 /* Define if the GNU Pth multithreading library can be used. */
668 #undef USE_PTH_THREADS
669
670 /* Define if references to the GNU Pth multithreading library should be made
671 weak. */
672 #undef USE_PTH_THREADS_WEAK
673
674 /* Define if the old Solaris multithreading library can be used. */
675 #undef USE_SOLARIS_THREADS
676
677 /* Define if references to the old Solaris multithreading library should be
678 made weak. */
679 #undef USE_SOLARIS_THREADS_WEAK
680672
681673 /* Enable extensions on AIX 3, Interix. */
682674 #ifndef _ALL_SOURCE
788780
789781 /* The _Noreturn keyword of C11. */
790782 #ifndef _Noreturn
791 # if 201103 <= (defined __cplusplus ? __cplusplus : 0)
783 # if (defined __cplusplus \
784 && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
785 || (defined _MSC_VER && 1900 <= _MSC_VER)))
792786 # define _Noreturn [[noreturn]]
793 # elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
794 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
787 # elif ((!defined __cplusplus || defined __clang__) \
788 && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
789 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)))
795790 /* _Noreturn works as-is. */
796791 # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
797792 # define _Noreturn __attribute__ ((__noreturn__))
832827
833828 /* Define so that glibc/gnulib argp.h does not typedef error_t. */
834829 #undef __error_t_defined
830
831 /* The _GL_ASYNC_SAFE marker should be attached to functions that are
832 signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
833 invoked from such signal handlers. Such functions have some restrictions:
834 * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
835 or should be listed as async-signal-safe in POSIX
836 <http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
837 section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
838 particular, are NOT async-signal-safe.
839 * All memory locations (variables and struct fields) that these functions
840 access must be marked 'volatile'. This holds for both read and write
841 accesses. Otherwise the compiler might optimize away stores to and
842 reads from such locations that occur in the program, depending on its
843 data flow analysis. For example, when the program contains a loop
844 that is intended to inspect a variable set from within a signal handler
845 while (!signal_occurred)
846 ;
847 the compiler is allowed to transform this into an endless loop if the
848 variable 'signal_occurred' is not declared 'volatile'.
849 Additionally, recall that:
850 * A signal handler should not modify errno (except if it is a handler
851 for a fatal signal and ends by raising the same signal again, thus
852 provoking the termination of the process). If it invokes a function
853 that may clobber errno, it needs to save and restore the value of
854 errno. */
855 #define _GL_ASYNC_SAFE
856
835857
836858 /* Define to a type to use for 'error_t' if it is not otherwise available. */
837859 #undef error_t
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for GNU Texinfo 6.6.91.
2 # Generated by GNU Autoconf 2.69 for GNU Texinfo 6.6.92.
33 #
44 # Report bugs to <bug-texinfo@gnu.org>.
55 #
579579 # Identity of this package.
580580 PACKAGE_NAME='GNU Texinfo'
581581 PACKAGE_TARNAME='texinfo'
582 PACKAGE_VERSION='6.6.91'
583 PACKAGE_STRING='GNU Texinfo 6.6.91'
582 PACKAGE_VERSION='6.6.92'
583 PACKAGE_STRING='GNU Texinfo 6.6.92'
584584 PACKAGE_BUGREPORT='bug-texinfo@gnu.org'
585585 PACKAGE_URL='http://www.gnu.org/software/texinfo/'
586586
622622 #endif"
623623
624624 gl_use_threads_default=
625 gl_use_winpthreads_default=
625626 gl_getopt_required=POSIX
626627 ac_header_list=
627628 ac_func_list=
685686 gltests_WITNESS
686687 gl_GNULIB_ENABLED_xsize_FALSE
687688 gl_GNULIB_ENABLED_xsize_TRUE
689 gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE
690 gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE
691 gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE
692 gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE
693 gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE
694 gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE
695 gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE
696 gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE
688697 gl_GNULIB_ENABLED_wcrtomb_FALSE
689698 gl_GNULIB_ENABLED_wcrtomb_TRUE
690699 gl_GNULIB_ENABLED_vasnprintf_FALSE
739748 LIBMULTITHREAD
740749 LTLIBTHREAD
741750 LIBTHREAD
742 LIBPTH_PREFIX
743 LTLIBPTH
744 LIBPTH
745751 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H
746752 NEXT_LOCALE_H
747753 HAVE_XLOCALE_H
11191125 GNULIB_BTOWC
11201126 REPLACE_WCTOMB
11211127 REPLACE_UNSETENV
1128 REPLACE_STRTOLD
11221129 REPLACE_STRTOD
1130 REPLACE_SETSTATE
11231131 REPLACE_SETENV
11241132 REPLACE_REALPATH
11251133 REPLACE_REALLOC
11261134 REPLACE_RANDOM_R
1135 REPLACE_RANDOM
11271136 REPLACE_QSORT_R
11281137 REPLACE_PUTENV
11291138 REPLACE_PTSNAME_R
11311140 REPLACE_MKSTEMP
11321141 REPLACE_MBTOWC
11331142 REPLACE_MALLOC
1143 REPLACE_INITSTATE
11341144 REPLACE_CANONICALIZE_FILE_NAME
11351145 REPLACE_CALLOC
11361146 HAVE_DECL_UNSETENV
11391149 HAVE_STRUCT_RANDOM_DATA
11401150 HAVE_STRTOULL
11411151 HAVE_STRTOLL
1152 HAVE_STRTOLD
11421153 HAVE_STRTOD
11431154 HAVE_DECL_SETSTATE
1155 HAVE_SETSTATE
11441156 HAVE_DECL_SETENV
11451157 HAVE_SETENV
11461158 HAVE_SECURE_GETENV
11591171 HAVE_MKOSTEMPS
11601172 HAVE_MKOSTEMP
11611173 HAVE_MKDTEMP
1174 HAVE_MBTOWC
11621175 HAVE_DECL_INITSTATE
1176 HAVE_INITSTATE
11631177 HAVE_GRANTPT
11641178 HAVE_GETSUBOPT
11651179 HAVE_DECL_GETLOADAVG
11721186 GNULIB_SYSTEM_POSIX
11731187 GNULIB_STRTOULL
11741188 GNULIB_STRTOLL
1189 GNULIB_STRTOLD
11751190 GNULIB_STRTOD
11761191 GNULIB_SETENV
11771192 GNULIB_SECURE_GETENV
13141329 HAVE_EUIDACCESS
13151330 HAVE_DUP3
13161331 HAVE_DUP2
1332 HAVE_COPY_FILE_RANGE
13171333 HAVE_CHOWN
13181334 GNULIB_WRITE
13191335 GNULIB_USLEEP
13621378 GNULIB_DUP3
13631379 GNULIB_DUP2
13641380 GNULIB_DUP
1381 GNULIB_COPY_FILE_RANGE
13651382 GNULIB_CLOSE
13661383 GNULIB_CHOWN
13671384 GNULIB_CHDIR
13891406 GL_GENERATE_ARGZ_H_FALSE
13901407 GL_GENERATE_ARGZ_H_TRUE
13911408 ARGZ_H
1409 HAVE_ALLOCA_H
13921410 GL_GENERATE_ALLOCA_H_FALSE
13931411 GL_GENERATE_ALLOCA_H_TRUE
13941412 ALLOCA_H
15101528 enable_rpath
15111529 with_libiconv_prefix
15121530 with_included_regex
1513 with_libpth_prefix
15141531 enable_multiplatform
15151532 enable_install_warnings
15161533 with_external_Unicode_EastAsianWidth
20872104 # Omit some internal or obsolete options to make the list less imposing.
20882105 # This message is too long to be a string in the A/UX 3.1 sh.
20892106 cat <<_ACEOF
2090 \`configure' configures GNU Texinfo 6.6.91 to adapt to many kinds of systems.
2107 \`configure' configures GNU Texinfo 6.6.92 to adapt to many kinds of systems.
20912108
20922109 Usage: $0 [OPTION]... [VAR=VALUE]...
20932110
21582175
21592176 if test -n "$ac_init_help"; then
21602177 case $ac_init_help in
2161 short | recursive ) echo "Configuration of GNU Texinfo 6.6.91:";;
2178 short | recursive ) echo "Configuration of GNU Texinfo 6.6.92:";;
21622179 esac
21632180 cat <<\_ACEOF
21642181
21722189 do not reject slow dependency extractors
21732190 --disable-dependency-tracking
21742191 speeds up one-time build
2175 --enable-threads={posix|solaris|pth|windows}
2192 --enable-threads={posix|windows}
21762193 specify multithreading API
21772194 --disable-threads build without multithread safety
21782195 --disable-rpath do not hardcode runtime library paths
21992216 don't compile regex; this is the default on systems
22002217 with recent-enough versions of the GNU C Library
22012218 (use with caution on other systems).
2202 --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib
2203 --without-libpth-prefix don't search for libpth in includedir and libdir
22042219 --with-external-Unicode-EastAsianWidth
22052220 use external Unicode-EastAsianWidth (default: no)
22062221 --with-external-Text-Unidecode
22962311 test -n "$ac_init_help" && exit $ac_status
22972312 if $ac_init_version; then
22982313 cat <<\_ACEOF
2299 GNU Texinfo configure 6.6.91
2314 GNU Texinfo configure 6.6.92
23002315 generated by GNU Autoconf 2.69
23012316
23022317 Copyright (C) 2012 Free Software Foundation, Inc.
30053020 This file contains any messages produced by compilers while
30063021 running configure, to aid debugging if configure makes a mistake.
30073022
3008 It was created by GNU Texinfo $as_me 6.6.91, which was
3023 It was created by GNU Texinfo $as_me 6.6.92, which was
30093024 generated by GNU Autoconf 2.69. Invocation command line was
30103025
30113026 $ $0 $@
33143329 as_fn_append ac_func_list " btowc"
33153330 as_fn_append ac_header_list " langinfo.h"
33163331 as_fn_append ac_header_list " xlocale.h"
3332 as_fn_append ac_header_list " threads.h"
33173333 as_fn_append ac_func_list " _set_invalid_parameter_handler"
33183334 as_fn_append ac_func_list " nl_langinfo"
33193335 as_fn_append ac_header_list " sys/socket.h"
39063922
39073923 # Define the identity of the package.
39083924 PACKAGE='texinfo'
3909 VERSION='6.6.91'
3925 VERSION='6.6.92'
39103926
39113927
39123928 cat >>confdefs.h <<_ACEOF
64486464
64496465
64506466
6467
64516468 # Check whether --enable-threads was given.
64526469 if test "${enable_threads+set}" = set; then :
64536470 enableval=$enable_threads; gl_use_threads=$enableval
64566473 gl_use_threads="$gl_use_threads_default"
64576474 else
64586475 case "$host_os" in
6459 osf*) gl_use_threads=no ;;
6460 cygwin*)
6476 osf*) gl_use_threads=no ;;
6477 cygwin*)
64616478 case `uname -r` in
64626479 1.[0-5].*) gl_use_threads=no ;;
64636480 *) gl_use_threads=yes ;;
6481 esac
6482 ;;
6483 mingw*)
6484 case "$gl_use_winpthreads_default" in
6485 yes) gl_use_threads=posix ;;
6486 no) gl_use_threads=windows ;;
6487 *) gl_use_threads=yes ;;
64646488 esac
64656489 ;;
64666490 *) gl_use_threads=yes ;;
65986622 # Code from module wcrtomb:
65996623 # Code from module wctype-h:
66006624 # Code from module wcwidth:
6625 # Code from module windows-mutex:
6626 # Code from module windows-once:
6627 # Code from module windows-recmutex:
6628 # Code from module windows-rwlock:
66016629 # Code from module xalloc:
66026630 # Code from module xalloc-die:
66036631 # Code from module xalloc-oversized:
66056633
66066634
66076635 # Rest of Gnulib.
6636
66086637
66096638
66106639
74937522 GNULIB_CHDIR=0;
74947523 GNULIB_CHOWN=0;
74957524 GNULIB_CLOSE=0;
7525 GNULIB_COPY_FILE_RANGE=0;
74967526 GNULIB_DUP=0;
74977527 GNULIB_DUP2=0;
74987528 GNULIB_DUP3=0;
75417571 GNULIB_USLEEP=0;
75427572 GNULIB_WRITE=0;
75437573 HAVE_CHOWN=1;
7574 HAVE_COPY_FILE_RANGE=1;
75447575 HAVE_DUP2=1;
75457576 HAVE_DUP3=1;
75467577 HAVE_EUIDACCESS=1;
1019110222 GNULIB_SECURE_GETENV=0;
1019210223 GNULIB_SETENV=0;
1019310224 GNULIB_STRTOD=0;
10225 GNULIB_STRTOLD=0;
1019410226 GNULIB_STRTOLL=0;
1019510227 GNULIB_STRTOULL=0;
1019610228 GNULIB_SYSTEM_POSIX=0;
1020310235 HAVE_DECL_GETLOADAVG=1;
1020410236 HAVE_GETSUBOPT=1;
1020510237 HAVE_GRANTPT=1;
10238 HAVE_INITSTATE=1;
1020610239 HAVE_DECL_INITSTATE=1;
10240 HAVE_MBTOWC=1;
1020710241 HAVE_MKDTEMP=1;
1020810242 HAVE_MKOSTEMP=1;
1020910243 HAVE_MKOSTEMPS=1;
1022210256 HAVE_SECURE_GETENV=1;
1022310257 HAVE_SETENV=1;
1022410258 HAVE_DECL_SETENV=1;
10259 HAVE_SETSTATE=1;
1022510260 HAVE_DECL_SETSTATE=1;
1022610261 HAVE_STRTOD=1;
10262 HAVE_STRTOLD=1;
1022710263 HAVE_STRTOLL=1;
1022810264 HAVE_STRTOULL=1;
1022910265 HAVE_STRUCT_RANDOM_DATA=1;
1023210268 HAVE_DECL_UNSETENV=1;
1023310269 REPLACE_CALLOC=0;
1023410270 REPLACE_CANONICALIZE_FILE_NAME=0;
10271 REPLACE_INITSTATE=0;
1023510272 REPLACE_MALLOC=0;
1023610273 REPLACE_MBTOWC=0;
1023710274 REPLACE_MKSTEMP=0;
1023910276 REPLACE_PTSNAME_R=0;
1024010277 REPLACE_PUTENV=0;
1024110278 REPLACE_QSORT_R=0;
10279 REPLACE_RANDOM=0;
1024210280 REPLACE_RANDOM_R=0;
1024310281 REPLACE_REALLOC=0;
1024410282 REPLACE_REALPATH=0;
1024510283 REPLACE_SETENV=0;
10284 REPLACE_SETSTATE=0;
1024610285 REPLACE_STRTOD=0;
10286 REPLACE_STRTOLD=0;
1024710287 REPLACE_UNSETENV=0;
1024810288 REPLACE_WCTOMB=0;
1024910289
1030110341 if test "$cross_compiling" = yes; then :
1030210342 case "$host_os" in
1030310343 # Guess yes on platforms where we know the result.
10304 *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \
10344 *-gnu* | gnu* | *-musl* | freebsd* | netbsd* | openbsd* \
1030510345 | hpux* | solaris* | cygwin* | mingw*)
10306 ac_cv_func_malloc_0_nonnull=yes ;;
10346 ac_cv_func_malloc_0_nonnull="guessing yes" ;;
1030710347 # If we don't know, assume the worst.
10308 *) ac_cv_func_malloc_0_nonnull=no ;;
10348 *) ac_cv_func_malloc_0_nonnull="guessing no" ;;
1030910349 esac
1031010350
1031110351 else
1034210382 fi
1034310383 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
1034410384 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
10345 if test $ac_cv_func_malloc_0_nonnull = yes; then :
10346 gl_cv_func_malloc_0_nonnull=1
10347 else
10348 gl_cv_func_malloc_0_nonnull=0
10349 fi
10385 case "$ac_cv_func_malloc_0_nonnull" in
10386 *yes)
10387 gl_cv_func_malloc_0_nonnull=1
10388 ;;
10389 *)
10390 gl_cv_func_malloc_0_nonnull=0
10391 ;;
10392 esac
1035010393
1035110394
1035210395 cat >>confdefs.h <<_ACEOF
1127411317 # memchr should not dereference overestimated length after a match
1127511318 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
1127611319 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162
11320 # memchr should cast the second argument to 'unsigned char'.
11321 # This bug exists in Android 4.3.
1127711322 # Assume that memchr works on platforms that lack mprotect.
1127811323 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
1127911324 $as_echo_n "checking whether memchr works... " >&6; }
1128211327 else
1128311328 if test "$cross_compiling" = yes; then :
1128411329 case "$host_os" in
11285 # Guess yes on native Windows.
11286 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
11287 # Be pessimistic for now.
11288 *) gl_cv_func_memchr_works="guessing no" ;;
11330 # Guess no on Android.
11331 linux*-android*) gl_cv_func_memchr_works="guessing no" ;;
11332 # Guess yes on native Windows.
11333 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
11334 # Be pessimistic for now.
11335 *) gl_cv_func_memchr_works="guessing no" ;;
1128911336 esac
1129011337
1129111338 else
1133811385 if (memchr (fence - 1, 0, 3) != fence - 1)
1133911386 result |= 4;
1134011387 }
11388 /* Test against bug on Android 4.3. */
11389 {
11390 char input[3];
11391 input[0] = 'a';
11392 input[1] = 'b';
11393 input[2] = 'c';
11394 if (memchr (input, 0x789abc00 | 'b', 3) != input + 1)
11395 result |= 8;
11396 }
1134111397 return result;
1134211398
1134311399 ;
1270612762 case "$host_os" in
1270712763 # Guess yes on glibc systems.
1270812764 *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
12765 # Guess yes on musl systems.
12766 *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;;
1270912767 # Guess yes on native Windows.
1271012768 mingw*) gl_cv_func_strerror_0_works="guessing yes" ;;
1271112769 # If we don't know, assume the worst.
1335213410
1335313411
1335413412
13413
13414
1335513415 gl_threads_api=none
1335613416 LIBTHREAD=
1335713417 LTLIBTHREAD=
1342713487 fi
1342813488 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5
1342913489 $as_echo "$gl_cv_have_weak" >&6; }
13430 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports --as-needed" >&5
13431 $as_echo_n "checking whether the linker supports --as-needed... " >&6; }
13432 if ${gl_cv_linker_have_as_needed+:} false; then :
13433 $as_echo_n "(cached) " >&6
13434 else
13435 if test -n "$GCC"; then
13436 gl_saved_ldflags="$LDFLAGS"
13437 LDFLAGS="$gl_saved_ldflags -Wl,--as-needed -Wl,--no-as-needed"
13438 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13439 /* end confdefs.h. */
13440
13441 int
13442 main ()
13443 {
13444
13445 ;
13446 return 0;
13447 }
13448 _ACEOF
13449 if ac_fn_c_try_link "$LINENO"; then :
13450 gl_cv_linker_have_as_needed=yes
13451 else
13452 gl_cv_linker_have_as_needed=no
13453 fi
13454 rm -f core conftest.err conftest.$ac_objext \
13455 conftest$ac_exeext conftest.$ac_ext
13456 LDFLAGS="$gl_saved_ldflags"
13457 else
13458 gl_cv_linker_have_as_needed=no
13459 fi
13460
13461 fi
13462 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_linker_have_as_needed" >&5
13463 $as_echo "$gl_cv_linker_have_as_needed" >&6; }
13464 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports --push-state" >&5
13465 $as_echo_n "checking whether the linker supports --push-state... " >&6; }
13466 if ${gl_cv_linker_have_push_state+:} false; then :
13467 $as_echo_n "(cached) " >&6
13468 else
13469 if test -n "$GCC"; then
13470 gl_saved_ldflags="$LDFLAGS"
13471 LDFLAGS="$gl_saved_ldflags -Wl,--push-state -Wl,--pop-state"
13472 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13473 /* end confdefs.h. */
13474
13475 int
13476 main ()
13477 {
13478
13479 ;
13480 return 0;
13481 }
13482 _ACEOF
13483 if ac_fn_c_try_link "$LINENO"; then :
13484 gl_cv_linker_have_push_state=yes
13485 else
13486 gl_cv_linker_have_push_state=no
13487 fi
13488 rm -f core conftest.err conftest.$ac_objext \
13489 conftest$ac_exeext conftest.$ac_ext
13490 LDFLAGS="$gl_saved_ldflags"
13491 else
13492 gl_cv_linker_have_push_state=no
13493 fi
13494
13495 fi
13496 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_linker_have_push_state" >&5
13497 $as_echo "$gl_cv_linker_have_push_state" >&6; }
13490 if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
13491
13492 :
13493 fi
1349813494 if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
1349913495 # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
1350013496 # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
1370713703
1370813704 LIBTHREAD=
1370913705 LTLIBTHREAD=
13710 case "$LIBMULTITHREAD" in
13711 "") ;;
13712 -pthread)
13713 if test $gl_cv_linker_have_as_needed = yes; then
13714 if test $gl_cv_linker_have_push_state = yes; then
13715 LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--push-state -Wl,--no-as-needed -lpthread -Wl,--pop-state"
13716 else
13717 LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--no-as-needed -lpthread"
13718 fi
13719 fi
13720 ;;
13721 *)
13722 if test $gl_cv_linker_have_as_needed = yes; then
13723 if test $gl_cv_linker_have_push_state = yes; then
13724 LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
13725 else
13726 LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
13727 fi
13728 fi
13729 ;;
13730 esac
13731 # TODO: May need to modify LTLIBMULTITHREAD similarly.
1373213706 fi
1373313707 fi
1373413708 fi
13735 fi
13736 fi
13737 if test -z "$gl_have_pthread"; then
13738 if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
13739 gl_have_solaristhread=
13740 gl_save_LIBS="$LIBS"
13741 LIBS="$LIBS -lthread"
13742 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13743 /* end confdefs.h. */
13744
13745 #include <thread.h>
13746 #include <synch.h>
13747
13748 int
13749 main ()
13750 {
13751 thr_self();
13752 ;
13753 return 0;
13754 }
13755 _ACEOF
13756 if ac_fn_c_try_link "$LINENO"; then :
13757 gl_have_solaristhread=yes
13758 fi
13759 rm -f core conftest.err conftest.$ac_objext \
13760 conftest$ac_exeext conftest.$ac_ext
13761 LIBS="$gl_save_LIBS"
13762 if test -n "$gl_have_solaristhread"; then
13763 gl_threads_api=solaris
13764 LIBTHREAD=-lthread
13765 LTLIBTHREAD=-lthread
13766 LIBMULTITHREAD="$LIBTHREAD"
13767 LTLIBMULTITHREAD="$LTLIBTHREAD"
13768
13769 $as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h
13770
13771 if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
13772
13773 $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h
13774
13775 LIBTHREAD=
13776 LTLIBTHREAD=
13777 if test $gl_cv_linker_have_as_needed = yes; then
13778 if test $gl_cv_linker_have_push_state = yes; then
13779 LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
13780 else
13781 LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
13782 fi
13783 fi
13784 # TODO: May need to modify LTLIBMULTITHREAD similarly.
13785 fi
13786 fi
13787 fi
13788 fi
13789 if test "$gl_use_threads" = pth; then
13790 gl_save_CPPFLAGS="$CPPFLAGS"
13791
13792
13793
13794
13795
13796 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5
13797 $as_echo_n "checking how to link with libpth... " >&6; }
13798 if ${ac_cv_libpth_libs+:} false; then :
13799 $as_echo_n "(cached) " >&6
13800 else
13801
13802
13803
13804
13805
13806
13807
13808 use_additional=yes
13809
13810 acl_save_prefix="$prefix"
13811 prefix="$acl_final_prefix"
13812 acl_save_exec_prefix="$exec_prefix"
13813 exec_prefix="$acl_final_exec_prefix"
13814
13815 eval additional_includedir=\"$includedir\"
13816 eval additional_libdir=\"$libdir\"
13817
13818 exec_prefix="$acl_save_exec_prefix"
13819 prefix="$acl_save_prefix"
13820
13821
13822 # Check whether --with-libpth-prefix was given.
13823 if test "${with_libpth_prefix+set}" = set; then :
13824 withval=$with_libpth_prefix;
13825 if test "X$withval" = "Xno"; then
13826 use_additional=no
13827 else
13828 if test "X$withval" = "X"; then
13829
13830 acl_save_prefix="$prefix"
13831 prefix="$acl_final_prefix"
13832 acl_save_exec_prefix="$exec_prefix"
13833 exec_prefix="$acl_final_exec_prefix"
13834
13835 eval additional_includedir=\"$includedir\"
13836 eval additional_libdir=\"$libdir\"
13837
13838 exec_prefix="$acl_save_exec_prefix"
13839 prefix="$acl_save_prefix"
13840
13841 else
13842 additional_includedir="$withval/include"
13843 additional_libdir="$withval/$acl_libdirstem"
13844 if test "$acl_libdirstem2" != "$acl_libdirstem" \
13845 && test ! -d "$withval/$acl_libdirstem"; then
13846 additional_libdir="$withval/$acl_libdirstem2"
13847 fi
13848 fi
13849 fi
13850
13851 fi
13852
13853 LIBPTH=
13854 LTLIBPTH=
13855 INCPTH=
13856 LIBPTH_PREFIX=
13857 HAVE_LIBPTH=
13858 rpathdirs=
13859 ltrpathdirs=
13860 names_already_handled=
13861 names_next_round='pth '
13862 while test -n "$names_next_round"; do
13863 names_this_round="$names_next_round"
13864 names_next_round=
13865 for name in $names_this_round; do
13866 already_handled=
13867 for n in $names_already_handled; do
13868 if test "$n" = "$name"; then
13869 already_handled=yes
13870 break
13871 fi
13872 done
13873 if test -z "$already_handled"; then
13874 names_already_handled="$names_already_handled $name"
13875 uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
13876 eval value=\"\$HAVE_LIB$uppername\"
13877 if test -n "$value"; then
13878 if test "$value" = yes; then
13879 eval value=\"\$LIB$uppername\"
13880 test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value"
13881 eval value=\"\$LTLIB$uppername\"
13882 test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value"
13883 else
13884 :
13885 fi
13886 else
13887 found_dir=
13888 found_la=
13889 found_so=
13890 found_a=
13891 eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
13892 if test -n "$acl_shlibext"; then
13893 shrext=".$acl_shlibext" # typically: shrext=.so
13894 else
13895 shrext=
13896 fi
13897 if test $use_additional = yes; then
13898 dir="$additional_libdir"
13899 if test -n "$acl_shlibext"; then
13900 if test -f "$dir/$libname$shrext"; then
13901 found_dir="$dir"
13902 found_so="$dir/$libname$shrext"
13903 else
13904 if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
13905 ver=`(cd "$dir" && \
13906 for f in "$libname$shrext".*; do echo "$f"; done \
13907 | sed -e "s,^$libname$shrext\\\\.,," \
13908 | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
13909 | sed 1q ) 2>/dev/null`
13910 if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
13911 found_dir="$dir"
13912 found_so="$dir/$libname$shrext.$ver"
13913 fi
13914 else
13915 eval library_names=\"$acl_library_names_spec\"
13916 for f in $library_names; do
13917 if test -f "$dir/$f"; then
13918 found_dir="$dir"
13919 found_so="$dir/$f"
13920 break
13921 fi
13922 done
13923 fi
13924 fi
13925 fi
13926 if test "X$found_dir" = "X"; then
13927 if test -f "$dir/$libname.$acl_libext"; then
13928 found_dir="$dir"
13929 found_a="$dir/$libname.$acl_libext"
13930 fi
13931 fi
13932 if test "X$found_dir" != "X"; then
13933 if test -f "$dir/$libname.la"; then
13934 found_la="$dir/$libname.la"
13935 fi
13936 fi
13937 fi
13938 if test "X$found_dir" = "X"; then
13939 for x in $LDFLAGS $LTLIBPTH; do
13940
13941 acl_save_prefix="$prefix"
13942 prefix="$acl_final_prefix"
13943 acl_save_exec_prefix="$exec_prefix"
13944 exec_prefix="$acl_final_exec_prefix"
13945 eval x=\"$x\"
13946 exec_prefix="$acl_save_exec_prefix"
13947 prefix="$acl_save_prefix"
13948
13949 case "$x" in
13950 -L*)
13951 dir=`echo "X$x" | sed -e 's/^X-L//'`
13952 if test -n "$acl_shlibext"; then
13953 if test -f "$dir/$libname$shrext"; then
13954 found_dir="$dir"
13955 found_so="$dir/$libname$shrext"
13956 else
13957 if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
13958 ver=`(cd "$dir" && \
13959 for f in "$libname$shrext".*; do echo "$f"; done \
13960 | sed -e "s,^$libname$shrext\\\\.,," \
13961 | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
13962 | sed 1q ) 2>/dev/null`
13963 if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
13964 found_dir="$dir"
13965 found_so="$dir/$libname$shrext.$ver"
13966 fi
13967 else
13968 eval library_names=\"$acl_library_names_spec\"
13969 for f in $library_names; do
13970 if test -f "$dir/$f"; then
13971 found_dir="$dir"
13972 found_so="$dir/$f"
13973 break
13974 fi
13975 done
13976 fi
13977 fi
13978 fi
13979 if test "X$found_dir" = "X"; then
13980 if test -f "$dir/$libname.$acl_libext"; then
13981 found_dir="$dir"
13982 found_a="$dir/$libname.$acl_libext"
13983 fi
13984 fi
13985 if test "X$found_dir" != "X"; then
13986 if test -f "$dir/$libname.la"; then
13987 found_la="$dir/$libname.la"
13988 fi
13989 fi
13990 ;;
13991 esac
13992 if test "X$found_dir" != "X"; then
13993 break
13994 fi
13995 done
13996 fi
13997 if test "X$found_dir" != "X"; then
13998 LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name"
13999 if test "X$found_so" != "X"; then
14000 if test "$enable_rpath" = no \
14001 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
14002 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
14003 LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
14004 else
14005 haveit=
14006 for x in $ltrpathdirs; do
14007 if test "X$x" = "X$found_dir"; then
14008 haveit=yes
14009 break
14010 fi
14011 done
14012 if test -z "$haveit"; then
14013 ltrpathdirs="$ltrpathdirs $found_dir"
14014 fi
14015 if test "$acl_hardcode_direct" = yes; then
14016 LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
14017 else
14018 if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
14019 LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
14020 haveit=
14021 for x in $rpathdirs; do
14022 if test "X$x" = "X$found_dir"; then
14023 haveit=yes
14024 break
14025 fi
14026 done
14027 if test -z "$haveit"; then
14028 rpathdirs="$rpathdirs $found_dir"
14029 fi
14030 else
14031 haveit=
14032 for x in $LDFLAGS $LIBPTH; do
14033
14034 acl_save_prefix="$prefix"
14035 prefix="$acl_final_prefix"
14036 acl_save_exec_prefix="$exec_prefix"
14037 exec_prefix="$acl_final_exec_prefix"
14038 eval x=\"$x\"
14039 exec_prefix="$acl_save_exec_prefix"
14040 prefix="$acl_save_prefix"
14041
14042 if test "X$x" = "X-L$found_dir"; then
14043 haveit=yes
14044 break
14045 fi
14046 done
14047 if test -z "$haveit"; then
14048 LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir"
14049 fi
14050 if test "$acl_hardcode_minus_L" != no; then
14051 LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
14052 else
14053 LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name"
14054 fi
14055 fi
14056 fi
14057 fi
14058 else
14059 if test "X$found_a" != "X"; then
14060 LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a"
14061 else
14062 LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name"
14063 fi
14064 fi
14065 additional_includedir=
14066 case "$found_dir" in
14067 */$acl_libdirstem | */$acl_libdirstem/)
14068 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
14069 if test "$name" = 'pth'; then
14070 LIBPTH_PREFIX="$basedir"
14071 fi
14072 additional_includedir="$basedir/include"
14073 ;;
14074 */$acl_libdirstem2 | */$acl_libdirstem2/)
14075 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
14076 if test "$name" = 'pth'; then
14077 LIBPTH_PREFIX="$basedir"
14078 fi
14079 additional_includedir="$basedir/include"
14080 ;;
14081 esac
14082 if test "X$additional_includedir" != "X"; then
14083 if test "X$additional_includedir" != "X/usr/include"; then
14084 haveit=
14085 if test "X$additional_includedir" = "X/usr/local/include"; then
14086 if test -n "$GCC"; then
14087 case $host_os in
14088 linux* | gnu* | k*bsd*-gnu) haveit=yes;;
14089 esac
14090 fi
14091 fi
14092 if test -z "$haveit"; then
14093 for x in $CPPFLAGS $INCPTH; do
14094
14095 acl_save_prefix="$prefix"
14096 prefix="$acl_final_prefix"
14097 acl_save_exec_prefix="$exec_prefix"
14098 exec_prefix="$acl_final_exec_prefix"
14099 eval x=\"$x\"
14100 exec_prefix="$acl_save_exec_prefix"
14101 prefix="$acl_save_prefix"
14102
14103 if test "X$x" = "X-I$additional_includedir"; then
14104 haveit=yes
14105 break
14106 fi
14107 done
14108 if test -z "$haveit"; then
14109 if test -d "$additional_includedir"; then
14110 INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir"
14111 fi
14112 fi
14113 fi
14114 fi
14115 fi
14116 if test -n "$found_la"; then
14117 save_libdir="$libdir"
14118 case "$found_la" in
14119 */* | *\\*) . "$found_la" ;;
14120 *) . "./$found_la" ;;
14121 esac
14122 libdir="$save_libdir"
14123 for dep in $dependency_libs; do
14124 case "$dep" in
14125 -L*)
14126 additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
14127 if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
14128 && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
14129 haveit=
14130 if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
14131 || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
14132 if test -n "$GCC"; then
14133 case $host_os in
14134 linux* | gnu* | k*bsd*-gnu) haveit=yes;;
14135 esac
14136 fi
14137 fi
14138 if test -z "$haveit"; then
14139 haveit=
14140 for x in $LDFLAGS $LIBPTH; do
14141
14142 acl_save_prefix="$prefix"
14143 prefix="$acl_final_prefix"
14144 acl_save_exec_prefix="$exec_prefix"
14145 exec_prefix="$acl_final_exec_prefix"
14146 eval x=\"$x\"
14147 exec_prefix="$acl_save_exec_prefix"
14148 prefix="$acl_save_prefix"
14149
14150 if test "X$x" = "X-L$additional_libdir"; then
14151 haveit=yes
14152 break
14153 fi
14154 done
14155 if test -z "$haveit"; then
14156 if test -d "$additional_libdir"; then
14157 LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir"
14158 fi
14159 fi
14160 haveit=
14161 for x in $LDFLAGS $LTLIBPTH; do
14162
14163 acl_save_prefix="$prefix"
14164 prefix="$acl_final_prefix"
14165 acl_save_exec_prefix="$exec_prefix"
14166 exec_prefix="$acl_final_exec_prefix"
14167 eval x=\"$x\"
14168 exec_prefix="$acl_save_exec_prefix"
14169 prefix="$acl_save_prefix"
14170
14171 if test "X$x" = "X-L$additional_libdir"; then
14172 haveit=yes
14173 break
14174 fi
14175 done
14176 if test -z "$haveit"; then
14177 if test -d "$additional_libdir"; then
14178 LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir"
14179 fi
14180 fi
14181 fi
14182 fi
14183 ;;
14184 -R*)
14185 dir=`echo "X$dep" | sed -e 's/^X-R//'`
14186 if test "$enable_rpath" != no; then
14187 haveit=
14188 for x in $rpathdirs; do
14189 if test "X$x" = "X$dir"; then
14190 haveit=yes
14191 break
14192 fi
14193 done
14194 if test -z "$haveit"; then
14195 rpathdirs="$rpathdirs $dir"
14196 fi
14197 haveit=
14198 for x in $ltrpathdirs; do
14199 if test "X$x" = "X$dir"; then
14200 haveit=yes
14201 break
14202 fi
14203 done
14204 if test -z "$haveit"; then
14205 ltrpathdirs="$ltrpathdirs $dir"
14206 fi
14207 fi
14208 ;;
14209 -l*)
14210 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
14211 ;;
14212 *.la)
14213 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
14214 ;;
14215 *)
14216 LIBPTH="${LIBPTH}${LIBPTH:+ }$dep"
14217 LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep"
14218 ;;
14219 esac
14220 done
14221 fi
14222 else
14223 LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name"
14224 LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name"
14225 fi
14226 fi
14227 fi
14228 done
14229 done
14230 if test "X$rpathdirs" != "X"; then
14231 if test -n "$acl_hardcode_libdir_separator"; then
14232 alldirs=
14233 for found_dir in $rpathdirs; do
14234 alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
14235 done
14236 acl_save_libdir="$libdir"
14237 libdir="$alldirs"
14238 eval flag=\"$acl_hardcode_libdir_flag_spec\"
14239 libdir="$acl_save_libdir"
14240 LIBPTH="${LIBPTH}${LIBPTH:+ }$flag"
14241 else
14242 for found_dir in $rpathdirs; do
14243 acl_save_libdir="$libdir"
14244 libdir="$found_dir"
14245 eval flag=\"$acl_hardcode_libdir_flag_spec\"
14246 libdir="$acl_save_libdir"
14247 LIBPTH="${LIBPTH}${LIBPTH:+ }$flag"
14248 done
14249 fi
14250 fi
14251 if test "X$ltrpathdirs" != "X"; then
14252 for found_dir in $ltrpathdirs; do
14253 LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir"
14254 done
14255 fi
14256
14257
14258
14259
14260
14261 ac_cv_libpth_libs="$LIBPTH"
14262 ac_cv_libpth_ltlibs="$LTLIBPTH"
14263 ac_cv_libpth_cppflags="$INCPTH"
14264 ac_cv_libpth_prefix="$LIBPTH_PREFIX"
14265
14266 fi
14267 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5
14268 $as_echo "$ac_cv_libpth_libs" >&6; }
14269 LIBPTH="$ac_cv_libpth_libs"
14270 LTLIBPTH="$ac_cv_libpth_ltlibs"
14271 INCPTH="$ac_cv_libpth_cppflags"
14272 LIBPTH_PREFIX="$ac_cv_libpth_prefix"
14273
14274 for element in $INCPTH; do
14275 haveit=
14276 for x in $CPPFLAGS; do
14277
14278 acl_save_prefix="$prefix"
14279 prefix="$acl_final_prefix"
14280 acl_save_exec_prefix="$exec_prefix"
14281 exec_prefix="$acl_final_exec_prefix"
14282 eval x=\"$x\"
14283 exec_prefix="$acl_save_exec_prefix"
14284 prefix="$acl_save_prefix"
14285
14286 if test "X$x" = "X$element"; then
14287 haveit=yes
14288 break
14289 fi
14290 done
14291 if test -z "$haveit"; then
14292 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
14293 fi
14294 done
14295
14296
14297
14298
14299 HAVE_LIBPTH=yes
14300
14301
14302
14303 gl_have_pth=
14304 gl_save_LIBS="$LIBS"
14305 LIBS="$LIBS $LIBPTH"
14306 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14307 /* end confdefs.h. */
14308 #include <pth.h>
14309 int
14310 main ()
14311 {
14312 pth_self();
14313 ;
14314 return 0;
14315 }
14316 _ACEOF
14317 if ac_fn_c_try_link "$LINENO"; then :
14318 gl_have_pth=yes
14319 fi
14320 rm -f core conftest.err conftest.$ac_objext \
14321 conftest$ac_exeext conftest.$ac_ext
14322 LIBS="$gl_save_LIBS"
14323 if test -n "$gl_have_pth"; then
14324 gl_threads_api=pth
14325 LIBTHREAD="$LIBPTH"
14326 LTLIBTHREAD="$LTLIBPTH"
14327 LIBMULTITHREAD="$LIBTHREAD"
14328 LTLIBMULTITHREAD="$LTLIBTHREAD"
14329
14330 $as_echo "#define USE_PTH_THREADS 1" >>confdefs.h
14331
14332 if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
14333 if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
14334
14335 $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h
14336
14337 LIBTHREAD=
14338 LTLIBTHREAD=
14339 if test $gl_cv_linker_have_as_needed = yes; then
14340 if test $gl_cv_linker_have_push_state = yes; then
14341 LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
14342 else
14343 LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
14344 fi
14345 fi
14346 # TODO: May need to modify LTLIBMULTITHREAD similarly.
14347 fi
14348 fi
14349 else
14350 CPPFLAGS="$gl_save_CPPFLAGS"
1435113709 fi
1435213710 fi
1435313711 if test -z "$gl_have_pthread"; then
1499014348 case "$host_os" in
1499114349 # Guess yes on glibc systems.
1499214350 *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
14351 # Guess yes on musl systems.
14352 *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1499314353 # Guess yes on FreeBSD >= 5.
1499414354 freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
1499514355 freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1501214372 netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1501314373 # Guess yes on BeOS.
1501414374 beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
14375 # Guess yes on Android.
14376 linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1501514377 # Guess yes on MSVC, no on mingw.
1501614378 mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1501714379 /* end confdefs.h. */
1519814560 GL_GENERATE_ALLOCA_H_TRUE='#'
1519914561 GL_GENERATE_ALLOCA_H_FALSE=
1520014562 fi
14563
14564
14565 if test $ac_cv_working_alloca_h = yes; then
14566 HAVE_ALLOCA_H=1
14567 else
14568 HAVE_ALLOCA_H=0
14569 fi
1520114570
1520214571
1520314572 :
1851917888 case "$host_os" in
1852017889 # Guess yes on glibc systems.
1852117890 *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
17891 # Guess yes on musl systems.
17892 *-musl*) gl_cv_func_working_strerror="guessing yes" ;;
1852217893 # If we don't know, assume the worst.
1852317894 *) gl_cv_func_working_strerror="guessing no" ;;
1852417895 esac
1943718808
1943818809 if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes; then
1943918810 HAVE_WCWIDTH=1
19440 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
18811 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
1944118812 $as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; }
1944218813 if ${gl_cv_func_wcwidth_works+:} false; then :
1944318814 $as_echo_n "(cached) " >&6
1944618817 if test "$cross_compiling" = yes; then :
1944718818
1944818819 case "$host_os" in
19449 # Guess yes on glibc and AIX 7 systems.
19450 *-gnu* | gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
19451 *) gl_cv_func_wcwidth_works="guessing no";;
18820 # Guess yes on glibc systems.
18821 *-gnu* | gnu*) gl_cv_func_wcwidth_works="guessing yes";;
18822 # Guess yes on musl systems.
18823 *-musl*) gl_cv_func_wcwidth_works="guessing yes";;
18824 # Guess yes on AIX 7 systems.
18825 aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
18826 *) gl_cv_func_wcwidth_works="guessing no";;
1945218827 esac
1945318828
1945418829 else
1947618851 int main ()
1947718852 {
1947818853 int result = 0;
19479 if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
18854 if (setlocale (LC_ALL, "en_US.UTF-8") != NULL)
1948018855 {
1948118856 if (wcwidth (0x0301) > 0)
1948218857 result |= 1;
1948618861 result |= 4;
1948718862 if (wcwidth (0xFF1A) == 0)
1948818863 result |= 8;
18864 if (wcwidth (0x2202) > 1)
18865 result |= 16;
1948918866 }
1949018867 return result;
1949118868 }
1956718944 gl_gnulib_enabled_threadlib=false
1956818945 gl_gnulib_enabled_vasnprintf=false
1956918946 gl_gnulib_enabled_wcrtomb=false
18947 gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=false
18948 gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=false
18949 gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=false
18950 gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=false
1957018951 gl_gnulib_enabled_xsize=false
1957118952 func_gl_gnulib_m4code_btowc ()
1957218953 {
2058919970
2059019971 gl_gnulib_enabled_lock=true
2059119972 func_gl_gnulib_m4code_threadlib
19973 if test $gl_threads_api = windows; then
19974 func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440
19975 fi
19976 if test $gl_threads_api = windows; then
19977 func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab
19978 fi
19979 if test $gl_threads_api = windows; then
19980 func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354
19981 fi
19982 if test $gl_threads_api = windows; then
19983 func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef
19984 fi
2059219985 fi
2059319986 }
2059419987 func_gl_gnulib_m4code_mbtowc ()
2059719990
2059819991
2059919992
20600 if false; then
20601 REPLACE_MBTOWC=1
19993 for ac_func in mbtowc
19994 do :
19995 ac_fn_c_check_func "$LINENO" "mbtowc" "ac_cv_func_mbtowc"
19996 if test "x$ac_cv_func_mbtowc" = xyes; then :
19997 cat >>confdefs.h <<_ACEOF
19998 #define HAVE_MBTOWC 1
19999 _ACEOF
20000
20001 fi
20002 done
20003
20004 if test $ac_cv_func_mbtowc = no; then
20005 HAVE_MBTOWC=0
20006 else
20007 if false; then
20008 REPLACE_MBTOWC=1
20009 fi
2060220010 fi
2060320011
20604 if test $REPLACE_MBTOWC = 1; then
20012 if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then
2060520013
2060620014
2060720015
2140820816 {
2140920817 if ! $gl_gnulib_enabled_threadlib; then
2141020818
21411
21412
21413
2141420819 gl_gnulib_enabled_threadlib=true
2141520820 fi
2141620821 }
2168821093 else
2168921094 if test $REPLACE_MBSTATE_T = 1; then
2169021095 REPLACE_WCRTOMB=1
21691 else
21692
21693
21694
21695
21696
21697 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
21096 fi
21097 if test $REPLACE_WCRTOMB = 0; then
21098
21099
21100
21101
21102
21103 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb works in the C locale" >&5
21104 $as_echo_n "checking whether wcrtomb works in the C locale... " >&6; }
21105 if ${gl_cv_func_wcrtomb_works+:} false; then :
21106 $as_echo_n "(cached) " >&6
21107 else
21108 if test "$cross_compiling" = yes; then :
21109 case "$host_os" in
21110 # Guess no on Android.
21111 linux*-android*) gl_cv_func_wcrtomb_works="guessing no";;
21112 # Guess yes otherwise.
21113 *) gl_cv_func_wcrtomb_works="guessing yes";;
21114 esac
21115
21116 else
21117 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21118 /* end confdefs.h. */
21119
21120 #include <string.h>
21121 #include <stdlib.h>
21122 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
21123 <wchar.h>.
21124 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
21125 included before <wchar.h>. */
21126 #include <stddef.h>
21127 #include <stdio.h>
21128 #include <wchar.h>
21129 int main ()
21130 {
21131 mbstate_t state;
21132 char out[64];
21133 int count;
21134 memset (&state, 0, sizeof (state));
21135 out[0] = 'x';
21136 count = wcrtomb (out, L'a', &state);
21137 return !(count == 1 && out[0] == 'a');
21138 }
21139 _ACEOF
21140 if ac_fn_c_try_run "$LINENO"; then :
21141 gl_cv_func_wcrtomb_works=yes
21142 else
21143 gl_cv_func_wcrtomb_works=no
21144 fi
21145 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
21146 conftest.$ac_objext conftest.beam conftest.$ac_ext
21147 fi
21148
21149
21150 fi
21151 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_works" >&5
21152 $as_echo "$gl_cv_func_wcrtomb_works" >&6; }
21153 case "$gl_cv_func_wcrtomb_works" in
21154 *yes) ;;
21155 *) REPLACE_WCRTOMB=1 ;;
21156 esac
21157 fi
21158 if test $REPLACE_WCRTOMB = 0; then
21159 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
2169821160 $as_echo_n "checking whether wcrtomb return value is correct... " >&6; }
2169921161 if ${gl_cv_func_wcrtomb_retval+:} false; then :
2170021162 $as_echo_n "(cached) " >&6
2180521267 gl_gnulib_enabled_wcrtomb=true
2180621268 fi
2180721269 }
21270 func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440 ()
21271 {
21272 if ! $gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440; then
21273
21274 case "$host_os" in
21275 mingw*)
21276
21277
21278
21279
21280
21281
21282
21283
21284 gl_LIBOBJS="$gl_LIBOBJS windows-mutex.$ac_objext"
21285
21286 ;;
21287 esac
21288 gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=true
21289 fi
21290 }
21291 func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab ()
21292 {
21293 if ! $gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab; then
21294
21295 case "$host_os" in
21296 mingw*)
21297
21298
21299
21300
21301
21302
21303
21304
21305 gl_LIBOBJS="$gl_LIBOBJS windows-once.$ac_objext"
21306
21307 ;;
21308 esac
21309 gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=true
21310 fi
21311 }
21312 func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354 ()
21313 {
21314 if ! $gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354; then
21315
21316 case "$host_os" in
21317 mingw*)
21318
21319
21320
21321
21322
21323
21324
21325
21326 gl_LIBOBJS="$gl_LIBOBJS windows-recmutex.$ac_objext"
21327
21328 ;;
21329 esac
21330 gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=true
21331 fi
21332 }
21333 func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef ()
21334 {
21335 if ! $gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef; then
21336
21337 case "$host_os" in
21338 mingw*)
21339
21340
21341
21342
21343
21344
21345
21346
21347 gl_LIBOBJS="$gl_LIBOBJS windows-rwlock.$ac_objext"
21348
21349 ;;
21350 esac
21351 gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=true
21352 fi
21353 }
2180821354 func_gl_gnulib_m4code_xsize ()
2180921355 {
2181021356 if ! $gl_gnulib_enabled_xsize; then
2184721393 fi
2184821394 if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
2184921395 func_gl_gnulib_m4code_localcharset
21396 fi
21397 if test $HAVE_MBRTOWC = 0 || { test $REPLACE_MBRTOWC = 1 && { test $HAVE_MBSINIT = 0 || test $REPLACE_MBSTATE_T = 1; }; }; then
21398 func_gl_gnulib_m4code_lock
2185021399 fi
2185121400 if test $ac_use_included_regex = yes; then
2185221401 func_gl_gnulib_m4code_btowc
2207521624 else
2207621625 gl_GNULIB_ENABLED_wcrtomb_TRUE='#'
2207721626 gl_GNULIB_ENABLED_wcrtomb_FALSE=
21627 fi
21628
21629 if $gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440; then
21630 gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE=
21631 gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE='#'
21632 else
21633 gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE='#'
21634 gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE=
21635 fi
21636
21637 if $gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab; then
21638 gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE=
21639 gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE='#'
21640 else
21641 gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE='#'
21642 gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE=
21643 fi
21644
21645 if $gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354; then
21646 gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE=
21647 gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE='#'
21648 else
21649 gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE='#'
21650 gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE=
21651 fi
21652
21653 if $gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef; then
21654 gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE=
21655 gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE='#'
21656 else
21657 gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE='#'
21658 gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE=
2207821659 fi
2207921660
2208021661 if $gl_gnulib_enabled_xsize; then
2475024331 as_fn_error $? "conditional \"gl_GNULIB_ENABLED_wcrtomb\" was never defined.
2475124332 Usually this means the macro was only invoked conditionally." "$LINENO" 5
2475224333 fi
24334 if test -z "${gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_TRUE}" && test -z "${gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440_FALSE}"; then
24335 as_fn_error $? "conditional \"gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440\" was never defined.
24336 Usually this means the macro was only invoked conditionally." "$LINENO" 5
24337 fi
24338 if test -z "${gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_TRUE}" && test -z "${gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab_FALSE}"; then
24339 as_fn_error $? "conditional \"gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab\" was never defined.
24340 Usually this means the macro was only invoked conditionally." "$LINENO" 5
24341 fi
24342 if test -z "${gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_TRUE}" && test -z "${gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354_FALSE}"; then
24343 as_fn_error $? "conditional \"gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354\" was never defined.
24344 Usually this means the macro was only invoked conditionally." "$LINENO" 5
24345 fi
24346 if test -z "${gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_TRUE}" && test -z "${gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef_FALSE}"; then
24347 as_fn_error $? "conditional \"gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef\" was never defined.
24348 Usually this means the macro was only invoked conditionally." "$LINENO" 5
24349 fi
2475324350 if test -z "${gl_GNULIB_ENABLED_xsize_TRUE}" && test -z "${gl_GNULIB_ENABLED_xsize_FALSE}"; then
2475424351 as_fn_error $? "conditional \"gl_GNULIB_ENABLED_xsize\" was never defined.
2475524352 Usually this means the macro was only invoked conditionally." "$LINENO" 5
2521924816 # report actual input values of CONFIG_FILES etc. instead of their
2522024817 # values after options handling.
2522124818 ac_log="
25222 This file was extended by GNU Texinfo $as_me 6.6.91, which was
24819 This file was extended by GNU Texinfo $as_me 6.6.92, which was
2522324820 generated by GNU Autoconf 2.69. Invocation command line was
2522424821
2522524822 CONFIG_FILES = $CONFIG_FILES
2528724884 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2528824885 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
2528924886 ac_cs_version="\\
25290 GNU Texinfo config.status 6.6.91
24887 GNU Texinfo config.status 6.6.92
2529124888 configured by $0, generated by GNU Autoconf 2.69,
2529224889 with options \\"\$ac_cs_config\\"
2529324890
99 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1010 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1111 #
12 AC_INIT([GNU Texinfo], [6.6.91], [bug-texinfo@gnu.org])
12 AC_INIT([GNU Texinfo], [6.6.92], [bug-texinfo@gnu.org])
1313
1414 dnl Must come before AM_INIT_AUTOMAKE.
1515 AC_CONFIG_AUX_DIR([build-aux])
419419 GNULIB_CHDIR = @GNULIB_CHDIR@
420420 GNULIB_CHOWN = @GNULIB_CHOWN@
421421 GNULIB_CLOSE = @GNULIB_CLOSE@
422 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
422423 GNULIB_DPRINTF = @GNULIB_DPRINTF@
423424 GNULIB_DUP = @GNULIB_DUP@
424425 GNULIB_DUP2 = @GNULIB_DUP2@
574575 GNULIB_STRSTR = @GNULIB_STRSTR@
575576 GNULIB_STRTOD = @GNULIB_STRTOD@
576577 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
578 GNULIB_STRTOLD = @GNULIB_STRTOLD@
577579 GNULIB_STRTOLL = @GNULIB_STRTOLL@
578580 GNULIB_STRTOULL = @GNULIB_STRTOULL@
579581 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
641643 GNULIB_WRITE = @GNULIB_WRITE@
642644 GNULIB__EXIT = @GNULIB__EXIT@
643645 GREP = @GREP@
646 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
644647 HAVE_ATOLL = @HAVE_ATOLL@
645648 HAVE_BTOWC = @HAVE_BTOWC@
646649 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
647650 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
648651 HAVE_CHOWN = @HAVE_CHOWN@
652 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
649653 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
650654 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
651655 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
711715 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
712716 HAVE_GRANTPT = @HAVE_GRANTPT@
713717 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
718 HAVE_INITSTATE = @HAVE_INITSTATE@
714719 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
715720 HAVE_ISWBLANK = @HAVE_ISWBLANK@
716721 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
731736 HAVE_MBSLEN = @HAVE_MBSLEN@
732737 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
733738 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
739 HAVE_MBTOWC = @HAVE_MBTOWC@
734740 HAVE_MEMCHR = @HAVE_MEMCHR@
735741 HAVE_MEMPCPY = @HAVE_MEMPCPY@
736742 HAVE_MKDTEMP = @HAVE_MKDTEMP@
765771 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
766772 HAVE_SETENV = @HAVE_SETENV@
767773 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
774 HAVE_SETSTATE = @HAVE_SETSTATE@
768775 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
769776 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
770777 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
779786 HAVE_STRPBRK = @HAVE_STRPBRK@
780787 HAVE_STRSEP = @HAVE_STRSEP@
781788 HAVE_STRTOD = @HAVE_STRTOD@
789 HAVE_STRTOLD = @HAVE_STRTOLD@
782790 HAVE_STRTOLL = @HAVE_STRTOLL@
783791 HAVE_STRTOULL = @HAVE_STRTOULL@
784792 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
857865 LIBINTL = @LIBINTL@
858866 LIBMULTITHREAD = @LIBMULTITHREAD@
859867 LIBOBJS = @LIBOBJS@
860 LIBPTH = @LIBPTH@
861 LIBPTH_PREFIX = @LIBPTH_PREFIX@
862868 LIBS = @LIBS@
863869 LIBTHREAD = @LIBTHREAD@
864870 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
874880 LTLIBINTL = @LTLIBINTL@
875881 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
876882 LTLIBOBJS = @LTLIBOBJS@
877 LTLIBPTH = @LTLIBPTH@
878883 LTLIBTHREAD = @LTLIBTHREAD@
879884 MAKEINFO = $(MAKEINFO_ENVIRONMENT) $(PERL) $(top_builddir)/tp/texi2any
880885 MKDIR_P = @MKDIR_P@
971976 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
972977 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
973978 REPLACE_GETPASS = @REPLACE_GETPASS@
979 REPLACE_INITSTATE = @REPLACE_INITSTATE@
974980 REPLACE_ISATTY = @REPLACE_ISATTY@
975981 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
976982 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
10041010 REPLACE_PUTENV = @REPLACE_PUTENV@
10051011 REPLACE_PWRITE = @REPLACE_PWRITE@
10061012 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1013 REPLACE_RANDOM = @REPLACE_RANDOM@
10071014 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
10081015 REPLACE_READ = @REPLACE_READ@
10091016 REPLACE_READLINK = @REPLACE_READLINK@
10161023 REPLACE_RMDIR = @REPLACE_RMDIR@
10171024 REPLACE_SETENV = @REPLACE_SETENV@
10181025 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1026 REPLACE_SETSTATE = @REPLACE_SETSTATE@
10191027 REPLACE_SLEEP = @REPLACE_SLEEP@
10201028 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
10211029 REPLACE_SPRINTF = @REPLACE_SPRINTF@
10341042 REPLACE_STRSTR = @REPLACE_STRSTR@
10351043 REPLACE_STRTOD = @REPLACE_STRTOD@
10361044 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1045 REPLACE_STRTOLD = @REPLACE_STRTOLD@
10371046 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
10381047 REPLACE_SYMLINK = @REPLACE_SYMLINK@
10391048 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
00 @set UPDATED 25 August 2019
11 @set UPDATED-MONTH August 2019
2 @set EDITION 6.6.91
3 @set VERSION 6.6.91
2 @set EDITION 6.6.92
3 @set VERSION 6.6.92
00 @set UPDATED 25 August 2019
11 @set UPDATED-MONTH August 2019
2 @set EDITION 6.6.91
3 @set VERSION 6.6.91
2 @set EDITION 6.6.92
3 @set VERSION 6.6.92
288288 GNULIB_CHDIR = @GNULIB_CHDIR@
289289 GNULIB_CHOWN = @GNULIB_CHOWN@
290290 GNULIB_CLOSE = @GNULIB_CLOSE@
291 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
291292 GNULIB_DPRINTF = @GNULIB_DPRINTF@
292293 GNULIB_DUP = @GNULIB_DUP@
293294 GNULIB_DUP2 = @GNULIB_DUP2@
443444 GNULIB_STRSTR = @GNULIB_STRSTR@
444445 GNULIB_STRTOD = @GNULIB_STRTOD@
445446 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
447 GNULIB_STRTOLD = @GNULIB_STRTOLD@
446448 GNULIB_STRTOLL = @GNULIB_STRTOLL@
447449 GNULIB_STRTOULL = @GNULIB_STRTOULL@
448450 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
510512 GNULIB_WRITE = @GNULIB_WRITE@
511513 GNULIB__EXIT = @GNULIB__EXIT@
512514 GREP = @GREP@
515 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
513516 HAVE_ATOLL = @HAVE_ATOLL@
514517 HAVE_BTOWC = @HAVE_BTOWC@
515518 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
516519 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
517520 HAVE_CHOWN = @HAVE_CHOWN@
521 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
518522 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
519523 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
520524 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
580584 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
581585 HAVE_GRANTPT = @HAVE_GRANTPT@
582586 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
587 HAVE_INITSTATE = @HAVE_INITSTATE@
583588 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
584589 HAVE_ISWBLANK = @HAVE_ISWBLANK@
585590 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
600605 HAVE_MBSLEN = @HAVE_MBSLEN@
601606 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
602607 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
608 HAVE_MBTOWC = @HAVE_MBTOWC@
603609 HAVE_MEMCHR = @HAVE_MEMCHR@
604610 HAVE_MEMPCPY = @HAVE_MEMPCPY@
605611 HAVE_MKDTEMP = @HAVE_MKDTEMP@
634640 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
635641 HAVE_SETENV = @HAVE_SETENV@
636642 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
643 HAVE_SETSTATE = @HAVE_SETSTATE@
637644 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
638645 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
639646 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
648655 HAVE_STRPBRK = @HAVE_STRPBRK@
649656 HAVE_STRSEP = @HAVE_STRSEP@
650657 HAVE_STRTOD = @HAVE_STRTOD@
658 HAVE_STRTOLD = @HAVE_STRTOLD@
651659 HAVE_STRTOLL = @HAVE_STRTOLL@
652660 HAVE_STRTOULL = @HAVE_STRTOULL@
653661 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
726734 LIBINTL = @LIBINTL@
727735 LIBMULTITHREAD = @LIBMULTITHREAD@
728736 LIBOBJS = @LIBOBJS@
729 LIBPTH = @LIBPTH@
730 LIBPTH_PREFIX = @LIBPTH_PREFIX@
731737 LIBS = @LIBS@
732738 LIBTHREAD = @LIBTHREAD@
733739 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
743749 LTLIBINTL = @LTLIBINTL@
744750 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
745751 LTLIBOBJS = @LTLIBOBJS@
746 LTLIBPTH = @LTLIBPTH@
747752 LTLIBTHREAD = @LTLIBTHREAD@
748753
749754 # Use the programs built in our distribution, taking account of possible
843848 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
844849 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
845850 REPLACE_GETPASS = @REPLACE_GETPASS@
851 REPLACE_INITSTATE = @REPLACE_INITSTATE@
846852 REPLACE_ISATTY = @REPLACE_ISATTY@
847853 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
848854 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
876882 REPLACE_PUTENV = @REPLACE_PUTENV@
877883 REPLACE_PWRITE = @REPLACE_PWRITE@
878884 REPLACE_QSORT_R = @REPLACE_QSORT_R@
885 REPLACE_RANDOM = @REPLACE_RANDOM@
879886 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
880887 REPLACE_READ = @REPLACE_READ@
881888 REPLACE_READLINK = @REPLACE_READLINK@
888895 REPLACE_RMDIR = @REPLACE_RMDIR@
889896 REPLACE_SETENV = @REPLACE_SETENV@
890897 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
898 REPLACE_SETSTATE = @REPLACE_SETSTATE@
891899 REPLACE_SLEEP = @REPLACE_SLEEP@
892900 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
893901 REPLACE_SPRINTF = @REPLACE_SPRINTF@
906914 REPLACE_STRSTR = @REPLACE_STRSTR@
907915 REPLACE_STRTOD = @REPLACE_STRTOD@
908916 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
917 REPLACE_STRTOLD = @REPLACE_STRTOLD@
909918 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
910919 REPLACE_SYMLINK = @REPLACE_SYMLINK@
911920 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
00 @set UPDATED 25 August 2019
11 @set UPDATED-MONTH August 2019
2 @set EDITION 6.6.91
3 @set VERSION 6.6.91
2 @set EDITION 6.6.92
3 @set VERSION 6.6.92
00 @set UPDATED 25 August 2019
11 @set UPDATED-MONTH August 2019
2 @set EDITION 6.6.91
3 @set VERSION 6.6.91
2 @set EDITION 6.6.92
3 @set VERSION 6.6.92
9898 alloca.h: alloca.in.h $(top_builddir)/config.status
9999 $(AM_V_GEN)rm -f $@-t $@ && \
100100 { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
101 cat $(srcdir)/alloca.in.h; \
101 sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \
102102 } > $@-t && \
103103 mv -f $@-t $@
104104 else
10071007 -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
10081008 -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
10091009 -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
1010 -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \
10101011 -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
10111012 -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
10121013 -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
10201021 -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
10211022 -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
10221023 -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
1024 -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \
10231025 -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \
1026 -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \
10241027 -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
10251028 -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
10261029 -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
10381041 -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
10391042 -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
10401043 -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
1044 -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \
10411045 -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \
10421046 -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
1047 -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \
10431048 -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
10441049 -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
10451050 -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
10481053 -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
10491054 -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
10501055 -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
1056 -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \
10511057 -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
10521058 -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
10531059 -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
10551061 -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
10561062 -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
10571063 -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \
1064 -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
10581065 -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
10591066 -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
10601067 -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
10611068 -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
1069 -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \
10621070 -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
1071 -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \
10631072 -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
10641073 -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
10651074 -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
13651374 -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
13661375 -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
13671376 -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
1377 -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \
13681378 -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
13691379 -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
13701380 -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
14151425 -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
14161426 < $(srcdir)/unistd.in.h | \
14171427 sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
1428 -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \
14181429 -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
14191430 -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
14201431 -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
17631774
17641775 ## end gnulib module wcwidth
17651776
1777 ## begin gnulib module windows-mutex
1778
1779 if gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440
1780
1781 endif
1782 EXTRA_DIST += windows-initguard.h windows-mutex.c windows-mutex.h
1783
1784 EXTRA_libgnu_a_SOURCES += windows-mutex.c
1785
1786 ## end gnulib module windows-mutex
1787
1788 ## begin gnulib module windows-once
1789
1790 if gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab
1791
1792 endif
1793 EXTRA_DIST += windows-once.c windows-once.h
1794
1795 EXTRA_libgnu_a_SOURCES += windows-once.c
1796
1797 ## end gnulib module windows-once
1798
1799 ## begin gnulib module windows-recmutex
1800
1801 if gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354
1802
1803 endif
1804 EXTRA_DIST += windows-initguard.h windows-recmutex.c windows-recmutex.h
1805
1806 EXTRA_libgnu_a_SOURCES += windows-recmutex.c
1807
1808 ## end gnulib module windows-recmutex
1809
1810 ## begin gnulib module windows-rwlock
1811
1812 if gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef
1813
1814 endif
1815 EXTRA_DIST += windows-initguard.h windows-rwlock.c windows-rwlock.h
1816
1817 EXTRA_libgnu_a_SOURCES += windows-rwlock.c
1818
1819 ## end gnulib module windows-rwlock
1820
17661821 ## begin gnulib module xalloc
17671822
17681823 libgnu_a_SOURCES += xmalloc.c
348348 ./$(DEPDIR)/strstr.Po ./$(DEPDIR)/unistd.Po \
349349 ./$(DEPDIR)/vasnprintf.Po ./$(DEPDIR)/vasprintf.Po \
350350 ./$(DEPDIR)/wcrtomb.Po ./$(DEPDIR)/wctype-h.Po \
351 ./$(DEPDIR)/wcwidth.Po ./$(DEPDIR)/xalloc-die.Po \
351 ./$(DEPDIR)/wcwidth.Po ./$(DEPDIR)/windows-mutex.Po \
352 ./$(DEPDIR)/windows-once.Po ./$(DEPDIR)/windows-recmutex.Po \
353 ./$(DEPDIR)/windows-rwlock.Po ./$(DEPDIR)/xalloc-die.Po \
352354 ./$(DEPDIR)/xmalloc.Po ./$(DEPDIR)/xsize.Po \
353355 glthread/$(DEPDIR)/lock.Po glthread/$(DEPDIR)/threadlib.Po \
354356 uniwidth/$(DEPDIR)/width.Po
492494 GNULIB_CHDIR = @GNULIB_CHDIR@
493495 GNULIB_CHOWN = @GNULIB_CHOWN@
494496 GNULIB_CLOSE = @GNULIB_CLOSE@
497 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
495498 GNULIB_DPRINTF = @GNULIB_DPRINTF@
496499 GNULIB_DUP = @GNULIB_DUP@
497500 GNULIB_DUP2 = @GNULIB_DUP2@
647650 GNULIB_STRSTR = @GNULIB_STRSTR@
648651 GNULIB_STRTOD = @GNULIB_STRTOD@
649652 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
653 GNULIB_STRTOLD = @GNULIB_STRTOLD@
650654 GNULIB_STRTOLL = @GNULIB_STRTOLL@
651655 GNULIB_STRTOULL = @GNULIB_STRTOULL@
652656 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
714718 GNULIB_WRITE = @GNULIB_WRITE@
715719 GNULIB__EXIT = @GNULIB__EXIT@
716720 GREP = @GREP@
721 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
717722 HAVE_ATOLL = @HAVE_ATOLL@
718723 HAVE_BTOWC = @HAVE_BTOWC@
719724 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
720725 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
721726 HAVE_CHOWN = @HAVE_CHOWN@
727 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
722728 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
723729 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
724730 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
784790 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
785791 HAVE_GRANTPT = @HAVE_GRANTPT@
786792 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
793 HAVE_INITSTATE = @HAVE_INITSTATE@
787794 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
788795 HAVE_ISWBLANK = @HAVE_ISWBLANK@
789796 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
804811 HAVE_MBSLEN = @HAVE_MBSLEN@
805812 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
806813 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
814 HAVE_MBTOWC = @HAVE_MBTOWC@
807815 HAVE_MEMCHR = @HAVE_MEMCHR@
808816 HAVE_MEMPCPY = @HAVE_MEMPCPY@
809817 HAVE_MKDTEMP = @HAVE_MKDTEMP@
838846 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
839847 HAVE_SETENV = @HAVE_SETENV@
840848 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
849 HAVE_SETSTATE = @HAVE_SETSTATE@
841850 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
842851 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
843852 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
852861 HAVE_STRPBRK = @HAVE_STRPBRK@
853862 HAVE_STRSEP = @HAVE_STRSEP@
854863 HAVE_STRTOD = @HAVE_STRTOD@
864 HAVE_STRTOLD = @HAVE_STRTOLD@
855865 HAVE_STRTOLL = @HAVE_STRTOLL@
856866 HAVE_STRTOULL = @HAVE_STRTOULL@
857867 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
930940 LIBINTL = @LIBINTL@
931941 LIBMULTITHREAD = @LIBMULTITHREAD@
932942 LIBOBJS = @LIBOBJS@
933 LIBPTH = @LIBPTH@
934 LIBPTH_PREFIX = @LIBPTH_PREFIX@
935943 LIBS = @LIBS@
936944 LIBTHREAD = @LIBTHREAD@
937945 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
947955 LTLIBINTL = @LTLIBINTL@
948956 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
949957 LTLIBOBJS = @LTLIBOBJS@
950 LTLIBPTH = @LTLIBPTH@
951958 LTLIBTHREAD = @LTLIBTHREAD@
952959 MAKEINFO = @MAKEINFO@
953960 MKDIR_P = @MKDIR_P@
10441051 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
10451052 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
10461053 REPLACE_GETPASS = @REPLACE_GETPASS@
1054 REPLACE_INITSTATE = @REPLACE_INITSTATE@
10471055 REPLACE_ISATTY = @REPLACE_ISATTY@
10481056 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
10491057 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
10771085 REPLACE_PUTENV = @REPLACE_PUTENV@
10781086 REPLACE_PWRITE = @REPLACE_PWRITE@
10791087 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1088 REPLACE_RANDOM = @REPLACE_RANDOM@
10801089 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
10811090 REPLACE_READ = @REPLACE_READ@
10821091 REPLACE_READLINK = @REPLACE_READLINK@
10891098 REPLACE_RMDIR = @REPLACE_RMDIR@
10901099 REPLACE_SETENV = @REPLACE_SETENV@
10911100 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1101 REPLACE_SETSTATE = @REPLACE_SETSTATE@
10921102 REPLACE_SLEEP = @REPLACE_SLEEP@
10931103 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
10941104 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11071117 REPLACE_STRSTR = @REPLACE_STRSTR@
11081118 REPLACE_STRTOD = @REPLACE_STRTOD@
11091119 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1120 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11101121 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11111122 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11121123 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
12471258 float+.h printf-args.c printf-args.h printf-parse.c \
12481259 printf-parse.h vasnprintf.c vasnprintf.h asprintf.c \
12491260 vasprintf.c verify.h wchar.in.h wcrtomb.c wctype.in.h \
1250 wcwidth.c xalloc.h xalloc-oversized.h
1261 wcwidth.c windows-initguard.h windows-mutex.c windows-mutex.h \
1262 windows-once.c windows-once.h windows-initguard.h \
1263 windows-recmutex.c windows-recmutex.h windows-initguard.h \
1264 windows-rwlock.c windows-rwlock.h xalloc.h xalloc-oversized.h
12511265 BUILT_SOURCES = $(ALLOCA_H) $(ARGZ_H) $(ERRNO_H) $(FLOAT_H) \
12521266 $(GETOPT_H) $(GETOPT_CDEFS_H) $(am__append_2) $(LIMITS_H) \
12531267 $(am__append_5) $(STDARG_H) $(STDBOOL_H) $(STDDEF_H) \
12881302 regex_internal.c regexec.c stpcpy.c strcasecmp.c strncasecmp.c \
12891303 strcasestr.c strdup.c strerror.c strerror-override.c strndup.c \
12901304 strnlen.c strstr.c asnprintf.c printf-args.c printf-parse.c \
1291 vasnprintf.c asprintf.c vasprintf.c wcrtomb.c wcwidth.c
1305 vasnprintf.c asprintf.c vasprintf.c wcrtomb.c wcwidth.c \
1306 windows-mutex.c windows-once.c windows-recmutex.c \
1307 windows-rwlock.c
12921308
12931309 # Use this preprocessor expression to decide whether #include_next works.
12941310 # Do not rely on a 'configure'-time test for this, since the expression
14551471 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ # am--include-marker
14561472 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ # am--include-marker
14571473 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@ # am--include-marker
1474 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-mutex.Po@am__quote@ # am--include-marker
1475 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-once.Po@am__quote@ # am--include-marker
1476 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-recmutex.Po@am__quote@ # am--include-marker
1477 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-rwlock.Po@am__quote@ # am--include-marker
14581478 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ # am--include-marker
14591479 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ # am--include-marker
14601480 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Po@am__quote@ # am--include-marker
17541774 -rm -f ./$(DEPDIR)/wcrtomb.Po
17551775 -rm -f ./$(DEPDIR)/wctype-h.Po
17561776 -rm -f ./$(DEPDIR)/wcwidth.Po
1777 -rm -f ./$(DEPDIR)/windows-mutex.Po
1778 -rm -f ./$(DEPDIR)/windows-once.Po
1779 -rm -f ./$(DEPDIR)/windows-recmutex.Po
1780 -rm -f ./$(DEPDIR)/windows-rwlock.Po
17571781 -rm -f ./$(DEPDIR)/xalloc-die.Po
17581782 -rm -f ./$(DEPDIR)/xmalloc.Po
17591783 -rm -f ./$(DEPDIR)/xsize.Po
18661890 -rm -f ./$(DEPDIR)/wcrtomb.Po
18671891 -rm -f ./$(DEPDIR)/wctype-h.Po
18681892 -rm -f ./$(DEPDIR)/wcwidth.Po
1893 -rm -f ./$(DEPDIR)/windows-mutex.Po
1894 -rm -f ./$(DEPDIR)/windows-once.Po
1895 -rm -f ./$(DEPDIR)/windows-recmutex.Po
1896 -rm -f ./$(DEPDIR)/windows-rwlock.Po
18691897 -rm -f ./$(DEPDIR)/xalloc-die.Po
18701898 -rm -f ./$(DEPDIR)/xmalloc.Po
18711899 -rm -f ./$(DEPDIR)/xsize.Po
19161944 @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
19171945 @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
19181946 @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
1919 @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \
1947 @GL_GENERATE_ALLOCA_H_TRUE@ sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \
19201948 @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \
19211949 @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@
19221950 @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
23122340 -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
23132341 -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
23142342 -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
2343 -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \
23152344 -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
23162345 -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
23172346 -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
23252354 -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
23262355 -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
23272356 -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
2357 -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \
23282358 -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \
2359 -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \
23292360 -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
23302361 -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
23312362 -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
23432374 -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
23442375 -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
23452376 -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
2377 -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \
23462378 -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \
23472379 -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
2380 -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \
23482381 -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
23492382 -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
23502383 -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
23532386 -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
23542387 -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
23552388 -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
2389 -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \
23562390 -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
23572391 -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
23582392 -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
23602394 -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
23612395 -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
23622396 -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \
2397 -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
23632398 -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
23642399 -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
23652400 -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
23662401 -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
2402 -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \
23672403 -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
2404 -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \
23682405 -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
23692406 -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
23702407 -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
25212558 -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
25222559 -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
25232560 -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
2561 -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \
25242562 -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
25252563 -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
25262564 -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
25712609 -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
25722610 < $(srcdir)/unistd.in.h | \
25732611 sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
2612 -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \
25742613 -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
25752614 -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
25762615 -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
0 /* A C macro for declaring that a function does not return.
1 Copyright (C) 2011-2019 Free Software Foundation, Inc.
2
3 This program is free software: you can redistribute it and/or modify it
4 under the terms of the GNU General Public License as published
5 by the Free Software Foundation; either version 3 of the License, or
6 (at your option) any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program. If not, see <https://www.gnu.org/licenses/>. */
15
016 #ifndef _Noreturn
1 # if 201103 <= (defined __cplusplus ? __cplusplus : 0)
17 # if (defined __cplusplus \
18 && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
19 || (defined _MSC_VER && 1900 <= _MSC_VER)))
220 # define _Noreturn [[noreturn]]
3 # elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
4 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
21 # elif ((!defined __cplusplus || defined __clang__) \
22 && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
23 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)))
524 /* _Noreturn works as-is. */
625 # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
726 # define _Noreturn __attribute__ ((__noreturn__))
3535
3636 #ifndef alloca
3737 # ifdef __GNUC__
38 /* Some version of mingw have an <alloca.h> that causes trouble when
39 included after 'alloca' gets defined as a macro. As a workaround, include
40 this <alloca.h> first and define 'alloca' as a macro afterwards. */
41 # if (defined _WIN32 && ! defined __CYGWIN__) && @HAVE_ALLOCA_H@
42 # include_next <alloca.h>
43 # endif
3844 # define alloca __builtin_alloca
3945 # elif defined _AIX
4046 # define alloca __alloca
339339 semantics.
340340
341341 clang++ identifies itself as gcc-4.2, but has support for GNU inlining
342 semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
342 semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
343343 __GNUC_GNU_INLINE__ macro definitions. */
344344 #if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
345345 || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
118118 # endif
119119 # endif
120120
121 #define program_name getprogname ()
121 # define program_name getprogname ()
122122
123123 # if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r
124124 # define __strerror_r strerror_r
6969 p = "?";
7070 return last_component (p);
7171 # elif HAVE_DECL___ARGV /* mingw, MSVC */
72 /* https://msdn.microsoft.com/en-us/library/dn727674.aspx */
72 /* https://docs.microsoft.com/en-us/cpp/c-runtime-library/argc-argv-wargv */
7373 const char *p = __argv && __argv[0] ? __argv[0] : "?";
7474 return last_component (p);
75 # elif HAVE_VAR___PROGNAME /* OpenBSD, QNX */
75 # elif HAVE_VAR___PROGNAME /* OpenBSD, Android, QNX */
7676 /* https://man.openbsd.org/style.9 */
7777 /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */
7878 /* Be careful to declare this only when we absolutely need it
8181 malfunction (have zero length) with Fedora 25's glibc. */
8282 extern char *__progname;
8383 const char *p = __progname;
84 # if defined __ANDROID__
85 return last_component (p);
86 # else
8487 return p && p[0] ? p : "?";
88 # endif
8589 # elif _AIX /* AIX */
8690 /* Idea by Bastien ROUCARIÈS,
8791 https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html
228232 {
229233 char *name = buf.pr_fname;
230234 size_t namesize = sizeof buf.pr_fname;
235 /* It may not be NUL-terminated. */
231236 char *namenul = memchr (name, '\0', namesize);
232237 size_t namelen = namenul ? namenul - name : namesize;
233238 char *namecopy = malloc (namelen + 1);
234239 if (namecopy)
235240 {
236 namecopy[namelen] = 0;
241 namecopy[namelen] = '\0';
237242 return memcpy (namecopy, name, namelen);
238243 }
239244 }
183183
184184 #include <string.h>
185185
186 #if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
187 /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
188 || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )
186 /* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported.
187 This relates to the -Wvla and -Wvla-larger-than warnings, enabled in
188 the default GCC many warnings set. This allows programs to disable use
189 of VLAs, which may be unintended, or may be awkward to support portably,
190 or may have security implications due to non-deterministic stack usage. */
191
192 #if (!defined GNULIB_NO_VLA \
193 && (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
194 /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
195 || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ ))
189196 # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
190197 #else
191198 # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
1414 along with this program; if not, see <https://www.gnu.org/licenses/>. */
1515
1616 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
18 gthr-win32.h. */
17 Based on GCC's gthr-posix.h, gthr-posix95.h. */
1918
2019 #include <config.h>
2120
499498
500499 /* ========================================================================= */
501500
502 #if USE_PTH_THREADS
503
504 /* Use the GNU Pth threads library. */
505
506 /* -------------------------- gl_lock_t datatype -------------------------- */
507
508 /* ------------------------- gl_rwlock_t datatype ------------------------- */
509
510 # if !HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER
511
512 int
513 glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
514 {
515 if (!pth_mutex_init (&lock->lock))
516 return errno;
517 if (!pth_cond_init (&lock->waiting_readers))
518 return errno;
519 if (!pth_cond_init (&lock->waiting_writers))
520 return errno;
521 lock->waiting_writers_count = 0;
522 lock->runcount = 0;
523 lock->initialized = 1;
524 return 0;
525 }
526
527 int
528 glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
529 {
530 if (!lock->initialized)
531 glthread_rwlock_init_multithreaded (lock);
532 if (!pth_mutex_acquire (&lock->lock, 0, NULL))
533 return errno;
534 /* Test whether only readers are currently running, and whether the runcount
535 field will not overflow, and whether no writer is waiting. The latter
536 condition is because POSIX recommends that "write locks shall take
537 precedence over read locks", to avoid "writer starvation". */
538 while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0))
539 {
540 /* This thread has to wait for a while. Enqueue it among the
541 waiting_readers. */
542 if (!pth_cond_await (&lock->waiting_readers, &lock->lock, NULL))
543 {
544 int err = errno;
545 pth_mutex_release (&lock->lock);
546 return err;
547 }
548 }
549 lock->runcount++;
550 return (!pth_mutex_release (&lock->lock) ? errno : 0);
551 }
552
553 int
554 glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
555 {
556 if (!lock->initialized)
557 glthread_rwlock_init_multithreaded (lock);
558 if (!pth_mutex_acquire (&lock->lock, 0, NULL))
559 return errno;
560 /* Test whether no readers or writers are currently running. */
561 while (!(lock->runcount == 0))
562 {
563 /* This thread has to wait for a while. Enqueue it among the
564 waiting_writers. */
565 lock->waiting_writers_count++;
566 if (!pth_cond_await (&lock->waiting_writers, &lock->lock, NULL))
567 {
568 int err = errno;
569 lock->waiting_writers_count--;
570 pth_mutex_release (&lock->lock);
571 return err;
572 }
573 lock->waiting_writers_count--;
574 }
575 lock->runcount--; /* runcount becomes -1 */
576 return (!pth_mutex_release (&lock->lock) ? errno : 0);
577 }
578
579 int
580 glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
581 {
582 int err;
583
584 if (!lock->initialized)
585 return EINVAL;
586 if (!pth_mutex_acquire (&lock->lock, 0, NULL))
587 return errno;
588 if (lock->runcount < 0)
589 {
590 /* Drop a writer lock. */
591 if (!(lock->runcount == -1))
592 {
593 pth_mutex_release (&lock->lock);
594 return EINVAL;
595 }
596 lock->runcount = 0;
597 }
598 else
599 {
600 /* Drop a reader lock. */
601 if (!(lock->runcount > 0))
602 {
603 pth_mutex_release (&lock->lock);
604 return EINVAL;
605 }
606 lock->runcount--;
607 }
608 if (lock->runcount == 0)
609 {
610 /* POSIX recommends that "write locks shall take precedence over read
611 locks", to avoid "writer starvation". */
612 if (lock->waiting_writers_count > 0)
613 {
614 /* Wake up one of the waiting writers. */
615 if (!pth_cond_notify (&lock->waiting_writers, FALSE))
616 {
617 int err = errno;
618 pth_mutex_release (&lock->lock);
619 return err;
620 }
621 }
622 else
623 {
624 /* Wake up all waiting readers. */
625 if (!pth_cond_notify (&lock->waiting_readers, TRUE))
626 {
627 int err = errno;
628 pth_mutex_release (&lock->lock);
629 return err;
630 }
631 }
632 }
633 return (!pth_mutex_release (&lock->lock) ? errno : 0);
634 }
635
636 int
637 glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
638 {
639 lock->initialized = 0;
640 return 0;
641 }
642
643 # endif
644
645 /* --------------------- gl_recursive_lock_t datatype --------------------- */
646
647 /* -------------------------- gl_once_t datatype -------------------------- */
648
649 static void
650 glthread_once_call (void *arg)
651 {
652 void (**gl_once_temp_addr) (void) = (void (**) (void)) arg;
653 void (*initfunction) (void) = *gl_once_temp_addr;
654 initfunction ();
655 }
656
657 int
658 glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void))
659 {
660 void (*temp) (void) = initfunction;
661 return (!pth_once (once_control, glthread_once_call, &temp) ? errno : 0);
662 }
663
664 int
665 glthread_once_singlethreaded (pth_once_t *once_control)
666 {
667 /* We know that pth_once_t is an integer type. */
668 if (*once_control == PTH_ONCE_INIT)
669 {
670 /* First time use of once_control. Invert the marker. */
671 *once_control = ~ PTH_ONCE_INIT;
672 return 1;
673 }
674 else
675 return 0;
676 }
501 #if USE_WINDOWS_THREADS
677502
678503 #endif
679504
680505 /* ========================================================================= */
681
682 #if USE_SOLARIS_THREADS
683
684 /* Use the old Solaris threads library. */
685
686 /* -------------------------- gl_lock_t datatype -------------------------- */
687
688 /* ------------------------- gl_rwlock_t datatype ------------------------- */
689
690 /* --------------------- gl_recursive_lock_t datatype --------------------- */
691
692 int
693 glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock)
694 {
695 int err;
696
697 err = mutex_init (&lock->mutex, USYNC_THREAD, NULL);
698 if (err != 0)
699 return err;
700 lock->owner = (thread_t) 0;
701 lock->depth = 0;
702 return 0;
703 }
704
705 int
706 glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock)
707 {
708 thread_t self = thr_self ();
709 if (lock->owner != self)
710 {
711 int err;
712
713 err = mutex_lock (&lock->mutex);
714 if (err != 0)
715 return err;
716 lock->owner = self;
717 }
718 if (++(lock->depth) == 0) /* wraparound? */
719 {
720 lock->depth--;
721 return EAGAIN;
722 }
723 return 0;
724 }
725
726 int
727 glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock)
728 {
729 if (lock->owner != thr_self ())
730 return EPERM;
731 if (lock->depth == 0)
732 return EINVAL;
733 if (--(lock->depth) == 0)
734 {
735 lock->owner = (thread_t) 0;
736 return mutex_unlock (&lock->mutex);
737 }
738 else
739 return 0;
740 }
741
742 int
743 glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock)
744 {
745 if (lock->owner != (thread_t) 0)
746 return EBUSY;
747 return mutex_destroy (&lock->mutex);
748 }
749
750 /* -------------------------- gl_once_t datatype -------------------------- */
751
752 int
753 glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void))
754 {
755 if (!once_control->inited)
756 {
757 int err;
758
759 /* Use the mutex to guarantee that if another thread is already calling
760 the initfunction, this thread waits until it's finished. */
761 err = mutex_lock (&once_control->mutex);
762 if (err != 0)
763 return err;
764 if (!once_control->inited)
765 {
766 once_control->inited = 1;
767 initfunction ();
768 }
769 return mutex_unlock (&once_control->mutex);
770 }
771 else
772 return 0;
773 }
774
775 int
776 glthread_once_singlethreaded (gl_once_t *once_control)
777 {
778 /* We know that gl_once_t contains an integer type. */
779 if (!once_control->inited)
780 {
781 /* First time use of once_control. Invert the marker. */
782 once_control->inited = ~ 0;
783 return 1;
784 }
785 else
786 return 0;
787 }
788
789 #endif
790
791 /* ========================================================================= */
792
793 #if USE_WINDOWS_THREADS
794
795 /* -------------------------- gl_lock_t datatype -------------------------- */
796
797 void
798 glthread_lock_init_func (gl_lock_t *lock)
799 {
800 InitializeCriticalSection (&lock->lock);
801 lock->guard.done = 1;
802 }
803
804 int
805 glthread_lock_lock_func (gl_lock_t *lock)
806 {
807 if (!lock->guard.done)
808 {
809 if (InterlockedIncrement (&lock->guard.started) == 0)
810 /* This thread is the first one to need this lock. Initialize it. */
811 glthread_lock_init (lock);
812 else
813 /* Yield the CPU while waiting for another thread to finish
814 initializing this lock. */
815 while (!lock->guard.done)
816 Sleep (0);
817 }
818 EnterCriticalSection (&lock->lock);
819 return 0;
820 }
821
822 int
823 glthread_lock_unlock_func (gl_lock_t *lock)
824 {
825 if (!lock->guard.done)
826 return EINVAL;
827 LeaveCriticalSection (&lock->lock);
828 return 0;
829 }
830
831 int
832 glthread_lock_destroy_func (gl_lock_t *lock)
833 {
834 if (!lock->guard.done)
835 return EINVAL;
836 DeleteCriticalSection (&lock->lock);
837 lock->guard.done = 0;
838 return 0;
839 }
840
841 /* ------------------------- gl_rwlock_t datatype ------------------------- */
842
843 /* In this file, the waitqueues are implemented as circular arrays. */
844 #define gl_waitqueue_t gl_carray_waitqueue_t
845
846 static void
847 gl_waitqueue_init (gl_waitqueue_t *wq)
848 {
849 wq->array = NULL;
850 wq->count = 0;
851 wq->alloc = 0;
852 wq->offset = 0;
853 }
854
855 /* Enqueues the current thread, represented by an event, in a wait queue.
856 Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */
857 static HANDLE
858 gl_waitqueue_add (gl_waitqueue_t *wq)
859 {
860 HANDLE event;
861 unsigned int index;
862
863 if (wq->count == wq->alloc)
864 {
865 unsigned int new_alloc = 2 * wq->alloc + 1;
866 HANDLE *new_array =
867 (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE));
868 if (new_array == NULL)
869 /* No more memory. */
870 return INVALID_HANDLE_VALUE;
871 /* Now is a good opportunity to rotate the array so that its contents
872 starts at offset 0. */
873 if (wq->offset > 0)
874 {
875 unsigned int old_count = wq->count;
876 unsigned int old_alloc = wq->alloc;
877 unsigned int old_offset = wq->offset;
878 unsigned int i;
879 if (old_offset + old_count > old_alloc)
880 {
881 unsigned int limit = old_offset + old_count - old_alloc;
882 for (i = 0; i < limit; i++)
883 new_array[old_alloc + i] = new_array[i];
884 }
885 for (i = 0; i < old_count; i++)
886 new_array[i] = new_array[old_offset + i];
887 wq->offset = 0;
888 }
889 wq->array = new_array;
890 wq->alloc = new_alloc;
891 }
892 /* Whether the created event is a manual-reset one or an auto-reset one,
893 does not matter, since we will wait on it only once. */
894 event = CreateEvent (NULL, TRUE, FALSE, NULL);
895 if (event == INVALID_HANDLE_VALUE)
896 /* No way to allocate an event. */
897 return INVALID_HANDLE_VALUE;
898 index = wq->offset + wq->count;
899 if (index >= wq->alloc)
900 index -= wq->alloc;
901 wq->array[index] = event;
902 wq->count++;
903 return event;
904 }
905
906 /* Notifies the first thread from a wait queue and dequeues it. */
907 static void
908 gl_waitqueue_notify_first (gl_waitqueue_t *wq)
909 {
910 SetEvent (wq->array[wq->offset + 0]);
911 wq->offset++;
912 wq->count--;
913 if (wq->count == 0 || wq->offset == wq->alloc)
914 wq->offset = 0;
915 }
916
917 /* Notifies all threads from a wait queue and dequeues them all. */
918 static void
919 gl_waitqueue_notify_all (gl_waitqueue_t *wq)
920 {
921 unsigned int i;
922
923 for (i = 0; i < wq->count; i++)
924 {
925 unsigned int index = wq->offset + i;
926 if (index >= wq->alloc)
927 index -= wq->alloc;
928 SetEvent (wq->array[index]);
929 }
930 wq->count = 0;
931 wq->offset = 0;
932 }
933
934 void
935 glthread_rwlock_init_func (gl_rwlock_t *lock)
936 {
937 InitializeCriticalSection (&lock->lock);
938 gl_waitqueue_init (&lock->waiting_readers);
939 gl_waitqueue_init (&lock->waiting_writers);
940 lock->runcount = 0;
941 lock->guard.done = 1;
942 }
943
944 int
945 glthread_rwlock_rdlock_func (gl_rwlock_t *lock)
946 {
947 if (!lock->guard.done)
948 {
949 if (InterlockedIncrement (&lock->guard.started) == 0)
950 /* This thread is the first one to need this lock. Initialize it. */
951 glthread_rwlock_init (lock);
952 else
953 /* Yield the CPU while waiting for another thread to finish
954 initializing this lock. */
955 while (!lock->guard.done)
956 Sleep (0);
957 }
958 EnterCriticalSection (&lock->lock);
959 /* Test whether only readers are currently running, and whether the runcount
960 field will not overflow, and whether no writer is waiting. The latter
961 condition is because POSIX recommends that "write locks shall take
962 precedence over read locks", to avoid "writer starvation". */
963 if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0))
964 {
965 /* This thread has to wait for a while. Enqueue it among the
966 waiting_readers. */
967 HANDLE event = gl_waitqueue_add (&lock->waiting_readers);
968 if (event != INVALID_HANDLE_VALUE)
969 {
970 DWORD result;
971 LeaveCriticalSection (&lock->lock);
972 /* Wait until another thread signals this event. */
973 result = WaitForSingleObject (event, INFINITE);
974 if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
975 abort ();
976 CloseHandle (event);
977 /* The thread which signalled the event already did the bookkeeping:
978 removed us from the waiting_readers, incremented lock->runcount. */
979 if (!(lock->runcount > 0))
980 abort ();
981 return 0;
982 }
983 else
984 {
985 /* Allocation failure. Weird. */
986 do
987 {
988 LeaveCriticalSection (&lock->lock);
989 Sleep (1);
990 EnterCriticalSection (&lock->lock);
991 }
992 while (!(lock->runcount + 1 > 0));
993 }
994 }
995 lock->runcount++;
996 LeaveCriticalSection (&lock->lock);
997 return 0;
998 }
999
1000 int
1001 glthread_rwlock_wrlock_func (gl_rwlock_t *lock)
1002 {
1003 if (!lock->guard.done)
1004 {
1005 if (InterlockedIncrement (&lock->guard.started) == 0)
1006 /* This thread is the first one to need this lock. Initialize it. */
1007 glthread_rwlock_init (lock);
1008 else
1009 /* Yield the CPU while waiting for another thread to finish
1010 initializing this lock. */
1011 while (!lock->guard.done)
1012 Sleep (0);
1013 }
1014 EnterCriticalSection (&lock->lock);
1015 /* Test whether no readers or writers are currently running. */
1016 if (!(lock->runcount == 0))
1017 {
1018 /* This thread has to wait for a while. Enqueue it among the
1019 waiting_writers. */
1020 HANDLE event = gl_waitqueue_add (&lock->waiting_writers);
1021 if (event != INVALID_HANDLE_VALUE)
1022 {
1023 DWORD result;
1024 LeaveCriticalSection (&lock->lock);
1025 /* Wait until another thread signals this event. */
1026 result = WaitForSingleObject (event, INFINITE);
1027 if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
1028 abort ();
1029 CloseHandle (event);
1030 /* The thread which signalled the event already did the bookkeeping:
1031 removed us from the waiting_writers, set lock->runcount = -1. */
1032 if (!(lock->runcount == -1))
1033 abort ();
1034 return 0;
1035 }
1036 else
1037 {
1038 /* Allocation failure. Weird. */
1039 do
1040 {
1041 LeaveCriticalSection (&lock->lock);
1042 Sleep (1);
1043 EnterCriticalSection (&lock->lock);
1044 }
1045 while (!(lock->runcount == 0));
1046 }
1047 }
1048 lock->runcount--; /* runcount becomes -1 */
1049 LeaveCriticalSection (&lock->lock);
1050 return 0;
1051 }
1052
1053 int
1054 glthread_rwlock_unlock_func (gl_rwlock_t *lock)
1055 {
1056 if (!lock->guard.done)
1057 return EINVAL;
1058 EnterCriticalSection (&lock->lock);
1059 if (lock->runcount < 0)
1060 {
1061 /* Drop a writer lock. */
1062 if (!(lock->runcount == -1))
1063 abort ();
1064 lock->runcount = 0;
1065 }
1066 else
1067 {
1068 /* Drop a reader lock. */
1069 if (!(lock->runcount > 0))
1070 {
1071 LeaveCriticalSection (&lock->lock);
1072 return EPERM;
1073 }
1074 lock->runcount--;
1075 }
1076 if (lock->runcount == 0)
1077 {
1078 /* POSIX recommends that "write locks shall take precedence over read
1079 locks", to avoid "writer starvation". */
1080 if (lock->waiting_writers.count > 0)
1081 {
1082 /* Wake up one of the waiting writers. */
1083 lock->runcount--;
1084 gl_waitqueue_notify_first (&lock->waiting_writers);
1085 }
1086 else
1087 {
1088 /* Wake up all waiting readers. */
1089 lock->runcount += lock->waiting_readers.count;
1090 gl_waitqueue_notify_all (&lock->waiting_readers);
1091 }
1092 }
1093 LeaveCriticalSection (&lock->lock);
1094 return 0;
1095 }
1096
1097 int
1098 glthread_rwlock_destroy_func (gl_rwlock_t *lock)
1099 {
1100 if (!lock->guard.done)
1101 return EINVAL;
1102 if (lock->runcount != 0)
1103 return EBUSY;
1104 DeleteCriticalSection (&lock->lock);
1105 if (lock->waiting_readers.array != NULL)
1106 free (lock->waiting_readers.array);
1107 if (lock->waiting_writers.array != NULL)
1108 free (lock->waiting_writers.array);
1109 lock->guard.done = 0;
1110 return 0;
1111 }
1112
1113 /* --------------------- gl_recursive_lock_t datatype --------------------- */
1114
1115 void
1116 glthread_recursive_lock_init_func (gl_recursive_lock_t *lock)
1117 {
1118 lock->owner = 0;
1119 lock->depth = 0;
1120 InitializeCriticalSection (&lock->lock);
1121 lock->guard.done = 1;
1122 }
1123
1124 int
1125 glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock)
1126 {
1127 if (!lock->guard.done)
1128 {
1129 if (InterlockedIncrement (&lock->guard.started) == 0)
1130 /* This thread is the first one to need this lock. Initialize it. */
1131 glthread_recursive_lock_init (lock);
1132 else
1133 /* Yield the CPU while waiting for another thread to finish
1134 initializing this lock. */
1135 while (!lock->guard.done)
1136 Sleep (0);
1137 }
1138 {
1139 DWORD self = GetCurrentThreadId ();
1140 if (lock->owner != self)
1141 {
1142 EnterCriticalSection (&lock->lock);
1143 lock->owner = self;
1144 }
1145 if (++(lock->depth) == 0) /* wraparound? */
1146 {
1147 lock->depth--;
1148 return EAGAIN;
1149 }
1150 }
1151 return 0;
1152 }
1153
1154 int
1155 glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock)
1156 {
1157 if (lock->owner != GetCurrentThreadId ())
1158 return EPERM;
1159 if (lock->depth == 0)
1160 return EINVAL;
1161 if (--(lock->depth) == 0)
1162 {
1163 lock->owner = 0;
1164 LeaveCriticalSection (&lock->lock);
1165 }
1166 return 0;
1167 }
1168
1169 int
1170 glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock)
1171 {
1172 if (lock->owner != 0)
1173 return EBUSY;
1174 DeleteCriticalSection (&lock->lock);
1175 lock->guard.done = 0;
1176 return 0;
1177 }
1178
1179 /* -------------------------- gl_once_t datatype -------------------------- */
1180
1181 void
1182 glthread_once_func (gl_once_t *once_control, void (*initfunction) (void))
1183 {
1184 if (once_control->inited <= 0)
1185 {
1186 if (InterlockedIncrement (&once_control->started) == 0)
1187 {
1188 /* This thread is the first one to come to this once_control. */
1189 InitializeCriticalSection (&once_control->lock);
1190 EnterCriticalSection (&once_control->lock);
1191 once_control->inited = 0;
1192 initfunction ();
1193 once_control->inited = 1;
1194 LeaveCriticalSection (&once_control->lock);
1195 }
1196 else
1197 {
1198 /* Undo last operation. */
1199 InterlockedDecrement (&once_control->started);
1200 /* Some other thread has already started the initialization.
1201 Yield the CPU while waiting for the other thread to finish
1202 initializing and taking the lock. */
1203 while (once_control->inited < 0)
1204 Sleep (0);
1205 if (once_control->inited <= 0)
1206 {
1207 /* Take the lock. This blocks until the other thread has
1208 finished calling the initfunction. */
1209 EnterCriticalSection (&once_control->lock);
1210 LeaveCriticalSection (&once_control->lock);
1211 if (!(once_control->inited > 0))
1212 abort ();
1213 }
1214 }
1215 }
1216 }
1217
1218 #endif
1219
1220 /* ========================================================================= */
1414 along with this program; if not, see <https://www.gnu.org/licenses/>. */
1515
1616 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
18 gthr-win32.h. */
17 Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h. */
1918
2019 /* This file contains locking primitives for use with a given thread library.
2120 It does not contain primitives for creating threads or for other
7978
8079 #include <errno.h>
8180 #include <stdlib.h>
81
82 #if !defined c11_threads_in_use
83 # if HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
84 # include <threads.h>
85 # pragma weak thrd_exit
86 # define c11_threads_in_use() (thrd_exit != NULL)
87 # else
88 # define c11_threads_in_use() 0
89 # endif
90 #endif
8291
8392 /* ========================================================================= */
8493
155164 pthread_rwlockattr_init
156165 */
157166 # pragma weak pthread_mutexattr_gettype
158 # define pthread_in_use() (pthread_mutexattr_gettype != NULL)
167 # define pthread_in_use() \
168 (pthread_mutexattr_gettype != NULL || c11_threads_in_use ())
159169 # endif
160170
161171 # else
394404
395405 /* ========================================================================= */
396406
397 #if USE_PTH_THREADS
398
399 /* Use the GNU Pth threads library. */
400
401 # include <pth.h>
402
403 # ifdef __cplusplus
404 extern "C" {
405 # endif
406
407 # if USE_PTH_THREADS_WEAK
408
409 /* Use weak references to the GNU Pth threads library. */
410
411 # pragma weak pth_mutex_init
412 # pragma weak pth_mutex_acquire
413 # pragma weak pth_mutex_release
414 # pragma weak pth_rwlock_init
415 # pragma weak pth_rwlock_acquire
416 # pragma weak pth_rwlock_release
417 # pragma weak pth_once
418
419 # pragma weak pth_cancel
420 # define pth_in_use() (pth_cancel != NULL)
421
422 # else
423
424 # define pth_in_use() 1
425
426 # endif
427
428 /* -------------------------- gl_lock_t datatype -------------------------- */
429
430 typedef pth_mutex_t gl_lock_t;
431 # define gl_lock_define(STORAGECLASS, NAME) \
432 STORAGECLASS pth_mutex_t NAME;
433 # define gl_lock_define_initialized(STORAGECLASS, NAME) \
434 STORAGECLASS pth_mutex_t NAME = gl_lock_initializer;
435 # define gl_lock_initializer \
436 PTH_MUTEX_INIT
437 # define glthread_lock_init(LOCK) \
438 (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0)
439 # define glthread_lock_lock(LOCK) \
440 (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0)
441 # define glthread_lock_unlock(LOCK) \
442 (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0)
443 # define glthread_lock_destroy(LOCK) \
444 ((void)(LOCK), 0)
445
446 /* ------------------------- gl_rwlock_t datatype ------------------------- */
447
448 /* Pth pth_rwlock_acquire always prefers readers. No autoconf test so far. */
449 # if HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER
450
451 typedef pth_rwlock_t gl_rwlock_t;
452 # define gl_rwlock_define(STORAGECLASS, NAME) \
453 STORAGECLASS pth_rwlock_t NAME;
454 # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
455 STORAGECLASS pth_rwlock_t NAME = gl_rwlock_initializer;
456 # define gl_rwlock_initializer \
457 PTH_RWLOCK_INIT
458 # define glthread_rwlock_init(LOCK) \
459 (pth_in_use () && !pth_rwlock_init (LOCK) ? errno : 0)
460 # define glthread_rwlock_rdlock(LOCK) \
461 (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RD, 0, NULL) ? errno : 0)
462 # define glthread_rwlock_wrlock(LOCK) \
463 (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RW, 0, NULL) ? errno : 0)
464 # define glthread_rwlock_unlock(LOCK) \
465 (pth_in_use () && !pth_rwlock_release (LOCK) ? errno : 0)
466 # define glthread_rwlock_destroy(LOCK) \
467 ((void)(LOCK), 0)
468
469 # else
470
471 typedef struct
472 {
473 int initialized;
474 pth_mutex_t lock; /* protects the remaining fields */
475 pth_cond_t waiting_readers; /* waiting readers */
476 pth_cond_t waiting_writers; /* waiting writers */
477 unsigned int waiting_writers_count; /* number of waiting writers */
478 int runcount; /* number of readers running, or -1 when a writer runs */
479 }
480 gl_rwlock_t;
481 # define gl_rwlock_define(STORAGECLASS, NAME) \
482 STORAGECLASS gl_rwlock_t NAME;
483 # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
484 STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer;
485 # define gl_rwlock_initializer \
486 { 0 }
487 # define glthread_rwlock_init(LOCK) \
488 (pth_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0)
489 # define glthread_rwlock_rdlock(LOCK) \
490 (pth_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0)
491 # define glthread_rwlock_wrlock(LOCK) \
492 (pth_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0)
493 # define glthread_rwlock_unlock(LOCK) \
494 (pth_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0)
495 # define glthread_rwlock_destroy(LOCK) \
496 (pth_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0)
497 extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock);
498 extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock);
499 extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock);
500 extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock);
501 extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock);
502
503 # endif
504
505 /* --------------------- gl_recursive_lock_t datatype --------------------- */
506
507 /* In Pth, mutexes are recursive by default. */
508 typedef pth_mutex_t gl_recursive_lock_t;
509 # define gl_recursive_lock_define(STORAGECLASS, NAME) \
510 STORAGECLASS pth_mutex_t NAME;
511 # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
512 STORAGECLASS pth_mutex_t NAME = gl_recursive_lock_initializer;
513 # define gl_recursive_lock_initializer \
514 PTH_MUTEX_INIT
515 # define glthread_recursive_lock_init(LOCK) \
516 (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0)
517 # define glthread_recursive_lock_lock(LOCK) \
518 (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0)
519 # define glthread_recursive_lock_unlock(LOCK) \
520 (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0)
521 # define glthread_recursive_lock_destroy(LOCK) \
522 ((void)(LOCK), 0)
523
524 /* -------------------------- gl_once_t datatype -------------------------- */
525
526 typedef pth_once_t gl_once_t;
527 # define gl_once_define(STORAGECLASS, NAME) \
528 STORAGECLASS pth_once_t NAME = PTH_ONCE_INIT;
529 # define glthread_once(ONCE_CONTROL, INITFUNCTION) \
530 (pth_in_use () \
531 ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \
532 : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0))
533 extern int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void));
534 extern int glthread_once_singlethreaded (pth_once_t *once_control);
535
536 # ifdef __cplusplus
537 }
538 # endif
539
540 #endif
541
542 /* ========================================================================= */
543
544 #if USE_SOLARIS_THREADS
545
546 /* Use the old Solaris threads library. */
547
548 # include <thread.h>
549 # include <synch.h>
550
551 # ifdef __cplusplus
552 extern "C" {
553 # endif
554
555 # if USE_SOLARIS_THREADS_WEAK
556
557 /* Use weak references to the old Solaris threads library. */
558
559 # pragma weak mutex_init
560 # pragma weak mutex_lock
561 # pragma weak mutex_unlock
562 # pragma weak mutex_destroy
563 # pragma weak rwlock_init
564 # pragma weak rw_rdlock
565 # pragma weak rw_wrlock
566 # pragma weak rw_unlock
567 # pragma weak rwlock_destroy
568 # pragma weak thr_self
569
570 # pragma weak thr_suspend
571 # define thread_in_use() (thr_suspend != NULL)
572
573 # else
574
575 # define thread_in_use() 1
576
577 # endif
578
579 /* -------------------------- gl_lock_t datatype -------------------------- */
580
581 typedef mutex_t gl_lock_t;
582 # define gl_lock_define(STORAGECLASS, NAME) \
583 STORAGECLASS mutex_t NAME;
584 # define gl_lock_define_initialized(STORAGECLASS, NAME) \
585 STORAGECLASS mutex_t NAME = gl_lock_initializer;
586 # define gl_lock_initializer \
587 DEFAULTMUTEX
588 # define glthread_lock_init(LOCK) \
589 (thread_in_use () ? mutex_init (LOCK, USYNC_THREAD, NULL) : 0)
590 # define glthread_lock_lock(LOCK) \
591 (thread_in_use () ? mutex_lock (LOCK) : 0)
592 # define glthread_lock_unlock(LOCK) \
593 (thread_in_use () ? mutex_unlock (LOCK) : 0)
594 # define glthread_lock_destroy(LOCK) \
595 (thread_in_use () ? mutex_destroy (LOCK) : 0)
596
597 /* ------------------------- gl_rwlock_t datatype ------------------------- */
598
599 typedef rwlock_t gl_rwlock_t;
600 # define gl_rwlock_define(STORAGECLASS, NAME) \
601 STORAGECLASS rwlock_t NAME;
602 # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
603 STORAGECLASS rwlock_t NAME = gl_rwlock_initializer;
604 # define gl_rwlock_initializer \
605 DEFAULTRWLOCK
606 # define glthread_rwlock_init(LOCK) \
607 (thread_in_use () ? rwlock_init (LOCK, USYNC_THREAD, NULL) : 0)
608 # define glthread_rwlock_rdlock(LOCK) \
609 (thread_in_use () ? rw_rdlock (LOCK) : 0)
610 # define glthread_rwlock_wrlock(LOCK) \
611 (thread_in_use () ? rw_wrlock (LOCK) : 0)
612 # define glthread_rwlock_unlock(LOCK) \
613 (thread_in_use () ? rw_unlock (LOCK) : 0)
614 # define glthread_rwlock_destroy(LOCK) \
615 (thread_in_use () ? rwlock_destroy (LOCK) : 0)
616
617 /* --------------------- gl_recursive_lock_t datatype --------------------- */
618
619 /* Old Solaris threads did not have recursive locks.
620 We have to implement them ourselves. */
621
622 typedef struct
623 {
624 mutex_t mutex;
625 thread_t owner;
626 unsigned long depth;
627 }
628 gl_recursive_lock_t;
629 # define gl_recursive_lock_define(STORAGECLASS, NAME) \
630 STORAGECLASS gl_recursive_lock_t NAME;
631 # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
632 STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer;
633 # define gl_recursive_lock_initializer \
634 { DEFAULTMUTEX, (thread_t) 0, 0 }
635 # define glthread_recursive_lock_init(LOCK) \
636 (thread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0)
637 # define glthread_recursive_lock_lock(LOCK) \
638 (thread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0)
639 # define glthread_recursive_lock_unlock(LOCK) \
640 (thread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0)
641 # define glthread_recursive_lock_destroy(LOCK) \
642 (thread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0)
643 extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock);
644 extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock);
645 extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock);
646 extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock);
647
648 /* -------------------------- gl_once_t datatype -------------------------- */
649
650 typedef struct
651 {
652 volatile int inited;
653 mutex_t mutex;
654 }
655 gl_once_t;
656 # define gl_once_define(STORAGECLASS, NAME) \
657 STORAGECLASS gl_once_t NAME = { 0, DEFAULTMUTEX };
658 # define glthread_once(ONCE_CONTROL, INITFUNCTION) \
659 (thread_in_use () \
660 ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \
661 : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0))
662 extern int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void));
663 extern int glthread_once_singlethreaded (gl_once_t *once_control);
664
665 # ifdef __cplusplus
666 }
667 # endif
668
669 #endif
670
671 /* ========================================================================= */
672
673407 #if USE_WINDOWS_THREADS
674408
675409 # define WIN32_LEAN_AND_MEAN /* avoid including junk */
676410 # include <windows.h>
411
412 # include "windows-mutex.h"
413 # include "windows-rwlock.h"
414 # include "windows-recmutex.h"
415 # include "windows-once.h"
677416
678417 # ifdef __cplusplus
679418 extern "C" {
690429 /* There is no way to statically initialize a CRITICAL_SECTION. It needs
691430 to be done lazily, once only. For this we need spinlocks. */
692431
693 typedef struct { volatile int done; volatile long started; } gl_spinlock_t;
694
695432 /* -------------------------- gl_lock_t datatype -------------------------- */
696433
697 typedef struct
698 {
699 gl_spinlock_t guard; /* protects the initialization */
700 CRITICAL_SECTION lock;
701 }
702 gl_lock_t;
434 typedef glwthread_mutex_t gl_lock_t;
703435 # define gl_lock_define(STORAGECLASS, NAME) \
704436 STORAGECLASS gl_lock_t NAME;
705437 # define gl_lock_define_initialized(STORAGECLASS, NAME) \
706438 STORAGECLASS gl_lock_t NAME = gl_lock_initializer;
707439 # define gl_lock_initializer \
708 { { 0, -1 } }
440 GLWTHREAD_MUTEX_INIT
709441 # define glthread_lock_init(LOCK) \
710 (glthread_lock_init_func (LOCK), 0)
442 (glwthread_mutex_init (LOCK), 0)
711443 # define glthread_lock_lock(LOCK) \
712 glthread_lock_lock_func (LOCK)
444 glwthread_mutex_lock (LOCK)
713445 # define glthread_lock_unlock(LOCK) \
714 glthread_lock_unlock_func (LOCK)
446 glwthread_mutex_unlock (LOCK)
715447 # define glthread_lock_destroy(LOCK) \
716 glthread_lock_destroy_func (LOCK)
717 extern void glthread_lock_init_func (gl_lock_t *lock);
718 extern int glthread_lock_lock_func (gl_lock_t *lock);
719 extern int glthread_lock_unlock_func (gl_lock_t *lock);
720 extern int glthread_lock_destroy_func (gl_lock_t *lock);
448 glwthread_mutex_destroy (LOCK)
721449
722450 /* ------------------------- gl_rwlock_t datatype ------------------------- */
723451
724 /* It is impossible to implement read-write locks using plain locks, without
725 introducing an extra thread dedicated to managing read-write locks.
726 Therefore here we need to use the low-level Event type. */
727
728 typedef struct
729 {
730 HANDLE *array; /* array of waiting threads, each represented by an event */
731 unsigned int count; /* number of waiting threads */
732 unsigned int alloc; /* length of allocated array */
733 unsigned int offset; /* index of first waiting thread in array */
734 }
735 gl_carray_waitqueue_t;
736 typedef struct
737 {
738 gl_spinlock_t guard; /* protects the initialization */
739 CRITICAL_SECTION lock; /* protects the remaining fields */
740 gl_carray_waitqueue_t waiting_readers; /* waiting readers */
741 gl_carray_waitqueue_t waiting_writers; /* waiting writers */
742 int runcount; /* number of readers running, or -1 when a writer runs */
743 }
744 gl_rwlock_t;
452 typedef glwthread_rwlock_t gl_rwlock_t;
745453 # define gl_rwlock_define(STORAGECLASS, NAME) \
746454 STORAGECLASS gl_rwlock_t NAME;
747455 # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
748456 STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer;
749457 # define gl_rwlock_initializer \
750 { { 0, -1 } }
458 GLWTHREAD_RWLOCK_INIT
751459 # define glthread_rwlock_init(LOCK) \
752 (glthread_rwlock_init_func (LOCK), 0)
460 (glwthread_rwlock_init (LOCK), 0)
753461 # define glthread_rwlock_rdlock(LOCK) \
754 glthread_rwlock_rdlock_func (LOCK)
462 glwthread_rwlock_rdlock (LOCK)
755463 # define glthread_rwlock_wrlock(LOCK) \
756 glthread_rwlock_wrlock_func (LOCK)
464 glwthread_rwlock_wrlock (LOCK)
757465 # define glthread_rwlock_unlock(LOCK) \
758 glthread_rwlock_unlock_func (LOCK)
466 glwthread_rwlock_unlock (LOCK)
759467 # define glthread_rwlock_destroy(LOCK) \
760 glthread_rwlock_destroy_func (LOCK)
761 extern void glthread_rwlock_init_func (gl_rwlock_t *lock);
762 extern int glthread_rwlock_rdlock_func (gl_rwlock_t *lock);
763 extern int glthread_rwlock_wrlock_func (gl_rwlock_t *lock);
764 extern int glthread_rwlock_unlock_func (gl_rwlock_t *lock);
765 extern int glthread_rwlock_destroy_func (gl_rwlock_t *lock);
468 glwthread_rwlock_destroy (LOCK)
766469
767470 /* --------------------- gl_recursive_lock_t datatype --------------------- */
768471
769 /* The native Windows documentation says that CRITICAL_SECTION already
770 implements a recursive lock. But we need not rely on it: It's easy to
771 implement a recursive lock without this assumption. */
772
773 typedef struct
774 {
775 gl_spinlock_t guard; /* protects the initialization */
776 DWORD owner;
777 unsigned long depth;
778 CRITICAL_SECTION lock;
779 }
780 gl_recursive_lock_t;
472 typedef glwthread_recmutex_t gl_recursive_lock_t;
781473 # define gl_recursive_lock_define(STORAGECLASS, NAME) \
782474 STORAGECLASS gl_recursive_lock_t NAME;
783475 # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
784476 STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer;
785477 # define gl_recursive_lock_initializer \
786 { { 0, -1 }, 0, 0 }
478 GLWTHREAD_RECMUTEX_INIT
787479 # define glthread_recursive_lock_init(LOCK) \
788 (glthread_recursive_lock_init_func (LOCK), 0)
480 (glwthread_recmutex_init (LOCK), 0)
789481 # define glthread_recursive_lock_lock(LOCK) \
790 glthread_recursive_lock_lock_func (LOCK)
482 glwthread_recmutex_lock (LOCK)
791483 # define glthread_recursive_lock_unlock(LOCK) \
792 glthread_recursive_lock_unlock_func (LOCK)
484 glwthread_recmutex_unlock (LOCK)
793485 # define glthread_recursive_lock_destroy(LOCK) \
794 glthread_recursive_lock_destroy_func (LOCK)
795 extern void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock);
796 extern int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock);
797 extern int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock);
798 extern int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock);
486 glwthread_recmutex_destroy (LOCK)
799487
800488 /* -------------------------- gl_once_t datatype -------------------------- */
801489
802 typedef struct
803 {
804 volatile int inited;
805 volatile long started;
806 CRITICAL_SECTION lock;
807 }
808 gl_once_t;
490 typedef glwthread_once_t gl_once_t;
809491 # define gl_once_define(STORAGECLASS, NAME) \
810 STORAGECLASS gl_once_t NAME = { -1, -1 };
492 STORAGECLASS gl_once_t NAME = GLWTHREAD_ONCE_INIT;
811493 # define glthread_once(ONCE_CONTROL, INITFUNCTION) \
812 (glthread_once_func (ONCE_CONTROL, INITFUNCTION), 0)
813 extern void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void));
494 (glwthread_once (ONCE_CONTROL, INITFUNCTION), 0)
814495
815496 # ifdef __cplusplus
816497 }
820501
821502 /* ========================================================================= */
822503
823 #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS)
504 #if !(USE_POSIX_THREADS || USE_WINDOWS_THREADS)
824505
825506 /* Provide dummy implementation if threads are not supported. */
826507
110110 Subtract 1 for the sign bit if T is signed, and then add 1 more for
111111 a minus sign if needed.
112112
113 Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is
114 signed, this macro may overestimate the true bound by one byte when
113 Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is
114 unsigned, this macro may overestimate the true bound by one byte when
115115 applied to unsigned types of size 2, 4, 16, ... bytes. */
116116 #define INT_STRLEN_BOUND(t) \
117117 (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \
280280
281281 The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
282282 might not yield numerically correct answers due to arithmetic overflow.
283 The INT_<op>_WRAPV macros also store the low-order bits of the answer.
283 The INT_<op>_WRAPV macros compute the low-order bits of the sum,
284 difference, and product of two C integers, and return 1 if these
285 low-order bits are not numerically correct.
284286 These macros work correctly on all known practical hosts, and do not rely
285287 on undefined behavior due to signed arithmetic overflow.
286288
308310 arguments should not have side effects.
309311
310312 The WRAPV macros are not constant expressions. They support only
311 +, binary -, and *. The result type must be signed.
312
313 These macros are tuned for their last argument being a constant.
313 +, binary -, and *. Because the WRAPV macros convert the result,
314 they report overflow in different circumstances than the OVERFLOW
315 macros do.
316
317 These macros are tuned for their last input argument being a constant.
314318
315319 Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
316320 A % B, and A << B would overflow, respectively. */
347351 /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
348352 Return 1 if the result overflows. See above for restrictions. */
349353 #define INT_ADD_WRAPV(a, b, r) \
350 _GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, INT_ADD_OVERFLOW)
354 _GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, \
355 _GL_INT_ADD_RANGE_OVERFLOW)
351356 #define INT_SUBTRACT_WRAPV(a, b, r) \
352 _GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, INT_SUBTRACT_OVERFLOW)
357 _GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, \
358 _GL_INT_SUBTRACT_RANGE_OVERFLOW)
353359 #define INT_MULTIPLY_WRAPV(a, b, r) \
354 _GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW)
360 _GL_INT_OP_WRAPV (a, b, r, *, _GL_BUILTIN_MUL_OVERFLOW, \
361 _GL_INT_MULTIPLY_RANGE_OVERFLOW)
362
363 /* Like __builtin_mul_overflow, but work around GCC bug 91450. */
364 #define _GL_BUILTIN_MUL_OVERFLOW(a, b, r) \
365 ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && EXPR_SIGNED (a) && EXPR_SIGNED (b) \
366 && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \
367 ? ((void) __builtin_mul_overflow (a, b, r), 1) \
368 : __builtin_mul_overflow (a, b, r))
355369
356370 /* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See:
357371 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193
378392 signed char: \
379393 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
380394 signed char, SCHAR_MIN, SCHAR_MAX), \
395 unsigned char: \
396 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
397 unsigned char, 0, UCHAR_MAX), \
381398 short int: \
382399 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
383400 short int, SHRT_MIN, SHRT_MAX), \
401 unsigned short int: \
402 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
403 unsigned short int, 0, USHRT_MAX), \
384404 int: \
385405 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
386406 int, INT_MIN, INT_MAX), \
407 unsigned int: \
408 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
409 unsigned int, 0, UINT_MAX), \
387410 long int: \
388411 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
389412 long int, LONG_MIN, LONG_MAX), \
413 unsigned long int: \
414 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
415 unsigned long int, 0, ULONG_MAX), \
390416 long long int: \
391417 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
392 long long int, LLONG_MIN, LLONG_MAX)))
393 #else
418 long long int, LLONG_MIN, LLONG_MAX), \
419 unsigned long long int: \
420 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
421 unsigned long long int, 0, ULLONG_MAX)))
422 #else
423 /* Store the low-order bits of A <op> B into *R, where OP specifies
424 the operation and OVERFLOW the overflow predicate. If *R is
425 signed, its type is ST with bounds SMIN..SMAX; otherwise its type
426 is UT with bounds U..UMAX. ST and UT are narrower than int.
427 Return 1 if the result overflows. See above for restrictions. */
428 # if _GL_HAVE___TYPEOF__
429 # define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \
430 (TYPE_SIGNED (__typeof__ (*(r))) \
431 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \
432 : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax))
433 # else
434 # define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \
435 (overflow (a, b, smin, smax) \
436 ? (overflow (a, b, 0, umax) \
437 ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \
438 : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \
439 : (overflow (a, b, 0, umax) \
440 ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \
441 : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0)))
442 # endif
443
394444 # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
395445 (sizeof *(r) == sizeof (signed char) \
396 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
397 signed char, SCHAR_MIN, SCHAR_MAX) \
446 ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \
447 signed char, SCHAR_MIN, SCHAR_MAX, \
448 unsigned char, UCHAR_MAX) \
398449 : sizeof *(r) == sizeof (short int) \
399 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
400 short int, SHRT_MIN, SHRT_MAX) \
450 ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \
451 short int, SHRT_MIN, SHRT_MAX, \
452 unsigned short int, USHRT_MAX) \
401453 : sizeof *(r) == sizeof (int) \
402 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
403 int, INT_MIN, INT_MAX) \
454 ? (EXPR_SIGNED (*(r)) \
455 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
456 int, INT_MIN, INT_MAX) \
457 : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
458 unsigned int, 0, UINT_MAX)) \
404459 : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow))
405460 # ifdef LLONG_MAX
406461 # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
407462 (sizeof *(r) == sizeof (long int) \
463 ? (EXPR_SIGNED (*(r)) \
464 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
465 long int, LONG_MIN, LONG_MAX) \
466 : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
467 unsigned long int, 0, ULONG_MAX)) \
468 : (EXPR_SIGNED (*(r)) \
469 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
470 long long int, LLONG_MIN, LLONG_MAX) \
471 : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
472 unsigned long long int, 0, ULLONG_MAX)))
473 # else
474 # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
475 (EXPR_SIGNED (*(r)) \
408476 ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
409477 long int, LONG_MIN, LONG_MAX) \
410 : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
411 long long int, LLONG_MIN, LLONG_MAX))
412 # else
413 # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
414 _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
415 long int, LONG_MIN, LONG_MAX)
478 : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
479 unsigned long int, 0, ULONG_MAX))
416480 # endif
417481 #endif
418482
421485 overflow problems. *R's type is T, with extrema TMIN and TMAX.
422486 T must be a signed integer type. Return 1 if the result overflows. */
423487 #define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \
424 (sizeof ((a) op (b)) < sizeof (t) \
425 ? _GL_INT_OP_CALC1 ((t) (a), (t) (b), r, op, overflow, ut, t, tmin, tmax) \
426 : _GL_INT_OP_CALC1 (a, b, r, op, overflow, ut, t, tmin, tmax))
427 #define _GL_INT_OP_CALC1(a, b, r, op, overflow, ut, t, tmin, tmax) \
428 ((overflow (a, b) \
429 || (EXPR_SIGNED ((a) op (b)) && ((a) op (b)) < (tmin)) \
430 || (tmax) < ((a) op (b))) \
488 (overflow (a, b, tmin, tmax) \
431489 ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \
432490 : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0))
433491
451509 #define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \
452510 ((t) ((ut) (a) op (ut) (b)))
453511
512 /* Return true if the numeric values A + B, A - B, A * B fall outside
513 the range TMIN..TMAX. Arguments should be integer expressions
514 without side effects. TMIN should be signed and nonpositive.
515 TMAX should be positive, and should be signed unless TMIN is zero. */
516 #define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \
517 ((b) < 0 \
518 ? (((tmin) \
519 ? ((EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \
520 && (a) < (tmin) - (b)) \
521 : (a) <= -1 - (b)) \
522 || ((EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \
523 : (a) < 0 \
524 ? (((tmin) \
525 ? ((EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \
526 && (b) < (tmin) - (a)) \
527 : (b) <= -1 - (a)) \
528 || ((EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \
529 && (tmax) < (a) + (b))) \
530 : (tmax) < (b) || (tmax) - (b) < (a))
531 #define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \
532 (((a) < 0) == ((b) < 0) \
533 ? ((a) < (b) \
534 ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \
535 : (tmax) < (a) - (b)) \
536 : (a) < 0 \
537 ? ((!EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \
538 || (a) - (tmin) < (b)) \
539 : ((! (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \
540 && EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \
541 && (tmax) <= -1 - (b)) \
542 || (tmax) + (b) < (a)))
543 #define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \
544 ((b) < 0 \
545 ? ((a) < 0 \
546 ? (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \
547 ? (a) < (tmax) / (b) \
548 : ((INT_NEGATE_OVERFLOW (b) \
549 ? _GL_INT_CONVERT (b, tmax) >> (TYPE_WIDTH (b) - 1) \
550 : (tmax) / -(b)) \
551 <= -1 - (a))) \
552 : INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \
553 ? (EXPR_SIGNED (a) \
554 ? 0 < (a) + (tmin) \
555 : 0 < (a) && -1 - (tmin) < (a) - 1) \
556 : (tmin) / (b) < (a)) \
557 : (b) == 0 \
558 ? 0 \
559 : ((a) < 0 \
560 ? (INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \
561 ? (EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \
562 : (tmin) / (a) < (b)) \
563 : (tmax) / (b) < (a)))
564
454565 #endif /* _GL_INTPROPS_H */
376376 /* The list of encodings is taken from "List of OS/2 Codepages"
377377 by Alex Taylor:
378378 <http://altsan.org/os2/toolkits/uls/index.html#codepages>.
379 See also "IBM Globalization - Code page identifiers":
380 <https://www-01.ibm.com/software/globalization/cp/cp_cpgid.html>. */
381 { "CP1089", "ISO-8859-6" },
382 { "CP1208", "UTF-8" },
383 { "CP1381", "GB2312" },
384 { "CP1386", "GBK" },
385 { "CP3372", "EUC-JP" },
386 { "CP813", "ISO-8859-7" },
387 { "CP819", "ISO-8859-1" },
388 { "CP878", "KOI8-R" },
389 { "CP912", "ISO-8859-2" },
390 { "CP913", "ISO-8859-3" },
391 { "CP914", "ISO-8859-4" },
392 { "CP915", "ISO-8859-5" },
393 { "CP916", "ISO-8859-8" },
394 { "CP920", "ISO-8859-9" },
395 { "CP921", "ISO-8859-13" },
396 { "CP923", "ISO-8859-15" },
397 { "CP954", "EUC-JP" },
398 { "CP964", "EUC-TW" },
399 { "CP970", "EUC-KR" }
379 See also "__convcp() of kLIBC":
380 <http://trac.netlabs.org/libc/browser/branches/libc-0.6/src/emx/src/lib/locale/__convcp.c>,
381 or:
382 <https://github.com/bitwiseworks/libc/blob/master/src/emx/src/lib/locale/__convcp.c>. */
383 { "CP1004", "CP1252" },
384 /*{ "CP1041", "CP943" },*/
385 /*{ "CP1088", "CP949" },*/
386 { "CP1089", "ISO-8859-6" },
387 /*{ "CP1114", "CP950" },*/
388 /*{ "CP1115", "GB2312" },*/
389 { "CP1208", "UTF-8" },
390 /*{ "CP1380", "GB2312" },*/
391 { "CP1381", "GB2312" },
392 { "CP1383", "GB2312" },
393 { "CP1386", "GBK" },
394 /*{ "CP301", "CP943" },*/
395 { "CP3372", "EUC-JP" },
396 { "CP4946", "CP850" },
397 /*{ "CP5048", "JIS_X0208-1990" },*/
398 /*{ "CP5049", "JIS_X0212-1990" },*/
399 /*{ "CP5067", "KS_C_5601-1987" },*/
400 { "CP813", "ISO-8859-7" },
401 { "CP819", "ISO-8859-1" },
402 { "CP878", "KOI8-R" },
403 /*{ "CP897", "CP943" },*/
404 { "CP912", "ISO-8859-2" },
405 { "CP913", "ISO-8859-3" },
406 { "CP914", "ISO-8859-4" },
407 { "CP915", "ISO-8859-5" },
408 { "CP916", "ISO-8859-8" },
409 { "CP920", "ISO-8859-9" },
410 { "CP921", "ISO-8859-13" },
411 { "CP923", "ISO-8859-15" },
412 /*{ "CP941", "CP943" },*/
413 /*{ "CP947", "CP950" },*/
414 /*{ "CP951", "CP949" },*/
415 /*{ "CP952", "JIS_X0208-1990" },*/
416 /*{ "CP953", "JIS_X0212-1990" },*/
417 { "CP954", "EUC-JP" },
418 { "CP964", "EUC-TW" },
419 { "CP970", "EUC-KR" },
420 /*{ "CP971", "KS_C_5601-1987" },*/
421 { "IBM-1004", "CP1252" },
422 /*{ "IBM-1006", "?" },*/
423 /*{ "IBM-1008", "?" },*/
424 /*{ "IBM-1041", "CP943" },*/
425 /*{ "IBM-1051", "?" },*/
426 /*{ "IBM-1088", "CP949" },*/
427 { "IBM-1089", "ISO-8859-6" },
428 /*{ "IBM-1098", "?" },*/
429 /*{ "IBM-1114", "CP950" },*/
430 /*{ "IBM-1115", "GB2312" },*/
431 /*{ "IBM-1116", "?" },*/
432 /*{ "IBM-1117", "?" },*/
433 /*{ "IBM-1118", "?" },*/
434 /*{ "IBM-1119", "?" },*/
435 { "IBM-1124", "CP1124" },
436 { "IBM-1125", "CP1125" },
437 { "IBM-1131", "CP1131" },
438 { "IBM-1208", "UTF-8" },
439 { "IBM-1250", "CP1250" },
440 { "IBM-1251", "CP1251" },
441 { "IBM-1252", "CP1252" },
442 { "IBM-1253", "CP1253" },
443 { "IBM-1254", "CP1254" },
444 { "IBM-1255", "CP1255" },
445 { "IBM-1256", "CP1256" },
446 { "IBM-1257", "CP1257" },
447 /*{ "IBM-1275", "?" },*/
448 /*{ "IBM-1276", "?" },*/
449 /*{ "IBM-1277", "?" },*/
450 /*{ "IBM-1280", "?" },*/
451 /*{ "IBM-1281", "?" },*/
452 /*{ "IBM-1282", "?" },*/
453 /*{ "IBM-1283", "?" },*/
454 /*{ "IBM-1380", "GB2312" },*/
455 { "IBM-1381", "GB2312" },
456 { "IBM-1383", "GB2312" },
457 { "IBM-1386", "GBK" },
458 /*{ "IBM-301", "CP943" },*/
459 { "IBM-3372", "EUC-JP" },
460 { "IBM-367", "ASCII" },
461 { "IBM-437", "CP437" },
462 { "IBM-4946", "CP850" },
463 /*{ "IBM-5048", "JIS_X0208-1990" },*/
464 /*{ "IBM-5049", "JIS_X0212-1990" },*/
465 /*{ "IBM-5067", "KS_C_5601-1987" },*/
466 { "IBM-813", "ISO-8859-7" },
467 { "IBM-819", "ISO-8859-1" },
468 { "IBM-850", "CP850" },
469 /*{ "IBM-851", "?" },*/
470 { "IBM-852", "CP852" },
471 { "IBM-855", "CP855" },
472 { "IBM-856", "CP856" },
473 { "IBM-857", "CP857" },
474 /*{ "IBM-859", "?" },*/
475 { "IBM-860", "CP860" },
476 { "IBM-861", "CP861" },
477 { "IBM-862", "CP862" },
478 { "IBM-863", "CP863" },
479 { "IBM-864", "CP864" },
480 { "IBM-865", "CP865" },
481 { "IBM-866", "CP866" },
482 /*{ "IBM-868", "?" },*/
483 { "IBM-869", "CP869" },
484 { "IBM-874", "CP874" },
485 { "IBM-878", "KOI8-R" },
486 /*{ "IBM-895", "?" },*/
487 /*{ "IBM-897", "CP943" },*/
488 /*{ "IBM-907", "?" },*/
489 /*{ "IBM-909", "?" },*/
490 { "IBM-912", "ISO-8859-2" },
491 { "IBM-913", "ISO-8859-3" },
492 { "IBM-914", "ISO-8859-4" },
493 { "IBM-915", "ISO-8859-5" },
494 { "IBM-916", "ISO-8859-8" },
495 { "IBM-920", "ISO-8859-9" },
496 { "IBM-921", "ISO-8859-13" },
497 { "IBM-922", "CP922" },
498 { "IBM-923", "ISO-8859-15" },
499 { "IBM-932", "CP932" },
500 /*{ "IBM-941", "CP943" },*/
501 /*{ "IBM-942", "?" },*/
502 { "IBM-943", "CP943" },
503 /*{ "IBM-947", "CP950" },*/
504 { "IBM-949", "CP949" },
505 { "IBM-950", "CP950" },
506 /*{ "IBM-951", "CP949" },*/
507 /*{ "IBM-952", "JIS_X0208-1990" },*/
508 /*{ "IBM-953", "JIS_X0212-1990" },*/
509 { "IBM-954", "EUC-JP" },
510 /*{ "IBM-955", "?" },*/
511 { "IBM-964", "EUC-TW" },
512 { "IBM-970", "EUC-KR" },
513 /*{ "IBM-971", "KS_C_5601-1987" },*/
514 { "IBM-eucCN", "GB2312" },
515 { "IBM-eucJP", "EUC-JP" },
516 { "IBM-eucKR", "EUC-KR" },
517 { "IBM-eucTW", "EUC-TW" },
518 { "IBM33722", "EUC-JP" },
519 { "ISO8859-1", "ISO-8859-1" },
520 { "ISO8859-2", "ISO-8859-2" },
521 { "ISO8859-3", "ISO-8859-3" },
522 { "ISO8859-4", "ISO-8859-4" },
523 { "ISO8859-5", "ISO-8859-5" },
524 { "ISO8859-6", "ISO-8859-6" },
525 { "ISO8859-7", "ISO-8859-7" },
526 { "ISO8859-8", "ISO-8859-8" },
527 { "ISO8859-9", "ISO-8859-9" },
528 /*{ "JISX0201-1976", "JISX0201-1976" },*/
529 /*{ "JISX0208-1978", "?" },*/
530 /*{ "JISX0208-1983", "JIS_X0208-1983" },*/
531 /*{ "JISX0208-1990", "JIS_X0208-1990" },*/
532 /*{ "JISX0212-1990", "JIS_X0212-1990" },*/
533 /*{ "KSC5601-1987", "KS_C_5601-1987" },*/
534 { "SJIS-1", "CP943" },
535 { "SJIS-2", "CP943" },
536 { "eucJP", "EUC-JP" },
537 { "eucKR", "EUC-KR" },
538 { "eucTW-1993", "EUC-TW" }
400539 # define alias_table_defined
401540 # endif
402541 # if defined VMS /* OpenVMS */
786925 encoding is the best bet. */
787926 sprintf (buf, "CP%u", GetACP ());
788927 }
789 codeset = buf;
928 /* For a locale name such as "French_France.65001", in Windows 10,
929 setlocale now returns "French_France.utf8" instead. */
930 if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0)
931 codeset = "UTF-8";
932 else
933 codeset = buf;
790934
791935 # elif defined OS2
792936
3333 # include "localcharset.h"
3434 # include "streq.h"
3535 # include "verify.h"
36 # include "glthread/lock.h"
3637
3738 # ifndef FALLTHROUGH
3839 # if __GNUC__ < 7
7475 return enc_other;
7576 }
7677
77 #if GNULIB_WCHAR_SINGLE
78 # if GNULIB_WCHAR_SINGLE
7879 /* When we know that the locale does not change, provide a speedup by
7980 caching the value of locale_enc. */
8081 static int cached_locale_enc = -1;
8586 cached_locale_enc = locale_enc ();
8687 return cached_locale_enc;
8788 }
88 #else
89 # else
8990 /* By default, don't make assumptions, hence no caching. */
90 # define locale_enc_cached locale_enc
91 #endif
91 # define locale_enc_cached locale_enc
92 # endif
93
94 /* This lock protects the internal state of mbtowc against multiple simultaneous
95 calls of mbrtowc. */
96 gl_lock_define_initialized(static, mbtowc_lock)
9297
9398 verify (sizeof (mbstate_t) >= 4);
9499
119124 char buf[4];
120125 const char *p;
121126 size_t m;
127 enc_t enc;
128 int res;
122129
123130 switch (nstate)
124131 {
151158
152159 /* Here m > 0. */
153160
154 # if __GLIBC__ || defined __UCLIBC__
155 /* Work around bug <https://sourceware.org/bugzilla/show_bug.cgi?id=9674> */
156 mbtowc (NULL, NULL, 0);
157 # endif
158 {
159 int res = mbtowc (pwc, p, m);
160
161 if (res >= 0)
162 {
163 if (pwc != NULL && ((*pwc == 0) != (res == 0)))
164 abort ();
165 if (nstate >= (res > 0 ? res : 1))
166 abort ();
167 res -= nstate;
168 pstate[0] = 0;
169 return res;
170 }
171
172 /* mbtowc does not distinguish between invalid and incomplete multibyte
173 sequences. But mbrtowc needs to make this distinction.
174 There are two possible approaches:
175 - Use iconv() and its return value.
176 - Use built-in knowledge about the possible encodings.
177 Given the low quality of implementation of iconv() on the systems that
178 lack mbrtowc(), we use the second approach.
179 The possible encodings are:
180 - 8-bit encodings,
181 - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS,
182 - UTF-8.
183 Use specialized code for each. */
184 if (m >= 4 || m >= MB_CUR_MAX)
185 goto invalid;
186 /* Here MB_CUR_MAX > 1 and 0 < m < 4. */
187 switch (locale_enc_cached ())
188 {
189 case enc_utf8: /* UTF-8 */
161 enc = locale_enc_cached ();
162
163 if (enc == enc_utf8) /* UTF-8 */
164 {
165 /* Achieve multi-thread safety by not calling mbtowc() at all. */
166 /* Cf. unistr/u8-mbtouc.c. */
167 unsigned char c = (unsigned char) p[0];
168
169 if (c < 0x80)
190170 {
191 /* Cf. unistr/u8-mblen.c. */
192 unsigned char c = (unsigned char) p[0];
193
194 if (c >= 0xc2)
171 if (pwc != NULL)
172 *pwc = c;
173 res = (c == 0 ? 0 : 1);
174 goto success;
175 }
176 if (c >= 0xc2)
177 {
178 if (c < 0xe0)
195179 {
196 if (c < 0xe0)
180 if (m == 1)
181 goto incomplete;
182 else /* m >= 2 */
197183 {
198 if (m == 1)
199 goto incomplete;
200 }
201 else if (c < 0xf0)
202 {
203 if (m == 1)
204 goto incomplete;
205 if (m == 2)
184 unsigned char c2 = (unsigned char) p[1];
185
186 if ((c2 ^ 0x80) < 0x40)
206187 {
207 unsigned char c2 = (unsigned char) p[1];
208
209 if ((c2 ^ 0x80) < 0x40
210 && (c >= 0xe1 || c2 >= 0xa0)
211 && (c != 0xed || c2 < 0xa0))
212 goto incomplete;
188 if (pwc != NULL)
189 *pwc = ((unsigned int) (c & 0x1f) << 6)
190 | (unsigned int) (c2 ^ 0x80);
191 res = 2;
192 goto success;
213193 }
214194 }
215 else if (c <= 0xf4)
195 }
196 else if (c < 0xf0)
197 {
198 if (m == 1)
199 goto incomplete;
200 else
216201 {
217 if (m == 1)
218 goto incomplete;
219 else /* m == 2 || m == 3 */
202 unsigned char c2 = (unsigned char) p[1];
203
204 if ((c2 ^ 0x80) < 0x40
205 && (c >= 0xe1 || c2 >= 0xa0)
206 && (c != 0xed || c2 < 0xa0))
220207 {
221 unsigned char c2 = (unsigned char) p[1];
222
223 if ((c2 ^ 0x80) < 0x40
224 && (c >= 0xf1 || c2 >= 0x90)
225 && (c < 0xf4 || (c == 0xf4 && c2 < 0x90)))
208 if (m == 2)
209 goto incomplete;
210 else /* m >= 3 */
226211 {
227 if (m == 2)
228 goto incomplete;
229 else /* m == 3 */
212 unsigned char c3 = (unsigned char) p[2];
213
214 if ((c3 ^ 0x80) < 0x40)
230215 {
231 unsigned char c3 = (unsigned char) p[2];
232
233 if ((c3 ^ 0x80) < 0x40)
234 goto incomplete;
216 if (pwc != NULL)
217 *pwc = ((unsigned int) (c & 0x0f) << 12)
218 | ((unsigned int) (c2 ^ 0x80) << 6)
219 | (unsigned int) (c3 ^ 0x80);
220 res = 3;
221 goto success;
235222 }
236223 }
237224 }
238225 }
239226 }
240 goto invalid;
241 }
242
243 /* As a reference for this code, you can use the GNU libiconv
244 implementation. Look for uses of the RET_TOOFEW macro. */
245
246 case enc_eucjp: /* EUC-JP */
247 {
248 if (m == 1)
227 else if (c <= 0xf4)
249228 {
250 unsigned char c = (unsigned char) p[0];
251
252 if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f)
229 if (m == 1)
253230 goto incomplete;
254 }
255 if (m == 2)
256 {
257 unsigned char c = (unsigned char) p[0];
258
259 if (c == 0x8f)
231 else
260232 {
261233 unsigned char c2 = (unsigned char) p[1];
262234
263 if (c2 >= 0xa1 && c2 < 0xff)
264 goto incomplete;
265 }
266 }
267 goto invalid;
268 }
269
270 case enc_94: /* EUC-KR, GB2312, BIG5 */
271 {
272 if (m == 1)
273 {
274 unsigned char c = (unsigned char) p[0];
275
276 if (c >= 0xa1 && c < 0xff)
277 goto incomplete;
278 }
279 goto invalid;
280 }
281
282 case enc_euctw: /* EUC-TW */
283 {
284 if (m == 1)
285 {
286 unsigned char c = (unsigned char) p[0];
287
288 if ((c >= 0xa1 && c < 0xff) || c == 0x8e)
289 goto incomplete;
290 }
291 else /* m == 2 || m == 3 */
292 {
293 unsigned char c = (unsigned char) p[0];
294
295 if (c == 0x8e)
296 goto incomplete;
297 }
298 goto invalid;
299 }
300
301 case enc_gb18030: /* GB18030 */
302 {
303 if (m == 1)
304 {
305 unsigned char c = (unsigned char) p[0];
306
307 if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe))
308 goto incomplete;
309 }
310 else /* m == 2 || m == 3 */
311 {
312 unsigned char c = (unsigned char) p[0];
313
314 if (c >= 0x90 && c <= 0xe3)
315 {
316 unsigned char c2 = (unsigned char) p[1];
317
318 if (c2 >= 0x30 && c2 <= 0x39)
235 if ((c2 ^ 0x80) < 0x40
236 && (c >= 0xf1 || c2 >= 0x90)
237 && (c < 0xf4 || (c == 0xf4 && c2 < 0x90)))
319238 {
320239 if (m == 2)
321240 goto incomplete;
322 else /* m == 3 */
241 else
323242 {
324243 unsigned char c3 = (unsigned char) p[2];
325244
326 if (c3 >= 0x81 && c3 <= 0xfe)
327 goto incomplete;
245 if ((c3 ^ 0x80) < 0x40)
246 {
247 if (m == 3)
248 goto incomplete;
249 else /* m >= 4 */
250 {
251 unsigned char c4 = (unsigned char) p[3];
252
253 if ((c4 ^ 0x80) < 0x40)
254 {
255 if (pwc != NULL)
256 *pwc = ((unsigned int) (c & 0x07) << 18)
257 | ((unsigned int) (c2 ^ 0x80) << 12)
258 | ((unsigned int) (c3 ^ 0x80) << 6)
259 | (unsigned int) (c4 ^ 0x80);
260 res = 4;
261 goto success;
262 }
263 }
264 }
328265 }
329266 }
330267 }
331268 }
332 goto invalid;
333269 }
334
335 case enc_sjis: /* SJIS */
270 goto invalid;
271 }
272 else
273 {
274 /* The hidden internal state of mbtowc would make this function not
275 multi-thread safe. Achieve multi-thread safety through a lock. */
276 gl_lock_lock (mbtowc_lock);
277
278 /* Put the hidden internal state of mbtowc into its initial state.
279 This is needed at least with glibc, uClibc, and MSVC CRT.
280 See <https://sourceware.org/bugzilla/show_bug.cgi?id=9674>. */
281 mbtowc (NULL, NULL, 0);
282
283 res = mbtowc (pwc, p, m);
284
285 gl_lock_unlock (mbtowc_lock);
286
287 if (res >= 0)
336288 {
337 if (m == 1)
338 {
339 unsigned char c = (unsigned char) p[0];
340
341 if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea)
342 || (c >= 0xf0 && c <= 0xf9))
343 goto incomplete;
344 }
345 goto invalid;
289 if (pwc != NULL && ((*pwc == 0) != (res == 0)))
290 abort ();
291 goto success;
346292 }
347293
348 default:
349 /* An unknown multibyte encoding. */
350 goto incomplete;
294 /* mbtowc does not distinguish between invalid and incomplete multibyte
295 sequences. But mbrtowc needs to make this distinction.
296 There are two possible approaches:
297 - Use iconv() and its return value.
298 - Use built-in knowledge about the possible encodings.
299 Given the low quality of implementation of iconv() on the systems
300 that lack mbrtowc(), we use the second approach.
301 The possible encodings are:
302 - 8-bit encodings,
303 - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS,
304 - UTF-8 (already handled above).
305 Use specialized code for each. */
306 if (m >= 4 || m >= MB_CUR_MAX)
307 goto invalid;
308 /* Here MB_CUR_MAX > 1 and 0 < m < 4. */
309 switch (enc)
310 {
311 /* As a reference for this code, you can use the GNU libiconv
312 implementation. Look for uses of the RET_TOOFEW macro. */
313
314 case enc_eucjp: /* EUC-JP */
315 {
316 if (m == 1)
317 {
318 unsigned char c = (unsigned char) p[0];
319
320 if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f)
321 goto incomplete;
322 }
323 if (m == 2)
324 {
325 unsigned char c = (unsigned char) p[0];
326
327 if (c == 0x8f)
328 {
329 unsigned char c2 = (unsigned char) p[1];
330
331 if (c2 >= 0xa1 && c2 < 0xff)
332 goto incomplete;
333 }
334 }
335 goto invalid;
336 }
337
338 case enc_94: /* EUC-KR, GB2312, BIG5 */
339 {
340 if (m == 1)
341 {
342 unsigned char c = (unsigned char) p[0];
343
344 if (c >= 0xa1 && c < 0xff)
345 goto incomplete;
346 }
347 goto invalid;
348 }
349
350 case enc_euctw: /* EUC-TW */
351 {
352 if (m == 1)
353 {
354 unsigned char c = (unsigned char) p[0];
355
356 if ((c >= 0xa1 && c < 0xff) || c == 0x8e)
357 goto incomplete;
358 }
359 else /* m == 2 || m == 3 */
360 {
361 unsigned char c = (unsigned char) p[0];
362
363 if (c == 0x8e)
364 goto incomplete;
365 }
366 goto invalid;
367 }
368
369 case enc_gb18030: /* GB18030 */
370 {
371 if (m == 1)
372 {
373 unsigned char c = (unsigned char) p[0];
374
375 if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe))
376 goto incomplete;
377 }
378 else /* m == 2 || m == 3 */
379 {
380 unsigned char c = (unsigned char) p[0];
381
382 if (c >= 0x90 && c <= 0xe3)
383 {
384 unsigned char c2 = (unsigned char) p[1];
385
386 if (c2 >= 0x30 && c2 <= 0x39)
387 {
388 if (m == 2)
389 goto incomplete;
390 else /* m == 3 */
391 {
392 unsigned char c3 = (unsigned char) p[2];
393
394 if (c3 >= 0x81 && c3 <= 0xfe)
395 goto incomplete;
396 }
397 }
398 }
399 }
400 goto invalid;
401 }
402
403 case enc_sjis: /* SJIS */
404 {
405 if (m == 1)
406 {
407 unsigned char c = (unsigned char) p[0];
408
409 if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea)
410 || (c >= 0xf0 && c <= 0xf9))
411 goto incomplete;
412 }
413 goto invalid;
414 }
415
416 default:
417 /* An unknown multibyte encoding. */
418 goto incomplete;
419 }
420 }
421
422 success:
423 /* res >= 0 is the corrected return value of mbtowc (pwc, p, m). */
424 if (nstate >= (res > 0 ? res : 1))
425 abort ();
426 res -= nstate;
427 pstate[0] = 0;
428 return res;
429
430 incomplete:
431 {
432 size_t k = nstate;
433 /* Here 0 <= k < m < 4. */
434 pstate[++k] = s[0];
435 if (k < m)
436 {
437 pstate[++k] = s[1];
438 if (k < m)
439 pstate[++k] = s[2];
351440 }
352
353 incomplete:
354 {
355 size_t k = nstate;
356 /* Here 0 <= k < m < 4. */
357 pstate[++k] = s[0];
358 if (k < m)
359 {
360 pstate[++k] = s[1];
361 if (k < m)
362 pstate[++k] = s[2];
363 }
364 if (k != m)
365 abort ();
366 }
367 pstate[0] = m;
368 return (size_t)(-2);
369
370 invalid:
371 errno = EILSEQ;
372 /* The conversion state is undefined, says POSIX. */
373 return (size_t)(-1);
441 if (k != m)
442 abort ();
374443 }
444 pstate[0] = m;
445 return (size_t)(-2);
446
447 invalid:
448 errno = EILSEQ;
449 /* The conversion state is undefined, says POSIX. */
450 return (size_t)(-1);
375451 }
376452 }
377453
2121
2222 #include <stdbool.h>
2323 #include <stddef.h> /* for NULL, in case a nonstandard string.h lacks it */
24 #include <stdlib.h>
2425
2526 #include "malloca.h"
2627 #include "mbuiter.h"
00 # Suppress a valgrind message about use of uninitialized memory in memchr().
1
2 # Copyright (C) 2009-2019 Free Software Foundation, Inc.
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
16
117 # POSIX states that when the character is found, memchr must not read extra
218 # bytes in an overestimated length (for example, where memchr is used to
319 # implement strnlen). However, we use a safe word read to provide a speedup.
9494
9595 /* Gnulib can define its own status codes, as described in the page
9696 "Raising Software Exceptions" on microsoft.com
97 <https://msdn.microsoft.com/en-us/library/het71c37.aspx>.
97 <https://docs.microsoft.com/en-us/cpp/cpp/raising-software-exceptions>.
9898 Our status codes are composed of
9999 - 0xE0000000, mandatory for all user-defined status codes,
100100 - 0x474E550, a API identifier ("GNU"),
105105 # if defined _MSC_VER
106106 /* A compiler that supports __try/__except, as described in the page
107107 "try-except statement" on microsoft.com
108 <https://msdn.microsoft.com/en-us/library/s58ftw19.aspx>.
108 <https://docs.microsoft.com/en-us/cpp/cpp/try-except-statement>.
109109 With __try/__except, we can use the multithread-safe exception handling. */
110110
111111 # ifdef __cplusplus
7575 memmove (buf + 2, codeset, codesetlen + 1);
7676 else
7777 sprintf (buf + 2, "%u", GetACP ());
78 codeset = memcpy (buf, "CP", 2);
79 # endif
78 /* For a locale name such as "French_France.65001", in Windows 10,
79 setlocale now returns "French_France.utf8" instead. */
80 if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0)
81 return "UTF-8";
82 else
83 return memcpy (buf, "CP", 2);
84 # else
8085 return codeset;
86 #endif
8187 }
8288 #endif
8389
17991799 token->word_char = 0;
18001800 #ifdef RE_ENABLE_I18N
18011801 token->mb_partial = 0;
1802 if (input->mb_cur_max > 1 &&
1803 !re_string_first_byte (input, re_string_cur_idx (input)))
1802 if (input->mb_cur_max > 1
1803 && !re_string_first_byte (input, re_string_cur_idx (input)))
18041804 {
18051805 token->type = CHARACTER;
18061806 token->mb_partial = 1;
19871987 token->type = OP_PERIOD;
19881988 break;
19891989 case '^':
1990 if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) &&
1991 re_string_cur_idx (input) != 0)
1990 if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE))
1991 && re_string_cur_idx (input) != 0)
19921992 {
19931993 char prev = re_string_peek_byte (input, -1);
19941994 if (!(syntax & RE_NEWLINE_ALT) || prev != '\n')
19981998 token->opr.ctx_type = LINE_FIRST;
19991999 break;
20002000 case '$':
2001 if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) &&
2002 re_string_cur_idx (input) + 1 != re_string_length (input))
2001 if (!(syntax & RE_CONTEXT_INDEP_ANCHORS)
2002 && re_string_cur_idx (input) + 1 != re_string_length (input))
20032003 {
20042004 re_token_t next;
20052005 re_string_skip_bytes (input, 1);
20332033 token->opr.c = c;
20342034
20352035 #ifdef RE_ENABLE_I18N
2036 if (input->mb_cur_max > 1 &&
2037 !re_string_first_byte (input, re_string_cur_idx (input)))
2036 if (input->mb_cur_max > 1
2037 && !re_string_first_byte (input, re_string_cur_idx (input)))
20382038 {
20392039 token->type = CHARACTER;
20402040 return 1;
23322332 }
23332333 FALLTHROUGH;
23342334 case OP_CLOSE_SUBEXP:
2335 if ((token->type == OP_CLOSE_SUBEXP) &&
2336 !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
2335 if ((token->type == OP_CLOSE_SUBEXP)
2336 && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
23372337 {
23382338 *err = REG_ERPAREN;
23392339 return NULL;
12921292 else if (naccepted)
12931293 {
12941294 char *buf = (char *) re_string_get_buffer (&mctx->input);
1295 if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
1296 naccepted) != 0)
1295 if (mctx->input.valid_len - *pidx < naccepted
1296 || (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
1297 naccepted)
1298 != 0))
12971299 return -1;
12981300 }
12991301 }
22012203 int naccepted;
22022204 /* Check the node can accept "multi byte". */
22032205 naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx);
2204 if (naccepted > 0 && str_idx + naccepted <= max_str_idx &&
2205 !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
2206 dfa->nexts[node_idx]))
2206 if (naccepted > 0 && str_idx + naccepted <= max_str_idx
2207 && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
2208 dfa->nexts[node_idx]))
22072209 /* The node can't accept the "multi byte", or the
22082210 destination was already thrown away, then the node
2209 could't accept the current input "multi byte". */
2211 couldn't accept the current input "multi byte". */
22102212 naccepted = 0;
22112213 /* Otherwise, it is sure that the node could accept
22122214 'naccepted' bytes input. */
37793781 /* FIXME: I don't think this if is needed, as both '\n'
37803782 and '\0' are char_len == 1. */
37813783 /* '.' accepts any one character except the following two cases. */
3782 if ((!(dfa->syntax & RE_DOT_NEWLINE) &&
3783 re_string_byte_at (input, str_idx) == '\n') ||
3784 ((dfa->syntax & RE_DOT_NOT_NULL) &&
3785 re_string_byte_at (input, str_idx) == '\0'))
3784 if ((!(dfa->syntax & RE_DOT_NEWLINE)
3785 && re_string_byte_at (input, str_idx) == '\n')
3786 || ((dfa->syntax & RE_DOT_NOT_NULL)
3787 && re_string_byte_at (input, str_idx) == '\0'))
37863788 return 0;
37873789 return char_len;
37883790 }
115115 #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \
116116 && ! defined __GLIBC__
117117 # include <unistd.h>
118 #endif
119
120 /* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>. */
121 /* But in any case avoid namespace pollution on glibc systems. */
122 #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
123 && ! defined __GLIBC__
124 # include <sys/stat.h>
118125 #endif
119126
120127 /* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>. We must include
305305 _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
306306 _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
307307 # else
308 # if !@HAVE_MBTOWC@
309 _GL_FUNCDECL_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
310 # endif
308311 _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
309312 # endif
310313 _GL_CXXALIASWARN (mbtowc);
314 #elif defined GNULIB_POSIXCHECK
315 # undef mbtowc
316 # if HAVE_RAW_DECL_MBTOWC
317 _GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - "
318 "use gnulib module mbtowc for portability");
319 # endif
311320 #endif
312321
313322 #if @GNULIB_MKDTEMP@
572581
573582
574583 #if @GNULIB_RANDOM@
575 # if !@HAVE_RANDOM@
584 # if @REPLACE_RANDOM@
585 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
586 # undef random
587 # define random rpl_random
588 # endif
589 _GL_FUNCDECL_RPL (random, long, (void));
590 _GL_CXXALIAS_RPL (random, long, (void));
591 # else
592 # if !@HAVE_RANDOM@
576593 _GL_FUNCDECL_SYS (random, long, (void));
577 # endif
594 # endif
578595 _GL_CXXALIAS_SYS (random, long, (void));
596 # endif
579597 _GL_CXXALIASWARN (random);
580598 #elif defined GNULIB_POSIXCHECK
581599 # undef random
586604 #endif
587605
588606 #if @GNULIB_RANDOM@
589 # if !@HAVE_RANDOM@
607 # if @REPLACE_RANDOM@
608 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
609 # undef srandom
610 # define srandom rpl_srandom
611 # endif
612 _GL_FUNCDECL_RPL (srandom, void, (unsigned int seed));
613 _GL_CXXALIAS_RPL (srandom, void, (unsigned int seed));
614 # else
615 # if !@HAVE_RANDOM@
590616 _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
591 # endif
617 # endif
592618 _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed));
619 # endif
593620 _GL_CXXALIASWARN (srandom);
594621 #elif defined GNULIB_POSIXCHECK
595622 # undef srandom
600627 #endif
601628
602629 #if @GNULIB_RANDOM@
603 # if !@HAVE_RANDOM@ || !@HAVE_DECL_INITSTATE@
630 # if @REPLACE_INITSTATE@
631 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
632 # undef initstate
633 # define initstate rpl_initstate
634 # endif
635 _GL_FUNCDECL_RPL (initstate, char *,
636 (unsigned int seed, char *buf, size_t buf_size)
637 _GL_ARG_NONNULL ((2)));
638 _GL_CXXALIAS_RPL (initstate, char *,
639 (unsigned int seed, char *buf, size_t buf_size));
640 # else
641 # if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@
604642 _GL_FUNCDECL_SYS (initstate, char *,
605643 (unsigned int seed, char *buf, size_t buf_size)
606644 _GL_ARG_NONNULL ((2)));
607 # endif
645 # endif
608646 _GL_CXXALIAS_SYS (initstate, char *,
609647 (unsigned int seed, char *buf, size_t buf_size));
648 # endif
610649 _GL_CXXALIASWARN (initstate);
611650 #elif defined GNULIB_POSIXCHECK
612651 # undef initstate
613 # if HAVE_RAW_DECL_INITSTATE_R
652 # if HAVE_RAW_DECL_INITSTATE
614653 _GL_WARN_ON_USE (initstate, "initstate is unportable - "
615654 "use gnulib module random for portability");
616655 # endif
617656 #endif
618657
619658 #if @GNULIB_RANDOM@
620 # if !@HAVE_RANDOM@ || !@HAVE_DECL_SETSTATE@
659 # if @REPLACE_SETSTATE@
660 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
661 # undef setstate
662 # define setstate rpl_setstate
663 # endif
664 _GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
665 _GL_CXXALIAS_RPL (setstate, char *, (char *arg_state));
666 # else
667 # if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@
621668 _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
622 # endif
669 # endif
623670 _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state));
671 # endif
624672 _GL_CXXALIASWARN (setstate);
625673 #elif defined GNULIB_POSIXCHECK
626674 # undef setstate
627 # if HAVE_RAW_DECL_SETSTATE_R
675 # if HAVE_RAW_DECL_SETSTATE
628676 _GL_WARN_ON_USE (setstate, "setstate is unportable - "
629677 "use gnulib module random for portability");
630678 # endif
880928 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
881929 # define strtod rpl_strtod
882930 # endif
931 # define GNULIB_defined_strtod_function 1
883932 _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp)
884933 _GL_ARG_NONNULL ((1)));
885934 _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp));
896945 # if HAVE_RAW_DECL_STRTOD
897946 _GL_WARN_ON_USE (strtod, "strtod is unportable - "
898947 "use gnulib module strtod for portability");
948 # endif
949 #endif
950
951 #if @GNULIB_STRTOLD@
952 /* Parse a 'long double' from STRING, updating ENDP if appropriate. */
953 # if @REPLACE_STRTOLD@
954 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
955 # define strtold rpl_strtold
956 # endif
957 # define GNULIB_defined_strtold_function 1
958 _GL_FUNCDECL_RPL (strtold, long double, (const char *str, char **endp)
959 _GL_ARG_NONNULL ((1)));
960 _GL_CXXALIAS_RPL (strtold, long double, (const char *str, char **endp));
961 # else
962 # if !@HAVE_STRTOLD@
963 _GL_FUNCDECL_SYS (strtold, long double, (const char *str, char **endp)
964 _GL_ARG_NONNULL ((1)));
965 # endif
966 _GL_CXXALIAS_SYS (strtold, long double, (const char *str, char **endp));
967 # endif
968 _GL_CXXALIASWARN (strtold);
969 #elif defined GNULIB_POSIXCHECK
970 # undef strtold
971 # if HAVE_RAW_DECL_STRTOLD
972 _GL_WARN_ON_USE (strtold, "strtold is unportable - "
973 "use gnulib module strtold for portability");
899974 # endif
900975 #endif
901976
1717
1818 /* Before including this file, you need to include <config.h> and
1919 <string.h>, and define:
20 RESULT_TYPE A macro that expands to the return type.
20 RETURN_TYPE A macro that expands to the return type.
2121 AVAILABLE(h, h_l, j, n_l)
2222 A macro that returns nonzero if there are
2323 at least N_L bytes left starting at H[J].
5151 #define _@GUARD_PREFIX@_UNISTD_H
5252
5353 /* NetBSD 5.0 mis-defines NULL. Also get size_t. */
54 #include <stddef.h>
54 /* But avoid namespace pollution on glibc systems. */
55 #ifndef __GLIBC__
56 # include <stddef.h>
57 #endif
5558
5659 /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */
5760 /* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>. We must include
6770 # include <stdio.h>
6871 #endif
6972
70 /* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>. */
73 /* Cygwin 1.7.1 and Android 4.3 declare unlinkat in <fcntl.h>, not in
74 <unistd.h>. */
7175 /* But avoid namespace pollution on glibc systems. */
72 #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \
76 #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \
77 && (defined __CYGWIN__ || defined __ANDROID__) \
7378 && ! defined __GLIBC__
7479 # include <fcntl.h>
7580 #endif
112117 # include <netdb.h>
113118 #endif
114119
120 /* Android 4.3 declares fchownat in <sys/stat.h>, not in <unistd.h>. */
121 /* But avoid namespace pollution on glibc systems. */
122 #if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
123 && !defined __GLIBC__
124 # include <sys/stat.h>
125 #endif
126
115127 /* MSVC defines off_t in <sys/types.h>.
116128 May also define off_t to a 64-bit type on native Windows. */
117 #if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@
118 /* Get off_t. */
119 # include <sys/types.h>
120 #endif
121
122 #if (@GNULIB_READ@ || @GNULIB_WRITE@ \
123 || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
124 || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK)
125 /* Get ssize_t. */
129 /* But avoid namespace pollution on glibc systems. */
130 #ifndef __GLIBC__
131 /* Get off_t, ssize_t. */
126132 # include <sys/types.h>
127133 #endif
128134
318324 /* Assume close is always declared. */
319325 _GL_WARN_ON_USE (close, "close does not portably work on sockets - "
320326 "use gnulib module close for portability");
327 #endif
328
329
330 #if @GNULIB_COPY_FILE_RANGE@
331 # if !@HAVE_COPY_FILE_RANGE@
332 _GL_FUNCDECL_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
333 int ofd, off_t *opos,
334 size_t len, unsigned flags));
335 _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
336 int ofd, off_t *opos,
337 size_t len, unsigned flags));
338 # endif
339 _GL_CXXALIASWARN (copy_file_range);
340 #elif defined GNULIB_POSIXCHECK
341 /* Assume copy_file_range is always declared. */
342 _GL_WARN_ON_USE (copy_file_range,
343 "copy_file_range is unportable - "
344 "use gnulib module copy_file_range for portability");
321345 #endif
322346
323347
48734873 # if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \
48744874 && !defined __UCLIBC__) \
48754875 || (defined __APPLE__ && defined __MACH__) \
4876 || defined __ANDROID__ \
48764877 || (defined _WIN32 && ! defined __CYGWIN__))
48774878 fbp[1] = '%';
48784879 fbp[2] = 'n';
48944895 On Mac OS X 10.13 or newer, the use of %n in format strings
48954896 in writable memory by default crashes the program, so we
48964897 should avoid it in this situation. */
4898 /* On Android, we know that snprintf's return value conforms to
4899 ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and
4900 gl_SNPRINTF_TRUNCATION_C99 pass.
4901 Therefore we can avoid using %n in this situation.
4902 Starting on 2018-03-07, the use of %n in format strings
4903 produces a fatal error (see
4904 <https://android.googlesource.com/platform/bionic/+/41398d03b7e8e0dfb951660ae713e682e9fc0336>),
4905 so we should avoid it. */
48974906 /* On native Windows systems (such as mingw), we can avoid using
48984907 %n because:
48994908 - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
49074916 Windows Vista, the use of %n in format strings by default
49084917 crashes the program. See
49094918 <https://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
4910 <https://msdn.microsoft.com/en-us/library/ms175782.aspx>
4919 <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/set-printf-count-output>
49114920 So we should avoid %n in this situation. */
49124921 fbp[1] = '\0';
49134922 # endif
2020 #define _GL_VERIFY_H
2121
2222
23 /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11.
24 This is supported by GCC 4.6.0 and later, in C mode, and its use
25 here generates easier-to-read diagnostics when verify (R) fails.
26
27 Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11.
28 This will likely be supported by future GCC versions, in C++ mode.
29
30 Use this only with GCC. If we were willing to slow 'configure'
31 down we could also use it with other compilers, but since this
32 affects only the quality of diagnostics, why bother? */
33 #if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \
34 && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \
35 && !defined __cplusplus)
36 # define _GL_HAVE__STATIC_ASSERT 1
37 #endif
38 /* The condition (99 < __GNUC__) is temporary, until we know about the
39 first G++ release that supports static_assert. */
40 #if (99 < __GNUC__) && defined __cplusplus
41 # define _GL_HAVE_STATIC_ASSERT 1
23 /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC)
24 works as per C11. This is supported by GCC 4.6.0 and later, in C
25 mode.
26
27 Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as
28 per C2X, and define _GL_HAVE_STATIC_ASSERT1 if static_assert (R)
29 works as per C++17. This is supported by GCC 9.1 and later.
30
31 Support compilers claiming conformance to the relevant standard,
32 and also support GCC when not pedantic. If we were willing to slow
33 'configure' down we could also use it with other compilers, but
34 since this affects only the quality of diagnostics, why bother? */
35 #ifndef __cplusplus
36 # if (201112L <= __STDC_VERSION__ \
37 || (!defined __STRICT_ANSI__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)))
38 # define _GL_HAVE__STATIC_ASSERT 1
39 # endif
40 # if (202000L <= __STDC_VERSION__ \
41 || (!defined __STRICT_ANSI__ && 9 <= __GNUC__))
42 # define _GL_HAVE__STATIC_ASSERT1 1
43 # endif
44 #else
45 # if 201703L <= __cplusplus || 9 <= __GNUC__
46 # define _GL_HAVE_STATIC_ASSERT1 1
47 # endif
4248 #endif
4349
4450 /* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other
4551 system headers, defines a conflicting _Static_assert that is no
4652 better than ours; override it. */
47 #ifndef _GL_HAVE_STATIC_ASSERT
53 #ifndef _GL_HAVE__STATIC_ASSERT
4854 # include <stddef.h>
4955 # undef _Static_assert
5056 #endif
142148 which do not support _Static_assert, also do not warn about the
143149 last declaration mentioned above.
144150
145 * GCC warns if -Wnested-externs is enabled and verify() is used
151 * GCC warns if -Wnested-externs is enabled and 'verify' is used
146152 within a function body; but inside a function, you can always
147 arrange to use verify_expr() instead.
153 arrange to use verify_expr instead.
148154
149155 * In C++, any struct definition inside sizeof is invalid.
150156 Use a template type to work around the problem. */
196202 #endif
197203
198204 /* Verify requirement R at compile-time, as a declaration without a
199 trailing ';'. If R is false, fail at compile-time, preferably
200 with a diagnostic that includes the string-literal DIAGNOSTIC.
205 trailing ';'. If R is false, fail at compile-time.
206
207 This macro requires three or more arguments but uses at most the first
208 two, so that the _Static_assert macro optionally defined below supports
209 both the C11 two-argument syntax and the C2X one-argument syntax.
201210
202211 Unfortunately, unlike C11, this implementation must appear as an
203212 ordinary declaration, and cannot appear inside struct { ... }. */
204213
205 #ifdef _GL_HAVE__STATIC_ASSERT
206 # define _GL_VERIFY _Static_assert
207 #else
208 # define _GL_VERIFY(R, DIAGNOSTIC) \
214 #if defined _GL_HAVE__STATIC_ASSERT
215 # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC)
216 #else
217 # define _GL_VERIFY(R, DIAGNOSTIC, ...) \
209218 extern int (*_GL_GENSYM (_gl_verify_function) (void)) \
210219 [_GL_VERIFY_TRUE (R, DIAGNOSTIC)]
211220 #endif
212221
213222 /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */
214223 #ifdef _GL_STATIC_ASSERT_H
215 # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert
216 # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC)
217 # endif
218 # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert
224 # if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert
225 # define _Static_assert(...) \
226 _GL_VERIFY (__VA_ARGS__, "static assertion failed", -)
227 # endif
228 # if !defined _GL_HAVE_STATIC_ASSERT1 && !defined static_assert
219229 # define static_assert _Static_assert /* C11 requires this #define. */
220230 # endif
221231 #endif
227237 assert (R), there is no run-time overhead.
228238
229239 There are two macros, since no single macro can be used in all
230 contexts in C. verify_true (R) is for scalar contexts, including
240 contexts in C. verify_expr (R, E) is for scalar contexts, including
231241 integer constant expression contexts. verify (R) is for declaration
232242 contexts, e.g., the top level. */
233243
234 /* Verify requirement R at compile-time, as an integer constant expression.
235 Return 1. This is equivalent to verify_expr (R, 1).
236
237 verify_true is obsolescent; please use verify_expr instead. */
238
239 #define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
240
241244 /* Verify requirement R at compile-time. Return the value of the
242245 expression E. */
243246
245248 (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
246249
247250 /* Verify requirement R at compile-time, as a declaration without a
248 trailing ';'. */
249
250 #ifdef __GNUC__
251 # define verify(R) _GL_VERIFY (R, "verify (" #R ")")
252 #else
253 /* PGI barfs if R is long. Play it safe. */
254 # define verify(R) _GL_VERIFY (R, "verify (...)")
251 trailing ';'. verify (R) acts like static_assert (R) except that
252 it is portable to C11/C++14 and earlier, it can issue better
253 diagnostics, and its name is shorter and may be more convenient. */
254
255 #ifdef __PGI
256 /* PGI barfs if R is long. */
257 # define verify(R) _GL_VERIFY (R, "verify (...)", -)
258 #else
259 # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -)
255260 #endif
256261
257262 #ifndef __has_builtin
258263 # define __has_builtin(x) 0
259264 #endif
260265
261 /* Assume that R always holds. This lets the compiler optimize
262 accordingly. R should not have side-effects; it may or may not be
263 evaluated. Behavior is undefined if R is false. */
266 /* Assume that R always holds. Behavior is undefined if R is false,
267 fails to evaluate, or has side effects. Although assuming R can
268 help a compiler generate better code or diagnostics, performance
269 can suffer if R uses hard-to-optimize features such as function
270 calls not inlined by the compiler. */
264271
265272 #if (__has_builtin (__builtin_unreachable) \
266273 || 4 < __GNUC__ + (5 <= __GNUC_MINOR__))
2626 size_t
2727 wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
2828 {
29 /* This implementation of wcrtomb on top of wctomb() supports only
30 stateless encodings. ps must be in the initial state. */
29 /* This implementation of wcrtomb supports only stateless encodings.
30 ps must be in the initial state. */
3131 if (ps != NULL && !mbsinit (ps))
3232 {
3333 errno = EINVAL;
3939 return 1;
4040 else
4141 {
42 #if defined __ANDROID__
43 /* Implement consistently with mbrtowc(): through a 1:1 correspondence,
44 as in ISO-8859-1. */
45 if (wc >= 0 && wc <= 0xff)
46 {
47 *s = (unsigned char) wc;
48 return 1;
49 }
50 #else
51 /* Implement on top of wctomb(). */
4252 int ret = wctomb (s, wc);
4353
4454 if (ret >= 0)
4555 return ret;
56 #endif
4657 else
4758 {
4859 errno = EILSEQ;
0 /* Init guards, somewhat like spinlocks (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #ifndef _WINDOWS_INITGUARD_H
20 #define _WINDOWS_INITGUARD_H
21
22 #define WIN32_LEAN_AND_MEAN /* avoid including junk */
23 #include <windows.h>
24
25 typedef struct
26 {
27 volatile int done;
28 volatile LONG started;
29 }
30 glwthread_initguard_t;
31
32 #define GLWTHREAD_INITGUARD_INIT { 0, -1 }
33
34 #endif /* _WINDOWS_INITGUARD_H */
0 /* Plain mutexes (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #include <config.h>
20
21 /* Specification. */
22 #include "windows-mutex.h"
23
24 #include <errno.h>
25
26 void
27 glwthread_mutex_init (glwthread_mutex_t *mutex)
28 {
29 InitializeCriticalSection (&mutex->lock);
30 mutex->guard.done = 1;
31 }
32
33 int
34 glwthread_mutex_lock (glwthread_mutex_t *mutex)
35 {
36 if (!mutex->guard.done)
37 {
38 if (InterlockedIncrement (&mutex->guard.started) == 0)
39 /* This thread is the first one to need this mutex. Initialize it. */
40 glwthread_mutex_init (mutex);
41 else
42 {
43 /* Don't let mutex->guard.started grow and wrap around. */
44 InterlockedDecrement (&mutex->guard.started);
45 /* Yield the CPU while waiting for another thread to finish
46 initializing this mutex. */
47 while (!mutex->guard.done)
48 Sleep (0);
49 }
50 }
51 EnterCriticalSection (&mutex->lock);
52 return 0;
53 }
54
55 int
56 glwthread_mutex_trylock (glwthread_mutex_t *mutex)
57 {
58 if (!mutex->guard.done)
59 {
60 if (InterlockedIncrement (&mutex->guard.started) == 0)
61 /* This thread is the first one to need this mutex. Initialize it. */
62 glwthread_mutex_init (mutex);
63 else
64 {
65 /* Don't let mutex->guard.started grow and wrap around. */
66 InterlockedDecrement (&mutex->guard.started);
67 /* Let another thread finish initializing this mutex, and let it also
68 lock this mutex. */
69 return EBUSY;
70 }
71 }
72 if (!TryEnterCriticalSection (&mutex->lock))
73 return EBUSY;
74 return 0;
75 }
76
77 int
78 glwthread_mutex_unlock (glwthread_mutex_t *mutex)
79 {
80 if (!mutex->guard.done)
81 return EINVAL;
82 LeaveCriticalSection (&mutex->lock);
83 return 0;
84 }
85
86 int
87 glwthread_mutex_destroy (glwthread_mutex_t *mutex)
88 {
89 if (!mutex->guard.done)
90 return EINVAL;
91 DeleteCriticalSection (&mutex->lock);
92 mutex->guard.done = 0;
93 return 0;
94 }
0 /* Plain mutexes (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #ifndef _WINDOWS_MUTEX_H
20 #define _WINDOWS_MUTEX_H
21
22 #define WIN32_LEAN_AND_MEAN /* avoid including junk */
23 #include <windows.h>
24
25 #include "windows-initguard.h"
26
27 typedef struct
28 {
29 glwthread_initguard_t guard; /* protects the initialization */
30 CRITICAL_SECTION lock;
31 }
32 glwthread_mutex_t;
33
34 #define GLWTHREAD_MUTEX_INIT { GLWTHREAD_INITGUARD_INIT }
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 extern void glwthread_mutex_init (glwthread_mutex_t *mutex);
41 extern int glwthread_mutex_lock (glwthread_mutex_t *mutex);
42 extern int glwthread_mutex_trylock (glwthread_mutex_t *mutex);
43 extern int glwthread_mutex_unlock (glwthread_mutex_t *mutex);
44 extern int glwthread_mutex_destroy (glwthread_mutex_t *mutex);
45
46 #ifdef __cplusplus
47 }
48 #endif
49
50 #endif /* _WINDOWS_MUTEX_H */
0 /* Once-only control (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #include <config.h>
20
21 /* Specification. */
22 #include "windows-once.h"
23
24 #include <stdlib.h>
25
26 void
27 glwthread_once (glwthread_once_t *once_control, void (*initfunction) (void))
28 {
29 if (once_control->inited <= 0)
30 {
31 if (InterlockedIncrement (&once_control->started) == 0)
32 {
33 /* This thread is the first one to come to this once_control. */
34 InitializeCriticalSection (&once_control->lock);
35 EnterCriticalSection (&once_control->lock);
36 once_control->inited = 0;
37 initfunction ();
38 once_control->inited = 1;
39 LeaveCriticalSection (&once_control->lock);
40 }
41 else
42 {
43 /* Don't let once_control->started grow and wrap around. */
44 InterlockedDecrement (&once_control->started);
45 /* Some other thread has already started the initialization.
46 Yield the CPU while waiting for the other thread to finish
47 initializing and taking the lock. */
48 while (once_control->inited < 0)
49 Sleep (0);
50 if (once_control->inited <= 0)
51 {
52 /* Take the lock. This blocks until the other thread has
53 finished calling the initfunction. */
54 EnterCriticalSection (&once_control->lock);
55 LeaveCriticalSection (&once_control->lock);
56 if (!(once_control->inited > 0))
57 abort ();
58 }
59 }
60 }
61 }
0 /* Once-only control (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #ifndef _WINDOWS_ONCE_H
20 #define _WINDOWS_ONCE_H
21
22 #define WIN32_LEAN_AND_MEAN /* avoid including junk */
23 #include <windows.h>
24
25 typedef struct
26 {
27 volatile int inited;
28 volatile LONG started;
29 CRITICAL_SECTION lock;
30 }
31 glwthread_once_t;
32
33 #define GLWTHREAD_ONCE_INIT { -1, -1 }
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 extern void glwthread_once (glwthread_once_t *once_control,
40 void (*initfunction) (void));
41
42 #ifdef __cplusplus
43 }
44 #endif
45
46 #endif /* _WINDOWS_ONCE_H */
0 /* Plain recursive mutexes (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #include <config.h>
20
21 /* Specification. */
22 #include "windows-recmutex.h"
23
24 #include <errno.h>
25
26 void
27 glwthread_recmutex_init (glwthread_recmutex_t *mutex)
28 {
29 mutex->owner = 0;
30 mutex->depth = 0;
31 InitializeCriticalSection (&mutex->lock);
32 mutex->guard.done = 1;
33 }
34
35 int
36 glwthread_recmutex_lock (glwthread_recmutex_t *mutex)
37 {
38 if (!mutex->guard.done)
39 {
40 if (InterlockedIncrement (&mutex->guard.started) == 0)
41 /* This thread is the first one to need this mutex. Initialize it. */
42 glwthread_recmutex_init (mutex);
43 else
44 {
45 /* Don't let mutex->guard.started grow and wrap around. */
46 InterlockedDecrement (&mutex->guard.started);
47 /* Yield the CPU while waiting for another thread to finish
48 initializing this mutex. */
49 while (!mutex->guard.done)
50 Sleep (0);
51 }
52 }
53 {
54 DWORD self = GetCurrentThreadId ();
55 if (mutex->owner != self)
56 {
57 EnterCriticalSection (&mutex->lock);
58 mutex->owner = self;
59 }
60 if (++(mutex->depth) == 0) /* wraparound? */
61 {
62 mutex->depth--;
63 return EAGAIN;
64 }
65 }
66 return 0;
67 }
68
69 int
70 glwthread_recmutex_trylock (glwthread_recmutex_t *mutex)
71 {
72 if (!mutex->guard.done)
73 {
74 if (InterlockedIncrement (&mutex->guard.started) == 0)
75 /* This thread is the first one to need this mutex. Initialize it. */
76 glwthread_recmutex_init (mutex);
77 else
78 {
79 /* Don't let mutex->guard.started grow and wrap around. */
80 InterlockedDecrement (&mutex->guard.started);
81 /* Let another thread finish initializing this mutex, and let it also
82 lock this mutex. */
83 return EBUSY;
84 }
85 }
86 {
87 DWORD self = GetCurrentThreadId ();
88 if (mutex->owner != self)
89 {
90 if (!TryEnterCriticalSection (&mutex->lock))
91 return EBUSY;
92 mutex->owner = self;
93 }
94 if (++(mutex->depth) == 0) /* wraparound? */
95 {
96 mutex->depth--;
97 return EAGAIN;
98 }
99 }
100 return 0;
101 }
102
103 int
104 glwthread_recmutex_unlock (glwthread_recmutex_t *mutex)
105 {
106 if (mutex->owner != GetCurrentThreadId ())
107 return EPERM;
108 if (mutex->depth == 0)
109 return EINVAL;
110 if (--(mutex->depth) == 0)
111 {
112 mutex->owner = 0;
113 LeaveCriticalSection (&mutex->lock);
114 }
115 return 0;
116 }
117
118 int
119 glwthread_recmutex_destroy (glwthread_recmutex_t *mutex)
120 {
121 if (mutex->owner != 0)
122 return EBUSY;
123 DeleteCriticalSection (&mutex->lock);
124 mutex->guard.done = 0;
125 return 0;
126 }
0 /* Plain recursive mutexes (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #ifndef _WINDOWS_RECMUTEX_H
20 #define _WINDOWS_RECMUTEX_H
21
22 #define WIN32_LEAN_AND_MEAN /* avoid including junk */
23 #include <windows.h>
24
25 #include "windows-initguard.h"
26
27 /* The native Windows documentation says that CRITICAL_SECTION already
28 implements a recursive lock. But we need not rely on it: It's easy to
29 implement a recursive lock without this assumption. */
30
31 typedef struct
32 {
33 glwthread_initguard_t guard; /* protects the initialization */
34 DWORD owner;
35 unsigned long depth;
36 CRITICAL_SECTION lock;
37 }
38 glwthread_recmutex_t;
39
40 #define GLWTHREAD_RECMUTEX_INIT { GLWTHREAD_INITGUARD_INIT, 0, 0 }
41
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45
46 extern void glwthread_recmutex_init (glwthread_recmutex_t *mutex);
47 extern int glwthread_recmutex_lock (glwthread_recmutex_t *mutex);
48 extern int glwthread_recmutex_trylock (glwthread_recmutex_t *mutex);
49 extern int glwthread_recmutex_unlock (glwthread_recmutex_t *mutex);
50 extern int glwthread_recmutex_destroy (glwthread_recmutex_t *mutex);
51
52 #ifdef __cplusplus
53 }
54 #endif
55
56 #endif /* _WINDOWS_RECMUTEX_H */
0 /* Read-write locks (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #include <config.h>
20
21 /* Specification. */
22 #include "windows-rwlock.h"
23
24 #include <errno.h>
25 #include <stdlib.h>
26
27 /* In this file, the waitqueues are implemented as circular arrays. */
28 #define glwthread_waitqueue_t glwthread_carray_waitqueue_t
29
30 static void
31 glwthread_waitqueue_init (glwthread_waitqueue_t *wq)
32 {
33 wq->array = NULL;
34 wq->count = 0;
35 wq->alloc = 0;
36 wq->offset = 0;
37 }
38
39 /* Enqueues the current thread, represented by an event, in a wait queue.
40 Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */
41 static HANDLE
42 glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
43 {
44 HANDLE event;
45 unsigned int index;
46
47 if (wq->count == wq->alloc)
48 {
49 unsigned int new_alloc = 2 * wq->alloc + 1;
50 HANDLE *new_array =
51 (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE));
52 if (new_array == NULL)
53 /* No more memory. */
54 return INVALID_HANDLE_VALUE;
55 /* Now is a good opportunity to rotate the array so that its contents
56 starts at offset 0. */
57 if (wq->offset > 0)
58 {
59 unsigned int old_count = wq->count;
60 unsigned int old_alloc = wq->alloc;
61 unsigned int old_offset = wq->offset;
62 unsigned int i;
63 if (old_offset + old_count > old_alloc)
64 {
65 unsigned int limit = old_offset + old_count - old_alloc;
66 for (i = 0; i < limit; i++)
67 new_array[old_alloc + i] = new_array[i];
68 }
69 for (i = 0; i < old_count; i++)
70 new_array[i] = new_array[old_offset + i];
71 wq->offset = 0;
72 }
73 wq->array = new_array;
74 wq->alloc = new_alloc;
75 }
76 /* Whether the created event is a manual-reset one or an auto-reset one,
77 does not matter, since we will wait on it only once. */
78 event = CreateEvent (NULL, TRUE, FALSE, NULL);
79 if (event == INVALID_HANDLE_VALUE)
80 /* No way to allocate an event. */
81 return INVALID_HANDLE_VALUE;
82 index = wq->offset + wq->count;
83 if (index >= wq->alloc)
84 index -= wq->alloc;
85 wq->array[index] = event;
86 wq->count++;
87 return event;
88 }
89
90 /* Notifies the first thread from a wait queue and dequeues it. */
91 static void
92 glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq)
93 {
94 SetEvent (wq->array[wq->offset + 0]);
95 wq->offset++;
96 wq->count--;
97 if (wq->count == 0 || wq->offset == wq->alloc)
98 wq->offset = 0;
99 }
100
101 /* Notifies all threads from a wait queue and dequeues them all. */
102 static void
103 glwthread_waitqueue_notify_all (glwthread_waitqueue_t *wq)
104 {
105 unsigned int i;
106
107 for (i = 0; i < wq->count; i++)
108 {
109 unsigned int index = wq->offset + i;
110 if (index >= wq->alloc)
111 index -= wq->alloc;
112 SetEvent (wq->array[index]);
113 }
114 wq->count = 0;
115 wq->offset = 0;
116 }
117
118 void
119 glwthread_rwlock_init (glwthread_rwlock_t *lock)
120 {
121 InitializeCriticalSection (&lock->lock);
122 glwthread_waitqueue_init (&lock->waiting_readers);
123 glwthread_waitqueue_init (&lock->waiting_writers);
124 lock->runcount = 0;
125 lock->guard.done = 1;
126 }
127
128 int
129 glwthread_rwlock_rdlock (glwthread_rwlock_t *lock)
130 {
131 if (!lock->guard.done)
132 {
133 if (InterlockedIncrement (&lock->guard.started) == 0)
134 /* This thread is the first one to need this lock. Initialize it. */
135 glwthread_rwlock_init (lock);
136 else
137 {
138 /* Don't let lock->guard.started grow and wrap around. */
139 InterlockedDecrement (&lock->guard.started);
140 /* Yield the CPU while waiting for another thread to finish
141 initializing this lock. */
142 while (!lock->guard.done)
143 Sleep (0);
144 }
145 }
146 EnterCriticalSection (&lock->lock);
147 /* Test whether only readers are currently running, and whether the runcount
148 field will not overflow, and whether no writer is waiting. The latter
149 condition is because POSIX recommends that "write locks shall take
150 precedence over read locks", to avoid "writer starvation". */
151 if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0))
152 {
153 /* This thread has to wait for a while. Enqueue it among the
154 waiting_readers. */
155 HANDLE event = glwthread_waitqueue_add (&lock->waiting_readers);
156 if (event != INVALID_HANDLE_VALUE)
157 {
158 DWORD result;
159 LeaveCriticalSection (&lock->lock);
160 /* Wait until another thread signals this event. */
161 result = WaitForSingleObject (event, INFINITE);
162 if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
163 abort ();
164 CloseHandle (event);
165 /* The thread which signalled the event already did the bookkeeping:
166 removed us from the waiting_readers, incremented lock->runcount. */
167 if (!(lock->runcount > 0))
168 abort ();
169 return 0;
170 }
171 else
172 {
173 /* Allocation failure. Weird. */
174 do
175 {
176 LeaveCriticalSection (&lock->lock);
177 Sleep (1);
178 EnterCriticalSection (&lock->lock);
179 }
180 while (!(lock->runcount + 1 > 0));
181 }
182 }
183 lock->runcount++;
184 LeaveCriticalSection (&lock->lock);
185 return 0;
186 }
187
188 int
189 glwthread_rwlock_wrlock (glwthread_rwlock_t *lock)
190 {
191 if (!lock->guard.done)
192 {
193 if (InterlockedIncrement (&lock->guard.started) == 0)
194 /* This thread is the first one to need this lock. Initialize it. */
195 glwthread_rwlock_init (lock);
196 else
197 {
198 /* Don't let lock->guard.started grow and wrap around. */
199 InterlockedDecrement (&lock->guard.started);
200 /* Yield the CPU while waiting for another thread to finish
201 initializing this lock. */
202 while (!lock->guard.done)
203 Sleep (0);
204 }
205 }
206 EnterCriticalSection (&lock->lock);
207 /* Test whether no readers or writers are currently running. */
208 if (!(lock->runcount == 0))
209 {
210 /* This thread has to wait for a while. Enqueue it among the
211 waiting_writers. */
212 HANDLE event = glwthread_waitqueue_add (&lock->waiting_writers);
213 if (event != INVALID_HANDLE_VALUE)
214 {
215 DWORD result;
216 LeaveCriticalSection (&lock->lock);
217 /* Wait until another thread signals this event. */
218 result = WaitForSingleObject (event, INFINITE);
219 if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
220 abort ();
221 CloseHandle (event);
222 /* The thread which signalled the event already did the bookkeeping:
223 removed us from the waiting_writers, set lock->runcount = -1. */
224 if (!(lock->runcount == -1))
225 abort ();
226 return 0;
227 }
228 else
229 {
230 /* Allocation failure. Weird. */
231 do
232 {
233 LeaveCriticalSection (&lock->lock);
234 Sleep (1);
235 EnterCriticalSection (&lock->lock);
236 }
237 while (!(lock->runcount == 0));
238 }
239 }
240 lock->runcount--; /* runcount becomes -1 */
241 LeaveCriticalSection (&lock->lock);
242 return 0;
243 }
244
245 int
246 glwthread_rwlock_tryrdlock (glwthread_rwlock_t *lock)
247 {
248 if (!lock->guard.done)
249 {
250 if (InterlockedIncrement (&lock->guard.started) == 0)
251 /* This thread is the first one to need this lock. Initialize it. */
252 glwthread_rwlock_init (lock);
253 else
254 {
255 /* Don't let lock->guard.started grow and wrap around. */
256 InterlockedDecrement (&lock->guard.started);
257 /* Yield the CPU while waiting for another thread to finish
258 initializing this lock. */
259 while (!lock->guard.done)
260 Sleep (0);
261 }
262 }
263 /* It's OK to wait for this critical section, because it is never taken for a
264 long time. */
265 EnterCriticalSection (&lock->lock);
266 /* Test whether only readers are currently running, and whether the runcount
267 field will not overflow, and whether no writer is waiting. The latter
268 condition is because POSIX recommends that "write locks shall take
269 precedence over read locks", to avoid "writer starvation". */
270 if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0))
271 {
272 /* This thread would have to wait for a while. Return instead. */
273 LeaveCriticalSection (&lock->lock);
274 return EBUSY;
275 }
276 lock->runcount++;
277 LeaveCriticalSection (&lock->lock);
278 return 0;
279 }
280
281 int
282 glwthread_rwlock_trywrlock (glwthread_rwlock_t *lock)
283 {
284 if (!lock->guard.done)
285 {
286 if (InterlockedIncrement (&lock->guard.started) == 0)
287 /* This thread is the first one to need this lock. Initialize it. */
288 glwthread_rwlock_init (lock);
289 else
290 {
291 /* Don't let lock->guard.started grow and wrap around. */
292 InterlockedDecrement (&lock->guard.started);
293 /* Yield the CPU while waiting for another thread to finish
294 initializing this lock. */
295 while (!lock->guard.done)
296 Sleep (0);
297 }
298 }
299 /* It's OK to wait for this critical section, because it is never taken for a
300 long time. */
301 EnterCriticalSection (&lock->lock);
302 /* Test whether no readers or writers are currently running. */
303 if (!(lock->runcount == 0))
304 {
305 /* This thread would have to wait for a while. Return instead. */
306 LeaveCriticalSection (&lock->lock);
307 return EBUSY;
308 }
309 lock->runcount--; /* runcount becomes -1 */
310 LeaveCriticalSection (&lock->lock);
311 return 0;
312 }
313
314 int
315 glwthread_rwlock_unlock (glwthread_rwlock_t *lock)
316 {
317 if (!lock->guard.done)
318 return EINVAL;
319 EnterCriticalSection (&lock->lock);
320 if (lock->runcount < 0)
321 {
322 /* Drop a writer lock. */
323 if (!(lock->runcount == -1))
324 abort ();
325 lock->runcount = 0;
326 }
327 else
328 {
329 /* Drop a reader lock. */
330 if (!(lock->runcount > 0))
331 {
332 LeaveCriticalSection (&lock->lock);
333 return EPERM;
334 }
335 lock->runcount--;
336 }
337 if (lock->runcount == 0)
338 {
339 /* POSIX recommends that "write locks shall take precedence over read
340 locks", to avoid "writer starvation". */
341 if (lock->waiting_writers.count > 0)
342 {
343 /* Wake up one of the waiting writers. */
344 lock->runcount--;
345 glwthread_waitqueue_notify_first (&lock->waiting_writers);
346 }
347 else
348 {
349 /* Wake up all waiting readers. */
350 lock->runcount += lock->waiting_readers.count;
351 glwthread_waitqueue_notify_all (&lock->waiting_readers);
352 }
353 }
354 LeaveCriticalSection (&lock->lock);
355 return 0;
356 }
357
358 int
359 glwthread_rwlock_destroy (glwthread_rwlock_t *lock)
360 {
361 if (!lock->guard.done)
362 return EINVAL;
363 if (lock->runcount != 0)
364 return EBUSY;
365 DeleteCriticalSection (&lock->lock);
366 if (lock->waiting_readers.array != NULL)
367 free (lock->waiting_readers.array);
368 if (lock->waiting_writers.array != NULL)
369 free (lock->waiting_writers.array);
370 lock->guard.done = 0;
371 return 0;
372 }
0 /* Read-write locks (native Windows implementation).
1 Copyright (C) 2005-2019 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, see <https://www.gnu.org/licenses/>. */
15
16 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
17 Based on GCC's gthr-win32.h. */
18
19 #ifndef _WINDOWS_RWLOCK_H
20 #define _WINDOWS_RWLOCK_H
21
22 #define WIN32_LEAN_AND_MEAN /* avoid including junk */
23 #include <windows.h>
24
25 #include "windows-initguard.h"
26
27 /* It is impossible to implement read-write locks using plain locks, without
28 introducing an extra thread dedicated to managing read-write locks.
29 Therefore here we need to use the low-level Event type. */
30
31 typedef struct
32 {
33 HANDLE *array; /* array of waiting threads, each represented by an event */
34 unsigned int count; /* number of waiting threads */
35 unsigned int alloc; /* length of allocated array */
36 unsigned int offset; /* index of first waiting thread in array */
37 }
38 glwthread_carray_waitqueue_t;
39 typedef struct
40 {
41 glwthread_initguard_t guard; /* protects the initialization */
42 CRITICAL_SECTION lock; /* protects the remaining fields */
43 glwthread_carray_waitqueue_t waiting_readers; /* waiting readers */
44 glwthread_carray_waitqueue_t waiting_writers; /* waiting writers */
45 int runcount; /* number of readers running, or -1 when a writer runs */
46 }
47 glwthread_rwlock_t;
48
49 #define GLWTHREAD_RWLOCK_INIT { GLWTHREAD_INITGUARD_INIT }
50
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54
55 extern void glwthread_rwlock_init (glwthread_rwlock_t *lock);
56 extern int glwthread_rwlock_rdlock (glwthread_rwlock_t *lock);
57 extern int glwthread_rwlock_wrlock (glwthread_rwlock_t *lock);
58 extern int glwthread_rwlock_tryrdlock (glwthread_rwlock_t *lock);
59 extern int glwthread_rwlock_trywrlock (glwthread_rwlock_t *lock);
60 extern int glwthread_rwlock_unlock (glwthread_rwlock_t *lock);
61 extern int glwthread_rwlock_destroy (glwthread_rwlock_t *lock);
62
63 #ifdef __cplusplus
64 }
65 #endif
66
67 #endif /* _WINDOWS_RWLOCK_H */
0 # alloca.m4 serial 14
0 # alloca.m4 serial 15
11 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2019 Free Software Foundation,
22 dnl Inc.
33 dnl This file is free software; the Free Software Foundation
3636 fi
3737 AC_SUBST([ALLOCA_H])
3838 AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
39
40 if test $ac_cv_working_alloca_h = yes; then
41 HAVE_ALLOCA_H=1
42 else
43 HAVE_ALLOCA_H=0
44 fi
45 AC_SUBST([HAVE_ALLOCA_H])
3946 ])
4047
4148 # Prerequisites of lib/alloca.c.
0 # gnulib-common.m4 serial 41
0 # gnulib-common.m4 serial 44
11 dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
1616 AH_VERBATIM([_Noreturn],
1717 [/* The _Noreturn keyword of C11. */
1818 #ifndef _Noreturn
19 # if 201103 <= (defined __cplusplus ? __cplusplus : 0)
19 # if (defined __cplusplus \
20 && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
21 || (defined _MSC_VER && 1900 <= _MSC_VER)))
2022 # define _Noreturn [[noreturn]]
21 # elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
22 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
23 # elif ((!defined __cplusplus || defined __clang__) \
24 && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
25 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)))
2326 /* _Noreturn works as-is. */
2427 # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
2528 # define _Noreturn __attribute__ ((__noreturn__))
8386 #else
8487 # define _GL_ATTRIBUTE_MALLOC /* empty */
8588 #endif
89 ])
90 AH_VERBATIM([async_safe],
91 [/* The _GL_ASYNC_SAFE marker should be attached to functions that are
92 signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
93 invoked from such signal handlers. Such functions have some restrictions:
94 * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
95 or should be listed as async-signal-safe in POSIX
96 <http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
97 section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
98 particular, are NOT async-signal-safe.
99 * All memory locations (variables and struct fields) that these functions
100 access must be marked 'volatile'. This holds for both read and write
101 accesses. Otherwise the compiler might optimize away stores to and
102 reads from such locations that occur in the program, depending on its
103 data flow analysis. For example, when the program contains a loop
104 that is intended to inspect a variable set from within a signal handler
105 while (!signal_occurred)
106 ;
107 the compiler is allowed to transform this into an endless loop if the
108 variable 'signal_occurred' is not declared 'volatile'.
109 Additionally, recall that:
110 * A signal handler should not modify errno (except if it is a handler
111 for a fatal signal and ends by raising the same signal again, thus
112 provoking the termination of the process). If it invokes a function
113 that may clobber errno, it needs to save and restore the value of
114 errno. */
115 #define _GL_ASYNC_SAFE
86116 ])
87117 dnl Preparation for running test programs:
88118 dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
140140 # Code from module wcrtomb:
141141 # Code from module wctype-h:
142142 # Code from module wcwidth:
143 # Code from module windows-mutex:
144 # Code from module windows-once:
145 # Code from module windows-recmutex:
146 # Code from module windows-rwlock:
143147 # Code from module xalloc:
144148 # Code from module xalloc-die:
145149 # Code from module xalloc-oversized:
351355 gl_gnulib_enabled_threadlib=false
352356 gl_gnulib_enabled_vasnprintf=false
353357 gl_gnulib_enabled_wcrtomb=false
358 gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=false
359 gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=false
360 gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=false
361 gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=false
354362 gl_gnulib_enabled_xsize=false
355363 func_gl_gnulib_m4code_btowc ()
356364 {
437445 gl_MODULE_INDICATOR([lock])
438446 gl_gnulib_enabled_lock=true
439447 func_gl_gnulib_m4code_threadlib
448 if test $gl_threads_api = windows; then
449 func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440
450 fi
451 if test $gl_threads_api = windows; then
452 func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab
453 fi
454 if test $gl_threads_api = windows; then
455 func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354
456 fi
457 if test $gl_threads_api = windows; then
458 func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef
459 fi
440460 fi
441461 }
442462 func_gl_gnulib_m4code_mbtowc ()
443463 {
444464 if ! $gl_gnulib_enabled_mbtowc; then
445465 gl_FUNC_MBTOWC
446 if test $REPLACE_MBTOWC = 1; then
466 if test $HAVE_MBTOWC = 0 || test $REPLACE_MBTOWC = 1; then
447467 AC_LIBOBJ([mbtowc])
448468 gl_PREREQ_MBTOWC
449469 fi
570590 func_gl_gnulib_m4code_threadlib ()
571591 {
572592 if ! $gl_gnulib_enabled_threadlib; then
573 gl_THREADLIB
593 AC_REQUIRE([gl_THREADLIB])
574594 gl_gnulib_enabled_threadlib=true
575595 fi
576596 }
594614 gl_gnulib_enabled_wcrtomb=true
595615 fi
596616 }
617 func_gl_gnulib_m4code_503a4cb75d69c787103d0aa2ab7d8440 ()
618 {
619 if ! $gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440; then
620 AC_REQUIRE([AC_CANONICAL_HOST])
621 case "$host_os" in
622 mingw*)
623 AC_LIBOBJ([windows-mutex])
624 ;;
625 esac
626 gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440=true
627 fi
628 }
629 func_gl_gnulib_m4code_68a4501daeca58988392c7e60b4917ab ()
630 {
631 if ! $gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab; then
632 AC_REQUIRE([AC_CANONICAL_HOST])
633 case "$host_os" in
634 mingw*)
635 AC_LIBOBJ([windows-once])
636 ;;
637 esac
638 gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab=true
639 fi
640 }
641 func_gl_gnulib_m4code_f0efff84a70f4afba30902bb8ffe9354 ()
642 {
643 if ! $gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354; then
644 AC_REQUIRE([AC_CANONICAL_HOST])
645 case "$host_os" in
646 mingw*)
647 AC_LIBOBJ([windows-recmutex])
648 ;;
649 esac
650 gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354=true
651 fi
652 }
653 func_gl_gnulib_m4code_8bb827fe37eaccf1b97feb0c87bc92ef ()
654 {
655 if ! $gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef; then
656 AC_REQUIRE([AC_CANONICAL_HOST])
657 case "$host_os" in
658 mingw*)
659 AC_LIBOBJ([windows-rwlock])
660 ;;
661 esac
662 gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef=true
663 fi
664 }
597665 func_gl_gnulib_m4code_xsize ()
598666 {
599667 if ! $gl_gnulib_enabled_xsize; then
622690 fi
623691 if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
624692 func_gl_gnulib_m4code_localcharset
693 fi
694 if test $HAVE_MBRTOWC = 0 || { test $REPLACE_MBRTOWC = 1 && { test $HAVE_MBSINIT = 0 || test $REPLACE_MBSTATE_T = 1; }; }; then
695 func_gl_gnulib_m4code_lock
625696 fi
626697 if test $ac_use_included_regex = yes; then
627698 func_gl_gnulib_m4code_btowc
684755 AM_CONDITIONAL([gl_GNULIB_ENABLED_threadlib], [$gl_gnulib_enabled_threadlib])
685756 AM_CONDITIONAL([gl_GNULIB_ENABLED_vasnprintf], [$gl_gnulib_enabled_vasnprintf])
686757 AM_CONDITIONAL([gl_GNULIB_ENABLED_wcrtomb], [$gl_gnulib_enabled_wcrtomb])
758 AM_CONDITIONAL([gl_GNULIB_ENABLED_503a4cb75d69c787103d0aa2ab7d8440], [$gl_gnulib_enabled_503a4cb75d69c787103d0aa2ab7d8440])
759 AM_CONDITIONAL([gl_GNULIB_ENABLED_68a4501daeca58988392c7e60b4917ab], [$gl_gnulib_enabled_68a4501daeca58988392c7e60b4917ab])
760 AM_CONDITIONAL([gl_GNULIB_ENABLED_f0efff84a70f4afba30902bb8ffe9354], [$gl_gnulib_enabled_f0efff84a70f4afba30902bb8ffe9354])
761 AM_CONDITIONAL([gl_GNULIB_ENABLED_8bb827fe37eaccf1b97feb0c87bc92ef], [$gl_gnulib_enabled_8bb827fe37eaccf1b97feb0c87bc92ef])
687762 AM_CONDITIONAL([gl_GNULIB_ENABLED_xsize], [$gl_gnulib_enabled_xsize])
688763 # End of code from modules
689764 m4_ifval(gl_LIBSOURCES_LIST, [
9581033 lib/wctype-h.c
9591034 lib/wctype.in.h
9601035 lib/wcwidth.c
1036 lib/windows-initguard.h
1037 lib/windows-mutex.c
1038 lib/windows-mutex.h
1039 lib/windows-once.c
1040 lib/windows-once.h
1041 lib/windows-recmutex.c
1042 lib/windows-recmutex.h
1043 lib/windows-rwlock.c
1044 lib/windows-rwlock.h
9611045 lib/xalloc-die.c
9621046 lib/xalloc-oversized.h
9631047 lib/xalloc.h
0 # malloc.m4 serial 17
0 # malloc.m4 serial 19
11 dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
3131 [ac_cv_func_malloc_0_nonnull=no],
3232 [case "$host_os" in
3333 # Guess yes on platforms where we know the result.
34 *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \
34 *-gnu* | gnu* | *-musl* | freebsd* | netbsd* | openbsd* \
3535 | hpux* | solaris* | cygwin* | mingw*)
36 ac_cv_func_malloc_0_nonnull=yes ;;
36 ac_cv_func_malloc_0_nonnull="guessing yes" ;;
3737 # If we don't know, assume the worst.
38 *) ac_cv_func_malloc_0_nonnull=no ;;
38 *) ac_cv_func_malloc_0_nonnull="guessing no" ;;
3939 esac
4040 ])
4141 ])
42 AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2])
42 case "$ac_cv_func_malloc_0_nonnull" in
43 *yes)
44 $1
45 ;;
46 *)
47 $2
48 ;;
49 esac
4350 ])# _AC_FUNC_MALLOC_IF
4451
4552 ])
0 # mbtowc.m4 serial 2
0 # mbtowc.m4 serial 3
11 dnl Copyright (C) 2011-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
77 [
88 AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
99
10 if false; then
11 REPLACE_MBTOWC=1
10 AC_CHECK_FUNCS([mbtowc])
11 if test $ac_cv_func_mbtowc = no; then
12 HAVE_MBTOWC=0
13 else
14 if false; then
15 REPLACE_MBTOWC=1
16 fi
1217 fi
1318 ])
1419
0 # memchr.m4 serial 13
0 # memchr.m4 serial 14
11 dnl Copyright (C) 2002-2004, 2009-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
2828 # memchr should not dereference overestimated length after a match
2929 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
3030 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162
31 # memchr should cast the second argument to 'unsigned char'.
32 # This bug exists in Android 4.3.
3133 # Assume that memchr works on platforms that lack mprotect.
3234 AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works],
3335 [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
7375 if (memchr (fence - 1, 0, 3) != fence - 1)
7476 result |= 4;
7577 }
78 /* Test against bug on Android 4.3. */
79 {
80 char input[3];
81 input[0] = 'a';
82 input[1] = 'b';
83 input[2] = 'c';
84 if (memchr (input, 0x789abc00 | 'b', 3) != input + 1)
85 result |= 8;
86 }
7687 return result;
7788 ]])],
7889 [gl_cv_func_memchr_works=yes],
7990 [gl_cv_func_memchr_works=no],
8091 [case "$host_os" in
81 # Guess yes on native Windows.
82 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
83 # Be pessimistic for now.
84 *) gl_cv_func_memchr_works="guessing no" ;;
92 # Guess no on Android.
93 linux*-android*) gl_cv_func_memchr_works="guessing no" ;;
94 # Guess yes on native Windows.
95 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
96 # Be pessimistic for now.
97 *) gl_cv_func_memchr_works="guessing no" ;;
8598 esac
8699 ])
87100 ])
0 # printf.m4 serial 59
0 # printf.m4 serial 61
11 dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
6161 changequote(,)dnl
6262 # Guess yes on glibc systems.
6363 *-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
64 # Guess yes on musl systems.
65 *-musl*) gl_cv_func_printf_sizes_c99="guessing yes";;
6466 # Guess yes on FreeBSD >= 5.
6567 freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";;
6668 freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
7880 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
7981 gl_cv_func_printf_sizes_c99="guessing no";;
8082 netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
83 # Guess yes on Android.
84 linux*-android*) gl_cv_func_printf_sizes_c99="guessing yes";;
8185 changequote([,])dnl
8286 # Guess yes on MSVC, no on mingw.
8387 mingw*) AC_EGREP_CPP([Known], [
131135 [gl_cv_func_printf_long_double=yes],
132136 [gl_cv_func_printf_long_double=no],
133137 [case "$host_os" in
134 beos*) gl_cv_func_printf_long_double="guessing no";;
135 # Guess yes on MSVC, no on mingw.
136 mingw*) AC_EGREP_CPP([Known], [
138 # Guess no on BeOS.
139 beos*) gl_cv_func_printf_long_double="guessing no";;
140 # Guess yes on Android.
141 linux*-android*) gl_cv_func_printf_long_double="guessing yes";;
142 # Guess yes on MSVC, no on mingw.
143 mingw*) AC_EGREP_CPP([Known], [
137144 #ifdef _MSC_VER
138145 Known
139146 #endif
140 ],
141 [gl_cv_func_printf_long_double="guessing yes"],
142 [gl_cv_func_printf_long_double="guessing no"])
143 ;;
144 *) gl_cv_func_printf_long_double="guessing yes";;
147 ],
148 [gl_cv_func_printf_long_double="guessing yes"],
149 [gl_cv_func_printf_long_double="guessing no"])
150 ;;
151 *) gl_cv_func_printf_long_double="guessing yes";;
145152 esac
146153 ])
147154 ])
234241 changequote(,)dnl
235242 # Guess yes on glibc systems.
236243 *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";;
244 # Guess yes on musl systems.
245 *-musl*) gl_cv_func_printf_infinite="guessing yes";;
237246 # Guess yes on FreeBSD >= 6.
238247 freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";;
239248 freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
249258 netbsd*) gl_cv_func_printf_infinite="guessing yes";;
250259 # Guess yes on BeOS.
251260 beos*) gl_cv_func_printf_infinite="guessing yes";;
261 # Guess no on Android.
262 linux*-android*) gl_cv_func_printf_infinite="guessing no";;
252263 changequote([,])dnl
253264 # Guess yes on MSVC, no on mingw.
254265 mingw*) AC_EGREP_CPP([Known], [
449460 changequote(,)dnl
450461 # Guess yes on glibc systems.
451462 *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
463 # Guess yes on musl systems.
464 *-musl*) gl_cv_func_printf_infinite_long_double="guessing yes";;
452465 # Guess yes on FreeBSD >= 6.
453466 freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";;
454467 freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
455468 # Guess yes on HP-UX >= 11.
456469 hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
457470 hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
471 # Guess no on Android.
472 linux*-android*) gl_cv_func_printf_infinite_long_double="guessing no";;
458473 changequote([,])dnl
459474 # Guess yes on MSVC, no on mingw.
460475 mingw*) AC_EGREP_CPP([Known], [
565580 [gl_cv_func_printf_directive_a="guessing yes"],
566581 [gl_cv_func_printf_directive_a="guessing no"])
567582 ;;
583 # Guess yes on musl systems.
584 *-musl*) gl_cv_func_printf_directive_a="guessing yes";;
585 # Guess no on Android.
586 linux*-android*) gl_cv_func_printf_directive_a="guessing no";;
568587 # Guess no on native Windows.
569588 mingw*) gl_cv_func_printf_directive_a="guessing no";;
570589 # If we don't know, assume the worst.
613632 changequote(,)dnl
614633 # Guess yes on glibc systems.
615634 *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";;
635 # Guess yes on musl systems.
636 *-musl*) gl_cv_func_printf_directive_f="guessing yes";;
616637 # Guess yes on FreeBSD >= 6.
617638 freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";;
618639 freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
622643 # Guess yes on Solaris >= 2.10.
623644 solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";;
624645 solaris*) gl_cv_func_printf_directive_f="guessing no";;
646 # Guess no on Android.
647 linux*-android*) gl_cv_func_printf_directive_f="guessing no";;
625648 changequote([,])dnl
626649 # Guess yes on MSVC, no on mingw.
627650 mingw*) AC_EGREP_CPP([Known], [
687710 [gl_cv_func_printf_directive_n=yes],
688711 [gl_cv_func_printf_directive_n=no],
689712 [case "$host_os" in
690 # Guess no on native Windows.
691 mingw*) gl_cv_func_printf_directive_n="guessing no";;
692 *) gl_cv_func_printf_directive_n="guessing yes";;
713 # Guess no on Android.
714 linux*-android*) gl_cv_func_printf_directive_n="guessing no";;
715 # Guess no on native Windows.
716 mingw*) gl_cv_func_printf_directive_n="guessing no";;
717 *) gl_cv_func_printf_directive_n="guessing yes";;
693718 esac
694719 ])
695720 ])
765790 [
766791 changequote(,)dnl
767792 case "$host_os" in
768 openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
769 irix*) gl_cv_func_printf_directive_ls="guessing no";;
770 solaris*) gl_cv_func_printf_directive_ls="guessing no";;
771 cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
772 beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
773 # Guess yes on native Windows.
774 mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
775 *) gl_cv_func_printf_directive_ls="guessing yes";;
793 openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
794 irix*) gl_cv_func_printf_directive_ls="guessing no";;
795 solaris*) gl_cv_func_printf_directive_ls="guessing no";;
796 cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
797 beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
798 # Guess no on Android.
799 linux*-android*) gl_cv_func_printf_directive_ls="guessing no";;
800 # Guess yes on native Windows.
801 mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
802 *) gl_cv_func_printf_directive_ls="guessing yes";;
776803 esac
777804 changequote([,])dnl
778805 ])
809836 changequote(,)dnl
810837 case "$host_os" in
811838 netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
812 gl_cv_func_printf_positions="guessing no";;
813 beos*) gl_cv_func_printf_positions="guessing no";;
814 # Guess no on native Windows.
815 mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
816 *) gl_cv_func_printf_positions="guessing yes";;
839 gl_cv_func_printf_positions="guessing no";;
840 beos*) gl_cv_func_printf_positions="guessing no";;
841 # Guess yes on Android.
842 linux*-android*) gl_cv_func_printf_positions="guessing yes";;
843 # Guess no on native Windows.
844 mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
845 *) gl_cv_func_printf_positions="guessing yes";;
817846 esac
818847 changequote([,])dnl
819848 ])
848877 [
849878 changequote(,)dnl
850879 case "$host_os" in
851 cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
852 netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
853 # Guess no on native Windows.
854 mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
855 *) gl_cv_func_printf_flag_grouping="guessing yes";;
880 cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
881 netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
882 # Guess no on Android.
883 linux*-android*) gl_cv_func_printf_flag_grouping="guessing no";;
884 # Guess no on native Windows.
885 mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
886 *) gl_cv_func_printf_flag_grouping="guessing yes";;
856887 esac
857888 changequote([,])dnl
858889 ])
889920 [
890921 changequote(,)dnl
891922 case "$host_os" in
892 # Guess yes on HP-UX 11.
893 hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
894 # Guess no on HP-UX 10 and older.
895 hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
896 # Guess yes on native Windows.
897 mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
898 # Guess yes otherwise.
899 *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
923 # Guess yes on HP-UX 11.
924 hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
925 # Guess no on HP-UX 10 and older.
926 hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
927 # Guess yes on Android.
928 linux*-android*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
929 # Guess yes on native Windows.
930 mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
931 # Guess yes otherwise.
932 *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
900933 esac
901934 changequote([,])dnl
902935 ])
934967 [
935968 changequote(,)dnl
936969 case "$host_os" in
937 # Guess yes on glibc systems.
938 *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
939 # Guess yes on BeOS.
940 beos*) gl_cv_func_printf_flag_zero="guessing yes";;
941 # Guess no on native Windows.
942 mingw*) gl_cv_func_printf_flag_zero="guessing no";;
943 # If we don't know, assume the worst.
944 *) gl_cv_func_printf_flag_zero="guessing no";;
970 # Guess yes on glibc systems.
971 *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
972 # Guess yes on musl systems.
973 *-musl*) gl_cv_func_printf_flag_zero="guessing yes";;
974 # Guess yes on BeOS.
975 beos*) gl_cv_func_printf_flag_zero="guessing yes";;
976 # Guess no on Android.
977 linux*-android*) gl_cv_func_printf_flag_zero="guessing no";;
978 # Guess no on native Windows.
979 mingw*) gl_cv_func_printf_flag_zero="guessing no";;
980 # If we don't know, assume the worst.
981 *) gl_cv_func_printf_flag_zero="guessing no";;
945982 esac
946983 changequote([,])dnl
947984 ])
9941031 changequote(,)dnl
9951032 case "$host_os" in
9961033 # Guess no only on Solaris, native Windows, and BeOS systems.
997 solaris*) gl_cv_func_printf_precision="guessing no" ;;
998 mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
999 beos*) gl_cv_func_printf_precision="guessing no" ;;
1000 *) gl_cv_func_printf_precision="guessing yes" ;;
1034 solaris*) gl_cv_func_printf_precision="guessing no" ;;
1035 mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
1036 beos*) gl_cv_func_printf_precision="guessing no" ;;
1037 # Guess yes on Android.
1038 linux*-android*) gl_cv_func_printf_precision="guessing yes" ;;
1039 *) gl_cv_func_printf_precision="guessing yes" ;;
10011040 esac
10021041 changequote([,])dnl
10031042 ])
10941133 if test "$gl_cv_func_printf_enomem" = "guessing no"; then
10951134 changequote(,)dnl
10961135 case "$host_os" in
1097 # Guess yes on glibc systems.
1098 *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
1099 # Guess yes on Solaris.
1100 solaris*) gl_cv_func_printf_enomem="guessing yes";;
1101 # Guess yes on AIX.
1102 aix*) gl_cv_func_printf_enomem="guessing yes";;
1103 # Guess yes on HP-UX/hppa.
1104 hpux*) case "$host_cpu" in
1105 hppa*) gl_cv_func_printf_enomem="guessing yes";;
1106 *) gl_cv_func_printf_enomem="guessing no";;
1107 esac
1108 ;;
1109 # Guess yes on IRIX.
1110 irix*) gl_cv_func_printf_enomem="guessing yes";;
1111 # Guess yes on OSF/1.
1112 osf*) gl_cv_func_printf_enomem="guessing yes";;
1113 # Guess yes on BeOS.
1114 beos*) gl_cv_func_printf_enomem="guessing yes";;
1115 # Guess yes on Haiku.
1116 haiku*) gl_cv_func_printf_enomem="guessing yes";;
1117 # If we don't know, assume the worst.
1118 *) gl_cv_func_printf_enomem="guessing no";;
1136 # Guess yes on glibc systems.
1137 *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
1138 # Guess yes on Solaris.
1139 solaris*) gl_cv_func_printf_enomem="guessing yes";;
1140 # Guess yes on AIX.
1141 aix*) gl_cv_func_printf_enomem="guessing yes";;
1142 # Guess yes on HP-UX/hppa.
1143 hpux*) case "$host_cpu" in
1144 hppa*) gl_cv_func_printf_enomem="guessing yes";;
1145 *) gl_cv_func_printf_enomem="guessing no";;
1146 esac
1147 ;;
1148 # Guess yes on IRIX.
1149 irix*) gl_cv_func_printf_enomem="guessing yes";;
1150 # Guess yes on OSF/1.
1151 osf*) gl_cv_func_printf_enomem="guessing yes";;
1152 # Guess yes on BeOS.
1153 beos*) gl_cv_func_printf_enomem="guessing yes";;
1154 # Guess yes on Haiku.
1155 haiku*) gl_cv_func_printf_enomem="guessing yes";;
1156 # Guess no on Android.
1157 linux*-android*) gl_cv_func_printf_enomem="guessing no";;
1158 # If we don't know, assume the worst.
1159 *) gl_cv_func_printf_enomem="guessing no";;
11191160 esac
11201161 changequote([,])dnl
11211162 fi
11761217 case "$host_os" in
11771218 # Guess yes on glibc systems.
11781219 *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
1220 # Guess yes on musl systems.
1221 *-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
11791222 # Guess yes on FreeBSD >= 5.
11801223 freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
11811224 freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
12071250 netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
12081251 # Guess yes on BeOS.
12091252 beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
1253 # Guess yes on Android.
1254 linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
12101255 # Guess no on native Windows.
12111256 mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";;
12121257 # If we don't know, assume the worst.
12761321 changequote(,)dnl
12771322 # Guess yes on glibc systems.
12781323 *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1324 # Guess yes on musl systems.
1325 *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";;
12791326 # Guess yes on FreeBSD >= 5.
12801327 freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
12811328 freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
12981345 netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
12991346 # Guess yes on BeOS.
13001347 beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1348 # Guess yes on Android.
1349 linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";;
13011350 changequote([,])dnl
13021351 # Guess yes on MSVC, no on mingw.
13031352 mingw*) AC_EGREP_CPP([Known], [
13661415 case "$host_os" in
13671416 # Guess yes on glibc systems.
13681417 *-gnu* | gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
1418 # Guess yes on musl systems.
1419 *-musl*) gl_cv_func_snprintf_directive_n="guessing yes";;
13691420 # Guess yes on FreeBSD >= 5.
13701421 freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";;
13711422 freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
13901441 netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
13911442 # Guess yes on BeOS.
13921443 beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
1444 # Guess no on Android.
1445 linux*-android*) gl_cv_func_snprintf_directive_n="guessing no";;
13931446 # Guess no on native Windows.
13941447 mingw*) gl_cv_func_snprintf_directive_n="guessing no";;
13951448 # If we don't know, assume the worst.
14391492 [gl_cv_func_snprintf_size1=yes],
14401493 [gl_cv_func_snprintf_size1=no],
14411494 [case "$host_os" in
1442 # Guess yes on native Windows.
1443 mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
1444 *) gl_cv_func_snprintf_size1="guessing yes" ;;
1495 # Guess yes on Android.
1496 linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;;
1497 # Guess yes on native Windows.
1498 mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
1499 *) gl_cv_func_snprintf_size1="guessing yes" ;;
14451500 esac
14461501 ])
14471502 ])
15161571 case "$host_os" in
15171572 # Guess yes on glibc systems.
15181573 *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
1574 # Guess yes on musl systems.
1575 *-musl*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15191576 # Guess yes on FreeBSD >= 5.
15201577 freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
15211578 freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15391596 netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15401597 # Guess yes on BeOS.
15411598 beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
1599 # Guess yes on Android.
1600 linux*-android*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15421601 # Guess yes on native Windows.
15431602 mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15441603 # If we don't know, assume the worst.
16251684 dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . .
16261685 dnl Haiku . . . # # # . # . . . . . ? . . ? . . .
16271686 dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . .
1687 dnl Android 4.3 . . # # # # # # . # . # . # . . . # . .
16281688 dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . .
16291689 dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . .
16301690 dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . .
0 # stdlib_h.m4 serial 45
0 # stdlib_h.m4 serial 48
11 dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
2222 # include <random.h>
2323 #endif
2424 ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
25 initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
25 initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
2626 posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray
2727 realpath rpmatch secure_getenv setenv setstate setstate_r srandom
28 srandom_r strtod strtoll strtoull unlockpt unsetenv])
28 srandom_r strtod strtold strtoll strtoull unlockpt unsetenv])
2929 ])
3030
3131 AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
6767 GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
6868 GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV])
6969 GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD])
70 GNULIB_STRTOLD=0; AC_SUBST([GNULIB_STRTOLD])
7071 GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
7172 GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
7273 GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX])
8081 HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
8182 HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
8283 HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
84 HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE])
8385 HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE])
86 HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC])
8487 HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
8588 HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
8689 HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
99102 HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV])
100103 HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
101104 HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV])
105 HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE])
102106 HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE])
103107 HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
108 HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD])
104109 HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
105110 HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
106111 HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
109114 HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
110115 REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC])
111116 REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
117 REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE])
112118 REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC])
113119 REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC])
114120 REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
116122 REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R])
117123 REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
118124 REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R])
125 REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM])
119126 REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
120127 REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC])
121128 REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
122129 REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
130 REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE])
123131 REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
132 REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD])
124133 REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
125134 REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB])
126135 ])
0 # strerror.m4 serial 19
0 # strerror.m4 serial 20
11 dnl Copyright (C) 2002, 2007-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
2525 [case "$host_os" in
2626 # Guess yes on glibc systems.
2727 *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
28 # Guess yes on musl systems.
29 *-musl*) gl_cv_func_working_strerror="guessing yes" ;;
2830 # If we don't know, assume the worst.
2931 *) gl_cv_func_working_strerror="guessing no" ;;
3032 esac
7981 [case "$host_os" in
8082 # Guess yes on glibc systems.
8183 *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
84 # Guess yes on musl systems.
85 *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;;
8286 # Guess yes on native Windows.
8387 mingw*) gl_cv_func_strerror_0_works="guessing yes" ;;
8488 # If we don't know, assume the worst.
0 # sys_socket_h.m4 serial 23
0 # sys_socket_h.m4 serial 24
11 dnl Copyright (C) 2005-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
103103 gl_CHECK_NEXT_HEADERS([sys/socket.h])
104104 if test $ac_cv_header_sys_socket_h = yes; then
105105 HAVE_SYS_SOCKET_H=1
106 HAVE_WS2TCPIP_H=0
107106 else
108107 HAVE_SYS_SOCKET_H=0
109 if test $ac_cv_header_ws2tcpip_h = yes; then
110 HAVE_WS2TCPIP_H=1
111 else
112 HAVE_WS2TCPIP_H=0
113 fi
114108 fi
115109 AC_SUBST([HAVE_SYS_SOCKET_H])
116 AC_SUBST([HAVE_WS2TCPIP_H])
110 gl_PREREQ_SYS_H_WS2TCPIP
117111 ])
118112
119113 # Common prerequisites of the <sys/socket.h> replacement and of the
139133 HAVE_WINSOCK2_H=0
140134 fi
141135 AC_SUBST([HAVE_WINSOCK2_H])
136 ])
137
138 # Common prerequisites of the <sys/socket.h> replacement and of the
139 # <arpa/inet.h> replacement.
140 # Sets and substitutes HAVE_WS2TCPIP_H.
141 AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP],
142 [
143 AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
144 if test $ac_cv_header_sys_socket_h = yes; then
145 HAVE_WS2TCPIP_H=0
146 else
147 if test $ac_cv_header_ws2tcpip_h = yes; then
148 HAVE_WS2TCPIP_H=1
149 else
150 HAVE_WS2TCPIP_H=0
151 fi
152 fi
153 AC_SUBST([HAVE_WS2TCPIP_H])
142154 ])
143155
144156 AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR],
0 # threadlib.m4 serial 15
0 # threadlib.m4 serial 20
11 dnl Copyright (C) 2005-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
1515 dnl default is 'no', otherwise it is system dependent. In both cases, the user
1616 dnl can change the choice through the options --enable-threads=choice or
1717 dnl --disable-threads.
18 dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS,
19 dnl USE_PTH_THREADS, USE_WINDOWS_THREADS
18 dnl Defines at most one of the macros USE_POSIX_THREADS, USE_WINDOWS_THREADS.
2019 dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
2120 dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
2221 dnl libtool).
2625 dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not.
2726 dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
2827 dnl multithread-safe programs.
28 dnl Since support for GNU pth was removed, $LTLIBTHREAD and $LIBTHREAD have the
29 dnl same value, and similarly $LTLIBMULTITHREAD and $LIBMULTITHREAD have the
30 dnl same value. Only system libraries are needed.
2931
3032 AC_DEFUN([gl_THREADLIB_EARLY],
3133 [
4951 m4_ifdef([gl_THREADLIB_DEFAULT_NO],
5052 [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])],
5153 [m4_divert_text([DEFAULTS], [gl_use_threads_default=])])
54 m4_divert_text([DEFAULTS], [gl_use_winpthreads_default=])
5255 AC_ARG_ENABLE([threads],
53 AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
56 AC_HELP_STRING([--enable-threads={posix|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
5457 AC_HELP_STRING([--disable-threads], [build without multithread safety])]),
5558 [gl_use_threads=$enableval],
5659 [if test -n "$gl_use_threads_default"; then
6164 dnl Disable multithreading by default on OSF/1, because it interferes
6265 dnl with fork()/exec(): When msgexec is linked with -lpthread, its
6366 dnl child process gets an endless segmentation fault inside execvp().
67 osf*) gl_use_threads=no ;;
6468 dnl Disable multithreading by default on Cygwin 1.5.x, because it has
6569 dnl bugs that lead to endless loops or crashes. See
6670 dnl <https://cygwin.com/ml/cygwin/2009-08/msg00283.html>.
67 osf*) gl_use_threads=no ;;
6871 cygwin*)
6972 case `uname -r` in
7073 1.[0-5].*) gl_use_threads=no ;;
7174 *) gl_use_threads=yes ;;
75 esac
76 ;;
77 dnl Obey gl_AVOID_WINPTHREAD on mingw.
78 mingw*)
79 case "$gl_use_winpthreads_default" in
80 yes) gl_use_threads=posix ;;
81 no) gl_use_threads=windows ;;
82 *) gl_use_threads=yes ;;
7283 esac
7384 ;;
7485 *) gl_use_threads=yes ;;
150161 *" -static "*) gl_cv_have_weak=no ;;
151162 esac
152163 ])
153 dnl Check whether the linker supports the --as-needed/--no-as-needed options.
154 dnl Assume GCC, so that we can use the -Wl option.
155 AC_CACHE_CHECK([whether the linker supports --as-needed],
156 [gl_cv_linker_have_as_needed],
157 [if test -n "$GCC"; then
158 gl_saved_ldflags="$LDFLAGS"
159 LDFLAGS="$gl_saved_ldflags -Wl,--as-needed -Wl,--no-as-needed"
160 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
161 [gl_cv_linker_have_as_needed=yes],
162 [gl_cv_linker_have_as_needed=no])
163 LDFLAGS="$gl_saved_ldflags"
164 else
165 gl_cv_linker_have_as_needed=no
166 fi
167 ])
168 dnl Check whether the linker supports the --push-state/--pop-state options.
169 dnl Assume GCC, so that we can use the -Wl option.
170 AC_CACHE_CHECK([whether the linker supports --push-state],
171 [gl_cv_linker_have_push_state],
172 [if test -n "$GCC"; then
173 gl_saved_ldflags="$LDFLAGS"
174 LDFLAGS="$gl_saved_ldflags -Wl,--push-state -Wl,--pop-state"
175 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
176 [gl_cv_linker_have_push_state=yes],
177 [gl_cv_linker_have_push_state=no])
178 LDFLAGS="$gl_saved_ldflags"
179 else
180 gl_cv_linker_have_push_state=no
181 fi
182 ])
164 if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
165 dnl If we use weak symbols to implement pthread_in_use / pth_in_use /
166 dnl thread_in_use, we also need to test whether the ISO C 11 thrd_create
167 dnl facility is in use.
168 AC_CHECK_HEADERS_ONCE([threads.h])
169 :
170 fi
183171 if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
184172 # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
185173 # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
258246 [Define if references to the POSIX multithreading library should be made weak.])
259247 LIBTHREAD=
260248 LTLIBTHREAD=
261 dnl On platforms where GCC enables --as-needed by default, attempt
262 dnl to make sure that LIBMULTITHREAD really links with -lpthread.
263 dnl Otherwise linking with LIBMULTITHREAD has no effect; then
264 dnl the weak symbols are not defined and thus evaluate to NULL.
265 case "$LIBMULTITHREAD" in
266 "") ;;
267 -pthread)
268 if test $gl_cv_linker_have_as_needed = yes; then
269 if test $gl_cv_linker_have_push_state = yes; then
270 LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--push-state -Wl,--no-as-needed -lpthread -Wl,--pop-state"
271 else
272 LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--no-as-needed -lpthread"
273 fi
274 fi
275 ;;
276 *)
277 if test $gl_cv_linker_have_as_needed = yes; then
278 if test $gl_cv_linker_have_push_state = yes; then
279 LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
280 else
281 LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
282 fi
283 fi
284 ;;
285 esac
286 # TODO: May need to modify LTLIBMULTITHREAD similarly.
287249 fi
288250 fi
289251 fi
290 fi
291 fi
292 if test -z "$gl_have_pthread"; then
293 if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
294 gl_have_solaristhread=
295 gl_save_LIBS="$LIBS"
296 LIBS="$LIBS -lthread"
297 AC_LINK_IFELSE(
298 [AC_LANG_PROGRAM(
299 [[
300 #include <thread.h>
301 #include <synch.h>
302 ]],
303 [[thr_self();]])],
304 [gl_have_solaristhread=yes])
305 LIBS="$gl_save_LIBS"
306 if test -n "$gl_have_solaristhread"; then
307 gl_threads_api=solaris
308 LIBTHREAD=-lthread
309 LTLIBTHREAD=-lthread
310 LIBMULTITHREAD="$LIBTHREAD"
311 LTLIBMULTITHREAD="$LTLIBTHREAD"
312 AC_DEFINE([USE_SOLARIS_THREADS], [1],
313 [Define if the old Solaris multithreading library can be used.])
314 if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
315 AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1],
316 [Define if references to the old Solaris multithreading library should be made weak.])
317 LIBTHREAD=
318 LTLIBTHREAD=
319 dnl On platforms where GCC enables --as-needed by default, attempt
320 dnl to make sure that LIBMULTITHREAD really links with -lthread.
321 dnl Otherwise linking with LIBMULTITHREAD has no effect; then
322 dnl the weak symbols are not defined and thus evaluate to NULL.
323 if test $gl_cv_linker_have_as_needed = yes; then
324 if test $gl_cv_linker_have_push_state = yes; then
325 LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
326 else
327 LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
328 fi
329 fi
330 # TODO: May need to modify LTLIBMULTITHREAD similarly.
331 fi
332 fi
333 fi
334 fi
335 if test "$gl_use_threads" = pth; then
336 gl_save_CPPFLAGS="$CPPFLAGS"
337 AC_LIB_LINKFLAGS([pth])
338 gl_have_pth=
339 gl_save_LIBS="$LIBS"
340 LIBS="$LIBS $LIBPTH"
341 AC_LINK_IFELSE(
342 [AC_LANG_PROGRAM([[#include <pth.h>]], [[pth_self();]])],
343 [gl_have_pth=yes])
344 LIBS="$gl_save_LIBS"
345 if test -n "$gl_have_pth"; then
346 gl_threads_api=pth
347 LIBTHREAD="$LIBPTH"
348 LTLIBTHREAD="$LTLIBPTH"
349 LIBMULTITHREAD="$LIBTHREAD"
350 LTLIBMULTITHREAD="$LTLIBTHREAD"
351 AC_DEFINE([USE_PTH_THREADS], [1],
352 [Define if the GNU Pth multithreading library can be used.])
353 if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
354 if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
355 AC_DEFINE([USE_PTH_THREADS_WEAK], [1],
356 [Define if references to the GNU Pth multithreading library should be made weak.])
357 LIBTHREAD=
358 LTLIBTHREAD=
359 dnl On platforms where GCC enables --as-needed by default, attempt
360 dnl to make sure that LIBMULTITHREAD really links with -lpth.
361 dnl Otherwise linking with LIBMULTITHREAD has no effect; then
362 dnl the weak symbols are not defined and thus evaluate to NULL.
363 if test $gl_cv_linker_have_as_needed = yes; then
364 if test $gl_cv_linker_have_push_state = yes; then
365 LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
366 else
367 LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
368 fi
369 fi
370 # TODO: May need to modify LTLIBMULTITHREAD similarly.
371 fi
372 fi
373 else
374 CPPFLAGS="$gl_save_CPPFLAGS"
375252 fi
376253 fi
377254 if test -z "$gl_have_pthread"; then
416293 ])
417294
418295
296 dnl gl_AVOID_WINPTHREAD
297 dnl -------------------
298 dnl Sets the gl_THREADLIB default so that on mingw, a dependency to the
299 dnl libwinpthread DLL (mingw-w64 winpthreads library) is avoided.
300 dnl The user can still override it at installation time, by using the
301 dnl configure option '--enable-threads'.
302
303 AC_DEFUN([gl_AVOID_WINPTHREAD], [
304 m4_divert_text([INIT_PREPARE], [gl_use_winpthreads_default=no])
305 ])
306
307
419308 dnl Survey of platforms:
420309 dnl
421310 dnl Platform Available Compiler Supports test-lock
445334 dnl Mac OS X 10.[123] posix -lpthread Y OK
446335 dnl
447336 dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK
448 dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK
449337 dnl
450338 dnl HP-UX 11 posix -lpthread N (cc) OK
451339 dnl Y (gcc)
458346 dnl -lpthread (gcc) Y
459347 dnl
460348 dnl Cygwin posix -lpthread Y OK
461 dnl
462 dnl Any of the above pth -lpth 0.0
463349 dnl
464350 dnl Mingw windows N OK
465351 dnl
0 # unistd_h.m4 serial 74
0 # unistd_h.m4 serial 75
11 dnl Copyright (C) 2006-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
6363 GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR])
6464 GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN])
6565 GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE])
66 GNULIB_COPY_FILE_RANGE=0; AC_SUBST([GNULIB_COPY_FILE_RANGE])
6667 GNULIB_DUP=0; AC_SUBST([GNULIB_DUP])
6768 GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2])
6869 GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3])
112113 GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE])
113114 dnl Assume proper GNU behavior unless another module says otherwise.
114115 HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN])
116 HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE])
115117 HAVE_DUP2=1; AC_SUBST([HAVE_DUP2])
116118 HAVE_DUP3=1; AC_SUBST([HAVE_DUP3])
117119 HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS])
0 # wcrtomb.m4 serial 13
0 # wcrtomb.m4 serial 14
11 dnl Copyright (C) 2008-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
3232 else
3333 if test $REPLACE_MBSTATE_T = 1; then
3434 REPLACE_WCRTOMB=1
35 else
35 fi
36 if test $REPLACE_WCRTOMB = 0; then
37 dnl On Android 4.3, wcrtomb produces wrong characters in the C locale.
3638 dnl On AIX 4.3, OSF/1 5.1 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL)
3739 dnl sometimes returns 0 instead of 1.
3840 AC_REQUIRE([AC_PROG_CC])
4143 AC_REQUIRE([gt_LOCALE_JA])
4244 AC_REQUIRE([gt_LOCALE_ZH_CN])
4345 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
46 AC_CACHE_CHECK([whether wcrtomb works in the C locale],
47 [gl_cv_func_wcrtomb_works],
48 [AC_RUN_IFELSE(
49 [AC_LANG_SOURCE([[
50 #include <string.h>
51 #include <stdlib.h>
52 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
53 <wchar.h>.
54 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
55 included before <wchar.h>. */
56 #include <stddef.h>
57 #include <stdio.h>
58 #include <wchar.h>
59 int main ()
60 {
61 mbstate_t state;
62 char out[64];
63 int count;
64 memset (&state, 0, sizeof (state));
65 out[0] = 'x';
66 count = wcrtomb (out, L'a', &state);
67 return !(count == 1 && out[0] == 'a');
68 }]])],
69 [gl_cv_func_wcrtomb_works=yes],
70 [gl_cv_func_wcrtomb_works=no],
71 [case "$host_os" in
72 # Guess no on Android.
73 linux*-android*) gl_cv_func_wcrtomb_works="guessing no";;
74 # Guess yes otherwise.
75 *) gl_cv_func_wcrtomb_works="guessing yes";;
76 esac
77 ])
78 ])
79 case "$gl_cv_func_wcrtomb_works" in
80 *yes) ;;
81 *) REPLACE_WCRTOMB=1 ;;
82 esac
83 fi
84 if test $REPLACE_WCRTOMB = 0; then
4485 AC_CACHE_CHECK([whether wcrtomb return value is correct],
4586 [gl_cv_func_wcrtomb_retval],
4687 [
0 # wcwidth.m4 serial 27
0 # wcwidth.m4 serial 29
11 dnl Copyright (C) 2006-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
5353 dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
5454 dnl On OpenBSD 5.8, wcwidth(0xFF1A) (FULLWIDTH COLON) returns 0.
5555 dnl This leads to bugs in 'ls' (coreutils).
56 dnl On Solaris 11.4, wcwidth(0x2202) (PARTIAL DIFFERENTIAL) returns 2,
57 dnl even in Western locales.
5658 AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
5759 [gl_cv_func_wcwidth_works],
5860 [
7981 int main ()
8082 {
8183 int result = 0;
82 if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
84 if (setlocale (LC_ALL, "en_US.UTF-8") != NULL)
8385 {
8486 if (wcwidth (0x0301) > 0)
8587 result |= 1;
8991 result |= 4;
9092 if (wcwidth (0xFF1A) == 0)
9193 result |= 8;
94 if (wcwidth (0x2202) > 1)
95 result |= 16;
9296 }
9397 return result;
9498 }]])],
97101 [
98102 changequote(,)dnl
99103 case "$host_os" in
100 # Guess yes on glibc and AIX 7 systems.
101 *-gnu* | gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
102 *) gl_cv_func_wcwidth_works="guessing no";;
104 # Guess yes on glibc systems.
105 *-gnu* | gnu*) gl_cv_func_wcwidth_works="guessing yes";;
106 # Guess yes on musl systems.
107 *-musl*) gl_cv_func_wcwidth_works="guessing yes";;
108 # Guess yes on AIX 7 systems.
109 aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
110 *) gl_cv_func_wcwidth_works="guessing no";;
103111 esac
104112 changequote([,])dnl
105113 ])
580580 GNULIB_CHDIR = @GNULIB_CHDIR@
581581 GNULIB_CHOWN = @GNULIB_CHOWN@
582582 GNULIB_CLOSE = @GNULIB_CLOSE@
583 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
583584 GNULIB_DPRINTF = @GNULIB_DPRINTF@
584585 GNULIB_DUP = @GNULIB_DUP@
585586 GNULIB_DUP2 = @GNULIB_DUP2@
735736 GNULIB_STRSTR = @GNULIB_STRSTR@
736737 GNULIB_STRTOD = @GNULIB_STRTOD@
737738 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
739 GNULIB_STRTOLD = @GNULIB_STRTOLD@
738740 GNULIB_STRTOLL = @GNULIB_STRTOLL@
739741 GNULIB_STRTOULL = @GNULIB_STRTOULL@
740742 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
802804 GNULIB_WRITE = @GNULIB_WRITE@
803805 GNULIB__EXIT = @GNULIB__EXIT@
804806 GREP = @GREP@
807 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
805808 HAVE_ATOLL = @HAVE_ATOLL@
806809 HAVE_BTOWC = @HAVE_BTOWC@
807810 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
808811 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
809812 HAVE_CHOWN = @HAVE_CHOWN@
813 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
810814 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
811815 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
812816 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
872876 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
873877 HAVE_GRANTPT = @HAVE_GRANTPT@
874878 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
879 HAVE_INITSTATE = @HAVE_INITSTATE@
875880 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
876881 HAVE_ISWBLANK = @HAVE_ISWBLANK@
877882 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
892897 HAVE_MBSLEN = @HAVE_MBSLEN@
893898 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
894899 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
900 HAVE_MBTOWC = @HAVE_MBTOWC@
895901 HAVE_MEMCHR = @HAVE_MEMCHR@
896902 HAVE_MEMPCPY = @HAVE_MEMPCPY@
897903 HAVE_MKDTEMP = @HAVE_MKDTEMP@
926932 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
927933 HAVE_SETENV = @HAVE_SETENV@
928934 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
935 HAVE_SETSTATE = @HAVE_SETSTATE@
929936 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
930937 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
931938 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
940947 HAVE_STRPBRK = @HAVE_STRPBRK@
941948 HAVE_STRSEP = @HAVE_STRSEP@
942949 HAVE_STRTOD = @HAVE_STRTOD@
950 HAVE_STRTOLD = @HAVE_STRTOLD@
943951 HAVE_STRTOLL = @HAVE_STRTOLL@
944952 HAVE_STRTOULL = @HAVE_STRTOULL@
945953 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
10181026 LIBINTL = @LIBINTL@
10191027 LIBMULTITHREAD = @LIBMULTITHREAD@
10201028 LIBOBJS = @LIBOBJS@
1021 LIBPTH = @LIBPTH@
1022 LIBPTH_PREFIX = @LIBPTH_PREFIX@
10231029 LIBS = @LIBS@
10241030 LIBTHREAD = @LIBTHREAD@
10251031 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
10351041 LTLIBINTL = @LTLIBINTL@
10361042 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
10371043 LTLIBOBJS = @LTLIBOBJS@
1038 LTLIBPTH = @LTLIBPTH@
10391044 LTLIBTHREAD = @LTLIBTHREAD@
10401045 MAKEINFO = @MAKEINFO@
10411046 MKDIR_P = @MKDIR_P@
11321137 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
11331138 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
11341139 REPLACE_GETPASS = @REPLACE_GETPASS@
1140 REPLACE_INITSTATE = @REPLACE_INITSTATE@
11351141 REPLACE_ISATTY = @REPLACE_ISATTY@
11361142 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
11371143 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
11651171 REPLACE_PUTENV = @REPLACE_PUTENV@
11661172 REPLACE_PWRITE = @REPLACE_PWRITE@
11671173 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1174 REPLACE_RANDOM = @REPLACE_RANDOM@
11681175 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
11691176 REPLACE_READ = @REPLACE_READ@
11701177 REPLACE_READLINK = @REPLACE_READLINK@
11771184 REPLACE_RMDIR = @REPLACE_RMDIR@
11781185 REPLACE_SETENV = @REPLACE_SETENV@
11791186 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1187 REPLACE_SETSTATE = @REPLACE_SETSTATE@
11801188 REPLACE_SLEEP = @REPLACE_SLEEP@
11811189 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
11821190 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11951203 REPLACE_STRSTR = @REPLACE_STRSTR@
11961204 REPLACE_STRTOD = @REPLACE_STRTOD@
11971205 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1206 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11981207 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11991208 REPLACE_SYMLINK = @REPLACE_SYMLINK@
12001209 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
409409 GNULIB_CHDIR = @GNULIB_CHDIR@
410410 GNULIB_CHOWN = @GNULIB_CHOWN@
411411 GNULIB_CLOSE = @GNULIB_CLOSE@
412 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
412413 GNULIB_DPRINTF = @GNULIB_DPRINTF@
413414 GNULIB_DUP = @GNULIB_DUP@
414415 GNULIB_DUP2 = @GNULIB_DUP2@
564565 GNULIB_STRSTR = @GNULIB_STRSTR@
565566 GNULIB_STRTOD = @GNULIB_STRTOD@
566567 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
568 GNULIB_STRTOLD = @GNULIB_STRTOLD@
567569 GNULIB_STRTOLL = @GNULIB_STRTOLL@
568570 GNULIB_STRTOULL = @GNULIB_STRTOULL@
569571 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
631633 GNULIB_WRITE = @GNULIB_WRITE@
632634 GNULIB__EXIT = @GNULIB__EXIT@
633635 GREP = @GREP@
636 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
634637 HAVE_ATOLL = @HAVE_ATOLL@
635638 HAVE_BTOWC = @HAVE_BTOWC@
636639 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
637640 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
638641 HAVE_CHOWN = @HAVE_CHOWN@
642 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
639643 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
640644 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
641645 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
701705 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
702706 HAVE_GRANTPT = @HAVE_GRANTPT@
703707 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
708 HAVE_INITSTATE = @HAVE_INITSTATE@
704709 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
705710 HAVE_ISWBLANK = @HAVE_ISWBLANK@
706711 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
721726 HAVE_MBSLEN = @HAVE_MBSLEN@
722727 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
723728 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
729 HAVE_MBTOWC = @HAVE_MBTOWC@
724730 HAVE_MEMCHR = @HAVE_MEMCHR@
725731 HAVE_MEMPCPY = @HAVE_MEMPCPY@
726732 HAVE_MKDTEMP = @HAVE_MKDTEMP@
755761 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
756762 HAVE_SETENV = @HAVE_SETENV@
757763 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
764 HAVE_SETSTATE = @HAVE_SETSTATE@
758765 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
759766 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
760767 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
769776 HAVE_STRPBRK = @HAVE_STRPBRK@
770777 HAVE_STRSEP = @HAVE_STRSEP@
771778 HAVE_STRTOD = @HAVE_STRTOD@
779 HAVE_STRTOLD = @HAVE_STRTOLD@
772780 HAVE_STRTOLL = @HAVE_STRTOLL@
773781 HAVE_STRTOULL = @HAVE_STRTOULL@
774782 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
847855 LIBINTL = @LIBINTL@
848856 LIBMULTITHREAD = @LIBMULTITHREAD@
849857 LIBOBJS = @LIBOBJS@
850 LIBPTH = @LIBPTH@
851 LIBPTH_PREFIX = @LIBPTH_PREFIX@
852858 LIBS = @LIBS@
853859 LIBTHREAD = @LIBTHREAD@
854860 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
864870 LTLIBINTL = @LTLIBINTL@
865871 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
866872 LTLIBOBJS = @LTLIBOBJS@
867 LTLIBPTH = @LTLIBPTH@
868873 LTLIBTHREAD = @LTLIBTHREAD@
869874 MAKEINFO = @MAKEINFO@
870875 MKDIR_P = @MKDIR_P@
961966 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
962967 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
963968 REPLACE_GETPASS = @REPLACE_GETPASS@
969 REPLACE_INITSTATE = @REPLACE_INITSTATE@
964970 REPLACE_ISATTY = @REPLACE_ISATTY@
965971 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
966972 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
9941000 REPLACE_PUTENV = @REPLACE_PUTENV@
9951001 REPLACE_PWRITE = @REPLACE_PWRITE@
9961002 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1003 REPLACE_RANDOM = @REPLACE_RANDOM@
9971004 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
9981005 REPLACE_READ = @REPLACE_READ@
9991006 REPLACE_READLINK = @REPLACE_READLINK@
10061013 REPLACE_RMDIR = @REPLACE_RMDIR@
10071014 REPLACE_SETENV = @REPLACE_SETENV@
10081015 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1016 REPLACE_SETSTATE = @REPLACE_SETSTATE@
10091017 REPLACE_SLEEP = @REPLACE_SLEEP@
10101018 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
10111019 REPLACE_SPRINTF = @REPLACE_SPRINTF@
10241032 REPLACE_STRSTR = @REPLACE_STRSTR@
10251033 REPLACE_STRTOD = @REPLACE_STRTOD@
10261034 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1035 REPLACE_STRTOLD = @REPLACE_STRTOLD@
10271036 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
10281037 REPLACE_SYMLINK = @REPLACE_SYMLINK@
10291038 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
494494 GNULIB_CHDIR = @GNULIB_CHDIR@
495495 GNULIB_CHOWN = @GNULIB_CHOWN@
496496 GNULIB_CLOSE = @GNULIB_CLOSE@
497 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
497498 GNULIB_DPRINTF = @GNULIB_DPRINTF@
498499 GNULIB_DUP = @GNULIB_DUP@
499500 GNULIB_DUP2 = @GNULIB_DUP2@
649650 GNULIB_STRSTR = @GNULIB_STRSTR@
650651 GNULIB_STRTOD = @GNULIB_STRTOD@
651652 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
653 GNULIB_STRTOLD = @GNULIB_STRTOLD@
652654 GNULIB_STRTOLL = @GNULIB_STRTOLL@
653655 GNULIB_STRTOULL = @GNULIB_STRTOULL@
654656 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
716718 GNULIB_WRITE = @GNULIB_WRITE@
717719 GNULIB__EXIT = @GNULIB__EXIT@
718720 GREP = @GREP@
721 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
719722 HAVE_ATOLL = @HAVE_ATOLL@
720723 HAVE_BTOWC = @HAVE_BTOWC@
721724 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
722725 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
723726 HAVE_CHOWN = @HAVE_CHOWN@
727 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
724728 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
725729 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
726730 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
786790 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
787791 HAVE_GRANTPT = @HAVE_GRANTPT@
788792 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
793 HAVE_INITSTATE = @HAVE_INITSTATE@
789794 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
790795 HAVE_ISWBLANK = @HAVE_ISWBLANK@
791796 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
806811 HAVE_MBSLEN = @HAVE_MBSLEN@
807812 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
808813 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
814 HAVE_MBTOWC = @HAVE_MBTOWC@
809815 HAVE_MEMCHR = @HAVE_MEMCHR@
810816 HAVE_MEMPCPY = @HAVE_MEMPCPY@
811817 HAVE_MKDTEMP = @HAVE_MKDTEMP@
840846 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
841847 HAVE_SETENV = @HAVE_SETENV@
842848 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
849 HAVE_SETSTATE = @HAVE_SETSTATE@
843850 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
844851 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
845852 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
854861 HAVE_STRPBRK = @HAVE_STRPBRK@
855862 HAVE_STRSEP = @HAVE_STRSEP@
856863 HAVE_STRTOD = @HAVE_STRTOD@
864 HAVE_STRTOLD = @HAVE_STRTOLD@
857865 HAVE_STRTOLL = @HAVE_STRTOLL@
858866 HAVE_STRTOULL = @HAVE_STRTOULL@
859867 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
932940 LIBINTL = @LIBINTL@
933941 LIBMULTITHREAD = @LIBMULTITHREAD@
934942 LIBOBJS = @LIBOBJS@
935 LIBPTH = @LIBPTH@
936 LIBPTH_PREFIX = @LIBPTH_PREFIX@
937943 LIBS = @LIBS@
938944 LIBTHREAD = @LIBTHREAD@
939945 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
949955 LTLIBINTL = @LTLIBINTL@
950956 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
951957 LTLIBOBJS = @LTLIBOBJS@
952 LTLIBPTH = @LTLIBPTH@
953958 LTLIBTHREAD = @LTLIBTHREAD@
954959 MAKEINFO = @MAKEINFO@
955960 MKDIR_P = @MKDIR_P@
10461051 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
10471052 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
10481053 REPLACE_GETPASS = @REPLACE_GETPASS@
1054 REPLACE_INITSTATE = @REPLACE_INITSTATE@
10491055 REPLACE_ISATTY = @REPLACE_ISATTY@
10501056 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
10511057 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
10791085 REPLACE_PUTENV = @REPLACE_PUTENV@
10801086 REPLACE_PWRITE = @REPLACE_PWRITE@
10811087 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1088 REPLACE_RANDOM = @REPLACE_RANDOM@
10821089 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
10831090 REPLACE_READ = @REPLACE_READ@
10841091 REPLACE_READLINK = @REPLACE_READLINK@
10911098 REPLACE_RMDIR = @REPLACE_RMDIR@
10921099 REPLACE_SETENV = @REPLACE_SETENV@
10931100 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1101 REPLACE_SETSTATE = @REPLACE_SETSTATE@
10941102 REPLACE_SLEEP = @REPLACE_SLEEP@
10951103 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
10961104 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11091117 REPLACE_STRSTR = @REPLACE_STRSTR@
11101118 REPLACE_STRTOD = @REPLACE_STRTOD@
11111119 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1120 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11121121 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11131122 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11141123 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
323323 GNULIB_CHDIR = @GNULIB_CHDIR@
324324 GNULIB_CHOWN = @GNULIB_CHOWN@
325325 GNULIB_CLOSE = @GNULIB_CLOSE@
326 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
326327 GNULIB_DPRINTF = @GNULIB_DPRINTF@
327328 GNULIB_DUP = @GNULIB_DUP@
328329 GNULIB_DUP2 = @GNULIB_DUP2@
478479 GNULIB_STRSTR = @GNULIB_STRSTR@
479480 GNULIB_STRTOD = @GNULIB_STRTOD@
480481 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
482 GNULIB_STRTOLD = @GNULIB_STRTOLD@
481483 GNULIB_STRTOLL = @GNULIB_STRTOLL@
482484 GNULIB_STRTOULL = @GNULIB_STRTOULL@
483485 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
545547 GNULIB_WRITE = @GNULIB_WRITE@
546548 GNULIB__EXIT = @GNULIB__EXIT@
547549 GREP = @GREP@
550 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
548551 HAVE_ATOLL = @HAVE_ATOLL@
549552 HAVE_BTOWC = @HAVE_BTOWC@
550553 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
551554 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
552555 HAVE_CHOWN = @HAVE_CHOWN@
556 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
553557 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
554558 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
555559 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
615619 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
616620 HAVE_GRANTPT = @HAVE_GRANTPT@
617621 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
622 HAVE_INITSTATE = @HAVE_INITSTATE@
618623 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
619624 HAVE_ISWBLANK = @HAVE_ISWBLANK@
620625 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
635640 HAVE_MBSLEN = @HAVE_MBSLEN@
636641 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
637642 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
643 HAVE_MBTOWC = @HAVE_MBTOWC@
638644 HAVE_MEMCHR = @HAVE_MEMCHR@
639645 HAVE_MEMPCPY = @HAVE_MEMPCPY@
640646 HAVE_MKDTEMP = @HAVE_MKDTEMP@
669675 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
670676 HAVE_SETENV = @HAVE_SETENV@
671677 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
678 HAVE_SETSTATE = @HAVE_SETSTATE@
672679 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
673680 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
674681 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
683690 HAVE_STRPBRK = @HAVE_STRPBRK@
684691 HAVE_STRSEP = @HAVE_STRSEP@
685692 HAVE_STRTOD = @HAVE_STRTOD@
693 HAVE_STRTOLD = @HAVE_STRTOLD@
686694 HAVE_STRTOLL = @HAVE_STRTOLL@
687695 HAVE_STRTOULL = @HAVE_STRTOULL@
688696 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
761769 LIBINTL = @LIBINTL@
762770 LIBMULTITHREAD = @LIBMULTITHREAD@
763771 LIBOBJS = @LIBOBJS@
764 LIBPTH = @LIBPTH@
765 LIBPTH_PREFIX = @LIBPTH_PREFIX@
766772 LIBS = @LIBS@
767773 LIBTHREAD = @LIBTHREAD@
768774 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
778784 LTLIBINTL = @LTLIBINTL@
779785 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
780786 LTLIBOBJS = @LTLIBOBJS@
781 LTLIBPTH = @LTLIBPTH@
782787 LTLIBTHREAD = @LTLIBTHREAD@
783788 MAKEINFO = $(MAKEINFO_ENVIRIONMENT) $(PERL) "$(tpdir)"/texi2any.pl
784789 MKDIR_P = @MKDIR_P@
875880 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
876881 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
877882 REPLACE_GETPASS = @REPLACE_GETPASS@
883 REPLACE_INITSTATE = @REPLACE_INITSTATE@
878884 REPLACE_ISATTY = @REPLACE_ISATTY@
879885 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
880886 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
908914 REPLACE_PUTENV = @REPLACE_PUTENV@
909915 REPLACE_PWRITE = @REPLACE_PWRITE@
910916 REPLACE_QSORT_R = @REPLACE_QSORT_R@
917 REPLACE_RANDOM = @REPLACE_RANDOM@
911918 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
912919 REPLACE_READ = @REPLACE_READ@
913920 REPLACE_READLINK = @REPLACE_READLINK@
920927 REPLACE_RMDIR = @REPLACE_RMDIR@
921928 REPLACE_SETENV = @REPLACE_SETENV@
922929 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
930 REPLACE_SETSTATE = @REPLACE_SETSTATE@
923931 REPLACE_SLEEP = @REPLACE_SLEEP@
924932 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
925933 REPLACE_SPRINTF = @REPLACE_SPRINTF@
938946 REPLACE_STRSTR = @REPLACE_STRSTR@
939947 REPLACE_STRTOD = @REPLACE_STRTOD@
940948 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
949 REPLACE_STRTOLD = @REPLACE_STRTOLD@
941950 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
942951 REPLACE_SYMLINK = @REPLACE_SYMLINK@
943952 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
00 .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
1 .TH INFO "1" "September 2019" "info 6.6.91" "User Commands"
1 .TH INFO "1" "September 2019" "info 6.6.92" "User Commands"
22 .SH NAME
33 info \- read Info documents
44 .SH SYNOPSIS
00 .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
1 .TH INSTALL-INFO "1" "September 2019" "install-info 6.6.91" "User Commands"
1 .TH INSTALL-INFO "1" "September 2019" "install-info 6.6.92" "User Commands"
22 .SH NAME
33 install-info \- update info/dir entries
44 .SH SYNOPSIS
00 .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
1 .TH TEXI2ANY "1" "September 2019" "texi2any 6.6.91" "User Commands"
1 .TH TEXI2ANY "1" "September 2019" "texi2any 6.6.92" "User Commands"
22 .SH NAME
33 texi2any \- translate Texinfo documents
44 .SH SYNOPSIS
00 .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
1 .TH TEXINDEX "1" "September 2019" "texindex 6.6dev" "User Commands"
1 .TH TEXINDEX "1" "September 2019" "texindex 6.6.92" "User Commands"
22 .SH NAME
33 texindex \- sort Texinfo index files
44 .SH SYNOPSIS
503503 GNULIB_CHDIR = @GNULIB_CHDIR@
504504 GNULIB_CHOWN = @GNULIB_CHOWN@
505505 GNULIB_CLOSE = @GNULIB_CLOSE@
506 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
506507 GNULIB_DPRINTF = @GNULIB_DPRINTF@
507508 GNULIB_DUP = @GNULIB_DUP@
508509 GNULIB_DUP2 = @GNULIB_DUP2@
658659 GNULIB_STRSTR = @GNULIB_STRSTR@
659660 GNULIB_STRTOD = @GNULIB_STRTOD@
660661 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
662 GNULIB_STRTOLD = @GNULIB_STRTOLD@
661663 GNULIB_STRTOLL = @GNULIB_STRTOLL@
662664 GNULIB_STRTOULL = @GNULIB_STRTOULL@
663665 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
725727 GNULIB_WRITE = @GNULIB_WRITE@
726728 GNULIB__EXIT = @GNULIB__EXIT@
727729 GREP = @GREP@
730 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
728731 HAVE_ATOLL = @HAVE_ATOLL@
729732 HAVE_BTOWC = @HAVE_BTOWC@
730733 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
731734 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
732735 HAVE_CHOWN = @HAVE_CHOWN@
736 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
733737 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
734738 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
735739 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
795799 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
796800 HAVE_GRANTPT = @HAVE_GRANTPT@
797801 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
802 HAVE_INITSTATE = @HAVE_INITSTATE@
798803 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
799804 HAVE_ISWBLANK = @HAVE_ISWBLANK@
800805 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
815820 HAVE_MBSLEN = @HAVE_MBSLEN@
816821 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
817822 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
823 HAVE_MBTOWC = @HAVE_MBTOWC@
818824 HAVE_MEMCHR = @HAVE_MEMCHR@
819825 HAVE_MEMPCPY = @HAVE_MEMPCPY@
820826 HAVE_MKDTEMP = @HAVE_MKDTEMP@
849855 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
850856 HAVE_SETENV = @HAVE_SETENV@
851857 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
858 HAVE_SETSTATE = @HAVE_SETSTATE@
852859 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
853860 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
854861 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
863870 HAVE_STRPBRK = @HAVE_STRPBRK@
864871 HAVE_STRSEP = @HAVE_STRSEP@
865872 HAVE_STRTOD = @HAVE_STRTOD@
873 HAVE_STRTOLD = @HAVE_STRTOLD@
866874 HAVE_STRTOLL = @HAVE_STRTOLL@
867875 HAVE_STRTOULL = @HAVE_STRTOULL@
868876 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
941949 LIBINTL = @LIBINTL@
942950 LIBMULTITHREAD = @LIBMULTITHREAD@
943951 LIBOBJS = @LIBOBJS@
944 LIBPTH = @LIBPTH@
945 LIBPTH_PREFIX = @LIBPTH_PREFIX@
946952 LIBS = @LIBS@
947953 LIBTHREAD = @LIBTHREAD@
948954 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
958964 LTLIBINTL = @LTLIBINTL@
959965 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
960966 LTLIBOBJS = @LTLIBOBJS@
961 LTLIBPTH = @LTLIBPTH@
962967 LTLIBTHREAD = @LTLIBTHREAD@
963968 MAKEINFO = @MAKEINFO@
964969 MKDIR_P = @MKDIR_P@
10551060 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
10561061 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
10571062 REPLACE_GETPASS = @REPLACE_GETPASS@
1063 REPLACE_INITSTATE = @REPLACE_INITSTATE@
10581064 REPLACE_ISATTY = @REPLACE_ISATTY@
10591065 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
10601066 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
10881094 REPLACE_PUTENV = @REPLACE_PUTENV@
10891095 REPLACE_PWRITE = @REPLACE_PWRITE@
10901096 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1097 REPLACE_RANDOM = @REPLACE_RANDOM@
10911098 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
10921099 REPLACE_READ = @REPLACE_READ@
10931100 REPLACE_READLINK = @REPLACE_READLINK@
11001107 REPLACE_RMDIR = @REPLACE_RMDIR@
11011108 REPLACE_SETENV = @REPLACE_SETENV@
11021109 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1110 REPLACE_SETSTATE = @REPLACE_SETSTATE@
11031111 REPLACE_SLEEP = @REPLACE_SLEEP@
11041112 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
11051113 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11181126 REPLACE_STRSTR = @REPLACE_STRSTR@
11191127 REPLACE_STRTOD = @REPLACE_STRTOD@
11201128 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1129 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11211130 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11221131 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11231132 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
196196 EXIT_SUCCESS = 0
197197 EXIT_FAILURE = 1
198198
199 Texindex_version = "6.6dev"
199 Texindex_version = "6.6.92"
200200 if (! Invocation_name) {
201201 # provide fallback in case it's not passed in.
202202 Invocation_name = "texindex"
569569 GNULIB_CHDIR = @GNULIB_CHDIR@
570570 GNULIB_CHOWN = @GNULIB_CHOWN@
571571 GNULIB_CLOSE = @GNULIB_CLOSE@
572 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
572573 GNULIB_DPRINTF = @GNULIB_DPRINTF@
573574 GNULIB_DUP = @GNULIB_DUP@
574575 GNULIB_DUP2 = @GNULIB_DUP2@
724725 GNULIB_STRSTR = @GNULIB_STRSTR@
725726 GNULIB_STRTOD = @GNULIB_STRTOD@
726727 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
728 GNULIB_STRTOLD = @GNULIB_STRTOLD@
727729 GNULIB_STRTOLL = @GNULIB_STRTOLL@
728730 GNULIB_STRTOULL = @GNULIB_STRTOULL@
729731 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
791793 GNULIB_WRITE = @GNULIB_WRITE@
792794 GNULIB__EXIT = @GNULIB__EXIT@
793795 GREP = @GREP@
796 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
794797 HAVE_ATOLL = @HAVE_ATOLL@
795798 HAVE_BTOWC = @HAVE_BTOWC@
796799 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
797800 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
798801 HAVE_CHOWN = @HAVE_CHOWN@
802 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
799803 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
800804 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
801805 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
861865 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
862866 HAVE_GRANTPT = @HAVE_GRANTPT@
863867 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
868 HAVE_INITSTATE = @HAVE_INITSTATE@
864869 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
865870 HAVE_ISWBLANK = @HAVE_ISWBLANK@
866871 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
881886 HAVE_MBSLEN = @HAVE_MBSLEN@
882887 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
883888 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
889 HAVE_MBTOWC = @HAVE_MBTOWC@
884890 HAVE_MEMCHR = @HAVE_MEMCHR@
885891 HAVE_MEMPCPY = @HAVE_MEMPCPY@
886892 HAVE_MKDTEMP = @HAVE_MKDTEMP@
915921 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
916922 HAVE_SETENV = @HAVE_SETENV@
917923 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
924 HAVE_SETSTATE = @HAVE_SETSTATE@
918925 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
919926 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
920927 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
929936 HAVE_STRPBRK = @HAVE_STRPBRK@
930937 HAVE_STRSEP = @HAVE_STRSEP@
931938 HAVE_STRTOD = @HAVE_STRTOD@
939 HAVE_STRTOLD = @HAVE_STRTOLD@
932940 HAVE_STRTOLL = @HAVE_STRTOLL@
933941 HAVE_STRTOULL = @HAVE_STRTOULL@
934942 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
10071015 LIBINTL = @LIBINTL@
10081016 LIBMULTITHREAD = @LIBMULTITHREAD@
10091017 LIBOBJS = @LIBOBJS@
1010 LIBPTH = @LIBPTH@
1011 LIBPTH_PREFIX = @LIBPTH_PREFIX@
10121018 LIBS = @LIBS@
10131019 LIBTHREAD = @LIBTHREAD@
10141020 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
10241030 LTLIBINTL = @LTLIBINTL@
10251031 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
10261032 LTLIBOBJS = @LTLIBOBJS@
1027 LTLIBPTH = @LTLIBPTH@
10281033 LTLIBTHREAD = @LTLIBTHREAD@
10291034 MAKEINFO = @MAKEINFO@
10301035 MKDIR_P = @MKDIR_P@
11211126 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
11221127 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
11231128 REPLACE_GETPASS = @REPLACE_GETPASS@
1129 REPLACE_INITSTATE = @REPLACE_INITSTATE@
11241130 REPLACE_ISATTY = @REPLACE_ISATTY@
11251131 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
11261132 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
11541160 REPLACE_PUTENV = @REPLACE_PUTENV@
11551161 REPLACE_PWRITE = @REPLACE_PWRITE@
11561162 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1163 REPLACE_RANDOM = @REPLACE_RANDOM@
11571164 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
11581165 REPLACE_READ = @REPLACE_READ@
11591166 REPLACE_READLINK = @REPLACE_READLINK@
11661173 REPLACE_RMDIR = @REPLACE_RMDIR@
11671174 REPLACE_SETENV = @REPLACE_SETENV@
11681175 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1176 REPLACE_SETSTATE = @REPLACE_SETSTATE@
11691177 REPLACE_SLEEP = @REPLACE_SLEEP@
11701178 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
11711179 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11841192 REPLACE_STRSTR = @REPLACE_STRSTR@
11851193 REPLACE_STRTOD = @REPLACE_STRTOD@
11861194 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1195 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11871196 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11881197 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11891198 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
6363 __ __p print_tree
6464 );
6565
66 $VERSION = '6.6.91';
66 $VERSION = '6.6.92';
6767
6868 # i18n
6969 sub N__($)
4848 @EXPORT = qw(
4949 );
5050
51 $VERSION = '6.6.91';
51 $VERSION = '6.6.92';
5252
5353 my %defaults = (
5454 'ENABLE_ENCODING' => 1,
4646 @EXPORT = qw(
4747 );
4848
49 $VERSION = '6.6.91';
49 $VERSION = '6.6.92';
5050
5151 my $nbsp = '&#'.hex('00A0').';';
5252 my $mdash = '&#'.hex('2014').';';
7070 @EXPORT = qw(
7171 );
7272
73 $VERSION = '6.6.91';
73 $VERSION = '6.6.92';
7474
7575 # misc commands that are of use for formatting.
7676 my %formatting_misc_commands = %Texinfo::Convert::Text::formatting_misc_commands;
4646 @EXPORT = qw(
4747 );
4848
49 $VERSION = '6.6.91';
49 $VERSION = '6.6.92';
5050
5151 my $ixin_version = 1;
5252
4545 @EXPORT = qw(
4646 );
4747
48 $VERSION = '6.6.91';
48 $VERSION = '6.6.92';
4949
5050 my %defaults = (
5151 'ENABLE_ENCODING' => 0,
4242 @EXPORT = qw(
4343 );
4444
45 $VERSION = '6.6.91';
45 $VERSION = '6.6.92';
4646
4747 my $STDIN_DOCU_NAME = 'stdin';
4848
1919 use strict;
2020 use warnings;
2121
22 our $VERSION = '6.6.91';
22 our $VERSION = '6.6.92';
2323
2424 use Texinfo::XSLoader;
2525
6060 @EXPORT = qw(
6161 );
6262
63 $VERSION = '6.6.91';
63 $VERSION = '6.6.92';
6464
6565 # misc commands that are of use for formatting.
6666 my %formatting_misc_commands = %Texinfo::Convert::Text::formatting_misc_commands;
3939 @EXPORT = qw(
4040 );
4141
42 $VERSION = '6.6.91';
42 $VERSION = '6.6.92';
4343
4444 my %misc_commands = %Texinfo::Common::misc_commands;
4545 my %brace_commands = %Texinfo::Common::brace_commands;
4242 @EXPORT = qw(
4343 );
4444
45 $VERSION = '6.6.91';
45 $VERSION = '6.6.92';
4646
4747 # SXML specific
4848 my %defaults = (
4444 @EXPORT = qw(
4545 );
4646
47 $VERSION = '6.6.91';
47 $VERSION = '6.6.92';
4848
4949 # XML specific
5050 my %defaults = (
4646 @EXPORT = qw(
4747 );
4848
49 $VERSION = '6.6.91';
49 $VERSION = '6.6.92';
5050
5151 # this is in fact not needed for 'footnote', 'shortcaption', 'caption'
5252 # when they have no brace_command_arg, see below.
2121 use strict;
2222 use warnings;
2323
24 our $VERSION = '6.6.91';
24 our $VERSION = '6.6.92';
2525
2626 use Texinfo::XSLoader;
2727
9898 @EXPORT = qw(
9999 );
100100
101 $VERSION = '6.6.91';
101 $VERSION = '6.6.92';
102102
103103 sub N__($)
104104 {
6363 @EXPORT = qw(
6464 );
6565
66 $VERSION = '6.6.91';
66 $VERSION = '6.6.92';
6767
6868
6969 my %types_to_enter;
104104 $(top_srcdir)/gnulib/m4/gettext.m4 \
105105 $(top_srcdir)/gnulib/m4/gnulib-common.m4 \
106106 $(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
107 $(top_srcdir)/gnulib/m4/host-cpu-c-abi.m4 \
107108 $(top_srcdir)/gnulib/m4/iconv.m4 \
108109 $(top_srcdir)/gnulib/m4/include_next.m4 \
109110 $(top_srcdir)/gnulib/m4/intmax_t.m4 \
544545 GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
545546 GNULIB_WMEMSET = @GNULIB_WMEMSET@
546547 GREP = @GREP@
548 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
547549 HAVE_BTOWC = @HAVE_BTOWC@
548550 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
549551 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
12181218 m4_include([gnulib/m4/gettext.m4])
12191219 m4_include([gnulib/m4/gnulib-common.m4])
12201220 m4_include([gnulib/m4/gnulib-comp.m4])
1221 m4_include([gnulib/m4/host-cpu-c-abi.m4])
12211222 m4_include([gnulib/m4/iconv.m4])
12221223 m4_include([gnulib/m4/include_next.m4])
12231224 m4_include([gnulib/m4/intmax_t.m4])
438438
439439 /* The _Noreturn keyword of C11. */
440440 #ifndef _Noreturn
441 # if 201103 <= (defined __cplusplus ? __cplusplus : 0)
441 # if (defined __cplusplus \
442 && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
443 || (defined _MSC_VER && 1900 <= _MSC_VER)))
442444 # define _Noreturn [[noreturn]]
443 # elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
444 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
445 # elif ((!defined __cplusplus || defined __clang__) \
446 && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
447 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)))
445448 /* _Noreturn works as-is. */
446449 # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
447450 # define _Noreturn __attribute__ ((__noreturn__))
468471
469472 /* Define to 1 if the system <stdint.h> predates C++11. */
470473 #undef __STDC_LIMIT_MACROS
474
475 /* The _GL_ASYNC_SAFE marker should be attached to functions that are
476 signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
477 invoked from such signal handlers. Such functions have some restrictions:
478 * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
479 or should be listed as async-signal-safe in POSIX
480 <http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
481 section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
482 particular, are NOT async-signal-safe.
483 * All memory locations (variables and struct fields) that these functions
484 access must be marked 'volatile'. This holds for both read and write
485 accesses. Otherwise the compiler might optimize away stores to and
486 reads from such locations that occur in the program, depending on its
487 data flow analysis. For example, when the program contains a loop
488 that is intended to inspect a variable set from within a signal handler
489 while (!signal_occurred)
490 ;
491 the compiler is allowed to transform this into an endless loop if the
492 variable 'signal_occurred' is not declared 'volatile'.
493 Additionally, recall that:
494 * A signal handler should not modify errno (except if it is a handler
495 for a fatal signal and ends by raising the same signal again, thus
496 provoking the termination of the process). If it invokes a function
497 that may clobber errno, it needs to save and restore the value of
498 errno. */
499 #define _GL_ASYNC_SAFE
500
471501
472502 /* Please see the Gnulib manual for how to use these macros.
473503
11 # Output a system dependent set of variables, describing how to set the
22 # run time search path of shared libraries in an executable.
33 #
4 # Copyright 1996-2016 Free Software Foundation, Inc.
4 # Copyright 1996-2019 Free Software Foundation, Inc.
55 # Taken from GNU libtool, 2001
66 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
77 #
10171017 PRAGMA_SYSTEM_HEADER
10181018 INCLUDE_NEXT_AS_FIRST_DIRECTIVE
10191019 INCLUDE_NEXT
1020 HAVE_ALLOCA_H
10201021 GL_GENERATE_ALLOCA_H_FALSE
10211022 GL_GENERATE_ALLOCA_H_TRUE
10221023 ALLOCA_H
59855986 }
59865987 fi
59875988
5988 ac_prog=ld
5989 if test "$GCC" = yes; then
5990 # Check if gcc -print-prog-name=ld gives a path.
5989 if test -n "$LD"; then
5990 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5
5991 $as_echo_n "checking for ld... " >&6; }
5992 elif test "$GCC" = yes; then
59915993 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
59925994 $as_echo_n "checking for ld used by $CC... " >&6; }
5993 case $host in
5994 *-*-mingw*)
5995 # gcc leaves a trailing carriage return which upsets mingw
5996 ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
5997 *)
5998 ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
5999 esac
6000 case $ac_prog in
6001 # Accept absolute paths.
6002 [\\/]* | ?:[\\/]*)
6003 re_direlt='/[^/][^/]*/\.\./'
6004 # Canonicalize the pathname of ld
6005 ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
6006 while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
6007 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
6008 done
6009 test -z "$LD" && LD="$ac_prog"
6010 ;;
6011 "")
6012 # If it fails, then pretend we aren't using GCC.
6013 ac_prog=ld
6014 ;;
6015 *)
6016 # If it is relative, then search for the first ld in PATH.
6017 with_gnu_ld=unknown
6018 ;;
6019 esac
60205995 elif test "$with_gnu_ld" = yes; then
60215996 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
60225997 $as_echo_n "checking for GNU ld... " >&6; }
60245999 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
60256000 $as_echo_n "checking for non-GNU ld... " >&6; }
60266001 fi
6027 if ${acl_cv_path_LD+:} false; then :
6002 if test -n "$LD"; then
6003 # Let the user override the test with a path.
6004 :
6005 else
6006 if ${acl_cv_path_LD+:} false; then :
60286007 $as_echo_n "(cached) " >&6
60296008 else
6030 if test -z "$LD"; then
6031 acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
6032 for ac_dir in $PATH; do
6033 IFS="$acl_save_ifs"
6034 test -z "$ac_dir" && ac_dir=.
6035 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
6036 acl_cv_path_LD="$ac_dir/$ac_prog"
6037 # Check to see if the program is GNU ld. I'd rather use --version,
6038 # but apparently some variants of GNU ld only accept -v.
6039 # Break only if it was the GNU/non-GNU ld that we prefer.
6040 case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
6041 *GNU* | *'with BFD'*)
6042 test "$with_gnu_ld" != no && break
6043 ;;
6044 *)
6045 test "$with_gnu_ld" != yes && break
6046 ;;
6009
6010 acl_cv_path_LD= # Final result of this test
6011 ac_prog=ld # Program to search in $PATH
6012 if test "$GCC" = yes; then
6013 # Check if gcc -print-prog-name=ld gives a path.
6014 case $host in
6015 *-*-mingw*)
6016 # gcc leaves a trailing carriage return which upsets mingw
6017 acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
6018 *)
6019 acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
6020 esac
6021 case $acl_output in
6022 # Accept absolute paths.
6023 [\\/]* | ?:[\\/]*)
6024 re_direlt='/[^/][^/]*/\.\./'
6025 # Canonicalize the pathname of ld
6026 acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
6027 while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
6028 acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
6029 done
6030 # Got the pathname. No search in PATH is needed.
6031 acl_cv_path_LD="$acl_output"
6032 ac_prog=
6033 ;;
6034 "")
6035 # If it fails, then pretend we aren't using GCC.
6036 ;;
6037 *)
6038 # If it is relative, then search for the first ld in PATH.
6039 with_gnu_ld=unknown
6040 ;;
60476041 esac
60486042 fi
6049 done
6050 IFS="$acl_save_ifs"
6051 else
6052 acl_cv_path_LD="$LD" # Let the user override the test with a path.
6053 fi
6054 fi
6055
6056 LD="$acl_cv_path_LD"
6043 if test -n "$ac_prog"; then
6044 # Search for $ac_prog in $PATH.
6045 acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
6046 for ac_dir in $PATH; do
6047 IFS="$acl_save_ifs"
6048 test -z "$ac_dir" && ac_dir=.
6049 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
6050 acl_cv_path_LD="$ac_dir/$ac_prog"
6051 # Check to see if the program is GNU ld. I'd rather use --version,
6052 # but apparently some variants of GNU ld only accept -v.
6053 # Break only if it was the GNU/non-GNU ld that we prefer.
6054 case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
6055 *GNU* | *'with BFD'*)
6056 test "$with_gnu_ld" != no && break
6057 ;;
6058 *)
6059 test "$with_gnu_ld" != yes && break
6060 ;;
6061 esac
6062 fi
6063 done
6064 IFS="$acl_save_ifs"
6065 fi
6066 case $host in
6067 *-*-aix*)
6068 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6069 /* end confdefs.h. */
6070 #if defined __powerpc64__ || defined _ARCH_PPC64
6071 int ok;
6072 #else
6073 error fail
6074 #endif
6075
6076 _ACEOF
6077 if ac_fn_c_try_compile "$LINENO"; then :
6078 # The compiler produces 64-bit code. Add option '-b64' so that the
6079 # linker groks 64-bit object files.
6080 case "$acl_cv_path_LD " in
6081 *" -b64 "*) ;;
6082 *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
6083 esac
6084
6085 fi
6086 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6087 ;;
6088 sparc64-*-netbsd*)
6089 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6090 /* end confdefs.h. */
6091 #if defined __sparcv9 || defined __arch64__
6092 int ok;
6093 #else
6094 error fail
6095 #endif
6096
6097 _ACEOF
6098 if ac_fn_c_try_compile "$LINENO"; then :
6099
6100 else
6101 # The compiler produces 32-bit code. Add option '-m elf32_sparc'
6102 # so that the linker groks 32-bit object files.
6103 case "$acl_cv_path_LD " in
6104 *" -m elf32_sparc "*) ;;
6105 *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
6106 esac
6107
6108 fi
6109 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6110 ;;
6111 esac
6112
6113 fi
6114
6115 LD="$acl_cv_path_LD"
6116 fi
60576117 if test -n "$LD"; then
60586118 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
60596119 $as_echo "$LD" >&6; }
60606120 else
60616121 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
60626122 $as_echo "no" >&6; }
6063 fi
6064 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
6123 as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
6124 fi
60656125 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
60666126 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
60676127 if ${acl_cv_prog_gnu_ld+:} false; then :
61186178
61196179
61206180
6121 acl_libdirstem=lib
6122 acl_libdirstem2=
6181 { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
6182 $as_echo_n "checking 32-bit host C ABI... " >&6; }
6183 if ${gl_cv_host_cpu_c_abi_32bit+:} false; then :
6184 $as_echo_n "(cached) " >&6
6185 else
6186 if test -n "$gl_cv_host_cpu_c_abi"; then
6187 case "$gl_cv_host_cpu_c_abi" in
6188 i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
6189 gl_cv_host_cpu_c_abi_32bit=yes ;;
6190 *)
6191 gl_cv_host_cpu_c_abi_32bit=no ;;
6192 esac
6193 else
6194 case "$host_cpu" in
6195
6196 i[4567]86 )
6197 gl_cv_host_cpu_c_abi_32bit=yes
6198 ;;
6199
6200 x86_64 )
6201 # On x86_64 systems, the C compiler may be generating code in one of
6202 # these ABIs:
6203 # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
6204 # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
6205 # with native Windows (mingw, MSVC).
6206 # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
6207 # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
6208 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6209 /* end confdefs.h. */
6210 #if (defined __x86_64__ || defined __amd64__ \
6211 || defined _M_X64 || defined _M_AMD64) \
6212 && !(defined __ILP32__ || defined _ILP32)
6213 int ok;
6214 #else
6215 error fail
6216 #endif
6217
6218 _ACEOF
6219 if ac_fn_c_try_compile "$LINENO"; then :
6220 gl_cv_host_cpu_c_abi_32bit=no
6221 else
6222 gl_cv_host_cpu_c_abi_32bit=yes
6223 fi
6224 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6225 ;;
6226
6227 arm* | aarch64 )
6228 # Assume arm with EABI.
6229 # On arm64 systems, the C compiler may be generating code in one of
6230 # these ABIs:
6231 # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
6232 # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
6233 # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
6234 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6235 /* end confdefs.h. */
6236 #if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
6237 int ok;
6238 #else
6239 error fail
6240 #endif
6241
6242 _ACEOF
6243 if ac_fn_c_try_compile "$LINENO"; then :
6244 gl_cv_host_cpu_c_abi_32bit=no
6245 else
6246 gl_cv_host_cpu_c_abi_32bit=yes
6247 fi
6248 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6249 ;;
6250
6251 hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
6252 # On hppa, the C compiler may be generating 32-bit code or 64-bit
6253 # code. In the latter case, it defines _LP64 and __LP64__.
6254 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6255 /* end confdefs.h. */
6256 #ifdef __LP64__
6257 int ok;
6258 #else
6259 error fail
6260 #endif
6261
6262 _ACEOF
6263 if ac_fn_c_try_compile "$LINENO"; then :
6264 gl_cv_host_cpu_c_abi_32bit=no
6265 else
6266 gl_cv_host_cpu_c_abi_32bit=yes
6267 fi
6268 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6269 ;;
6270
6271 ia64* )
6272 # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
6273 # 32-bit code. In the latter case, it defines _ILP32.
6274 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6275 /* end confdefs.h. */
6276 #ifdef _ILP32
6277 int ok;
6278 #else
6279 error fail
6280 #endif
6281
6282 _ACEOF
6283 if ac_fn_c_try_compile "$LINENO"; then :
6284 gl_cv_host_cpu_c_abi_32bit=yes
6285 else
6286 gl_cv_host_cpu_c_abi_32bit=no
6287 fi
6288 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6289 ;;
6290
6291 mips* )
6292 # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
6293 # at 32.
6294 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6295 /* end confdefs.h. */
6296 #if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
6297 int ok;
6298 #else
6299 error fail
6300 #endif
6301
6302 _ACEOF
6303 if ac_fn_c_try_compile "$LINENO"; then :
6304 gl_cv_host_cpu_c_abi_32bit=no
6305 else
6306 gl_cv_host_cpu_c_abi_32bit=yes
6307 fi
6308 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6309 ;;
6310
6311 powerpc* )
6312 # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
6313 # No need to distinguish them here; the caller may distinguish
6314 # them based on the OS.
6315 # On powerpc64 systems, the C compiler may still be generating
6316 # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
6317 # be generating 64-bit code.
6318 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6319 /* end confdefs.h. */
6320 #if defined __powerpc64__ || defined _ARCH_PPC64
6321 int ok;
6322 #else
6323 error fail
6324 #endif
6325
6326 _ACEOF
6327 if ac_fn_c_try_compile "$LINENO"; then :
6328 gl_cv_host_cpu_c_abi_32bit=no
6329 else
6330 gl_cv_host_cpu_c_abi_32bit=yes
6331 fi
6332 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6333 ;;
6334
6335 rs6000 )
6336 gl_cv_host_cpu_c_abi_32bit=yes
6337 ;;
6338
6339 riscv32 | riscv64 )
6340 # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
6341 # Size of 'long' and 'void *':
6342 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6343 /* end confdefs.h. */
6344 #if defined __LP64__
6345 int ok;
6346 #else
6347 error fail
6348 #endif
6349
6350 _ACEOF
6351 if ac_fn_c_try_compile "$LINENO"; then :
6352 gl_cv_host_cpu_c_abi_32bit=no
6353 else
6354 gl_cv_host_cpu_c_abi_32bit=yes
6355 fi
6356 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6357 ;;
6358
6359 s390* )
6360 # On s390x, the C compiler may be generating 64-bit (= s390x) code
6361 # or 31-bit (= s390) code.
6362 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6363 /* end confdefs.h. */
6364 #if defined __LP64__ || defined __s390x__
6365 int ok;
6366 #else
6367 error fail
6368 #endif
6369
6370 _ACEOF
6371 if ac_fn_c_try_compile "$LINENO"; then :
6372 gl_cv_host_cpu_c_abi_32bit=no
6373 else
6374 gl_cv_host_cpu_c_abi_32bit=yes
6375 fi
6376 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6377 ;;
6378
6379 sparc | sparc64 )
6380 # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
6381 # C compiler still generates 32-bit code.
6382 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6383 /* end confdefs.h. */
6384 #if defined __sparcv9 || defined __arch64__
6385 int ok;
6386 #else
6387 error fail
6388 #endif
6389
6390 _ACEOF
6391 if ac_fn_c_try_compile "$LINENO"; then :
6392 gl_cv_host_cpu_c_abi_32bit=no
6393 else
6394 gl_cv_host_cpu_c_abi_32bit=yes
6395 fi
6396 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6397 ;;
6398
6399 *)
6400 gl_cv_host_cpu_c_abi_32bit=no
6401 ;;
6402 esac
6403 fi
6404
6405 fi
6406 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
6407 $as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; }
6408
6409 HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
6410
6411
6412
6413
6414
61236415 case "$host_os" in
61246416 solaris*)
6125 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
6417 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
61266418 $as_echo_n "checking for 64-bit host... " >&6; }
61276419 if ${gl_cv_solaris_64bit+:} false; then :
61286420 $as_echo_n "(cached) " >&6
61296421 else
61306422 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
61316423 /* end confdefs.h. */
6132
61336424 #ifdef _LP64
6134 sixtyfour bits
6135 #endif
6425 int ok;
6426 #else
6427 error fail
6428 #endif
61366429
61376430 _ACEOF
6138 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6139 $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
6431 if ac_fn_c_try_compile "$LINENO"; then :
61406432 gl_cv_solaris_64bit=yes
61416433 else
61426434 gl_cv_solaris_64bit=no
61436435 fi
6144 rm -f conftest*
6145
6436 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
61466437
61476438 fi
61486439 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
6149 $as_echo "$gl_cv_solaris_64bit" >&6; }
6150 if test $gl_cv_solaris_64bit = yes; then
6151 acl_libdirstem=lib/64
6152 case "$host_cpu" in
6153 sparc*) acl_libdirstem2=lib/sparcv9 ;;
6154 i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
6155 esac
6156 fi
6157 ;;
6158 *)
6159 searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
6160 if test -n "$searchpath"; then
6161 acl_save_IFS="${IFS= }"; IFS=":"
6162 for searchdir in $searchpath; do
6163 if test -d "$searchdir"; then
6164 case "$searchdir" in
6165 */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
6166 */../ | */.. )
6167 # Better ignore directories of this form. They are misleading.
6168 ;;
6169 *) searchdir=`cd "$searchdir" && pwd`
6440 $as_echo "$gl_cv_solaris_64bit" >&6; };;
6441 esac
6442
6443 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
6444 $as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; }
6445 if ${acl_cv_libdirstems+:} false; then :
6446 $as_echo_n "(cached) " >&6
6447 else
6448 acl_libdirstem=lib
6449 acl_libdirstem2=
6450 case "$host_os" in
6451 solaris*)
6452 if test $gl_cv_solaris_64bit = yes; then
6453 acl_libdirstem=lib/64
6454 case "$host_cpu" in
6455 sparc*) acl_libdirstem2=lib/sparcv9 ;;
6456 i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
6457 esac
6458 fi
6459 ;;
6460 *)
6461 if test "$HOST_CPU_C_ABI_32BIT" != yes; then
6462 searchpath=`(if test -f /usr/bin/gcc \
6463 && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
6464 LC_ALL=C /usr/bin/gcc -print-search-dirs; \
6465 else \
6466 LC_ALL=C $CC -print-search-dirs; \
6467 fi) 2>/dev/null \
6468 | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
6469 if test -n "$searchpath"; then
6470 acl_save_IFS="${IFS= }"; IFS=":"
6471 for searchdir in $searchpath; do
6472 if test -d "$searchdir"; then
61706473 case "$searchdir" in
6171 */lib64 ) acl_libdirstem=lib64 ;;
6172 esac ;;
6173 esac
6174 fi
6175 done
6176 IFS="$acl_save_IFS"
6177 fi
6178 ;;
6179 esac
6180 test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
6181
6474 */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
6475 */../ | */.. )
6476 # Better ignore directories of this form. They are misleading.
6477 ;;
6478 *) searchdir=`cd "$searchdir" && pwd`
6479 case "$searchdir" in
6480 */lib64 ) acl_libdirstem=lib64 ;;
6481 esac ;;
6482 esac
6483 fi
6484 done
6485 IFS="$acl_save_IFS"
6486 fi
6487 fi
6488 ;;
6489 esac
6490 test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
6491 acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
6492
6493 fi
6494 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5
6495 $as_echo "$acl_cv_libdirstems" >&6; }
6496 # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
6497 acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
6498 acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
61826499
61836500
61846501
62276544 additional_includedir="$withval/include"
62286545 additional_libdir="$withval/$acl_libdirstem"
62296546 if test "$acl_libdirstem2" != "$acl_libdirstem" \
6230 && ! test -d "$withval/$acl_libdirstem"; then
6547 && test ! -d "$withval/$acl_libdirstem"; then
62316548 additional_libdir="$withval/$acl_libdirstem2"
62326549 fi
62336550 fi
66686985
66696986
66706987
6671
66726988 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
66736989 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
66746990 if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
70627378 #endif
70637379 /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
70647380 provided. */
7065 if (/* Try standardized names. */
7066 iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
7067 /* Try IRIX, OSF/1 names. */
7068 && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
7069 /* Try AIX names. */
7070 && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
7071 /* Try HP-UX names. */
7072 && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
7073 result |= 16;
7381 {
7382 /* Try standardized names. */
7383 iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
7384 /* Try IRIX, OSF/1 names. */
7385 iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
7386 /* Try AIX names. */
7387 iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
7388 /* Try HP-UX names. */
7389 iconv_t cd4 = iconv_open ("utf8", "eucJP");
7390 if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
7391 && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
7392 result |= 16;
7393 if (cd1 != (iconv_t)(-1))
7394 iconv_close (cd1);
7395 if (cd2 != (iconv_t)(-1))
7396 iconv_close (cd2);
7397 if (cd3 != (iconv_t)(-1))
7398 iconv_close (cd3);
7399 if (cd4 != (iconv_t)(-1))
7400 iconv_close (cd4);
7401 }
70747402 return result;
70757403
70767404 ;
71237451
71247452
71257453
7126
71277454 use_additional=yes
71287455
71297456 acl_save_prefix="$prefix"
71617488 additional_includedir="$withval/include"
71627489 additional_libdir="$withval/$acl_libdirstem"
71637490 if test "$acl_libdirstem2" != "$acl_libdirstem" \
7164 && ! test -d "$withval/$acl_libdirstem"; then
7491 && test ! -d "$withval/$acl_libdirstem"; then
71657492 additional_libdir="$withval/$acl_libdirstem2"
71667493 fi
71677494 fi
75777904
75787905
75797906
7580
75817907 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
75827908 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
75837909 if eval \${$gt_func_gnugettext_libintl+:} false; then :
77758101
77768102
77778103 XSUBPP=${XSUBPP-"${am_missing_run}xsubpp"}
8104
77788105
77798106
77808107
88269153 #endif
88279154 /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
88289155 provided. */
8829 if (/* Try standardized names. */
8830 iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
8831 /* Try IRIX, OSF/1 names. */
8832 && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
8833 /* Try AIX names. */
8834 && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
8835 /* Try HP-UX names. */
8836 && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
8837 result |= 16;
9156 {
9157 /* Try standardized names. */
9158 iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
9159 /* Try IRIX, OSF/1 names. */
9160 iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
9161 /* Try AIX names. */
9162 iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
9163 /* Try HP-UX names. */
9164 iconv_t cd4 = iconv_open ("utf8", "eucJP");
9165 if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
9166 && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
9167 result |= 16;
9168 if (cd1 != (iconv_t)(-1))
9169 iconv_close (cd1);
9170 if (cd2 != (iconv_t)(-1))
9171 iconv_close (cd2);
9172 if (cd3 != (iconv_t)(-1))
9173 iconv_close (cd3);
9174 if (cd4 != (iconv_t)(-1))
9175 iconv_close (cd4);
9176 }
88389177 return result;
88399178
88409179 ;
89249263 $am_cv_proto_iconv" >&5
89259264 $as_echo "
89269265 $am_cv_proto_iconv" >&6; }
9266 else
9267 am_cv_proto_iconv_arg1=""
9268 fi
89279269
89289270 cat >>confdefs.h <<_ACEOF
89299271 #define ICONV_CONST $am_cv_proto_iconv_arg1
89309272 _ACEOF
89319273
89329274
8933 fi
89349275
89359276
89369277
92369577 # memchr should not dereference overestimated length after a match
92379578 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
92389579 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162
9580 # memchr should cast the second argument to 'unsigned char'.
9581 # This bug exists in Android 4.3.
92399582 # Assume that memchr works on platforms that lack mprotect.
92409583 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
92419584 $as_echo_n "checking whether memchr works... " >&6; }
92449587 else
92459588 if test "$cross_compiling" = yes; then :
92469589 case "$host_os" in
9247 # Guess yes on native Windows.
9248 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
9249 # Be pessimistic for now.
9250 *) gl_cv_func_memchr_works="guessing no" ;;
9590 # Guess no on Android.
9591 linux*-android*) gl_cv_func_memchr_works="guessing no" ;;
9592 # Guess yes on native Windows.
9593 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
9594 # Be pessimistic for now.
9595 *) gl_cv_func_memchr_works="guessing no" ;;
92519596 esac
92529597
92539598 else
93009645 if (memchr (fence - 1, 0, 3) != fence - 1)
93019646 result |= 4;
93029647 }
9648 /* Test against bug on Android 4.3. */
9649 {
9650 char input[3];
9651 input[0] = 'a';
9652 input[1] = 'b';
9653 input[2] = 'c';
9654 if (memchr (input, 0x789abc00 | 'b', 3) != input + 1)
9655 result |= 8;
9656 }
93039657 return result;
93049658
93059659 ;
1125011604 case "$host_os" in
1125111605 # Guess yes on glibc systems.
1125211606 *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
11607 # Guess yes on musl systems.
11608 *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1125311609 # Guess yes on FreeBSD >= 5.
1125411610 freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
1125511611 freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1127211628 netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1127311629 # Guess yes on BeOS.
1127411630 beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
11631 # Guess yes on Android.
11632 linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1127511633 # Guess yes on MSVC, no on mingw.
1127611634 mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1127711635 /* end confdefs.h. */
1164412002 fi
1164512003
1164612004
12005 if test $ac_cv_working_alloca_h = yes; then
12006 HAVE_ALLOCA_H=1
12007 else
12008 HAVE_ALLOCA_H=0
12009 fi
12010
12011
1164712012
1164812013
1164912014
1188612251 $as_echo_n "(cached) " >&6
1188712252 else
1188812253 echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
11889 if test "$cross_compiling" = yes; then :
11890 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12254 if test "$cross_compiling" = yes; then :
12255 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1189112256 /* end confdefs.h. */
1189212257
1189312258 #include <features.h>
1190212267 $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
1190312268 gl_cv_func_working_getdelim="guessing yes"
1190412269 else
11905 gl_cv_func_working_getdelim="guessing no"
12270 case "$host_os" in
12271 *-musl*) gl_cv_func_working_getdelim="guessing yes" ;;
12272 *) gl_cv_func_working_getdelim="guessing no" ;;
12273 esac
12274
1190612275 fi
1190712276 rm -f conftest*
1190812277
1195112320 conftest.$ac_objext conftest.beam conftest.$ac_ext
1195212321 fi
1195312322
12323
1195412324 fi
1195512325 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5
1195612326 $as_echo "$gl_cv_func_working_getdelim" >&6; }
1195712327 case "$gl_cv_func_working_getdelim" in
11958 *no)
11959 REPLACE_GETDELIM=1
11960 ;;
12328 *yes) ;;
12329 *) REPLACE_GETDELIM=1 ;;
1196112330 esac
1196212331 else
1196312332 HAVE_GETDELIM=0
1204112410 $as_echo_n "(cached) " >&6
1204212411 else
1204312412 echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
12044 if test "$cross_compiling" = yes; then :
12045 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12413 if test "$cross_compiling" = yes; then :
12414 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1204612415 /* end confdefs.h. */
1204712416
1204812417 #include <features.h>
1205712426 $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
1205812427 am_cv_func_working_getline="guessing yes"
1205912428 else
12060 am_cv_func_working_getline="guessing no"
12429 case "$host_os" in
12430 *-musl*) am_cv_func_working_getline="guessing yes" ;;
12431 *) am_cv_func_working_getline="guessing no" ;;
12432 esac
12433
1206112434 fi
1206212435 rm -f conftest*
1206312436
1210712480 conftest.$ac_objext conftest.beam conftest.$ac_ext
1210812481 fi
1210912482
12483
1211012484 fi
1211112485 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5
1211212486 $as_echo "$am_cv_func_working_getline" >&6; }
1211712491 fi
1211812492
1211912493 case "$am_cv_func_working_getline" in
12120 *no)
12494 *yes) ;;
12495 *)
1212112496 REPLACE_GETLINE=1
1212212497 ;;
1212312498 esac
8585 alloca.h: alloca.in.h $(top_builddir)/config.status
8686 $(AM_V_GEN)rm -f $@-t $@ && \
8787 { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
88 cat $(srcdir)/alloca.in.h; \
88 sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \
8989 } > $@-t && \
9090 mv -f $@-t $@
9191 else
142142 $(top_srcdir)/gnulib/m4/gettext.m4 \
143143 $(top_srcdir)/gnulib/m4/gnulib-common.m4 \
144144 $(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
145 $(top_srcdir)/gnulib/m4/host-cpu-c-abi.m4 \
145146 $(top_srcdir)/gnulib/m4/iconv.m4 \
146147 $(top_srcdir)/gnulib/m4/include_next.m4 \
147148 $(top_srcdir)/gnulib/m4/intmax_t.m4 \
494495 GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
495496 GNULIB_WMEMSET = @GNULIB_WMEMSET@
496497 GREP = @GREP@
498 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
497499 HAVE_BTOWC = @HAVE_BTOWC@
498500 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
499501 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
12971299 @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
12981300 @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
12991301 @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
1300 @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \
1302 @GL_GENERATE_ALLOCA_H_TRUE@ sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \
13011303 @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \
13021304 @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@
13031305 @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
3535
3636 #ifndef alloca
3737 # ifdef __GNUC__
38 /* Some version of mingw have an <alloca.h> that causes trouble when
39 included after 'alloca' gets defined as a macro. As a workaround, include
40 this <alloca.h> first and define 'alloca' as a macro afterwards. */
41 # if (defined _WIN32 && ! defined __CYGWIN__) && @HAVE_ALLOCA_H@
42 # include_next <alloca.h>
43 # endif
3844 # define alloca __builtin_alloca
3945 # elif defined _AIX
4046 # define alloca __alloca
00 # Suppress a valgrind message about use of uninitialized memory in memchr().
1
2 # Copyright (C) 2009-2019 Free Software Foundation, Inc.
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
16
117 # POSIX states that when the character is found, memchr must not read extra
218 # bytes in an overestimated length (for example, where memchr is used to
319 # implement strnlen). However, we use a safe word read to provide a speedup.
00 # Suppress a valgrind message about use of uninitialized memory in rawmemchr().
1
2 # Copyright (C) 2008-2019 Free Software Foundation, Inc.
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
16
117 # This use is OK because it provides only a speedup.
218 {
319 rawmemchr-value4
115115 #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \
116116 && ! defined __GLIBC__
117117 # include <unistd.h>
118 #endif
119
120 /* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>. */
121 /* But in any case avoid namespace pollution on glibc systems. */
122 #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
123 && ! defined __GLIBC__
124 # include <sys/stat.h>
118125 #endif
119126
120127 /* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>. We must include
00 # Suppress a valgrind message about use of uninitialized memory in strchrnul().
1
2 # Copyright (C) 2008-2019 Free Software Foundation, Inc.
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
16
117 # This use is OK because it provides only a speedup.
218 {
319 strchrnul-value4
48734873 # if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \
48744874 && !defined __UCLIBC__) \
48754875 || (defined __APPLE__ && defined __MACH__) \
4876 || defined __ANDROID__ \
48764877 || (defined _WIN32 && ! defined __CYGWIN__))
48774878 fbp[1] = '%';
48784879 fbp[2] = 'n';
48944895 On Mac OS X 10.13 or newer, the use of %n in format strings
48954896 in writable memory by default crashes the program, so we
48964897 should avoid it in this situation. */
4898 /* On Android, we know that snprintf's return value conforms to
4899 ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and
4900 gl_SNPRINTF_TRUNCATION_C99 pass.
4901 Therefore we can avoid using %n in this situation.
4902 Starting on 2018-03-07, the use of %n in format strings
4903 produces a fatal error (see
4904 <https://android.googlesource.com/platform/bionic/+/41398d03b7e8e0dfb951660ae713e682e9fc0336>),
4905 so we should avoid it. */
48974906 /* On native Windows systems (such as mingw), we can avoid using
48984907 %n because:
48994908 - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
49074916 Windows Vista, the use of %n in format strings by default
49084917 crashes the program. See
49094918 <https://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
4910 <https://msdn.microsoft.com/en-us/library/ms175782.aspx>
4919 <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/set-printf-count-output>
49114920 So we should avoid %n in this situation. */
49124921 fbp[1] = '\0';
49134922 # endif
2020 #define _GL_VERIFY_H
2121
2222
23 /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11.
24 This is supported by GCC 4.6.0 and later, in C mode, and its use
25 here generates easier-to-read diagnostics when verify (R) fails.
26
27 Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11.
28 This will likely be supported by future GCC versions, in C++ mode.
29
30 Use this only with GCC. If we were willing to slow 'configure'
31 down we could also use it with other compilers, but since this
32 affects only the quality of diagnostics, why bother? */
33 #if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \
34 && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \
35 && !defined __cplusplus)
36 # define _GL_HAVE__STATIC_ASSERT 1
37 #endif
38 /* The condition (99 < __GNUC__) is temporary, until we know about the
39 first G++ release that supports static_assert. */
40 #if (99 < __GNUC__) && defined __cplusplus
41 # define _GL_HAVE_STATIC_ASSERT 1
23 /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC)
24 works as per C11. This is supported by GCC 4.6.0 and later, in C
25 mode.
26
27 Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as
28 per C2X, and define _GL_HAVE_STATIC_ASSERT1 if static_assert (R)
29 works as per C++17. This is supported by GCC 9.1 and later.
30
31 Support compilers claiming conformance to the relevant standard,
32 and also support GCC when not pedantic. If we were willing to slow
33 'configure' down we could also use it with other compilers, but
34 since this affects only the quality of diagnostics, why bother? */
35 #ifndef __cplusplus
36 # if (201112L <= __STDC_VERSION__ \
37 || (!defined __STRICT_ANSI__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)))
38 # define _GL_HAVE__STATIC_ASSERT 1
39 # endif
40 # if (202000L <= __STDC_VERSION__ \
41 || (!defined __STRICT_ANSI__ && 9 <= __GNUC__))
42 # define _GL_HAVE__STATIC_ASSERT1 1
43 # endif
44 #else
45 # if 201703L <= __cplusplus || 9 <= __GNUC__
46 # define _GL_HAVE_STATIC_ASSERT1 1
47 # endif
4248 #endif
4349
4450 /* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other
4551 system headers, defines a conflicting _Static_assert that is no
4652 better than ours; override it. */
47 #ifndef _GL_HAVE_STATIC_ASSERT
53 #ifndef _GL_HAVE__STATIC_ASSERT
4854 # include <stddef.h>
4955 # undef _Static_assert
5056 #endif
142148 which do not support _Static_assert, also do not warn about the
143149 last declaration mentioned above.
144150
145 * GCC warns if -Wnested-externs is enabled and verify() is used
151 * GCC warns if -Wnested-externs is enabled and 'verify' is used
146152 within a function body; but inside a function, you can always
147 arrange to use verify_expr() instead.
153 arrange to use verify_expr instead.
148154
149155 * In C++, any struct definition inside sizeof is invalid.
150156 Use a template type to work around the problem. */
196202 #endif
197203
198204 /* Verify requirement R at compile-time, as a declaration without a
199 trailing ';'. If R is false, fail at compile-time, preferably
200 with a diagnostic that includes the string-literal DIAGNOSTIC.
205 trailing ';'. If R is false, fail at compile-time.
206
207 This macro requires three or more arguments but uses at most the first
208 two, so that the _Static_assert macro optionally defined below supports
209 both the C11 two-argument syntax and the C2X one-argument syntax.
201210
202211 Unfortunately, unlike C11, this implementation must appear as an
203212 ordinary declaration, and cannot appear inside struct { ... }. */
204213
205 #ifdef _GL_HAVE__STATIC_ASSERT
206 # define _GL_VERIFY _Static_assert
207 #else
208 # define _GL_VERIFY(R, DIAGNOSTIC) \
214 #if defined _GL_HAVE__STATIC_ASSERT
215 # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC)
216 #else
217 # define _GL_VERIFY(R, DIAGNOSTIC, ...) \
209218 extern int (*_GL_GENSYM (_gl_verify_function) (void)) \
210219 [_GL_VERIFY_TRUE (R, DIAGNOSTIC)]
211220 #endif
212221
213222 /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */
214223 #ifdef _GL_STATIC_ASSERT_H
215 # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert
216 # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC)
217 # endif
218 # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert
224 # if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert
225 # define _Static_assert(...) \
226 _GL_VERIFY (__VA_ARGS__, "static assertion failed", -)
227 # endif
228 # if !defined _GL_HAVE_STATIC_ASSERT1 && !defined static_assert
219229 # define static_assert _Static_assert /* C11 requires this #define. */
220230 # endif
221231 #endif
227237 assert (R), there is no run-time overhead.
228238
229239 There are two macros, since no single macro can be used in all
230 contexts in C. verify_true (R) is for scalar contexts, including
240 contexts in C. verify_expr (R, E) is for scalar contexts, including
231241 integer constant expression contexts. verify (R) is for declaration
232242 contexts, e.g., the top level. */
233243
234 /* Verify requirement R at compile-time, as an integer constant expression.
235 Return 1. This is equivalent to verify_expr (R, 1).
236
237 verify_true is obsolescent; please use verify_expr instead. */
238
239 #define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
240
241244 /* Verify requirement R at compile-time. Return the value of the
242245 expression E. */
243246
245248 (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
246249
247250 /* Verify requirement R at compile-time, as a declaration without a
248 trailing ';'. */
249
250 #ifdef __GNUC__
251 # define verify(R) _GL_VERIFY (R, "verify (" #R ")")
252 #else
253 /* PGI barfs if R is long. Play it safe. */
254 # define verify(R) _GL_VERIFY (R, "verify (...)")
251 trailing ';'. verify (R) acts like static_assert (R) except that
252 it is portable to C11/C++14 and earlier, it can issue better
253 diagnostics, and its name is shorter and may be more convenient. */
254
255 #ifdef __PGI
256 /* PGI barfs if R is long. */
257 # define verify(R) _GL_VERIFY (R, "verify (...)", -)
258 #else
259 # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -)
255260 #endif
256261
257262 #ifndef __has_builtin
258263 # define __has_builtin(x) 0
259264 #endif
260265
261 /* Assume that R always holds. This lets the compiler optimize
262 accordingly. R should not have side-effects; it may or may not be
263 evaluated. Behavior is undefined if R is false. */
266 /* Assume that R always holds. Behavior is undefined if R is false,
267 fails to evaluate, or has side effects. Although assuming R can
268 help a compiler generate better code or diagnostics, performance
269 can suffer if R uses hard-to-optimize features such as function
270 calls not inlined by the compiler. */
264271
265272 #if (__has_builtin (__builtin_unreachable) \
266273 || 4 < __GNUC__ + (5 <= __GNUC_MINOR__))
0 # alloca.m4 serial 14
0 # alloca.m4 serial 15
11 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2019 Free Software Foundation,
22 dnl Inc.
33 dnl This file is free software; the Free Software Foundation
3636 fi
3737 AC_SUBST([ALLOCA_H])
3838 AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
39
40 if test $ac_cv_working_alloca_h = yes; then
41 HAVE_ALLOCA_H=1
42 else
43 HAVE_ALLOCA_H=0
44 fi
45 AC_SUBST([HAVE_ALLOCA_H])
3946 ])
4047
4148 # Prerequisites of lib/alloca.c.
0 # getdelim.m4 serial 12
0 # getdelim.m4 serial 13
11
22 dnl Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc.
33 dnl
1010 AC_DEFUN([gl_FUNC_GETDELIM],
1111 [
1212 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
13 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
1314
1415 dnl Persuade glibc <stdio.h> to declare getdelim().
1516 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
2021 if test $ac_cv_func_getdelim = yes; then
2122 HAVE_GETDELIM=1
2223 dnl Found it in some library. Verify that it works.
23 AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim],
24 [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
25 AC_RUN_IFELSE([AC_LANG_SOURCE([[
24 AC_CACHE_CHECK([for working getdelim function],
25 [gl_cv_func_working_getdelim],
26 [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
27 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2628 # include <stdio.h>
2729 # include <stdlib.h>
2830 # include <string.h>
5254 fclose (in);
5355 return 0;
5456 }
55 ]])], [gl_cv_func_working_getdelim=yes] dnl The library version works.
56 , [gl_cv_func_working_getdelim=no] dnl The library version does NOT work.
57 , dnl We're cross compiling. Assume it works on glibc2 systems.
58 [AC_EGREP_CPP([Lucky GNU user],
59 [
57 ]])],
58 [gl_cv_func_working_getdelim=yes],
59 [gl_cv_func_working_getdelim=no],
60 [dnl We're cross compiling.
61 dnl Guess it works on glibc2 systems and musl systems.
62 AC_EGREP_CPP([Lucky GNU user],
63 [
6064 #include <features.h>
6165 #ifdef __GNU_LIBRARY__
6266 #if (__GLIBC__ >= 2) && !defined __UCLIBC__
6367 Lucky GNU user
6468 #endif
6569 #endif
66 ],
67 [gl_cv_func_working_getdelim="guessing yes"],
68 [gl_cv_func_working_getdelim="guessing no"])]
69 )])
70 ],
71 [gl_cv_func_working_getdelim="guessing yes"],
72 [case "$host_os" in
73 *-musl*) gl_cv_func_working_getdelim="guessing yes" ;;
74 *) gl_cv_func_working_getdelim="guessing no" ;;
75 esac
76 ])
77 ])
78 ])
7079 case "$gl_cv_func_working_getdelim" in
71 *no)
72 REPLACE_GETDELIM=1
73 ;;
80 *yes) ;;
81 *) REPLACE_GETDELIM=1 ;;
7482 esac
7583 else
7684 HAVE_GETDELIM=0
0 # getline.m4 serial 28
0 # getline.m4 serial 29
11
22 dnl Copyright (C) 1998-2003, 2005-2007, 2009-2019 Free Software Foundation,
33 dnl Inc.
1515 AC_DEFUN([gl_FUNC_GETLINE],
1616 [
1717 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
18 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
1819
1920 dnl Persuade glibc <stdio.h> to declare getline().
2021 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
2728 gl_getline_needs_run_time_check=yes],
2829 [am_cv_func_working_getline=no])
2930 if test $gl_getline_needs_run_time_check = yes; then
30 AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline],
31 [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
32 AC_RUN_IFELSE([AC_LANG_SOURCE([[
31 AC_CACHE_CHECK([for working getline function],
32 [am_cv_func_working_getline],
33 [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
34 AC_RUN_IFELSE([AC_LANG_SOURCE([[
3335 # include <stdio.h>
3436 # include <stdlib.h>
3537 # include <string.h>
6062 fclose (in);
6163 return 0;
6264 }
63 ]])], [am_cv_func_working_getline=yes] dnl The library version works.
64 , [am_cv_func_working_getline=no] dnl The library version does NOT work.
65 , dnl We're cross compiling. Assume it works on glibc2 systems.
66 [AC_EGREP_CPP([Lucky GNU user],
67 [
65 ]])],
66 [am_cv_func_working_getline=yes],
67 [am_cv_func_working_getline=no],
68 [dnl We're cross compiling.
69 dnl Guess it works on glibc2 systems and musl systems.
70 AC_EGREP_CPP([Lucky GNU user],
71 [
6872 #include <features.h>
6973 #ifdef __GNU_LIBRARY__
7074 #if (__GLIBC__ >= 2) && !defined __UCLIBC__
7175 Lucky GNU user
7276 #endif
7377 #endif
74 ],
75 [am_cv_func_working_getline="guessing yes"],
76 [am_cv_func_working_getline="guessing no"])]
77 )])
78 ],
79 [am_cv_func_working_getline="guessing yes"],
80 [case "$host_os" in
81 *-musl*) am_cv_func_working_getline="guessing yes" ;;
82 *) am_cv_func_working_getline="guessing no" ;;
83 esac
84 ])
85 ])
86 ])
7887 fi
7988
8089 if test $ac_cv_have_decl_getline = no; then
8291 fi
8392
8493 case "$am_cv_func_working_getline" in
85 *no)
94 *yes) ;;
95 *)
8696 dnl Set REPLACE_GETLINE always: Even if we have not found the broken
8797 dnl getline function among $LIBS, it may exist in libinet and the
8898 dnl executable may be linked with -linet.
0 # gnulib-common.m4 serial 41
0 # gnulib-common.m4 serial 44
11 dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
1616 AH_VERBATIM([_Noreturn],
1717 [/* The _Noreturn keyword of C11. */
1818 #ifndef _Noreturn
19 # if 201103 <= (defined __cplusplus ? __cplusplus : 0)
19 # if (defined __cplusplus \
20 && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
21 || (defined _MSC_VER && 1900 <= _MSC_VER)))
2022 # define _Noreturn [[noreturn]]
21 # elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
22 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
23 # elif ((!defined __cplusplus || defined __clang__) \
24 && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
25 || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)))
2326 /* _Noreturn works as-is. */
2427 # elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
2528 # define _Noreturn __attribute__ ((__noreturn__))
8386 #else
8487 # define _GL_ATTRIBUTE_MALLOC /* empty */
8588 #endif
89 ])
90 AH_VERBATIM([async_safe],
91 [/* The _GL_ASYNC_SAFE marker should be attached to functions that are
92 signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
93 invoked from such signal handlers. Such functions have some restrictions:
94 * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
95 or should be listed as async-signal-safe in POSIX
96 <http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
97 section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in
98 particular, are NOT async-signal-safe.
99 * All memory locations (variables and struct fields) that these functions
100 access must be marked 'volatile'. This holds for both read and write
101 accesses. Otherwise the compiler might optimize away stores to and
102 reads from such locations that occur in the program, depending on its
103 data flow analysis. For example, when the program contains a loop
104 that is intended to inspect a variable set from within a signal handler
105 while (!signal_occurred)
106 ;
107 the compiler is allowed to transform this into an endless loop if the
108 variable 'signal_occurred' is not declared 'volatile'.
109 Additionally, recall that:
110 * A signal handler should not modify errno (except if it is a handler
111 for a fatal signal and ends by raising the same signal again, thus
112 provoking the termination of the process). If it invokes a function
113 that may clobber errno, it needs to save and restore the value of
114 errno. */
115 #define _GL_ASYNC_SAFE
86116 ])
87117 dnl Preparation for running test programs:
88118 dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
0 # host-cpu-c-abi.m4 serial 11
1 dnl Copyright (C) 2002-2019 Free Software Foundation, Inc.
2 dnl This file is free software; the Free Software Foundation
3 dnl gives unlimited permission to copy and/or distribute it,
4 dnl with or without modifications, as long as this notice is preserved.
5
6 dnl From Bruno Haible and Sam Steingold.
7
8 dnl Sets the HOST_CPU variable to the canonical name of the CPU.
9 dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
10 dnl C language ABI (application binary interface).
11 dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
12 dnl config.h.
13 dnl
14 dnl This canonical name can be used to select a particular assembly language
15 dnl source file that will interoperate with C code on the given host.
16 dnl
17 dnl For example:
18 dnl * 'i386' and 'sparc' are different canonical names, because code for i386
19 dnl will not run on SPARC CPUs and vice versa. They have different
20 dnl instruction sets.
21 dnl * 'sparc' and 'sparc64' are different canonical names, because code for
22 dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
23 dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
24 dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
25 dnl mode, but not both.
26 dnl * 'mips' and 'mipsn32' are different canonical names, because they use
27 dnl different argument passing and return conventions for C functions, and
28 dnl although the instruction set of 'mips' is a large subset of the
29 dnl instruction set of 'mipsn32'.
30 dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
31 dnl different sizes for the C types like 'int' and 'void *', and although
32 dnl the instruction sets of 'mipsn32' and 'mips64' are the same.
33 dnl * The same canonical name is used for different endiannesses. You can
34 dnl determine the endianness through preprocessor symbols:
35 dnl - 'arm': test __ARMEL__.
36 dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
37 dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
38 dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
39 dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
40 dnl - Instructions that do not exist on all of these CPUs (cmpxchg,
41 dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
42 dnl assembly language source files use such instructions, you will
43 dnl need to make the distinction.
44 dnl - Speed of execution of the common instruction set is reasonable across
45 dnl the entire family of CPUs. If you have assembly language source files
46 dnl that are optimized for particular CPU types (like GNU gmp has), you
47 dnl will need to make the distinction.
48 dnl See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
49 AC_DEFUN([gl_HOST_CPU_C_ABI],
50 [
51 AC_REQUIRE([AC_CANONICAL_HOST])
52 AC_REQUIRE([gl_C_ASM])
53 AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
54 [case "$host_cpu" in
55
56 changequote(,)dnl
57 i[4567]86 )
58 changequote([,])dnl
59 gl_cv_host_cpu_c_abi=i386
60 ;;
61
62 x86_64 )
63 # On x86_64 systems, the C compiler may be generating code in one of
64 # these ABIs:
65 # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
66 # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
67 # with native Windows (mingw, MSVC).
68 # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
69 # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
70 AC_COMPILE_IFELSE(
71 [AC_LANG_SOURCE(
72 [[#if (defined __x86_64__ || defined __amd64__ \
73 || defined _M_X64 || defined _M_AMD64)
74 int ok;
75 #else
76 error fail
77 #endif
78 ]])],
79 [AC_COMPILE_IFELSE(
80 [AC_LANG_SOURCE(
81 [[#if defined __ILP32__ || defined _ILP32
82 int ok;
83 #else
84 error fail
85 #endif
86 ]])],
87 [gl_cv_host_cpu_c_abi=x86_64-x32],
88 [gl_cv_host_cpu_c_abi=x86_64])],
89 [gl_cv_host_cpu_c_abi=i386])
90 ;;
91
92 changequote(,)dnl
93 alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
94 changequote([,])dnl
95 gl_cv_host_cpu_c_abi=alpha
96 ;;
97
98 arm* | aarch64 )
99 # Assume arm with EABI.
100 # On arm64 systems, the C compiler may be generating code in one of
101 # these ABIs:
102 # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
103 # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
104 # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
105 AC_COMPILE_IFELSE(
106 [AC_LANG_SOURCE(
107 [[#ifdef __aarch64__
108 int ok;
109 #else
110 error fail
111 #endif
112 ]])],
113 [AC_COMPILE_IFELSE(
114 [AC_LANG_SOURCE(
115 [[#if defined __ILP32__ || defined _ILP32
116 int ok;
117 #else
118 error fail
119 #endif
120 ]])],
121 [gl_cv_host_cpu_c_abi=arm64-ilp32],
122 [gl_cv_host_cpu_c_abi=arm64])],
123 [# Don't distinguish little-endian and big-endian arm, since they
124 # don't require different machine code for simple operations and
125 # since the user can distinguish them through the preprocessor
126 # defines __ARMEL__ vs. __ARMEB__.
127 # But distinguish arm which passes floating-point arguments and
128 # return values in integer registers (r0, r1, ...) - this is
129 # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
130 # passes them in float registers (s0, s1, ...) and double registers
131 # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
132 # sets the preprocessor defines __ARM_PCS (for the first case) and
133 # __ARM_PCS_VFP (for the second case), but older GCC does not.
134 echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
135 # Look for a reference to the register d0 in the .s file.
136 AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
137 if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
138 gl_cv_host_cpu_c_abi=armhf
139 else
140 gl_cv_host_cpu_c_abi=arm
141 fi
142 rm -f conftest*
143 ])
144 ;;
145
146 hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
147 # On hppa, the C compiler may be generating 32-bit code or 64-bit
148 # code. In the latter case, it defines _LP64 and __LP64__.
149 AC_COMPILE_IFELSE(
150 [AC_LANG_SOURCE(
151 [[#ifdef __LP64__
152 int ok;
153 #else
154 error fail
155 #endif
156 ]])],
157 [gl_cv_host_cpu_c_abi=hppa64],
158 [gl_cv_host_cpu_c_abi=hppa])
159 ;;
160
161 ia64* )
162 # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
163 # 32-bit code. In the latter case, it defines _ILP32.
164 AC_COMPILE_IFELSE(
165 [AC_LANG_SOURCE(
166 [[#ifdef _ILP32
167 int ok;
168 #else
169 error fail
170 #endif
171 ]])],
172 [gl_cv_host_cpu_c_abi=ia64-ilp32],
173 [gl_cv_host_cpu_c_abi=ia64])
174 ;;
175
176 mips* )
177 # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
178 # at 32.
179 AC_COMPILE_IFELSE(
180 [AC_LANG_SOURCE(
181 [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
182 int ok;
183 #else
184 error fail
185 #endif
186 ]])],
187 [gl_cv_host_cpu_c_abi=mips64],
188 [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
189 # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
190 # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
191 # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
192 AC_COMPILE_IFELSE(
193 [AC_LANG_SOURCE(
194 [[#if (_MIPS_SIM == _ABIN32)
195 int ok;
196 #else
197 error fail
198 #endif
199 ]])],
200 [gl_cv_host_cpu_c_abi=mipsn32],
201 [gl_cv_host_cpu_c_abi=mips])])
202 ;;
203
204 powerpc* )
205 # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
206 # No need to distinguish them here; the caller may distinguish
207 # them based on the OS.
208 # On powerpc64 systems, the C compiler may still be generating
209 # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
210 # be generating 64-bit code.
211 AC_COMPILE_IFELSE(
212 [AC_LANG_SOURCE(
213 [[#if defined __powerpc64__ || defined _ARCH_PPC64
214 int ok;
215 #else
216 error fail
217 #endif
218 ]])],
219 [# On powerpc64, there are two ABIs on Linux: The AIX compatible
220 # one and the ELFv2 one. The latter defines _CALL_ELF=2.
221 AC_COMPILE_IFELSE(
222 [AC_LANG_SOURCE(
223 [[#if defined _CALL_ELF && _CALL_ELF == 2
224 int ok;
225 #else
226 error fail
227 #endif
228 ]])],
229 [gl_cv_host_cpu_c_abi=powerpc64-elfv2],
230 [gl_cv_host_cpu_c_abi=powerpc64])
231 ],
232 [gl_cv_host_cpu_c_abi=powerpc])
233 ;;
234
235 rs6000 )
236 gl_cv_host_cpu_c_abi=powerpc
237 ;;
238
239 riscv32 | riscv64 )
240 # There are 2 architectures (with variants): rv32* and rv64*.
241 AC_COMPILE_IFELSE(
242 [AC_LANG_SOURCE(
243 [[#if __riscv_xlen == 64
244 int ok;
245 #else
246 error fail
247 #endif
248 ]])],
249 [cpu=riscv64],
250 [cpu=riscv32])
251 # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
252 # Size of 'long' and 'void *':
253 AC_COMPILE_IFELSE(
254 [AC_LANG_SOURCE(
255 [[#if defined __LP64__
256 int ok;
257 #else
258 error fail
259 #endif
260 ]])],
261 [main_abi=lp64],
262 [main_abi=ilp32])
263 # Float ABIs:
264 # __riscv_float_abi_double:
265 # 'float' and 'double' are passed in floating-point registers.
266 # __riscv_float_abi_single:
267 # 'float' are passed in floating-point registers.
268 # __riscv_float_abi_soft:
269 # No values are passed in floating-point registers.
270 AC_COMPILE_IFELSE(
271 [AC_LANG_SOURCE(
272 [[#if defined __riscv_float_abi_double
273 int ok;
274 #else
275 error fail
276 #endif
277 ]])],
278 [float_abi=d],
279 [AC_COMPILE_IFELSE(
280 [AC_LANG_SOURCE(
281 [[#if defined __riscv_float_abi_single
282 int ok;
283 #else
284 error fail
285 #endif
286 ]])],
287 [float_abi=f],
288 [float_abi=''])
289 ])
290 gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
291 ;;
292
293 s390* )
294 # On s390x, the C compiler may be generating 64-bit (= s390x) code
295 # or 31-bit (= s390) code.
296 AC_COMPILE_IFELSE(
297 [AC_LANG_SOURCE(
298 [[#if defined __LP64__ || defined __s390x__
299 int ok;
300 #else
301 error fail
302 #endif
303 ]])],
304 [gl_cv_host_cpu_c_abi=s390x],
305 [gl_cv_host_cpu_c_abi=s390])
306 ;;
307
308 sparc | sparc64 )
309 # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
310 # C compiler still generates 32-bit code.
311 AC_COMPILE_IFELSE(
312 [AC_LANG_SOURCE(
313 [[#if defined __sparcv9 || defined __arch64__
314 int ok;
315 #else
316 error fail
317 #endif
318 ]])],
319 [gl_cv_host_cpu_c_abi=sparc64],
320 [gl_cv_host_cpu_c_abi=sparc])
321 ;;
322
323 *)
324 gl_cv_host_cpu_c_abi="$host_cpu"
325 ;;
326 esac
327 ])
328
329 dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
330 HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
331 HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
332 AC_SUBST([HOST_CPU])
333 AC_SUBST([HOST_CPU_C_ABI])
334
335 # This was
336 # AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
337 # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
338 # earlier, but KAI C++ 3.2d doesn't like this.
339 sed -e 's/-/_/g' >> confdefs.h <<EOF
340 #ifndef __${HOST_CPU}__
341 #define __${HOST_CPU}__ 1
342 #endif
343 #ifndef __${HOST_CPU_C_ABI}__
344 #define __${HOST_CPU_C_ABI}__ 1
345 #endif
346 EOF
347 AH_TOP([/* CPU and C ABI indicator */
348 #ifndef __i386__
349 #undef __i386__
350 #endif
351 #ifndef __x86_64_x32__
352 #undef __x86_64_x32__
353 #endif
354 #ifndef __x86_64__
355 #undef __x86_64__
356 #endif
357 #ifndef __alpha__
358 #undef __alpha__
359 #endif
360 #ifndef __arm__
361 #undef __arm__
362 #endif
363 #ifndef __armhf__
364 #undef __armhf__
365 #endif
366 #ifndef __arm64_ilp32__
367 #undef __arm64_ilp32__
368 #endif
369 #ifndef __arm64__
370 #undef __arm64__
371 #endif
372 #ifndef __hppa__
373 #undef __hppa__
374 #endif
375 #ifndef __hppa64__
376 #undef __hppa64__
377 #endif
378 #ifndef __ia64_ilp32__
379 #undef __ia64_ilp32__
380 #endif
381 #ifndef __ia64__
382 #undef __ia64__
383 #endif
384 #ifndef __m68k__
385 #undef __m68k__
386 #endif
387 #ifndef __mips__
388 #undef __mips__
389 #endif
390 #ifndef __mipsn32__
391 #undef __mipsn32__
392 #endif
393 #ifndef __mips64__
394 #undef __mips64__
395 #endif
396 #ifndef __powerpc__
397 #undef __powerpc__
398 #endif
399 #ifndef __powerpc64__
400 #undef __powerpc64__
401 #endif
402 #ifndef __powerpc64_elfv2__
403 #undef __powerpc64_elfv2__
404 #endif
405 #ifndef __riscv32__
406 #undef __riscv32__
407 #endif
408 #ifndef __riscv64__
409 #undef __riscv64__
410 #endif
411 #ifndef __riscv32_ilp32__
412 #undef __riscv32_ilp32__
413 #endif
414 #ifndef __riscv32_ilp32f__
415 #undef __riscv32_ilp32f__
416 #endif
417 #ifndef __riscv32_ilp32d__
418 #undef __riscv32_ilp32d__
419 #endif
420 #ifndef __riscv64_ilp32__
421 #undef __riscv64_ilp32__
422 #endif
423 #ifndef __riscv64_ilp32f__
424 #undef __riscv64_ilp32f__
425 #endif
426 #ifndef __riscv64_ilp32d__
427 #undef __riscv64_ilp32d__
428 #endif
429 #ifndef __riscv64_lp64__
430 #undef __riscv64_lp64__
431 #endif
432 #ifndef __riscv64_lp64f__
433 #undef __riscv64_lp64f__
434 #endif
435 #ifndef __riscv64_lp64d__
436 #undef __riscv64_lp64d__
437 #endif
438 #ifndef __s390__
439 #undef __s390__
440 #endif
441 #ifndef __s390x__
442 #undef __s390x__
443 #endif
444 #ifndef __sh__
445 #undef __sh__
446 #endif
447 #ifndef __sparc__
448 #undef __sparc__
449 #endif
450 #ifndef __sparc64__
451 #undef __sparc64__
452 #endif
453 ])
454
455 ])
456
457
458 dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
459 dnl (application binary interface) is a 32-bit one, or to 'no' otherwise.
460 dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
461 AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
462 [
463 AC_REQUIRE([AC_CANONICAL_HOST])
464 AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
465 [if test -n "$gl_cv_host_cpu_c_abi"; then
466 case "$gl_cv_host_cpu_c_abi" in
467 i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
468 gl_cv_host_cpu_c_abi_32bit=yes ;;
469 *)
470 gl_cv_host_cpu_c_abi_32bit=no ;;
471 esac
472 else
473 case "$host_cpu" in
474
475 changequote(,)dnl
476 i[4567]86 )
477 changequote([,])dnl
478 gl_cv_host_cpu_c_abi_32bit=yes
479 ;;
480
481 x86_64 )
482 # On x86_64 systems, the C compiler may be generating code in one of
483 # these ABIs:
484 # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
485 # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
486 # with native Windows (mingw, MSVC).
487 # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
488 # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
489 AC_COMPILE_IFELSE(
490 [AC_LANG_SOURCE(
491 [[#if (defined __x86_64__ || defined __amd64__ \
492 || defined _M_X64 || defined _M_AMD64) \
493 && !(defined __ILP32__ || defined _ILP32)
494 int ok;
495 #else
496 error fail
497 #endif
498 ]])],
499 [gl_cv_host_cpu_c_abi_32bit=no],
500 [gl_cv_host_cpu_c_abi_32bit=yes])
501 ;;
502
503 arm* | aarch64 )
504 # Assume arm with EABI.
505 # On arm64 systems, the C compiler may be generating code in one of
506 # these ABIs:
507 # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
508 # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
509 # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
510 AC_COMPILE_IFELSE(
511 [AC_LANG_SOURCE(
512 [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
513 int ok;
514 #else
515 error fail
516 #endif
517 ]])],
518 [gl_cv_host_cpu_c_abi_32bit=no],
519 [gl_cv_host_cpu_c_abi_32bit=yes])
520 ;;
521
522 hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
523 # On hppa, the C compiler may be generating 32-bit code or 64-bit
524 # code. In the latter case, it defines _LP64 and __LP64__.
525 AC_COMPILE_IFELSE(
526 [AC_LANG_SOURCE(
527 [[#ifdef __LP64__
528 int ok;
529 #else
530 error fail
531 #endif
532 ]])],
533 [gl_cv_host_cpu_c_abi_32bit=no],
534 [gl_cv_host_cpu_c_abi_32bit=yes])
535 ;;
536
537 ia64* )
538 # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
539 # 32-bit code. In the latter case, it defines _ILP32.
540 AC_COMPILE_IFELSE(
541 [AC_LANG_SOURCE(
542 [[#ifdef _ILP32
543 int ok;
544 #else
545 error fail
546 #endif
547 ]])],
548 [gl_cv_host_cpu_c_abi_32bit=yes],
549 [gl_cv_host_cpu_c_abi_32bit=no])
550 ;;
551
552 mips* )
553 # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
554 # at 32.
555 AC_COMPILE_IFELSE(
556 [AC_LANG_SOURCE(
557 [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
558 int ok;
559 #else
560 error fail
561 #endif
562 ]])],
563 [gl_cv_host_cpu_c_abi_32bit=no],
564 [gl_cv_host_cpu_c_abi_32bit=yes])
565 ;;
566
567 powerpc* )
568 # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
569 # No need to distinguish them here; the caller may distinguish
570 # them based on the OS.
571 # On powerpc64 systems, the C compiler may still be generating
572 # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
573 # be generating 64-bit code.
574 AC_COMPILE_IFELSE(
575 [AC_LANG_SOURCE(
576 [[#if defined __powerpc64__ || defined _ARCH_PPC64
577 int ok;
578 #else
579 error fail
580 #endif
581 ]])],
582 [gl_cv_host_cpu_c_abi_32bit=no],
583 [gl_cv_host_cpu_c_abi_32bit=yes])
584 ;;
585
586 rs6000 )
587 gl_cv_host_cpu_c_abi_32bit=yes
588 ;;
589
590 riscv32 | riscv64 )
591 # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
592 # Size of 'long' and 'void *':
593 AC_COMPILE_IFELSE(
594 [AC_LANG_SOURCE(
595 [[#if defined __LP64__
596 int ok;
597 #else
598 error fail
599 #endif
600 ]])],
601 [gl_cv_host_cpu_c_abi_32bit=no],
602 [gl_cv_host_cpu_c_abi_32bit=yes])
603 ;;
604
605 s390* )
606 # On s390x, the C compiler may be generating 64-bit (= s390x) code
607 # or 31-bit (= s390) code.
608 AC_COMPILE_IFELSE(
609 [AC_LANG_SOURCE(
610 [[#if defined __LP64__ || defined __s390x__
611 int ok;
612 #else
613 error fail
614 #endif
615 ]])],
616 [gl_cv_host_cpu_c_abi_32bit=no],
617 [gl_cv_host_cpu_c_abi_32bit=yes])
618 ;;
619
620 sparc | sparc64 )
621 # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
622 # C compiler still generates 32-bit code.
623 AC_COMPILE_IFELSE(
624 [AC_LANG_SOURCE(
625 [[#if defined __sparcv9 || defined __arch64__
626 int ok;
627 #else
628 error fail
629 #endif
630 ]])],
631 [gl_cv_host_cpu_c_abi_32bit=no],
632 [gl_cv_host_cpu_c_abi_32bit=yes])
633 ;;
634
635 *)
636 gl_cv_host_cpu_c_abi_32bit=no
637 ;;
638 esac
639 fi
640 ])
641
642 HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
643 ])
0 # iconv.m4 serial 19 (gettext-0.18.2)
1 dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc.
0 # iconv.m4 serial 21
1 dnl Copyright (C) 2000-2002, 2007-2014, 2016-2019 Free Software Foundation,
2 dnl Inc.
23 dnl This file is free software; the Free Software Foundation
34 dnl gives unlimited permission to copy and/or distribute it,
45 dnl with or without modifications, as long as this notice is preserved.
166167 #endif
167168 /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
168169 provided. */
169 if (/* Try standardized names. */
170 iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
171 /* Try IRIX, OSF/1 names. */
172 && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
173 /* Try AIX names. */
174 && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
175 /* Try HP-UX names. */
176 && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
177 result |= 16;
170 {
171 /* Try standardized names. */
172 iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
173 /* Try IRIX, OSF/1 names. */
174 iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
175 /* Try AIX names. */
176 iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
177 /* Try HP-UX names. */
178 iconv_t cd4 = iconv_open ("utf8", "eucJP");
179 if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
180 && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
181 result |= 16;
182 if (cd1 != (iconv_t)(-1))
183 iconv_close (cd1);
184 if (cd2 != (iconv_t)(-1))
185 iconv_close (cd2);
186 if (cd3 != (iconv_t)(-1))
187 iconv_close (cd3);
188 if (cd4 != (iconv_t)(-1))
189 iconv_close (cd4);
190 }
178191 return result;
179192 ]])],
180193 [am_cv_func_iconv_works=yes], ,
257270 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
258271 AC_MSG_RESULT([
259272 $am_cv_proto_iconv])
260 AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
261 [Define as const if the declaration of iconv() needs const.])
262 dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
263 m4_ifdef([gl_ICONV_H_DEFAULTS],
264 [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
265 if test -n "$am_cv_proto_iconv_arg1"; then
266 ICONV_CONST="const"
267 fi
268 ])
269 fi
273 else
274 dnl When compiling GNU libiconv on a system that does not have iconv yet,
275 dnl pick the POSIX compliant declaration without 'const'.
276 am_cv_proto_iconv_arg1=""
277 fi
278 AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
279 [Define as const if the declaration of iconv() needs const.])
280 dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
281 m4_ifdef([gl_ICONV_H_DEFAULTS],
282 [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
283 if test -n "$am_cv_proto_iconv_arg1"; then
284 ICONV_CONST="const"
285 fi
286 ])
270287 ])
0 # lib-ld.m4 serial 6
1 dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc.
0 # lib-ld.m4 serial 9
1 dnl Copyright (C) 1996-2003, 2009-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
44 dnl with or without modifications, as long as this notice is preserved.
4646 }
4747 fi
4848
49 ac_prog=ld
50 if test "$GCC" = yes; then
51 # Check if gcc -print-prog-name=ld gives a path.
49 if test -n "$LD"; then
50 AC_MSG_CHECKING([for ld])
51 elif test "$GCC" = yes; then
5252 AC_MSG_CHECKING([for ld used by $CC])
53 case $host in
54 *-*-mingw*)
55 # gcc leaves a trailing carriage return which upsets mingw
56 ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
57 *)
58 ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
59 esac
60 case $ac_prog in
61 # Accept absolute paths.
62 [[\\/]]* | ?:[[\\/]]*)
63 re_direlt='/[[^/]][[^/]]*/\.\./'
64 # Canonicalize the pathname of ld
65 ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
66 while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
67 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
68 done
69 test -z "$LD" && LD="$ac_prog"
70 ;;
71 "")
72 # If it fails, then pretend we aren't using GCC.
73 ac_prog=ld
74 ;;
75 *)
76 # If it is relative, then search for the first ld in PATH.
77 with_gnu_ld=unknown
78 ;;
79 esac
8053 elif test "$with_gnu_ld" = yes; then
8154 AC_MSG_CHECKING([for GNU ld])
8255 else
8356 AC_MSG_CHECKING([for non-GNU ld])
8457 fi
85 AC_CACHE_VAL([acl_cv_path_LD],
86 [if test -z "$LD"; then
87 acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
88 for ac_dir in $PATH; do
89 IFS="$acl_save_ifs"
90 test -z "$ac_dir" && ac_dir=.
91 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
92 acl_cv_path_LD="$ac_dir/$ac_prog"
93 # Check to see if the program is GNU ld. I'd rather use --version,
94 # but apparently some variants of GNU ld only accept -v.
95 # Break only if it was the GNU/non-GNU ld that we prefer.
96 case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
97 *GNU* | *'with BFD'*)
98 test "$with_gnu_ld" != no && break
99 ;;
100 *)
101 test "$with_gnu_ld" != yes && break
102 ;;
58 if test -n "$LD"; then
59 # Let the user override the test with a path.
60 :
61 else
62 AC_CACHE_VAL([acl_cv_path_LD],
63 [
64 acl_cv_path_LD= # Final result of this test
65 ac_prog=ld # Program to search in $PATH
66 if test "$GCC" = yes; then
67 # Check if gcc -print-prog-name=ld gives a path.
68 case $host in
69 *-*-mingw*)
70 # gcc leaves a trailing carriage return which upsets mingw
71 acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
72 *)
73 acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
74 esac
75 case $acl_output in
76 # Accept absolute paths.
77 [[\\/]]* | ?:[[\\/]]*)
78 re_direlt='/[[^/]][[^/]]*/\.\./'
79 # Canonicalize the pathname of ld
80 acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
81 while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
82 acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
83 done
84 # Got the pathname. No search in PATH is needed.
85 acl_cv_path_LD="$acl_output"
86 ac_prog=
87 ;;
88 "")
89 # If it fails, then pretend we aren't using GCC.
90 ;;
91 *)
92 # If it is relative, then search for the first ld in PATH.
93 with_gnu_ld=unknown
94 ;;
10395 esac
10496 fi
105 done
106 IFS="$acl_save_ifs"
107 else
108 acl_cv_path_LD="$LD" # Let the user override the test with a path.
109 fi])
110 LD="$acl_cv_path_LD"
97 if test -n "$ac_prog"; then
98 # Search for $ac_prog in $PATH.
99 acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
100 for ac_dir in $PATH; do
101 IFS="$acl_save_ifs"
102 test -z "$ac_dir" && ac_dir=.
103 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
104 acl_cv_path_LD="$ac_dir/$ac_prog"
105 # Check to see if the program is GNU ld. I'd rather use --version,
106 # but apparently some variants of GNU ld only accept -v.
107 # Break only if it was the GNU/non-GNU ld that we prefer.
108 case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
109 *GNU* | *'with BFD'*)
110 test "$with_gnu_ld" != no && break
111 ;;
112 *)
113 test "$with_gnu_ld" != yes && break
114 ;;
115 esac
116 fi
117 done
118 IFS="$acl_save_ifs"
119 fi
120 case $host in
121 *-*-aix*)
122 AC_COMPILE_IFELSE(
123 [AC_LANG_SOURCE(
124 [[#if defined __powerpc64__ || defined _ARCH_PPC64
125 int ok;
126 #else
127 error fail
128 #endif
129 ]])],
130 [# The compiler produces 64-bit code. Add option '-b64' so that the
131 # linker groks 64-bit object files.
132 case "$acl_cv_path_LD " in
133 *" -b64 "*) ;;
134 *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
135 esac
136 ], [])
137 ;;
138 sparc64-*-netbsd*)
139 AC_COMPILE_IFELSE(
140 [AC_LANG_SOURCE(
141 [[#if defined __sparcv9 || defined __arch64__
142 int ok;
143 #else
144 error fail
145 #endif
146 ]])],
147 [],
148 [# The compiler produces 32-bit code. Add option '-m elf32_sparc'
149 # so that the linker groks 32-bit object files.
150 case "$acl_cv_path_LD " in
151 *" -m elf32_sparc "*) ;;
152 *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
153 esac
154 ])
155 ;;
156 esac
157 ])
158 LD="$acl_cv_path_LD"
159 fi
111160 if test -n "$LD"; then
112161 AC_MSG_RESULT([$LD])
113162 else
114163 AC_MSG_RESULT([no])
164 AC_MSG_ERROR([no acceptable ld found in \$PATH])
115165 fi
116 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
117166 AC_LIB_PROG_LD_GNU
118167 ])
0 # lib-link.m4 serial 26 (gettext-0.18.2)
1 dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
0 # lib-link.m4 serial 28
1 dnl Copyright (C) 2001-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
44 dnl with or without modifications, as long as this notice is preserved.
55
66 dnl From Bruno Haible.
77
8 AC_PREREQ([2.54])
8 AC_PREREQ([2.61])
99
1010 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
1111 dnl the libraries corresponding to explicit and implicit dependencies.
123123 dnl acl_hardcode_minus_L.
124124 AC_DEFUN([AC_LIB_RPATH],
125125 [
126 dnl Tell automake >= 1.10 to complain if config.rpath is missing.
127 m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
126 dnl Complain if config.rpath is missing.
127 AC_REQUIRE_AUX_FILE([config.rpath])
128128 AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
129129 AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
130130 AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
186186 pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
187187 [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
188188 pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
189 dnl Autoconf >= 2.61 supports dots in --with options.
190 pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
191189 dnl By default, look in $includedir and $libdir.
192190 use_additional=yes
193191 AC_LIB_WITH_FINAL_PREFIX([
194192 eval additional_includedir=\"$includedir\"
195193 eval additional_libdir=\"$libdir\"
196194 ])
197 AC_ARG_WITH(P_A_C_K[-prefix],
198 [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
199 --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
195 AC_ARG_WITH(PACK[-prefix],
196 [[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
197 --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
200198 [
201199 if test "X$withval" = "Xno"; then
202200 use_additional=no
210208 additional_includedir="$withval/include"
211209 additional_libdir="$withval/$acl_libdirstem"
212210 if test "$acl_libdirstem2" != "$acl_libdirstem" \
213 && ! test -d "$withval/$acl_libdirstem"; then
211 && test ! -d "$withval/$acl_libdirstem"; then
214212 additional_libdir="$withval/$acl_libdirstem2"
215213 fi
216214 fi
669667 LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
670668 done
671669 fi
672 popdef([P_A_C_K])
673670 popdef([PACKLIBS])
674671 popdef([PACKUP])
675672 popdef([PACK])
0 # lib-prefix.m4 serial 7 (gettext-0.18)
1 dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc.
0 # lib-prefix.m4 serial 14
1 dnl Copyright (C) 2001-2005, 2008-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
44 dnl with or without modifications, as long as this notice is preserved.
55
66 dnl From Bruno Haible.
7
8 dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
9 dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
10 dnl require excessive bracketing.
11 ifdef([AC_HELP_STRING],
12 [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
13 [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
147
158 dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
169 dnl to access previously installed libraries. The basic assumption is that
3124 eval additional_includedir=\"$includedir\"
3225 eval additional_libdir=\"$libdir\"
3326 ])
34 AC_LIB_ARG_WITH([lib-prefix],
35 [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
36 --without-lib-prefix don't search for libraries in includedir and libdir],
27 AC_ARG_WITH([lib-prefix],
28 [[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
29 --without-lib-prefix don't search for libraries in includedir and libdir]],
3730 [
3831 if test "X$withval" = "Xno"; then
3932 use_additional=no
173166 dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
174167 dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
175168 AC_REQUIRE([AC_CANONICAL_HOST])
176 acl_libdirstem=lib
177 acl_libdirstem2=
169 AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
170
178171 case "$host_os" in
179172 solaris*)
180 dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
181 dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
182 dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
183 dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
184 dnl symlink is missing, so we set acl_libdirstem2 too.
185173 AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
186 [AC_EGREP_CPP([sixtyfour bits], [
187 #ifdef _LP64
188 sixtyfour bits
189 #endif
190 ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
191 ])
192 if test $gl_cv_solaris_64bit = yes; then
193 acl_libdirstem=lib/64
194 case "$host_cpu" in
195 sparc*) acl_libdirstem2=lib/sparcv9 ;;
196 i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
197 esac
198 fi
199 ;;
200 *)
201 searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
202 if test -n "$searchpath"; then
203 acl_save_IFS="${IFS= }"; IFS=":"
204 for searchdir in $searchpath; do
205 if test -d "$searchdir"; then
206 case "$searchdir" in
207 */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
208 */../ | */.. )
209 # Better ignore directories of this form. They are misleading.
210 ;;
211 *) searchdir=`cd "$searchdir" && pwd`
174 [AC_COMPILE_IFELSE(
175 [AC_LANG_SOURCE(
176 [[#ifdef _LP64
177 int ok;
178 #else
179 error fail
180 #endif
181 ]])],
182 [gl_cv_solaris_64bit=yes],
183 [gl_cv_solaris_64bit=no])
184 ]);;
185 esac
186
187 dnl Allow the user to override the result by setting acl_cv_libdirstems.
188 AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
189 [acl_cv_libdirstems],
190 [acl_libdirstem=lib
191 acl_libdirstem2=
192 case "$host_os" in
193 solaris*)
194 dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
195 dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
196 dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
197 dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
198 dnl symlink is missing, so we set acl_libdirstem2 too.
199 if test $gl_cv_solaris_64bit = yes; then
200 acl_libdirstem=lib/64
201 case "$host_cpu" in
202 sparc*) acl_libdirstem2=lib/sparcv9 ;;
203 i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
204 esac
205 fi
206 ;;
207 *)
208 dnl If $CC generates code for a 32-bit ABI, the libraries are
209 dnl surely under $prefix/lib, not $prefix/lib64.
210 if test "$HOST_CPU_C_ABI_32BIT" != yes; then
211 dnl The result is a property of the system. However, non-system
212 dnl compilers sometimes have odd library search paths. Therefore
213 dnl prefer asking /usr/bin/gcc, if available, rather than $CC.
214 searchpath=`(if test -f /usr/bin/gcc \
215 && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
216 LC_ALL=C /usr/bin/gcc -print-search-dirs; \
217 else \
218 LC_ALL=C $CC -print-search-dirs; \
219 fi) 2>/dev/null \
220 | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
221 if test -n "$searchpath"; then
222 acl_save_IFS="${IFS= }"; IFS=":"
223 for searchdir in $searchpath; do
224 if test -d "$searchdir"; then
212225 case "$searchdir" in
213 */lib64 ) acl_libdirstem=lib64 ;;
214 esac ;;
215 esac
216 fi
217 done
218 IFS="$acl_save_IFS"
219 fi
220 ;;
221 esac
222 test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
223 ])
226 */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
227 */../ | */.. )
228 # Better ignore directories of this form. They are misleading.
229 ;;
230 *) searchdir=`cd "$searchdir" && pwd`
231 case "$searchdir" in
232 */lib64 ) acl_libdirstem=lib64 ;;
233 esac ;;
234 esac
235 fi
236 done
237 IFS="$acl_save_IFS"
238 fi
239 fi
240 ;;
241 esac
242 test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
243 acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
244 ])
245 # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
246 acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
247 acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
248 ])
0 # memchr.m4 serial 13
0 # memchr.m4 serial 14
11 dnl Copyright (C) 2002-2004, 2009-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
2828 # memchr should not dereference overestimated length after a match
2929 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
3030 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162
31 # memchr should cast the second argument to 'unsigned char'.
32 # This bug exists in Android 4.3.
3133 # Assume that memchr works on platforms that lack mprotect.
3234 AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works],
3335 [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
7375 if (memchr (fence - 1, 0, 3) != fence - 1)
7476 result |= 4;
7577 }
78 /* Test against bug on Android 4.3. */
79 {
80 char input[3];
81 input[0] = 'a';
82 input[1] = 'b';
83 input[2] = 'c';
84 if (memchr (input, 0x789abc00 | 'b', 3) != input + 1)
85 result |= 8;
86 }
7687 return result;
7788 ]])],
7889 [gl_cv_func_memchr_works=yes],
7990 [gl_cv_func_memchr_works=no],
8091 [case "$host_os" in
81 # Guess yes on native Windows.
82 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
83 # Be pessimistic for now.
84 *) gl_cv_func_memchr_works="guessing no" ;;
92 # Guess no on Android.
93 linux*-android*) gl_cv_func_memchr_works="guessing no" ;;
94 # Guess yes on native Windows.
95 mingw*) gl_cv_func_memchr_works="guessing yes" ;;
96 # Be pessimistic for now.
97 *) gl_cv_func_memchr_works="guessing no" ;;
8598 esac
8699 ])
87100 ])
0 # printf.m4 serial 59
0 # printf.m4 serial 61
11 dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc.
22 dnl This file is free software; the Free Software Foundation
33 dnl gives unlimited permission to copy and/or distribute it,
6161 changequote(,)dnl
6262 # Guess yes on glibc systems.
6363 *-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
64 # Guess yes on musl systems.
65 *-musl*) gl_cv_func_printf_sizes_c99="guessing yes";;
6466 # Guess yes on FreeBSD >= 5.
6567 freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";;
6668 freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
7880 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
7981 gl_cv_func_printf_sizes_c99="guessing no";;
8082 netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
83 # Guess yes on Android.
84 linux*-android*) gl_cv_func_printf_sizes_c99="guessing yes";;
8185 changequote([,])dnl
8286 # Guess yes on MSVC, no on mingw.
8387 mingw*) AC_EGREP_CPP([Known], [
131135 [gl_cv_func_printf_long_double=yes],
132136 [gl_cv_func_printf_long_double=no],
133137 [case "$host_os" in
134 beos*) gl_cv_func_printf_long_double="guessing no";;
135 # Guess yes on MSVC, no on mingw.
136 mingw*) AC_EGREP_CPP([Known], [
138 # Guess no on BeOS.
139 beos*) gl_cv_func_printf_long_double="guessing no";;
140 # Guess yes on Android.
141 linux*-android*) gl_cv_func_printf_long_double="guessing yes";;
142 # Guess yes on MSVC, no on mingw.
143 mingw*) AC_EGREP_CPP([Known], [
137144 #ifdef _MSC_VER
138145 Known
139146 #endif
140 ],
141 [gl_cv_func_printf_long_double="guessing yes"],
142 [gl_cv_func_printf_long_double="guessing no"])
143 ;;
144 *) gl_cv_func_printf_long_double="guessing yes";;
147 ],
148 [gl_cv_func_printf_long_double="guessing yes"],
149 [gl_cv_func_printf_long_double="guessing no"])
150 ;;
151 *) gl_cv_func_printf_long_double="guessing yes";;
145152 esac
146153 ])
147154 ])
234241 changequote(,)dnl
235242 # Guess yes on glibc systems.
236243 *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";;
244 # Guess yes on musl systems.
245 *-musl*) gl_cv_func_printf_infinite="guessing yes";;
237246 # Guess yes on FreeBSD >= 6.
238247 freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";;
239248 freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
249258 netbsd*) gl_cv_func_printf_infinite="guessing yes";;
250259 # Guess yes on BeOS.
251260 beos*) gl_cv_func_printf_infinite="guessing yes";;
261 # Guess no on Android.
262 linux*-android*) gl_cv_func_printf_infinite="guessing no";;
252263 changequote([,])dnl
253264 # Guess yes on MSVC, no on mingw.
254265 mingw*) AC_EGREP_CPP([Known], [
449460 changequote(,)dnl
450461 # Guess yes on glibc systems.
451462 *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
463 # Guess yes on musl systems.
464 *-musl*) gl_cv_func_printf_infinite_long_double="guessing yes";;
452465 # Guess yes on FreeBSD >= 6.
453466 freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";;
454467 freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
455468 # Guess yes on HP-UX >= 11.
456469 hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
457470 hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
471 # Guess no on Android.
472 linux*-android*) gl_cv_func_printf_infinite_long_double="guessing no";;
458473 changequote([,])dnl
459474 # Guess yes on MSVC, no on mingw.
460475 mingw*) AC_EGREP_CPP([Known], [
565580 [gl_cv_func_printf_directive_a="guessing yes"],
566581 [gl_cv_func_printf_directive_a="guessing no"])
567582 ;;
583 # Guess yes on musl systems.
584 *-musl*) gl_cv_func_printf_directive_a="guessing yes";;
585 # Guess no on Android.
586 linux*-android*) gl_cv_func_printf_directive_a="guessing no";;
568587 # Guess no on native Windows.
569588 mingw*) gl_cv_func_printf_directive_a="guessing no";;
570589 # If we don't know, assume the worst.
613632 changequote(,)dnl
614633 # Guess yes on glibc systems.
615634 *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";;
635 # Guess yes on musl systems.
636 *-musl*) gl_cv_func_printf_directive_f="guessing yes";;
616637 # Guess yes on FreeBSD >= 6.
617638 freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";;
618639 freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
622643 # Guess yes on Solaris >= 2.10.
623644 solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";;
624645 solaris*) gl_cv_func_printf_directive_f="guessing no";;
646 # Guess no on Android.
647 linux*-android*) gl_cv_func_printf_directive_f="guessing no";;
625648 changequote([,])dnl
626649 # Guess yes on MSVC, no on mingw.
627650 mingw*) AC_EGREP_CPP([Known], [
687710 [gl_cv_func_printf_directive_n=yes],
688711 [gl_cv_func_printf_directive_n=no],
689712 [case "$host_os" in
690 # Guess no on native Windows.
691 mingw*) gl_cv_func_printf_directive_n="guessing no";;
692 *) gl_cv_func_printf_directive_n="guessing yes";;
713 # Guess no on Android.
714 linux*-android*) gl_cv_func_printf_directive_n="guessing no";;
715 # Guess no on native Windows.
716 mingw*) gl_cv_func_printf_directive_n="guessing no";;
717 *) gl_cv_func_printf_directive_n="guessing yes";;
693718 esac
694719 ])
695720 ])
765790 [
766791 changequote(,)dnl
767792 case "$host_os" in
768 openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
769 irix*) gl_cv_func_printf_directive_ls="guessing no";;
770 solaris*) gl_cv_func_printf_directive_ls="guessing no";;
771 cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
772 beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
773 # Guess yes on native Windows.
774 mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
775 *) gl_cv_func_printf_directive_ls="guessing yes";;
793 openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
794 irix*) gl_cv_func_printf_directive_ls="guessing no";;
795 solaris*) gl_cv_func_printf_directive_ls="guessing no";;
796 cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
797 beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
798 # Guess no on Android.
799 linux*-android*) gl_cv_func_printf_directive_ls="guessing no";;
800 # Guess yes on native Windows.
801 mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
802 *) gl_cv_func_printf_directive_ls="guessing yes";;
776803 esac
777804 changequote([,])dnl
778805 ])
809836 changequote(,)dnl
810837 case "$host_os" in
811838 netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
812 gl_cv_func_printf_positions="guessing no";;
813 beos*) gl_cv_func_printf_positions="guessing no";;
814 # Guess no on native Windows.
815 mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
816 *) gl_cv_func_printf_positions="guessing yes";;
839 gl_cv_func_printf_positions="guessing no";;
840 beos*) gl_cv_func_printf_positions="guessing no";;
841 # Guess yes on Android.
842 linux*-android*) gl_cv_func_printf_positions="guessing yes";;
843 # Guess no on native Windows.
844 mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
845 *) gl_cv_func_printf_positions="guessing yes";;
817846 esac
818847 changequote([,])dnl
819848 ])
848877 [
849878 changequote(,)dnl
850879 case "$host_os" in
851 cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
852 netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
853 # Guess no on native Windows.
854 mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
855 *) gl_cv_func_printf_flag_grouping="guessing yes";;
880 cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
881 netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
882 # Guess no on Android.
883 linux*-android*) gl_cv_func_printf_flag_grouping="guessing no";;
884 # Guess no on native Windows.
885 mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
886 *) gl_cv_func_printf_flag_grouping="guessing yes";;
856887 esac
857888 changequote([,])dnl
858889 ])
889920 [
890921 changequote(,)dnl
891922 case "$host_os" in
892 # Guess yes on HP-UX 11.
893 hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
894 # Guess no on HP-UX 10 and older.
895 hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
896 # Guess yes on native Windows.
897 mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
898 # Guess yes otherwise.
899 *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
923 # Guess yes on HP-UX 11.
924 hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
925 # Guess no on HP-UX 10 and older.
926 hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
927 # Guess yes on Android.
928 linux*-android*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
929 # Guess yes on native Windows.
930 mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
931 # Guess yes otherwise.
932 *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
900933 esac
901934 changequote([,])dnl
902935 ])
934967 [
935968 changequote(,)dnl
936969 case "$host_os" in
937 # Guess yes on glibc systems.
938 *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
939 # Guess yes on BeOS.
940 beos*) gl_cv_func_printf_flag_zero="guessing yes";;
941 # Guess no on native Windows.
942 mingw*) gl_cv_func_printf_flag_zero="guessing no";;
943 # If we don't know, assume the worst.
944 *) gl_cv_func_printf_flag_zero="guessing no";;
970 # Guess yes on glibc systems.
971 *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
972 # Guess yes on musl systems.
973 *-musl*) gl_cv_func_printf_flag_zero="guessing yes";;
974 # Guess yes on BeOS.
975 beos*) gl_cv_func_printf_flag_zero="guessing yes";;
976 # Guess no on Android.
977 linux*-android*) gl_cv_func_printf_flag_zero="guessing no";;
978 # Guess no on native Windows.
979 mingw*) gl_cv_func_printf_flag_zero="guessing no";;
980 # If we don't know, assume the worst.
981 *) gl_cv_func_printf_flag_zero="guessing no";;
945982 esac
946983 changequote([,])dnl
947984 ])
9941031 changequote(,)dnl
9951032 case "$host_os" in
9961033 # Guess no only on Solaris, native Windows, and BeOS systems.
997 solaris*) gl_cv_func_printf_precision="guessing no" ;;
998 mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
999 beos*) gl_cv_func_printf_precision="guessing no" ;;
1000 *) gl_cv_func_printf_precision="guessing yes" ;;
1034 solaris*) gl_cv_func_printf_precision="guessing no" ;;
1035 mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
1036 beos*) gl_cv_func_printf_precision="guessing no" ;;
1037 # Guess yes on Android.
1038 linux*-android*) gl_cv_func_printf_precision="guessing yes" ;;
1039 *) gl_cv_func_printf_precision="guessing yes" ;;
10011040 esac
10021041 changequote([,])dnl
10031042 ])
10941133 if test "$gl_cv_func_printf_enomem" = "guessing no"; then
10951134 changequote(,)dnl
10961135 case "$host_os" in
1097 # Guess yes on glibc systems.
1098 *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
1099 # Guess yes on Solaris.
1100 solaris*) gl_cv_func_printf_enomem="guessing yes";;
1101 # Guess yes on AIX.
1102 aix*) gl_cv_func_printf_enomem="guessing yes";;
1103 # Guess yes on HP-UX/hppa.
1104 hpux*) case "$host_cpu" in
1105 hppa*) gl_cv_func_printf_enomem="guessing yes";;
1106 *) gl_cv_func_printf_enomem="guessing no";;
1107 esac
1108 ;;
1109 # Guess yes on IRIX.
1110 irix*) gl_cv_func_printf_enomem="guessing yes";;
1111 # Guess yes on OSF/1.
1112 osf*) gl_cv_func_printf_enomem="guessing yes";;
1113 # Guess yes on BeOS.
1114 beos*) gl_cv_func_printf_enomem="guessing yes";;
1115 # Guess yes on Haiku.
1116 haiku*) gl_cv_func_printf_enomem="guessing yes";;
1117 # If we don't know, assume the worst.
1118 *) gl_cv_func_printf_enomem="guessing no";;
1136 # Guess yes on glibc systems.
1137 *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
1138 # Guess yes on Solaris.
1139 solaris*) gl_cv_func_printf_enomem="guessing yes";;
1140 # Guess yes on AIX.
1141 aix*) gl_cv_func_printf_enomem="guessing yes";;
1142 # Guess yes on HP-UX/hppa.
1143 hpux*) case "$host_cpu" in
1144 hppa*) gl_cv_func_printf_enomem="guessing yes";;
1145 *) gl_cv_func_printf_enomem="guessing no";;
1146 esac
1147 ;;
1148 # Guess yes on IRIX.
1149 irix*) gl_cv_func_printf_enomem="guessing yes";;
1150 # Guess yes on OSF/1.
1151 osf*) gl_cv_func_printf_enomem="guessing yes";;
1152 # Guess yes on BeOS.
1153 beos*) gl_cv_func_printf_enomem="guessing yes";;
1154 # Guess yes on Haiku.
1155 haiku*) gl_cv_func_printf_enomem="guessing yes";;
1156 # Guess no on Android.
1157 linux*-android*) gl_cv_func_printf_enomem="guessing no";;
1158 # If we don't know, assume the worst.
1159 *) gl_cv_func_printf_enomem="guessing no";;
11191160 esac
11201161 changequote([,])dnl
11211162 fi
11761217 case "$host_os" in
11771218 # Guess yes on glibc systems.
11781219 *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
1220 # Guess yes on musl systems.
1221 *-musl*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
11791222 # Guess yes on FreeBSD >= 5.
11801223 freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
11811224 freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
12071250 netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
12081251 # Guess yes on BeOS.
12091252 beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
1253 # Guess yes on Android.
1254 linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
12101255 # Guess no on native Windows.
12111256 mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";;
12121257 # If we don't know, assume the worst.
12761321 changequote(,)dnl
12771322 # Guess yes on glibc systems.
12781323 *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1324 # Guess yes on musl systems.
1325 *-musl*) gl_cv_func_snprintf_retval_c99="guessing yes";;
12791326 # Guess yes on FreeBSD >= 5.
12801327 freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
12811328 freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
12981345 netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
12991346 # Guess yes on BeOS.
13001347 beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
1348 # Guess yes on Android.
1349 linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";;
13011350 changequote([,])dnl
13021351 # Guess yes on MSVC, no on mingw.
13031352 mingw*) AC_EGREP_CPP([Known], [
13661415 case "$host_os" in
13671416 # Guess yes on glibc systems.
13681417 *-gnu* | gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
1418 # Guess yes on musl systems.
1419 *-musl*) gl_cv_func_snprintf_directive_n="guessing yes";;
13691420 # Guess yes on FreeBSD >= 5.
13701421 freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";;
13711422 freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
13901441 netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
13911442 # Guess yes on BeOS.
13921443 beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
1444 # Guess no on Android.
1445 linux*-android*) gl_cv_func_snprintf_directive_n="guessing no";;
13931446 # Guess no on native Windows.
13941447 mingw*) gl_cv_func_snprintf_directive_n="guessing no";;
13951448 # If we don't know, assume the worst.
14391492 [gl_cv_func_snprintf_size1=yes],
14401493 [gl_cv_func_snprintf_size1=no],
14411494 [case "$host_os" in
1442 # Guess yes on native Windows.
1443 mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
1444 *) gl_cv_func_snprintf_size1="guessing yes" ;;
1495 # Guess yes on Android.
1496 linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;;
1497 # Guess yes on native Windows.
1498 mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
1499 *) gl_cv_func_snprintf_size1="guessing yes" ;;
14451500 esac
14461501 ])
14471502 ])
15161571 case "$host_os" in
15171572 # Guess yes on glibc systems.
15181573 *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
1574 # Guess yes on musl systems.
1575 *-musl*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15191576 # Guess yes on FreeBSD >= 5.
15201577 freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
15211578 freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15391596 netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15401597 # Guess yes on BeOS.
15411598 beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
1599 # Guess yes on Android.
1600 linux*-android*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15421601 # Guess yes on native Windows.
15431602 mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
15441603 # If we don't know, assume the worst.
16251684 dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . .
16261685 dnl Haiku . . . # # # . # . . . . . ? . . ? . . .
16271686 dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . .
1687 dnl Android 4.3 . . # # # # # # . # . # . # . . . # . .
16281688 dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . .
16291689 dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . .
16301690 dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . .
8686 @EXPORT = qw(
8787 );
8888
89 $VERSION = '6.6.91';
89 $VERSION = '6.6.92';
9090
9191 sub N__($)
9292 {
2222
2323 our $TEXINFO_XS;
2424
25 our $VERSION = '6.6.91';
25 our $VERSION = '6.6.92';
2626
2727 our $disable_XS;
2828
561561 GNULIB_CHDIR = @GNULIB_CHDIR@
562562 GNULIB_CHOWN = @GNULIB_CHOWN@
563563 GNULIB_CLOSE = @GNULIB_CLOSE@
564 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
564565 GNULIB_DPRINTF = @GNULIB_DPRINTF@
565566 GNULIB_DUP = @GNULIB_DUP@
566567 GNULIB_DUP2 = @GNULIB_DUP2@
716717 GNULIB_STRSTR = @GNULIB_STRSTR@
717718 GNULIB_STRTOD = @GNULIB_STRTOD@
718719 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
720 GNULIB_STRTOLD = @GNULIB_STRTOLD@
719721 GNULIB_STRTOLL = @GNULIB_STRTOLL@
720722 GNULIB_STRTOULL = @GNULIB_STRTOULL@
721723 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
783785 GNULIB_WRITE = @GNULIB_WRITE@
784786 GNULIB__EXIT = @GNULIB__EXIT@
785787 GREP = @GREP@
788 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
786789 HAVE_ATOLL = @HAVE_ATOLL@
787790 HAVE_BTOWC = @HAVE_BTOWC@
788791 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
789792 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
790793 HAVE_CHOWN = @HAVE_CHOWN@
794 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
791795 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
792796 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
793797 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
853857 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
854858 HAVE_GRANTPT = @HAVE_GRANTPT@
855859 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
860 HAVE_INITSTATE = @HAVE_INITSTATE@
856861 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
857862 HAVE_ISWBLANK = @HAVE_ISWBLANK@
858863 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
873878 HAVE_MBSLEN = @HAVE_MBSLEN@
874879 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
875880 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
881 HAVE_MBTOWC = @HAVE_MBTOWC@
876882 HAVE_MEMCHR = @HAVE_MEMCHR@
877883 HAVE_MEMPCPY = @HAVE_MEMPCPY@
878884 HAVE_MKDTEMP = @HAVE_MKDTEMP@
907913 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
908914 HAVE_SETENV = @HAVE_SETENV@
909915 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
916 HAVE_SETSTATE = @HAVE_SETSTATE@
910917 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
911918 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
912919 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
921928 HAVE_STRPBRK = @HAVE_STRPBRK@
922929 HAVE_STRSEP = @HAVE_STRSEP@
923930 HAVE_STRTOD = @HAVE_STRTOD@
931 HAVE_STRTOLD = @HAVE_STRTOLD@
924932 HAVE_STRTOLL = @HAVE_STRTOLL@
925933 HAVE_STRTOULL = @HAVE_STRTOULL@
926934 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
9991007 LIBINTL = @LIBINTL@
10001008 LIBMULTITHREAD = @LIBMULTITHREAD@
10011009 LIBOBJS = @LIBOBJS@
1002 LIBPTH = @LIBPTH@
1003 LIBPTH_PREFIX = @LIBPTH_PREFIX@
10041010 LIBS = @LIBS@
10051011 LIBTHREAD = @LIBTHREAD@
10061012 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
10161022 LTLIBINTL = @LTLIBINTL@
10171023 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
10181024 LTLIBOBJS = @LTLIBOBJS@
1019 LTLIBPTH = @LTLIBPTH@
10201025 LTLIBTHREAD = @LTLIBTHREAD@
10211026 MAKEINFO = @MAKEINFO@
10221027 MKDIR_P = @MKDIR_P@
11131118 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
11141119 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
11151120 REPLACE_GETPASS = @REPLACE_GETPASS@
1121 REPLACE_INITSTATE = @REPLACE_INITSTATE@
11161122 REPLACE_ISATTY = @REPLACE_ISATTY@
11171123 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
11181124 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
11461152 REPLACE_PUTENV = @REPLACE_PUTENV@
11471153 REPLACE_PWRITE = @REPLACE_PWRITE@
11481154 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1155 REPLACE_RANDOM = @REPLACE_RANDOM@
11491156 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
11501157 REPLACE_READ = @REPLACE_READ@
11511158 REPLACE_READLINK = @REPLACE_READLINK@
11581165 REPLACE_RMDIR = @REPLACE_RMDIR@
11591166 REPLACE_SETENV = @REPLACE_SETENV@
11601167 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1168 REPLACE_SETSTATE = @REPLACE_SETSTATE@
11611169 REPLACE_SLEEP = @REPLACE_SLEEP@
11621170 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
11631171 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11761184 REPLACE_STRSTR = @REPLACE_STRSTR@
11771185 REPLACE_STRTOD = @REPLACE_STRTOD@
11781186 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1187 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11791188 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11801189 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11811190 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
275275 GNULIB_CHDIR = @GNULIB_CHDIR@
276276 GNULIB_CHOWN = @GNULIB_CHOWN@
277277 GNULIB_CLOSE = @GNULIB_CLOSE@
278 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
278279 GNULIB_DPRINTF = @GNULIB_DPRINTF@
279280 GNULIB_DUP = @GNULIB_DUP@
280281 GNULIB_DUP2 = @GNULIB_DUP2@
430431 GNULIB_STRSTR = @GNULIB_STRSTR@
431432 GNULIB_STRTOD = @GNULIB_STRTOD@
432433 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
434 GNULIB_STRTOLD = @GNULIB_STRTOLD@
433435 GNULIB_STRTOLL = @GNULIB_STRTOLL@
434436 GNULIB_STRTOULL = @GNULIB_STRTOULL@
435437 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
497499 GNULIB_WRITE = @GNULIB_WRITE@
498500 GNULIB__EXIT = @GNULIB__EXIT@
499501 GREP = @GREP@
502 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
500503 HAVE_ATOLL = @HAVE_ATOLL@
501504 HAVE_BTOWC = @HAVE_BTOWC@
502505 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
503506 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
504507 HAVE_CHOWN = @HAVE_CHOWN@
508 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
505509 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
506510 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
507511 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
567571 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
568572 HAVE_GRANTPT = @HAVE_GRANTPT@
569573 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
574 HAVE_INITSTATE = @HAVE_INITSTATE@
570575 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
571576 HAVE_ISWBLANK = @HAVE_ISWBLANK@
572577 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
587592 HAVE_MBSLEN = @HAVE_MBSLEN@
588593 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
589594 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
595 HAVE_MBTOWC = @HAVE_MBTOWC@
590596 HAVE_MEMCHR = @HAVE_MEMCHR@
591597 HAVE_MEMPCPY = @HAVE_MEMPCPY@
592598 HAVE_MKDTEMP = @HAVE_MKDTEMP@
621627 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
622628 HAVE_SETENV = @HAVE_SETENV@
623629 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
630 HAVE_SETSTATE = @HAVE_SETSTATE@
624631 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
625632 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
626633 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
635642 HAVE_STRPBRK = @HAVE_STRPBRK@
636643 HAVE_STRSEP = @HAVE_STRSEP@
637644 HAVE_STRTOD = @HAVE_STRTOD@
645 HAVE_STRTOLD = @HAVE_STRTOLD@
638646 HAVE_STRTOLL = @HAVE_STRTOLL@
639647 HAVE_STRTOULL = @HAVE_STRTOULL@
640648 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
713721 LIBINTL = @LIBINTL@
714722 LIBMULTITHREAD = @LIBMULTITHREAD@
715723 LIBOBJS = @LIBOBJS@
716 LIBPTH = @LIBPTH@
717 LIBPTH_PREFIX = @LIBPTH_PREFIX@
718724 LIBS = @LIBS@
719725 LIBTHREAD = @LIBTHREAD@
720726 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
730736 LTLIBINTL = @LTLIBINTL@
731737 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
732738 LTLIBOBJS = @LTLIBOBJS@
733 LTLIBPTH = @LTLIBPTH@
734739 LTLIBTHREAD = @LTLIBTHREAD@
735740 MAKEINFO = @MAKEINFO@
736741 MKDIR_P = @MKDIR_P@
827832 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
828833 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
829834 REPLACE_GETPASS = @REPLACE_GETPASS@
835 REPLACE_INITSTATE = @REPLACE_INITSTATE@
830836 REPLACE_ISATTY = @REPLACE_ISATTY@
831837 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
832838 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
860866 REPLACE_PUTENV = @REPLACE_PUTENV@
861867 REPLACE_PWRITE = @REPLACE_PWRITE@
862868 REPLACE_QSORT_R = @REPLACE_QSORT_R@
869 REPLACE_RANDOM = @REPLACE_RANDOM@
863870 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
864871 REPLACE_READ = @REPLACE_READ@
865872 REPLACE_READLINK = @REPLACE_READLINK@
872879 REPLACE_RMDIR = @REPLACE_RMDIR@
873880 REPLACE_SETENV = @REPLACE_SETENV@
874881 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
882 REPLACE_SETSTATE = @REPLACE_SETSTATE@
875883 REPLACE_SLEEP = @REPLACE_SLEEP@
876884 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
877885 REPLACE_SPRINTF = @REPLACE_SPRINTF@
890898 REPLACE_STRSTR = @REPLACE_STRSTR@
891899 REPLACE_STRTOD = @REPLACE_STRTOD@
892900 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
901 REPLACE_STRTOLD = @REPLACE_STRTOLD@
893902 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
894903 REPLACE_SYMLINK = @REPLACE_SYMLINK@
895904 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
275275 GNULIB_CHDIR = @GNULIB_CHDIR@
276276 GNULIB_CHOWN = @GNULIB_CHOWN@
277277 GNULIB_CLOSE = @GNULIB_CLOSE@
278 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
278279 GNULIB_DPRINTF = @GNULIB_DPRINTF@
279280 GNULIB_DUP = @GNULIB_DUP@
280281 GNULIB_DUP2 = @GNULIB_DUP2@
430431 GNULIB_STRSTR = @GNULIB_STRSTR@
431432 GNULIB_STRTOD = @GNULIB_STRTOD@
432433 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
434 GNULIB_STRTOLD = @GNULIB_STRTOLD@
433435 GNULIB_STRTOLL = @GNULIB_STRTOLL@
434436 GNULIB_STRTOULL = @GNULIB_STRTOULL@
435437 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
497499 GNULIB_WRITE = @GNULIB_WRITE@
498500 GNULIB__EXIT = @GNULIB__EXIT@
499501 GREP = @GREP@
502 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
500503 HAVE_ATOLL = @HAVE_ATOLL@
501504 HAVE_BTOWC = @HAVE_BTOWC@
502505 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
503506 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
504507 HAVE_CHOWN = @HAVE_CHOWN@
508 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
505509 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
506510 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
507511 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
567571 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
568572 HAVE_GRANTPT = @HAVE_GRANTPT@
569573 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
574 HAVE_INITSTATE = @HAVE_INITSTATE@
570575 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
571576 HAVE_ISWBLANK = @HAVE_ISWBLANK@
572577 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
587592 HAVE_MBSLEN = @HAVE_MBSLEN@
588593 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
589594 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
595 HAVE_MBTOWC = @HAVE_MBTOWC@
590596 HAVE_MEMCHR = @HAVE_MEMCHR@
591597 HAVE_MEMPCPY = @HAVE_MEMPCPY@
592598 HAVE_MKDTEMP = @HAVE_MKDTEMP@
621627 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
622628 HAVE_SETENV = @HAVE_SETENV@
623629 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
630 HAVE_SETSTATE = @HAVE_SETSTATE@
624631 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
625632 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
626633 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
635642 HAVE_STRPBRK = @HAVE_STRPBRK@
636643 HAVE_STRSEP = @HAVE_STRSEP@
637644 HAVE_STRTOD = @HAVE_STRTOD@
645 HAVE_STRTOLD = @HAVE_STRTOLD@
638646 HAVE_STRTOLL = @HAVE_STRTOLL@
639647 HAVE_STRTOULL = @HAVE_STRTOULL@
640648 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
713721 LIBINTL = @LIBINTL@
714722 LIBMULTITHREAD = @LIBMULTITHREAD@
715723 LIBOBJS = @LIBOBJS@
716 LIBPTH = @LIBPTH@
717 LIBPTH_PREFIX = @LIBPTH_PREFIX@
718724 LIBS = @LIBS@
719725 LIBTHREAD = @LIBTHREAD@
720726 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
730736 LTLIBINTL = @LTLIBINTL@
731737 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
732738 LTLIBOBJS = @LTLIBOBJS@
733 LTLIBPTH = @LTLIBPTH@
734739 LTLIBTHREAD = @LTLIBTHREAD@
735740 MAKEINFO = @MAKEINFO@
736741 MKDIR_P = @MKDIR_P@
827832 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
828833 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
829834 REPLACE_GETPASS = @REPLACE_GETPASS@
835 REPLACE_INITSTATE = @REPLACE_INITSTATE@
830836 REPLACE_ISATTY = @REPLACE_ISATTY@
831837 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
832838 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
860866 REPLACE_PUTENV = @REPLACE_PUTENV@
861867 REPLACE_PWRITE = @REPLACE_PWRITE@
862868 REPLACE_QSORT_R = @REPLACE_QSORT_R@
869 REPLACE_RANDOM = @REPLACE_RANDOM@
863870 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
864871 REPLACE_READ = @REPLACE_READ@
865872 REPLACE_READLINK = @REPLACE_READLINK@
872879 REPLACE_RMDIR = @REPLACE_RMDIR@
873880 REPLACE_SETENV = @REPLACE_SETENV@
874881 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
882 REPLACE_SETSTATE = @REPLACE_SETSTATE@
875883 REPLACE_SLEEP = @REPLACE_SLEEP@
876884 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
877885 REPLACE_SPRINTF = @REPLACE_SPRINTF@
890898 REPLACE_STRSTR = @REPLACE_STRSTR@
891899 REPLACE_STRTOD = @REPLACE_STRTOD@
892900 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
901 REPLACE_STRTOLD = @REPLACE_STRTOLD@
893902 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
894903 REPLACE_SYMLINK = @REPLACE_SYMLINK@
895904 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
275275 GNULIB_CHDIR = @GNULIB_CHDIR@
276276 GNULIB_CHOWN = @GNULIB_CHOWN@
277277 GNULIB_CLOSE = @GNULIB_CLOSE@
278 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
278279 GNULIB_DPRINTF = @GNULIB_DPRINTF@
279280 GNULIB_DUP = @GNULIB_DUP@
280281 GNULIB_DUP2 = @GNULIB_DUP2@
430431 GNULIB_STRSTR = @GNULIB_STRSTR@
431432 GNULIB_STRTOD = @GNULIB_STRTOD@
432433 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
434 GNULIB_STRTOLD = @GNULIB_STRTOLD@
433435 GNULIB_STRTOLL = @GNULIB_STRTOLL@
434436 GNULIB_STRTOULL = @GNULIB_STRTOULL@
435437 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
497499 GNULIB_WRITE = @GNULIB_WRITE@
498500 GNULIB__EXIT = @GNULIB__EXIT@
499501 GREP = @GREP@
502 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
500503 HAVE_ATOLL = @HAVE_ATOLL@
501504 HAVE_BTOWC = @HAVE_BTOWC@
502505 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
503506 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
504507 HAVE_CHOWN = @HAVE_CHOWN@
508 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
505509 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
506510 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
507511 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
567571 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
568572 HAVE_GRANTPT = @HAVE_GRANTPT@
569573 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
574 HAVE_INITSTATE = @HAVE_INITSTATE@
570575 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
571576 HAVE_ISWBLANK = @HAVE_ISWBLANK@
572577 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
587592 HAVE_MBSLEN = @HAVE_MBSLEN@
588593 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
589594 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
595 HAVE_MBTOWC = @HAVE_MBTOWC@
590596 HAVE_MEMCHR = @HAVE_MEMCHR@
591597 HAVE_MEMPCPY = @HAVE_MEMPCPY@
592598 HAVE_MKDTEMP = @HAVE_MKDTEMP@
621627 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
622628 HAVE_SETENV = @HAVE_SETENV@
623629 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
630 HAVE_SETSTATE = @HAVE_SETSTATE@
624631 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
625632 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
626633 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
635642 HAVE_STRPBRK = @HAVE_STRPBRK@
636643 HAVE_STRSEP = @HAVE_STRSEP@
637644 HAVE_STRTOD = @HAVE_STRTOD@
645 HAVE_STRTOLD = @HAVE_STRTOLD@
638646 HAVE_STRTOLL = @HAVE_STRTOLL@
639647 HAVE_STRTOULL = @HAVE_STRTOULL@
640648 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
713721 LIBINTL = @LIBINTL@
714722 LIBMULTITHREAD = @LIBMULTITHREAD@
715723 LIBOBJS = @LIBOBJS@
716 LIBPTH = @LIBPTH@
717 LIBPTH_PREFIX = @LIBPTH_PREFIX@
718724 LIBS = @LIBS@
719725 LIBTHREAD = @LIBTHREAD@
720726 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
730736 LTLIBINTL = @LTLIBINTL@
731737 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
732738 LTLIBOBJS = @LTLIBOBJS@
733 LTLIBPTH = @LTLIBPTH@
734739 LTLIBTHREAD = @LTLIBTHREAD@
735740 MAKEINFO = @MAKEINFO@
736741 MKDIR_P = @MKDIR_P@
827832 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
828833 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
829834 REPLACE_GETPASS = @REPLACE_GETPASS@
835 REPLACE_INITSTATE = @REPLACE_INITSTATE@
830836 REPLACE_ISATTY = @REPLACE_ISATTY@
831837 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
832838 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
860866 REPLACE_PUTENV = @REPLACE_PUTENV@
861867 REPLACE_PWRITE = @REPLACE_PWRITE@
862868 REPLACE_QSORT_R = @REPLACE_QSORT_R@
869 REPLACE_RANDOM = @REPLACE_RANDOM@
863870 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
864871 REPLACE_READ = @REPLACE_READ@
865872 REPLACE_READLINK = @REPLACE_READLINK@
872879 REPLACE_RMDIR = @REPLACE_RMDIR@
873880 REPLACE_SETENV = @REPLACE_SETENV@
874881 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
882 REPLACE_SETSTATE = @REPLACE_SETSTATE@
875883 REPLACE_SLEEP = @REPLACE_SLEEP@
876884 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
877885 REPLACE_SPRINTF = @REPLACE_SPRINTF@
890898 REPLACE_STRSTR = @REPLACE_STRSTR@
891899 REPLACE_STRTOD = @REPLACE_STRTOD@
892900 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
901 REPLACE_STRTOLD = @REPLACE_STRTOLD@
893902 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
894903 REPLACE_SYMLINK = @REPLACE_SYMLINK@
895904 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
275275 GNULIB_CHDIR = @GNULIB_CHDIR@
276276 GNULIB_CHOWN = @GNULIB_CHOWN@
277277 GNULIB_CLOSE = @GNULIB_CLOSE@
278 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
278279 GNULIB_DPRINTF = @GNULIB_DPRINTF@
279280 GNULIB_DUP = @GNULIB_DUP@
280281 GNULIB_DUP2 = @GNULIB_DUP2@
430431 GNULIB_STRSTR = @GNULIB_STRSTR@
431432 GNULIB_STRTOD = @GNULIB_STRTOD@
432433 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
434 GNULIB_STRTOLD = @GNULIB_STRTOLD@
433435 GNULIB_STRTOLL = @GNULIB_STRTOLL@
434436 GNULIB_STRTOULL = @GNULIB_STRTOULL@
435437 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
497499 GNULIB_WRITE = @GNULIB_WRITE@
498500 GNULIB__EXIT = @GNULIB__EXIT@
499501 GREP = @GREP@
502 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
500503 HAVE_ATOLL = @HAVE_ATOLL@
501504 HAVE_BTOWC = @HAVE_BTOWC@
502505 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
503506 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
504507 HAVE_CHOWN = @HAVE_CHOWN@
508 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
505509 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
506510 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
507511 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
567571 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
568572 HAVE_GRANTPT = @HAVE_GRANTPT@
569573 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
574 HAVE_INITSTATE = @HAVE_INITSTATE@
570575 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
571576 HAVE_ISWBLANK = @HAVE_ISWBLANK@
572577 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
587592 HAVE_MBSLEN = @HAVE_MBSLEN@
588593 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
589594 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
595 HAVE_MBTOWC = @HAVE_MBTOWC@
590596 HAVE_MEMCHR = @HAVE_MEMCHR@
591597 HAVE_MEMPCPY = @HAVE_MEMPCPY@
592598 HAVE_MKDTEMP = @HAVE_MKDTEMP@
621627 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
622628 HAVE_SETENV = @HAVE_SETENV@
623629 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
630 HAVE_SETSTATE = @HAVE_SETSTATE@
624631 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
625632 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
626633 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
635642 HAVE_STRPBRK = @HAVE_STRPBRK@
636643 HAVE_STRSEP = @HAVE_STRSEP@
637644 HAVE_STRTOD = @HAVE_STRTOD@
645 HAVE_STRTOLD = @HAVE_STRTOLD@
638646 HAVE_STRTOLL = @HAVE_STRTOLL@
639647 HAVE_STRTOULL = @HAVE_STRTOULL@
640648 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
713721 LIBINTL = @LIBINTL@
714722 LIBMULTITHREAD = @LIBMULTITHREAD@
715723 LIBOBJS = @LIBOBJS@
716 LIBPTH = @LIBPTH@
717 LIBPTH_PREFIX = @LIBPTH_PREFIX@
718724 LIBS = @LIBS@
719725 LIBTHREAD = @LIBTHREAD@
720726 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
730736 LTLIBINTL = @LTLIBINTL@
731737 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
732738 LTLIBOBJS = @LTLIBOBJS@
733 LTLIBPTH = @LTLIBPTH@
734739 LTLIBTHREAD = @LTLIBTHREAD@
735740 MAKEINFO = @MAKEINFO@
736741 MKDIR_P = @MKDIR_P@
827832 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
828833 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
829834 REPLACE_GETPASS = @REPLACE_GETPASS@
835 REPLACE_INITSTATE = @REPLACE_INITSTATE@
830836 REPLACE_ISATTY = @REPLACE_ISATTY@
831837 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
832838 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
860866 REPLACE_PUTENV = @REPLACE_PUTENV@
861867 REPLACE_PWRITE = @REPLACE_PWRITE@
862868 REPLACE_QSORT_R = @REPLACE_QSORT_R@
869 REPLACE_RANDOM = @REPLACE_RANDOM@
863870 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
864871 REPLACE_READ = @REPLACE_READ@
865872 REPLACE_READLINK = @REPLACE_READLINK@
872879 REPLACE_RMDIR = @REPLACE_RMDIR@
873880 REPLACE_SETENV = @REPLACE_SETENV@
874881 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
882 REPLACE_SETSTATE = @REPLACE_SETSTATE@
875883 REPLACE_SLEEP = @REPLACE_SLEEP@
876884 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
877885 REPLACE_SPRINTF = @REPLACE_SPRINTF@
890898 REPLACE_STRSTR = @REPLACE_STRSTR@
891899 REPLACE_STRTOD = @REPLACE_STRTOD@
892900 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
901 REPLACE_STRTOLD = @REPLACE_STRTOLD@
893902 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
894903 REPLACE_SYMLINK = @REPLACE_SYMLINK@
895904 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
491491 GNULIB_CHDIR = @GNULIB_CHDIR@
492492 GNULIB_CHOWN = @GNULIB_CHOWN@
493493 GNULIB_CLOSE = @GNULIB_CLOSE@
494 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
494495 GNULIB_DPRINTF = @GNULIB_DPRINTF@
495496 GNULIB_DUP = @GNULIB_DUP@
496497 GNULIB_DUP2 = @GNULIB_DUP2@
646647 GNULIB_STRSTR = @GNULIB_STRSTR@
647648 GNULIB_STRTOD = @GNULIB_STRTOD@
648649 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
650 GNULIB_STRTOLD = @GNULIB_STRTOLD@
649651 GNULIB_STRTOLL = @GNULIB_STRTOLL@
650652 GNULIB_STRTOULL = @GNULIB_STRTOULL@
651653 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
713715 GNULIB_WRITE = @GNULIB_WRITE@
714716 GNULIB__EXIT = @GNULIB__EXIT@
715717 GREP = @GREP@
718 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
716719 HAVE_ATOLL = @HAVE_ATOLL@
717720 HAVE_BTOWC = @HAVE_BTOWC@
718721 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
719722 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
720723 HAVE_CHOWN = @HAVE_CHOWN@
724 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
721725 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
722726 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
723727 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
783787 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
784788 HAVE_GRANTPT = @HAVE_GRANTPT@
785789 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
790 HAVE_INITSTATE = @HAVE_INITSTATE@
786791 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
787792 HAVE_ISWBLANK = @HAVE_ISWBLANK@
788793 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
803808 HAVE_MBSLEN = @HAVE_MBSLEN@
804809 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
805810 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
811 HAVE_MBTOWC = @HAVE_MBTOWC@
806812 HAVE_MEMCHR = @HAVE_MEMCHR@
807813 HAVE_MEMPCPY = @HAVE_MEMPCPY@
808814 HAVE_MKDTEMP = @HAVE_MKDTEMP@
837843 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
838844 HAVE_SETENV = @HAVE_SETENV@
839845 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
846 HAVE_SETSTATE = @HAVE_SETSTATE@
840847 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
841848 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
842849 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
851858 HAVE_STRPBRK = @HAVE_STRPBRK@
852859 HAVE_STRSEP = @HAVE_STRSEP@
853860 HAVE_STRTOD = @HAVE_STRTOD@
861 HAVE_STRTOLD = @HAVE_STRTOLD@
854862 HAVE_STRTOLL = @HAVE_STRTOLL@
855863 HAVE_STRTOULL = @HAVE_STRTOULL@
856864 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
929937 LIBINTL = @LIBINTL@
930938 LIBMULTITHREAD = @LIBMULTITHREAD@
931939 LIBOBJS = @LIBOBJS@
932 LIBPTH = @LIBPTH@
933 LIBPTH_PREFIX = @LIBPTH_PREFIX@
934940 LIBS = @LIBS@
935941 LIBTHREAD = @LIBTHREAD@
936942 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
946952 LTLIBINTL = @LTLIBINTL@
947953 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
948954 LTLIBOBJS = @LTLIBOBJS@
949 LTLIBPTH = @LTLIBPTH@
950955 LTLIBTHREAD = @LTLIBTHREAD@
951956 MAKEINFO = @MAKEINFO@
952957 MKDIR_P = @MKDIR_P@
10431048 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
10441049 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
10451050 REPLACE_GETPASS = @REPLACE_GETPASS@
1051 REPLACE_INITSTATE = @REPLACE_INITSTATE@
10461052 REPLACE_ISATTY = @REPLACE_ISATTY@
10471053 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
10481054 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
10761082 REPLACE_PUTENV = @REPLACE_PUTENV@
10771083 REPLACE_PWRITE = @REPLACE_PWRITE@
10781084 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1085 REPLACE_RANDOM = @REPLACE_RANDOM@
10791086 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
10801087 REPLACE_READ = @REPLACE_READ@
10811088 REPLACE_READLINK = @REPLACE_READLINK@
10881095 REPLACE_RMDIR = @REPLACE_RMDIR@
10891096 REPLACE_SETENV = @REPLACE_SETENV@
10901097 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1098 REPLACE_SETSTATE = @REPLACE_SETSTATE@
10911099 REPLACE_SLEEP = @REPLACE_SLEEP@
10921100 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
10931101 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11061114 REPLACE_STRSTR = @REPLACE_STRSTR@
11071115 REPLACE_STRTOD = @REPLACE_STRTOD@
11081116 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1117 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11091118 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11101119 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11111120 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
275275 GNULIB_CHDIR = @GNULIB_CHDIR@
276276 GNULIB_CHOWN = @GNULIB_CHOWN@
277277 GNULIB_CLOSE = @GNULIB_CLOSE@
278 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
278279 GNULIB_DPRINTF = @GNULIB_DPRINTF@
279280 GNULIB_DUP = @GNULIB_DUP@
280281 GNULIB_DUP2 = @GNULIB_DUP2@
430431 GNULIB_STRSTR = @GNULIB_STRSTR@
431432 GNULIB_STRTOD = @GNULIB_STRTOD@
432433 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
434 GNULIB_STRTOLD = @GNULIB_STRTOLD@
433435 GNULIB_STRTOLL = @GNULIB_STRTOLL@
434436 GNULIB_STRTOULL = @GNULIB_STRTOULL@
435437 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
497499 GNULIB_WRITE = @GNULIB_WRITE@
498500 GNULIB__EXIT = @GNULIB__EXIT@
499501 GREP = @GREP@
502 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
500503 HAVE_ATOLL = @HAVE_ATOLL@
501504 HAVE_BTOWC = @HAVE_BTOWC@
502505 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
503506 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
504507 HAVE_CHOWN = @HAVE_CHOWN@
508 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
505509 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
506510 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
507511 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
567571 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
568572 HAVE_GRANTPT = @HAVE_GRANTPT@
569573 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
574 HAVE_INITSTATE = @HAVE_INITSTATE@
570575 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
571576 HAVE_ISWBLANK = @HAVE_ISWBLANK@
572577 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
587592 HAVE_MBSLEN = @HAVE_MBSLEN@
588593 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
589594 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
595 HAVE_MBTOWC = @HAVE_MBTOWC@
590596 HAVE_MEMCHR = @HAVE_MEMCHR@
591597 HAVE_MEMPCPY = @HAVE_MEMPCPY@
592598 HAVE_MKDTEMP = @HAVE_MKDTEMP@
621627 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
622628 HAVE_SETENV = @HAVE_SETENV@
623629 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
630 HAVE_SETSTATE = @HAVE_SETSTATE@
624631 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
625632 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
626633 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
635642 HAVE_STRPBRK = @HAVE_STRPBRK@
636643 HAVE_STRSEP = @HAVE_STRSEP@
637644 HAVE_STRTOD = @HAVE_STRTOD@
645 HAVE_STRTOLD = @HAVE_STRTOLD@
638646 HAVE_STRTOLL = @HAVE_STRTOLL@
639647 HAVE_STRTOULL = @HAVE_STRTOULL@
640648 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
713721 LIBINTL = @LIBINTL@
714722 LIBMULTITHREAD = @LIBMULTITHREAD@
715723 LIBOBJS = @LIBOBJS@
716 LIBPTH = @LIBPTH@
717 LIBPTH_PREFIX = @LIBPTH_PREFIX@
718724 LIBS = @LIBS@
719725 LIBTHREAD = @LIBTHREAD@
720726 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
730736 LTLIBINTL = @LTLIBINTL@
731737 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
732738 LTLIBOBJS = @LTLIBOBJS@
733 LTLIBPTH = @LTLIBPTH@
734739 LTLIBTHREAD = @LTLIBTHREAD@
735740 MAKEINFO = @MAKEINFO@
736741 MKDIR_P = @MKDIR_P@
827832 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
828833 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
829834 REPLACE_GETPASS = @REPLACE_GETPASS@
835 REPLACE_INITSTATE = @REPLACE_INITSTATE@
830836 REPLACE_ISATTY = @REPLACE_ISATTY@
831837 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
832838 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
860866 REPLACE_PUTENV = @REPLACE_PUTENV@
861867 REPLACE_PWRITE = @REPLACE_PWRITE@
862868 REPLACE_QSORT_R = @REPLACE_QSORT_R@
869 REPLACE_RANDOM = @REPLACE_RANDOM@
863870 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
864871 REPLACE_READ = @REPLACE_READ@
865872 REPLACE_READLINK = @REPLACE_READLINK@
872879 REPLACE_RMDIR = @REPLACE_RMDIR@
873880 REPLACE_SETENV = @REPLACE_SETENV@
874881 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
882 REPLACE_SETSTATE = @REPLACE_SETSTATE@
875883 REPLACE_SLEEP = @REPLACE_SLEEP@
876884 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
877885 REPLACE_SPRINTF = @REPLACE_SPRINTF@
890898 REPLACE_STRSTR = @REPLACE_STRSTR@
891899 REPLACE_STRTOD = @REPLACE_STRTOD@
892900 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
901 REPLACE_STRTOLD = @REPLACE_STRTOLD@
893902 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
894903 REPLACE_SYMLINK = @REPLACE_SYMLINK@
895904 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
277277 GNULIB_CHDIR = @GNULIB_CHDIR@
278278 GNULIB_CHOWN = @GNULIB_CHOWN@
279279 GNULIB_CLOSE = @GNULIB_CLOSE@
280 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
280281 GNULIB_DPRINTF = @GNULIB_DPRINTF@
281282 GNULIB_DUP = @GNULIB_DUP@
282283 GNULIB_DUP2 = @GNULIB_DUP2@
432433 GNULIB_STRSTR = @GNULIB_STRSTR@
433434 GNULIB_STRTOD = @GNULIB_STRTOD@
434435 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
436 GNULIB_STRTOLD = @GNULIB_STRTOLD@
435437 GNULIB_STRTOLL = @GNULIB_STRTOLL@
436438 GNULIB_STRTOULL = @GNULIB_STRTOULL@
437439 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
499501 GNULIB_WRITE = @GNULIB_WRITE@
500502 GNULIB__EXIT = @GNULIB__EXIT@
501503 GREP = @GREP@
504 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
502505 HAVE_ATOLL = @HAVE_ATOLL@
503506 HAVE_BTOWC = @HAVE_BTOWC@
504507 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
505508 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
506509 HAVE_CHOWN = @HAVE_CHOWN@
510 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
507511 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
508512 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
509513 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
569573 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
570574 HAVE_GRANTPT = @HAVE_GRANTPT@
571575 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
576 HAVE_INITSTATE = @HAVE_INITSTATE@
572577 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
573578 HAVE_ISWBLANK = @HAVE_ISWBLANK@
574579 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
589594 HAVE_MBSLEN = @HAVE_MBSLEN@
590595 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
591596 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
597 HAVE_MBTOWC = @HAVE_MBTOWC@
592598 HAVE_MEMCHR = @HAVE_MEMCHR@
593599 HAVE_MEMPCPY = @HAVE_MEMPCPY@
594600 HAVE_MKDTEMP = @HAVE_MKDTEMP@
623629 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
624630 HAVE_SETENV = @HAVE_SETENV@
625631 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
632 HAVE_SETSTATE = @HAVE_SETSTATE@
626633 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
627634 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
628635 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
637644 HAVE_STRPBRK = @HAVE_STRPBRK@
638645 HAVE_STRSEP = @HAVE_STRSEP@
639646 HAVE_STRTOD = @HAVE_STRTOD@
647 HAVE_STRTOLD = @HAVE_STRTOLD@
640648 HAVE_STRTOLL = @HAVE_STRTOLL@
641649 HAVE_STRTOULL = @HAVE_STRTOULL@
642650 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
715723 LIBINTL = @LIBINTL@
716724 LIBMULTITHREAD = @LIBMULTITHREAD@
717725 LIBOBJS = @LIBOBJS@
718 LIBPTH = @LIBPTH@
719 LIBPTH_PREFIX = @LIBPTH_PREFIX@
720726 LIBS = @LIBS@
721727 LIBTHREAD = @LIBTHREAD@
722728 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
732738 LTLIBINTL = @LTLIBINTL@
733739 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
734740 LTLIBOBJS = @LTLIBOBJS@
735 LTLIBPTH = @LTLIBPTH@
736741 LTLIBTHREAD = @LTLIBTHREAD@
737742 MAKEINFO = @MAKEINFO@
738743 MKDIR_P = @MKDIR_P@
829834 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
830835 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
831836 REPLACE_GETPASS = @REPLACE_GETPASS@
837 REPLACE_INITSTATE = @REPLACE_INITSTATE@
832838 REPLACE_ISATTY = @REPLACE_ISATTY@
833839 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
834840 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
862868 REPLACE_PUTENV = @REPLACE_PUTENV@
863869 REPLACE_PWRITE = @REPLACE_PWRITE@
864870 REPLACE_QSORT_R = @REPLACE_QSORT_R@
871 REPLACE_RANDOM = @REPLACE_RANDOM@
865872 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
866873 REPLACE_READ = @REPLACE_READ@
867874 REPLACE_READLINK = @REPLACE_READLINK@
874881 REPLACE_RMDIR = @REPLACE_RMDIR@
875882 REPLACE_SETENV = @REPLACE_SETENV@
876883 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
884 REPLACE_SETSTATE = @REPLACE_SETSTATE@
877885 REPLACE_SLEEP = @REPLACE_SLEEP@
878886 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
879887 REPLACE_SPRINTF = @REPLACE_SPRINTF@
892900 REPLACE_STRSTR = @REPLACE_STRSTR@
893901 REPLACE_STRTOD = @REPLACE_STRTOD@
894902 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
903 REPLACE_STRTOLD = @REPLACE_STRTOLD@
895904 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
896905 REPLACE_SYMLINK = @REPLACE_SYMLINK@
897906 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
275275 GNULIB_CHDIR = @GNULIB_CHDIR@
276276 GNULIB_CHOWN = @GNULIB_CHOWN@
277277 GNULIB_CLOSE = @GNULIB_CLOSE@
278 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
278279 GNULIB_DPRINTF = @GNULIB_DPRINTF@
279280 GNULIB_DUP = @GNULIB_DUP@
280281 GNULIB_DUP2 = @GNULIB_DUP2@
430431 GNULIB_STRSTR = @GNULIB_STRSTR@
431432 GNULIB_STRTOD = @GNULIB_STRTOD@
432433 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
434 GNULIB_STRTOLD = @GNULIB_STRTOLD@
433435 GNULIB_STRTOLL = @GNULIB_STRTOLL@
434436 GNULIB_STRTOULL = @GNULIB_STRTOULL@
435437 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
497499 GNULIB_WRITE = @GNULIB_WRITE@
498500 GNULIB__EXIT = @GNULIB__EXIT@
499501 GREP = @GREP@
502 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
500503 HAVE_ATOLL = @HAVE_ATOLL@
501504 HAVE_BTOWC = @HAVE_BTOWC@
502505 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
503506 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
504507 HAVE_CHOWN = @HAVE_CHOWN@
508 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
505509 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
506510 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
507511 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
567571 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
568572 HAVE_GRANTPT = @HAVE_GRANTPT@
569573 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
574 HAVE_INITSTATE = @HAVE_INITSTATE@
570575 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
571576 HAVE_ISWBLANK = @HAVE_ISWBLANK@
572577 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
587592 HAVE_MBSLEN = @HAVE_MBSLEN@
588593 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
589594 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
595 HAVE_MBTOWC = @HAVE_MBTOWC@
590596 HAVE_MEMCHR = @HAVE_MEMCHR@
591597 HAVE_MEMPCPY = @HAVE_MEMPCPY@
592598 HAVE_MKDTEMP = @HAVE_MKDTEMP@
621627 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
622628 HAVE_SETENV = @HAVE_SETENV@
623629 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
630 HAVE_SETSTATE = @HAVE_SETSTATE@
624631 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
625632 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
626633 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
635642 HAVE_STRPBRK = @HAVE_STRPBRK@
636643 HAVE_STRSEP = @HAVE_STRSEP@
637644 HAVE_STRTOD = @HAVE_STRTOD@
645 HAVE_STRTOLD = @HAVE_STRTOLD@
638646 HAVE_STRTOLL = @HAVE_STRTOLL@
639647 HAVE_STRTOULL = @HAVE_STRTOULL@
640648 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
713721 LIBINTL = @LIBINTL@
714722 LIBMULTITHREAD = @LIBMULTITHREAD@
715723 LIBOBJS = @LIBOBJS@
716 LIBPTH = @LIBPTH@
717 LIBPTH_PREFIX = @LIBPTH_PREFIX@
718724 LIBS = @LIBS@
719725 LIBTHREAD = @LIBTHREAD@
720726 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
730736 LTLIBINTL = @LTLIBINTL@
731737 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
732738 LTLIBOBJS = @LTLIBOBJS@
733 LTLIBPTH = @LTLIBPTH@
734739 LTLIBTHREAD = @LTLIBTHREAD@
735740 MAKEINFO = @MAKEINFO@
736741 MKDIR_P = @MKDIR_P@
827832 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
828833 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
829834 REPLACE_GETPASS = @REPLACE_GETPASS@
835 REPLACE_INITSTATE = @REPLACE_INITSTATE@
830836 REPLACE_ISATTY = @REPLACE_ISATTY@
831837 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
832838 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
860866 REPLACE_PUTENV = @REPLACE_PUTENV@
861867 REPLACE_PWRITE = @REPLACE_PWRITE@
862868 REPLACE_QSORT_R = @REPLACE_QSORT_R@
869 REPLACE_RANDOM = @REPLACE_RANDOM@
863870 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
864871 REPLACE_READ = @REPLACE_READ@
865872 REPLACE_READLINK = @REPLACE_READLINK@
872879 REPLACE_RMDIR = @REPLACE_RMDIR@
873880 REPLACE_SETENV = @REPLACE_SETENV@
874881 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
882 REPLACE_SETSTATE = @REPLACE_SETSTATE@
875883 REPLACE_SLEEP = @REPLACE_SLEEP@
876884 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
877885 REPLACE_SPRINTF = @REPLACE_SPRINTF@
890898 REPLACE_STRSTR = @REPLACE_STRSTR@
891899 REPLACE_STRTOD = @REPLACE_STRTOD@
892900 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
901 REPLACE_STRTOLD = @REPLACE_STRTOLD@
893902 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
894903 REPLACE_SYMLINK = @REPLACE_SYMLINK@
895904 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
500500 GNULIB_CHDIR = @GNULIB_CHDIR@
501501 GNULIB_CHOWN = @GNULIB_CHOWN@
502502 GNULIB_CLOSE = @GNULIB_CLOSE@
503 GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
503504 GNULIB_DPRINTF = @GNULIB_DPRINTF@
504505 GNULIB_DUP = @GNULIB_DUP@
505506 GNULIB_DUP2 = @GNULIB_DUP2@
655656 GNULIB_STRSTR = @GNULIB_STRSTR@
656657 GNULIB_STRTOD = @GNULIB_STRTOD@
657658 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
659 GNULIB_STRTOLD = @GNULIB_STRTOLD@
658660 GNULIB_STRTOLL = @GNULIB_STRTOLL@
659661 GNULIB_STRTOULL = @GNULIB_STRTOULL@
660662 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
722724 GNULIB_WRITE = @GNULIB_WRITE@
723725 GNULIB__EXIT = @GNULIB__EXIT@
724726 GREP = @GREP@
727 HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
725728 HAVE_ATOLL = @HAVE_ATOLL@
726729 HAVE_BTOWC = @HAVE_BTOWC@
727730 HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
728731 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
729732 HAVE_CHOWN = @HAVE_CHOWN@
733 HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
730734 HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@
731735 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
732736 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
792796 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
793797 HAVE_GRANTPT = @HAVE_GRANTPT@
794798 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
799 HAVE_INITSTATE = @HAVE_INITSTATE@
795800 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
796801 HAVE_ISWBLANK = @HAVE_ISWBLANK@
797802 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
812817 HAVE_MBSLEN = @HAVE_MBSLEN@
813818 HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
814819 HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
820 HAVE_MBTOWC = @HAVE_MBTOWC@
815821 HAVE_MEMCHR = @HAVE_MEMCHR@
816822 HAVE_MEMPCPY = @HAVE_MEMPCPY@
817823 HAVE_MKDTEMP = @HAVE_MKDTEMP@
846852 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
847853 HAVE_SETENV = @HAVE_SETENV@
848854 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
855 HAVE_SETSTATE = @HAVE_SETSTATE@
849856 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
850857 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
851858 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
860867 HAVE_STRPBRK = @HAVE_STRPBRK@
861868 HAVE_STRSEP = @HAVE_STRSEP@
862869 HAVE_STRTOD = @HAVE_STRTOD@
870 HAVE_STRTOLD = @HAVE_STRTOLD@
863871 HAVE_STRTOLL = @HAVE_STRTOLL@
864872 HAVE_STRTOULL = @HAVE_STRTOULL@
865873 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
938946 LIBINTL = @LIBINTL@
939947 LIBMULTITHREAD = @LIBMULTITHREAD@
940948 LIBOBJS = @LIBOBJS@
941 LIBPTH = @LIBPTH@
942 LIBPTH_PREFIX = @LIBPTH_PREFIX@
943949 LIBS = @LIBS@
944950 LIBTHREAD = @LIBTHREAD@
945951 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
955961 LTLIBINTL = @LTLIBINTL@
956962 LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
957963 LTLIBOBJS = @LTLIBOBJS@
958 LTLIBPTH = @LTLIBPTH@
959964 LTLIBTHREAD = @LTLIBTHREAD@
960965 MAKEINFO = @MAKEINFO@
961966 MKDIR_P = @MKDIR_P@
10521057 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
10531058 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
10541059 REPLACE_GETPASS = @REPLACE_GETPASS@
1060 REPLACE_INITSTATE = @REPLACE_INITSTATE@
10551061 REPLACE_ISATTY = @REPLACE_ISATTY@
10561062 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
10571063 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
10851091 REPLACE_PUTENV = @REPLACE_PUTENV@
10861092 REPLACE_PWRITE = @REPLACE_PWRITE@
10871093 REPLACE_QSORT_R = @REPLACE_QSORT_R@
1094 REPLACE_RANDOM = @REPLACE_RANDOM@
10881095 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
10891096 REPLACE_READ = @REPLACE_READ@
10901097 REPLACE_READLINK = @REPLACE_READLINK@
10971104 REPLACE_RMDIR = @REPLACE_RMDIR@
10981105 REPLACE_SETENV = @REPLACE_SETENV@
10991106 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
1107 REPLACE_SETSTATE = @REPLACE_SETSTATE@
11001108 REPLACE_SLEEP = @REPLACE_SLEEP@
11011109 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
11021110 REPLACE_SPRINTF = @REPLACE_SPRINTF@
11151123 REPLACE_STRSTR = @REPLACE_STRSTR@
11161124 REPLACE_STRTOD = @REPLACE_STRTOD@
11171125 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
1126 REPLACE_STRTOLD = @REPLACE_STRTOLD@
11181127 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
11191128 REPLACE_SYMLINK = @REPLACE_SYMLINK@
11201129 REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@